atool-l10n
automatical solution for generating localization resource using middlewares
Last updated 2 months ago by jaredleechn .
MIT · Repository · Bugs · Original npm · Tarball
$ cnpm install atool-l10n 
SYNC missed versions from official npm registry.

atool-l10n

  • collection all meta data generated by babel
  • fetch translate result from machine translation center
  • save the translation into local

automatical solution for generating localization resource using middlewares

Demo in React

Usage

  • setup

    $ npm i atool-l10n --save-dev
    
  • add l10n.config.js into the same root dir of your project

    // default config
    module.exports = {
      middlewares: {
        summary: ['summary?sourcePattern=i18n-messages/**/*.json'],
        process: [
          'fetchLocal?source=locales,skip',
          'metaToResult?from=defaultMessage,to=zh',
          'youdao?apiname=iamatestmanx,apikey=2137553564',
          'reduce?-autoPick,autoReduce[]=local,autoReduce[]=meta',
        ],
        emit: ['save?dest=locales'],
      },
    };
    
  • run

    $ node_modules/.bin/atool-l10n
    

Options


  Usage: atool-l10n [options]

  Options:

    -h, --help        output usage information
    -v, --version     output the version number
    --config <dir>    where is the config file, default is l10n.config.js

Middleware

atool-l10n middlewares will execute one by one, with parameter query and shared context

A middleware may looks like this:

export default function something(query) {
  this.getMeta();
  this.setResult();
  this.setOption();
  ...
}
  • query: parameters passed to current middleware
    • parse from option.config(default is l10n.config.js)
    • parsed by loader-utils

Context

There are necessary operation and usefull methods on this context in the function

You can check the detail API via file

Built-in middlewares

  • summary: collect origin data generated from babel-plugin-react-intl
parameter default description
sourcePattern 'i18n-messages/**/*.json' where the messages json files is, specified in babel-plugin-react-intl, array supported
  • fetchLocal: add local locales messages as an option of translation result
parameter default description
source 'locales' where the local locales messages file is, file name is same as language name, eg: zh
skip true if add the id into translating skip array when all local locales messages for it is not empty
  • metaToResult: take defaultMessage or other key of meta into an option of translation result
parameter default description
from 'defaultMessage' using which key of meta, eg: defaultMessage, id, description...
to 'zh' the language you want to save as
  • youdao: fetch translate result from zh to en from youdao
parameter default description
apiname 'iamatestmanx' apiname you applied for machine translation from youdao
apikey '2137553564' apikey you applied for machine translation from youdao

you can easily apply the apiname and apikey from youdao

  • google: fetch translate result from zh to en from google translate
parameter default description
from 'zh-cn' string, what languages you want to translate from
to 'en' string, what languages you want to translate to

use google-translate-api

  • gugu: automatic contextualized translate for multi languages of each id from gugu, only available in alibaba-network
parameter default description
from 'zh' can be an array, what languages you want to translate from
to 'en' can be an array, what languages you want to translate to
  • reduce: pick the best translation, among all translation options in terminal
parameter default description
autoPick false auto pick the value of index [autoPick]
autoReduce ['local', 'meta'] auto reduce some options, the smallest index wins, values of the other index in the array will be delete
  • save: save translation result into local locale files, which are required directly by source code
parameter default description
dest 'locales' save locales messages into where, message file named by language name
Maintainers (1)
Downloads
Today 1
This Week 11
This Month 26
Last Day 9
Last Week 9
Last Month 57
Dependencies (13)
Dev Dependencies (14)
Dependents (1)

Copyright 2014 - 2017 © taobao.org |