npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

gulp-i18n-csv

v1.0.3

Published

Create internationalized files from a CSV translations file

Downloads

2

Readme

gulp-i18n-csv

Join the chat at https://gitter.im/fgpv-vpgf/gulp-i18n-csv

Create internationalized files from a CSV translations file

Install

$ npm install --save-dev gulp-i18n-csv

Usage

var gulp = require('gulp');
var gulpi18nCsv = require('gulp-i18n-csv');

gulp.task('default', function () {
	return gulp.src('node_modules/gulp-i18n-csv/sample/wet.csv')
		.pipe(gulpi18nCsv())
		.pipe(gulp.dest('./output'));
});

API

gulpi18nCsv([ options ])

options

pretty

Type: boolean Default: false

When true, outputs human-readble JSON.

resource path (resPath)

Type: string Default: locales/\__lng__/\__ns__.json

When specified, writes file to specified location.

Examples

_lng_ - language name _ns_ - namespace (defaults to 'translation')

gulpi18nCsv({ resPath: 'locales/__lng__/__ns__.json' })
'locales/en/translation.json'
'locales/fr/translation.json'
'locales/zh-Hans/translation.json'
...

Another one:

gulpi18nCsv({ resPath: 'locales/__ns__-__lng__.json' })
'locales/translation-en.json'
'locales/translation-fr.json'
'locales/translation-zh-Hans.json'
...

Formatting

If a superkey has subkeys after it , do not have the superkey as a key in the csv file at all. (ie. if foo has subkey foo.bar, do not have foo as a key in the csv file)

Deep-key nesting

gulp-i18n-csv provides deep key nesting when the key is separated by periods.

Example:

| key | string | |------------------|--------| | foo.bar.blah.dog | hello |

This about should become

{
    "foo": {
        "bar": {
            "blah": {
                "dog": "hello"
            }
        }
    }
}

Splitting

Allows for splitting top-level keys into separate files depending on the option specified.

Use this to split every top-level key into its own csv file:

gulpi18nCsv({ split: true })

Replace with an array to split only keys in array from the main translation file:

gulpi18nCsv({ split: ['cal', 'lang', 'tab'] })

Replace with string to only split one key away from the main translation file:

gulpi18nCsv({ split: 'tab' })

If resPath is provided when splitting, the key being split will replace __ns__ in the file path.

Examples

Say you have the following .csv:

| key | string | |--------------|------------------------| | lang | ru | | tab.play | Tab Play | | tab.blar | Tab Blar | | help.one | Help One | | help.three | Help Two | | help.four | Help Three |

When the following is specified, will separate into 3 files: lang.json, tab.json, and help.json.

{split: true}

When the following is specified, will separate into 3 files: translation.json, tab.json, and help.json.

{split: [tab, help]}

When the following is specified, will separate into 2 files: lang.json and translation.json.

{split: lang}
If resPath provided as well
{ resPath: 'locales/__lng__/__ns__.json', split: true }

Will separate into 3 files at paths locales/ru/lang.json, locales/ru/tab.json, locales/ru/help.json.

License

MIT © Cynthia (Qingwei) Li