Skip to content

Commit f4db540

Browse files
committed
add script load-translations.ts
1 parent 8c55b3d commit f4db540

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
"ios": "expo run:ios",
99
"web": "expo start --web",
1010
"lint": "tsc --noEmit && eslint .",
11-
"format": "prettier --write ."
11+
"format": "prettier --write .",
12+
"translations": "ts-node ./scripts/load-translations.ts"
1213
},
1314
"dependencies": {
1415
"@eva-design/eva": "^2.2.0",

scripts/load-translations.ts

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import fs from 'fs';
2+
import path from 'path';
3+
4+
const i18nFolder = "./i18n";
5+
const files = fs.readdirSync(i18nFolder);
6+
const jsonFiles = files.filter(file => file.endsWith('.json')).map(file => path.basename(file, '.json'));
7+
8+
9+
const imports = `import { Resource } from "i18next";\n\n` + jsonFiles.map(lang => `import ${lang} from "./${lang}.json";`).join('\n');
10+
11+
const translationsObject = `const translations: Resource = {
12+
${jsonFiles.map(lang => `${lang}: { translation: ${lang} }`).join(',\n ')}
13+
};
14+
15+
export default translations;
16+
`;
17+
18+
19+
const outputPath = "./i18n/index.ts";
20+
const content = `${imports}\n\n${translationsObject}`;
21+
22+
fs.writeFileSync(outputPath, content, 'utf-8');
23+
console.log('Finished loading translations.');

tsconfig.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
22
"compilerOptions": {},
3-
"extends": "expo/tsconfig.base"
3+
"extends": "./node_modules/expo/tsconfig.base"
44
}

0 commit comments

Comments
 (0)