Skip to content

Latest commit

 

History

History
102 lines (70 loc) · 2.71 KB

README.md

File metadata and controls

102 lines (70 loc) · 2.71 KB

i18n-dts CircleCI npm version

i18n-dts is a d.ts file generator for i18n-js.

With generated d.ts file you can treat I18n object type-safely!

demo

Installation

NPM

npm install -D i18n-dts

Yarn

yarn add -D i18n-dts

Configuration

First of all specify the following settings in root package.json.

  • model: file extension type can be either .json, .ts or .js
  • outputDir: d.ts file will be emitted in specified directory
"i18n-dts": {
  "model": "./src/locale/languages/en.json",
  "outputDir": "./typings"
}

Note that when you specify .ts or .js file type as a model, use module.exports to export an object.

module.exports = {
  platform: {
    ios: 'Press Cmd+R to reload,\nCmd+D or shake for dev menu',
  },
};

And add outputDir dir into filesGlob option in tsconfig.json.

"filesGlob": [
  "typings/*.d.ts",
],

That's it! Now you can use i18n-dts command which generates corresponding d.ts file.

We recommend to add scripts below into package.json.

"scripts": {
  "i18n-dts": "i18n-dts",
  "i18n-dts:watch": "i18n-dts -w"
},

Options

Watch mode

You can enable watch mode by adding --watch (shorthand -w) flag.

In the watch mode, i18n-dts watches update of model file and generates d.ts file when the model is updated.

i18n-dts --watch

Custom pluralization keys

The i18n-js library supports defining your own pluralization rules. If you've added or changed the rules, you might need to override the default keys (zero, one, other) that i18n-dts looks for to determine if a string should be treated as a pluralized definition. To do this, use the --pluralization-keys <keys> (shorthand -k) flag with a list of comma-separated keys.

i18n-dts --pluralization-keys zero,one,other,many

Licence

Copyright 2018 Quipper Limited.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.