cncjs

Форк
0
/
i18next-scanner.app.config.js 
78 строк · 2.0 Кб
1
/* eslint no-console: 0 */
2
/* eslint strict: 0 */
3
const fs = require('fs');
4
const chalk = require('chalk');
5
const languages = require('./build.config').languages;
6

7
module.exports = {
8
  src: [
9
    'src/app/**/*.{html,hbs,js,jsx}',
10
    // Use ! to filter out files or directories
11
    '!src/app/{vendor,i18n}/**',
12
    '!test/**',
13
    '!**/node_modules/**'
14
  ],
15
  dest: './',
16
  options: {
17
    debug: false,
18
    removeUnusedKeys: true,
19
    sort: false,
20
    func: {
21
      list: [], // Use an empty array to bypass the default list: i18n.t, i18next.t
22
      extensions: ['.js', '.jsx']
23
    },
24
    trans: {
25
      component: 'I18n',
26
      i18nKey: 'i18nKey',
27
      defaultsKey: 'defaults',
28
      extensions: ['.js', '.jsx'],
29
      fallbackKey: function(ns, value) {
30
        return value;
31
      }
32
    },
33
    lngs: languages,
34
    ns: [
35
      'gcode',
36
      'resource' // default
37
    ],
38
    defaultNs: 'resource',
39
    defaultValue: (lng, ns, key) => {
40
      if (lng === 'en') {
41
        return key; // Use key as value for base language
42
      }
43
      return ''; // Return empty string for other languages
44
    },
45
    resource: {
46
      loadPath: 'src/app/i18n/{{lng}}/{{ns}}.json',
47
      savePath: 'src/app/i18n/{{lng}}/{{ns}}.json', // or 'src/app/i18n/${lng}/${ns}.saveAll.json'
48
      jsonIndent: 4
49
    },
50
    nsSeparator: ':', // namespace separator
51
    keySeparator: '.', // key separator
52
    interpolation: {
53
      prefix: '{{',
54
      suffix: '}}'
55
    }
56
  },
57
  transform: function(file, enc, done) {
58
    'use strict';
59

60
    const parser = this.parser;
61
    const content = fs.readFileSync(file.path, enc);
62
    let count = 0;
63

64
    parser.parseFuncFromString(content, { list: ['i18n._', 'i18n.__'] }, (key, options) => {
65
      parser.set(key, Object.assign({}, options, {
66
        nsSeparator: false,
67
        keySeparator: false
68
      }));
69
      ++count;
70
    });
71

72
    if (count > 0) {
73
      console.log(`[i18next-scanner] transform: count=${chalk.cyan(count)}, file=${chalk.yellow(JSON.stringify(file.relative))}`);
74
    }
75

76
    done();
77
  }
78
};
79

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.