1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- const fs = require('fs');
- const path = require('path');
- const typescript = require('typescript');
- module.exports = {
- input: [
- 'packages/*/src/**/*.{ts,tsx}',
- // Use ! to filter out files or directories
- '!packages/*/src/**/*.spec.{ts,tsx}',
- '!packages/*/src/i18n/**',
- '!**/node_modules/**'
- ],
- output: './',
- options: {
- debug: true,
- func: {
- list: ['t', 'i18next.t', 'i18n.t'],
- extensions: ['.tsx']
- },
- trans: {
- component: 'Trans'
- },
- lngs: ['en'],
- defaultLng: 'en',
- ns: [
- 'app-123code',
- 'app-accounts',
- 'app-address-book',
- 'app-claims',
- 'app-contracts',
- 'app-council',
- 'app-dashboard',
- 'app-democracy',
- 'app-explorer',
- 'app-extrinsics',
- 'app-generic-asset',
- 'app-js',
- 'app-parachains',
- 'app-settings',
- 'app-staking',
- 'app-storage',
- 'app-sudo',
- 'app-toolbox',
- 'app-transfer',
- 'app-treasury',
- 'apps',
- 'apps-routing',
- 'react-api',
- 'react-components',
- 'react-params',
- 'react-query',
- 'react-signer',
- 'ui'
- ],
- defaultNs: 'ui',
- resource: {
- loadPath: 'packages/apps/public/locales/{{lng}}/{{ns}}.json',
- savePath: 'packages/apps/public/locales/{{lng}}/{{ns}}.json',
- jsonIndent: 2,
- lineEnding: '\n'
- },
- nsSeparator: false, // namespace separator
- keySeparator: false // key separator
- },
- transform: 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;
- options.ns = /packages\/(.*?)\/src/g.exec(file.path)[1];
- this.parser.set(key, options);
- };
- this.parser.parseFuncFromString(outputText, parserHandler);
- }
- done();
- }
- };
|