Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nutgaard/i18n-tools
Tools to work with I18N messages
https://github.com/nutgaard/i18n-tools
Last synced: about 2 months ago
JSON representation
Tools to work with I18N messages
- Host: GitHub
- URL: https://github.com/nutgaard/i18n-tools
- Owner: nutgaard
- License: mit
- Created: 2023-06-11T14:10:04.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-11-14T07:47:22.000Z (about 2 months ago)
- Last Synced: 2024-11-14T08:27:15.966Z (about 2 months ago)
- Language: TypeScript
- Size: 183 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# I18N-tools
Utility for building and compiling I18N bundles.
The project uses tools from [FormatJS](https://formatjs.io/), 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
```shell
Usage: i18n-tool [options] [command]Utility for building and compiling I18N bundles
Options:
-h, --help display help for commandCommands:
build [options] Bundles files in into i18n files
watch [options] Starts watching and rebundling files in into i18n files
validate Validate that every locale contains the same set of keys
fix Attempts to fix validation issues by creating missing files
help [command] display help for command
```### Build/Watch: package and compile intl files
```shell
Usage: i18n-tool build [options]Bundles files in into i18n files
Arguments:
srcDir source folder of your i18n files
outDir output folder for your i18n bundlesOptions:
-f, --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 Inject timezone into date/time skeletons
-h, --help display help for commandExamples:
- 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`
```javascript
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`
```json
{
"group-by-page/title": "The folder structure is preserved in the look-up-table."
}
```**jsonlut** generates `bundle_[locale].json`
```json
{
"group-by-page": {
"title": "The folder structure is preserved in the look-up-table."
}
}
```**formatjs** generates `bundle_[locale].json`
```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
```shell
Usage: i18n-tool validate [options]Validate that every locale contains the same set of keys
Arguments:
srcDir source folder of your i18n filesOptions:
-h, --help display help for command
```### Fix: create missing files
```shell
Usage: i18n-tool fix [options]Attempts to fix validation issues by creating missing files
Arguments:
srcDir source folder of your i18n filesOptions:
-h, --help display help for command
```