cncjs

Форк
0
/
i18next-scanner.server.config.js 
66 строк · 1.7 Кб
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
  options: {
9
    debug: false,
10
    removeUnusedKeys: false,
11
    sort: false,
12
    func: {
13
      list: ['i18n.t', 't'],
14
      extensions: ['.js', '.jsx']
15
    },
16
    trans: {
17
      component: 'I18n',
18
      i18nKey: 'i18nKey',
19
      defaultsKey: 'defaults',
20
      extensions: ['.js', '.jsx'],
21
      fallbackKey: function(ns, value) {
22
        return value;
23
      }
24
    },
25
    lngs: languages,
26
    ns: [
27
      'resource' // default
28
    ],
29
    defaultNs: 'resource',
30
    defaultValue: '__L10N__', // to indicate that a default value has not been defined for the key
31
    resource: {
32
      loadPath: 'src/server/i18n/{{lng}}/{{ns}}.json',
33
      savePath: 'src/server/i18n/{{lng}}/{{ns}}.json', // or 'src/server/i18n/${lng}/${ns}.saveAll.json'
34
      jsonIndent: 4
35
    },
36
    nsSeparator: ':', // namespace separator
37
    keySeparator: '.', // key separator
38
    pluralSeparator: '_', // plural separator
39
    contextSeparator: '_', // context separator
40
    interpolation: {
41
      prefix: '{{',
42
      suffix: '}}'
43
    }
44
  },
45
  transform: function(file, enc, done) {
46
    'use strict';
47

48
    const parser = this.parser;
49
    const content = fs.readFileSync(file.path, enc);
50
    let count = 0;
51

52
    parser.parseFuncFromString(content, { list: ['i18n._', 'i18n.__'] }, (key, options) => {
53
      parser.set(key, Object.assign({}, options, {
54
        nsSeparator: false,
55
        keySeparator: false
56
      }));
57
      ++count;
58
    });
59

60
    if (count > 0) {
61
      console.log(`[i18next-scanner] transform: count=${chalk.cyan(count)}, file=${chalk.yellow(JSON.stringify(file.relative))}`);
62
    }
63

64
    done();
65
  }
66
};
67

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

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

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

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