1.4.10 • Published 6 years ago

locale-loader v1.4.10

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

Locale Loader

Build Status Coverage Status

Simple locale loader for webpack.

Sample File Structure:

    --/src
        |--/i18n
             |--en-US.js
             |--fr-FR.js
             |--localeLoader.js
             |--index.js

Locale files

  1. Must be ES6 module.
  2. No template literals ().
  3. No nested structures.
import constants from './constants';

export default {
    title: 'Hello World',
    [constants.fetchError]: 'Fetch Error',
    icuCompliant: 'Greetings, {name}!',
    handleEscapedBraces: 'Escape braces with single quote: \'{foo}\'',
    'complex-keys': 'Support using quoted property names',
};

Loader File

Loader files should be a js file starting with the following comment.

/* loadLocale */

The webpack loader will generate necessary code (in es6) in compiling process. Each locale will be placed into separate bundles.

If there is a need to not separate the bundles, the following comment can be used instead.

/* loadLocale noChunk */

There must be a space after '/*' and '*/'.

I18n class

The index.js file in the sample structure can be used to export a I18n object.

import I18n from 'locale-loader/lib/I18n';
import loadLocale from './loadLocale';

export default new I18n(loadLocale);

locale-loader

locale-oader is a webpack loader, this must be placed before babel-loader.

Example webpack config

module.exports = {
    module: {
      rules: [
        {
            test: /\.js$/,
            use: [
                'babel-loader',
                'locale-loader',
            ],
            exclude: /node_modules/,
        },
    }
}

transformLocaleLoader

For building libraries and releasing, often we only compile the source to es2015 with babel transform and not webpack. The transformLocaleLoader is a gulp transform that can transform the loader files with generated code so the final result is ready to use.

gulpfile.js

gulp.src('./src')
    .pipe(transformLocaleLoader())
    .pipe(babel(...babelConfig))
    .pipe(gulp.dest('./build'));

Export to Xlf

The exportLocale function can be used to generate xlf files.

import ExportLocale from 'locale-loader/exportLocale';

const config = {
    sourceLocale: 'en-US', // the default locale with original strings
    supportedLocales: ['en-US', 'fr-FR', 'ja-JP'], // the array of locales to support
    sourceFolder: 'src', // export locale will use 'src/**/*.js' glob to search for loaders
    localizationFolder: 'localization', // exported files will be saved to here
    exportType: 'diff', // determines what is exported
};

exportLocale(config).then(() => {
    console.log('.xlf generated to `cwd()/localization/`');
});

Export Types

  1. 'diff': Diff will only export entries that have not been translated, or have been modified since last translation. This is the default mode.
  2. 'full': This will export everything.
  3. 'translated': This will only export translated entries.
1.4.10

6 years ago

1.4.9

6 years ago

1.4.8

6 years ago

1.4.7

6 years ago

1.4.6

6 years ago

1.4.5

6 years ago

1.4.4

6 years ago

1.4.3

6 years ago

1.4.2

6 years ago

1.4.1

6 years ago

1.4.0

6 years ago

1.3.5

6 years ago

1.3.4

6 years ago

1.3.3

6 years ago

1.3.2

7 years ago

1.3.1

7 years ago

1.3.0

7 years ago

1.2.4

7 years ago

1.2.3

7 years ago

1.2.2

7 years ago

1.2.1

7 years ago

1.2.0

7 years ago

1.1.5

7 years ago

1.1.4

7 years ago

1.1.3

7 years ago

1.1.2

7 years ago

1.1.1

7 years ago

1.1.0

7 years ago

1.0.0

7 years ago