JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q87576F
  • License MIT

Tools to work with I18N messages

Package Exports

  • @nutgaard/i18n-tools
  • @nutgaard/i18n-tools/lib/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@nutgaard/i18n-tools) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

I18N-tools

Utility for building and compiling I18N bundles.

The project uses tools from FormatJS, if your project uses other tools it may not work for you.

Install globally: npm install @nutgaard/i18n-tools -g

Install in project: npm install @nutgaard/i18n-tools --save-dev

Usage

Usage: i18n-tool [options] [command]

Utility for building and compiling I18N bundles

Options:
  -h, --help                         display help for command

Commands:
  build [options] <srcDir> <outDir>  Bundles files in <srcDir> into i18n files
  watch [options] <srcDir> <outDir>  Starts watching and rebundling files in <srcDir> into i18n files
  validate <srcDir>                  Validate that every locale contains the same set of keys
  fix <srcDir>                       Attempts to fix validation issues by creating missing files
  help [command]                     display help for command

Build/Watch: package and compile intl files

Usage: i18n-tool build [options] <srcDir> <outDir>

Bundles files in <srcDir> into i18n files

Arguments:
  srcDir                     source folder of your i18n files
  outDir                     output folder for your i18n bundles

Options:
  -f, --format <format>      Output format (choices: "script", "json", "jsonlut", "formatjs", default: "formatjs")
  --typescript               Output script files with typescript (default: false)
  --strict                   Run validation before bundling (default: false)
  --ast                      Compile generated bundles (only availble with formatjs) (default: false)
  --lut                      Generate look-up-table (only availble with formatjs) (default: false)
  -t, --timeZone <timezone>  Inject timezone into date/time skeletons
  -h, --help                 display help for command

Examples:

- Bundle files into a json file following the formatjs-format
i18n-tool build example/messages example/compiled --ast --lut --typescript

The different formats;

script generates bundle_[locale].js

const texts = {
    'group-by-page/title': 'The folder structure is preserved in the look-up-table.',
};

export default texts;

Use --typescript to change the file extension

json generates bundle_[locale].json

{
    "group-by-page/title": "The folder structure is preserved in the look-up-table."
}

jsonlut generates bundle_[locale].json

{
    "group-by-page": {
        "title": "The folder structure is preserved in the look-up-table."
    }
}

formatjs generates bundle_[locale].json

{
    "group-by-page/title": {
        "defaultMessage": "The folder structure is preserved in the look-up-table."
    }
}

Validate: check if all files are present for all locales

Usage: i18n-tool validate [options] <srcDir>

Validate that every locale contains the same set of keys

Arguments:
  srcDir      source folder of your i18n files

Options:
  -h, --help  display help for command

Fix: create missing files

Usage: i18n-tool fix [options] <srcDir>

Attempts to fix validation issues by creating missing files

Arguments:
  srcDir      source folder of your i18n files

Options:
  -h, --help  display help for command