API Reference - CLI (@lingui/cli)

@lingui/cli manages locales, extracts messages from source files into message catalogs and compiles message catalogs for production use.


  1. Install @lingui/cli as a development dependency:

    npm install --save-dev @lingui/cli
    # yarn add --dev @lingui/cli


    Install also Babel core packages (@babel/core, babel-core@bridge):

    # Babel 6.x
    npm install --save-dev babel-core@6
    # yarn add --dev babel-core@6
    # Babel 7.x
    npm install --save-dev babel-core@^7.0.0-bridge.0 @babel/core
    # yarn add --dev babel-core@^7.0.0-bridge.0 @babel/core
  2. Add following scripts to your package.json:

       "scripts": {
          "add-locale": "lingui add-locale",
          "extract": "lingui extract",
          "compile": "lingui compile",

Global options

--config <config>

Path to LinguiJS configuration file. If not set, the default file is loaded as described in LinguiJS configuration reference.



lingui init [--dry-run]

Installs all required packages based on project type. Recognized projects are:


Output commands which would run, but don’t execute them.


lingui add-locale [locales...] [--format <format>]

This command creates a new directory for each locale in localeDir.

# Add English, French and Spanish locales
lingui add-locale en fr es
--format <format>

Format of message catalog (see format option).


lingui extract [--clean] [--overwrite] [--format <format>] [--convert-from <format>] [--verbose]

This command extracts messages from source files and creates a message catalog for each language using the following steps:

  1. Extract messages from all *.jsx? files inside srcPathDirs

  2. Merge them with existing catalogs in localeDir (if any)

  3. Write updated message catalogs to localeDir


Remove obsolete messages from catalogs. Message becomes obsolete when it’s missing in the source code.


Update translations for sourceLocale from source.

--format <format>

Format of message catalogs (see format option).

--convert-from <format>

Convert message catalogs from previous format (see format option).


Prints additional information.


lingui compile [--strict] [--format <format>] [--verbose] [--namespace <namespace>]

This command compiles message catalogs in localeDir and outputs minified Javascript files. Each message is replaced with a function that returns the translated message when called.

Also, language data (pluralizations) are written to the message catalog as well.


Fail if a catalog has missing translations.

--format <format>

Format of message catalogs (see format option).


Prints additional information.


Specify namespace for compiled message catalogs (also see compileNamespace for global configuration).