GithubHelp home page GithubHelp logo

joanjane / gulp-i18n-json-tools Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 74 KB

This is a gulp plugin that tries help on localization of projects that use json files.

License: MIT License

JavaScript 100.00%
gulp gulp-plugin gulp-tasks json merge deep-merge localization i18n tool csv export import

gulp-i18n-json-tools's Introduction

gulp-i18n-json-tools

build

This is a gulp 3/4 plugin that tries help on localization of projects that use json files.

Features:

  1. Fill missing translations with a base language file. This plugin merges two json files in order to inherit new keys that are not translated yet on first one, so on your app will display at least, the base language instead of nothing.

  2. Export json files to CSV with two columns: key, value. CSV is far more easy to work with when talking about localization, and tools like Libre Office can edit them easily. You can customize a few options of generated key, and also the delimiter of CSV.

  3. Import CSV translations back to your json, updating the translated keys. When the localization team delivers you the translated resources, this tool will override your json with keys present on CSV file.

Usage

var gulp = require('gulp'),
    fs = require('fs'),
    i18nJsonTools = require('gulp-i18n-json-tools');

function merge() {
    return i18nJsonTools
        .jsonMerger(
            require('./merge/en.json'),     // base language to inherit missing keys
            require('./merge/es.json'),     // language to merge with base language
            'result-es.json')               // output file name
        .pipe(gulp.dest('./merge'));        // destination folder
}

function export() {
    return i18nJsonTools
        .jsonToCsv(
            require('./export/en.json'),    // json to export to CSV
            'result-en.csv')                // output file name
        .pipe(gulp.dest('./export'));       // destination folder
}

function import() {
    return i18nJsonTools
        .updateJsonFromCsv(
            require('./import/to-fill.json'),               // target json to try to fill with csv keys
            fs.readFileSync('./import/en.csv', 'utf8'),     // csv to import
            'result-en.json')                               // output file updated with csv matched content
        .pipe(gulp.dest('./import'));                       // destination folder
}

Installation with dependencies

npm install gulp-i18n-json-tools gulp vinyl papaparse --save-dev

Sample

Check out this folder to see merge/import/export folders and result-... files inside to get an idea of the features.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.