1.0.21 • Published 3 years ago

gulp-spfx-localization v1.0.21

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

gulp-spfx-localization

Auto generate localization file based on a csv file

Install

npm install gulp-spfx-localization --save-dev

Demo

Excel File

Example

| key   | en-US | fr-FR |
|-------|-------|-------|
| Title | Title | Titre |
| Name  | Name  | Nom   |

gulpfile.js

var gulp = require('gulp');
var i18n = require('.');
const beautify = require('gulp-jsbeautifier');
const prettier = require('gulp-prettier');

// Generate en-us.js and fr-fr.js translation
gulp.task('generate-translation', function () {
    // Input Excel file
    var files = gulp.src("./language.csv");

    //Mapping of each language
    var langMap = {
        'en-us': "en-us",
        'fr-fr': "fr-fr"
    };

    return files.pipe(i18n({
            'keyColumnName': "key",
            'langMap': langMap,
            'fallback': 'en-us', // key of fallback language
            'interfaceName': "IPwaReactWebPartStrings",
            'moduleName': "PwaReactWebPartStrings",            
            'passColumns': ['Comment'],
            'separator': ";"
        }))
        .pipe(beautify())
        .pipe(gulp.dest('./language'));
})

//Beautify TS file
gulp.task('ts-beautify', ['generate-translation'], function () {
    return gulp.src('./language/mystrings.d.ts')
        .pipe(prettier({
            singleQuote: true
        }))
        .pipe(gulp.dest('./language'));
});

gulp.task('spfx-localization', ['ts-beautify']);

Run gulp spfx-localization

output

// ./language/en-us.js
define([], function() {
    return {
        /*************** sheet 1 ***************/
        "Title": "Title",
        /*************** sheet 2 ***************/
        "Name": "Name"
    }
});

// ./language/fr-fr.js
define([], function() {
    return {
        /*************** sheet 1 ***************/
        "Title": "Titre",
        /*************** sheet 2 ***************/
        "Name": "Nom"
    }
});

// ./language/mystrings.d.ts
declare interface IPwaReactWebPartStrings {
  Title: 'Titre';
  Name: 'Nom';
}
declare module 'PwaReactWebPartStrings' {
  const strings: IPwaReactWebPartStrings;
  export = strings;
}
1.0.21

3 years ago

1.0.20

3 years ago

1.0.19

3 years ago

1.0.18

3 years ago

1.0.17

3 years ago

1.0.16

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago