12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- // Copyright 2017-2020 @polkadot/apps authors & contributors
- // This software may be modified and distributed under the terms
- // of the Apache-2.0 license. See the LICENSE file for details.
- const fs = require('fs');
- const path = require('path');
- const typescript = require('typescript');
- const findPackages = require('./scripts/findPackages');
- function transform (file, enc, done) {
- const { ext } = path.parse(file.path);
- if (ext === '.tsx') {
- const content = fs.readFileSync(file.path, enc);
- const { outputText } = typescript.transpileModule(content, {
- compilerOptions: {
- target: 'es2018'
- },
- fileName: path.basename(file.path)
- });
- const parserHandler = (key, options) => {
- options.defaultValue = key;
- if (process.platform !== 'win32') {
- options.ns = /packages\/(.*?)\/src/g.exec(file.path)[1].replace('page-', 'app-');
- } else {
- options.ns = /packages\\(.*?)\\src/g.exec(file.path)[1].replace('page-', 'app-');
- }
- this.parser.set(key, options);
- };
- this.parser.parseFuncFromString(outputText, parserHandler);
- }
- done();
- }
- module.exports = {
- input: [
- 'packages/*/src/**/*.{ts,tsx}',
- // Use ! to filter out files or directories
- '!packages/*/src/**/*.spec.{ts,tsx}',
- '!packages/*/src/i18n/**',
- '!**/node_modules/**'
- ],
- options: {
- debug: true,
- defaultLng: 'en',
- func: {
- extensions: ['.tsx', '.ts'],
- list: ['t', 'i18next.t', 'i18n.t']
- },
- keySeparator: false, // key separator
- lngs: ['en'],
- ns: findPackages().map(({ dir }) => dir.replace('page-', 'app-')),
- nsSeparator: false, // namespace separator
- resource: {
- jsonIndent: 2,
- lineEnding: '\n',
- loadPath: 'packages/apps/public/locales/{{lng}}/{{ns}}.json',
- savePath: 'packages/apps/public/locales/{{lng}}/{{ns}}.json'
- },
- trans: {
- component: 'Trans'
- }
- },
- output: './',
- transform
- };
|