node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

i18n-generator

i18n-generator

Build Status Coverage Status Dependency Status devDependency Status

i18n json files generator for node, web browser and command line.

i18n Online Generate Tools screen shot 2017-09-25 at 11 34 33 pm

Getting Started

node.js
Install the module with: npm install i18n-generator

var i18nGenerator = require('i18n-generator');
 
var inputFile = 'input.txt',
    outputPath = 'output';
 
i18nGenerator(inputFile, outputPath);
 
// js-beautify your json
i18nGenerator(inputFile, outputPath, true);
// or given js-beautify options
i18nGenerator(inputFile, outputPath, { indent_size: 2 });
// settings split variable (default as |)
i18nGenerator(inputFile,outputPath, options, 'csv');
 
// options => https://github.com/beautify-web/js-beautify#options
// splitter support
// | => pipe (default)
// , => csv
// \t => tsv
 
// get output data api
// input can be file (.txt) or string (data)
i18nGenerator.get(input, 'csv', function (err, data) {
    console.log(data);
    // => output i18n data
});
 
// or you can
i18nGenerator.get(input, function (err, data) {
    console.log(data);
});

browser

<script src="i18n-generator.js"></script>
var i18n = window.i18n;
i18n(inputData, 'csv', function (err, data) {
    console.log(data);
    // => output i18n data
});
 
// or easily
i18n(inputData, function (err, data) {
    console.log(data);
    // => split default pipe |
});

cli

$ i18n input.txt output
 
# generate from csv or tsv 
$ i18n input.csv output
 
# watch file 
$ i18n input.txt output --watch

Workflow

input file

i18n=>, en, zh_TW, de, my
you, you, 你, Du, kamu
I, I, 我, ich, Saya
love, love, 喜歡, liebe, cinta
eat, eat, 吃, essen, makan
ilovegithub, i love github, 我愛 Github, ich liebe Github, Saya cinta pada Github

output (de.json)

{"you":"Du","I":"ich","love":"liebe","eat":"essen","ilovegithub":"ich liebe Github"}

output (en.json)

{"you":"you","I":"I","love":"love","eat":"eat","ilovegithub":"i love github"}

output (my.json)

{"you":"kamu","I":"Saya","love":"cinta","eat":"makan","ilovegithub":"Saya cinta pada Github"}

output (zh_TW.json)

{"you":"","I":"","love":"喜歡","eat":"","ilovegithub":"我愛 Github"}

Try Advance

i18n=>, en, zh_TW, de, my
ilovegithub, "i love github but u", "我愛 github,但我也愛 git", was du gesagt, "saya pun"

Try Nest

i18n=>, en, zh_TW, de, my
ilovegithub, i love github, 我愛 Github, ich liebe Github, Saya cinta pada Github
=> global
sleep, sleep, 睡覺, schlafen, tidur
morning, morning, 早安, Morgen, pagi
=> people
Ahmad, Ahmad, Ahmad, Ahmad, Ahmad
<=
Back, back, 回來, terug, balik

It's work! Cool right ? You can try it on online demo tools

License

Copyright (c) 2014-Present Huei Tan. Licensed under the MIT license.