@apitable/i18n
TypeScript icon, indicating that this package has built-in type declarations

1.0.4 • Public • Published

apitable-i18n

APITable i18n is a a simple / easy-to-use / lightweight internationalization tool.

It provides:

  • Use APITable to visual edit i18n strings.
  • Use APITable Settings Generator to generate JSON settings.
  • Use Java and TypeScript SDK as an i18n sdk runtime.

APITable-i18n has these advantages:

  • WYSIWYG: Edit multi-languages on APITable's spreadsheet experience.
  • Slim: Few codes and small.
  • High Performance: Loader separated, support dynamic load easily.
  • Extensible: OOP-design.

SDKs

Imagine it, you have a locales.json file:

{
  "en-US": {
    "text1": "This is text 1",
    "text2": "This is text 2"
  },
  "zh-CN": {
    "text1": "这是中文1"
  }
}

Then:

TypeScript

Install APITable i18n :

npm i --save @apitable/i18n
import { I18N, ILanguagePackerLoader, ILanguagePack } from '@apitable/i18n';
const languagePacks = require('./locales.json');
const i18n = I18N.createByLanguagePacks(languagePacks);
i18n.setLanguage('zh-CN');
const res = i18n.getText('text1')

console.log(res);
// will print '这是中文1';

Java

// build.gradle
dependencies {
   compile group: 'com.apitable', name: 'i18n', version: '1.0.0'
}

Generator

If you want to integration @apitable/i18n with APITable.

Go with APITable Settings Generator.

TODO: 1. APITable Template

You can get an APITable template that use for your i18n.

https://apitable.com/template/i18n

2. Generate settings

Use apitable-settings-generator and the column-files format to generate i18n languages packs.

The config.json:

[
  {
    "dirName": "./generated",
    "fileName": "locales.*.json",
    "tables": {
      {
        "datasheetId": "dstbUhd5coNXQoXFD8",
        "datasheetName": "strings",
        "format": "column-files",
        "params": {}
      }
    }
  }
]

Run to generate i18n strings:

# run in bash
npx apitable-settings-generator --config config.json --token ${HERE_IS_YOUR_APITABLE_TOKEN}

Generated settings locales.en_US.json:

{
  "strings": {
    "en_US": {
      "login_title": "Login APITable",
      "some text": "some text en_US"
    }
  }
}

Generated settings locales.zh_CN.json:

{
  "strings": {
    "zh_CN": {
      "login_title": "中文APITable",
      "some text": "some text zh_CN"
    }
  }
}

Then you will get:

  • locales.json
  • locales.interface.ts(quicktype)

TODO: 3. Use SDKs to read them

Development

yarn
yarn build

Package Sidebar

Install

npm i @apitable/i18n

Weekly Downloads

202

Version

1.0.4

License

MIT

Unpacked Size

21.2 kB

Total Files

23

Last publish

Collaborators

  • apitableinc
  • wangkailang992
  • vika-apitable