[Tool] Add script to generate i18n resource array
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
"gql:codegen-base": "graphql-codegen --config gql_codegen.ts",
|
"gql:codegen-base": "graphql-codegen --config gql_codegen.ts",
|
||||||
"gql:codegen-formatter": "ts-node -T tools/scripts/codegenFormatter.ts",
|
"gql:codegen-formatter": "ts-node -T tools/scripts/codegenFormatter.ts",
|
||||||
"gql:codegen": "yarn gql:codegen-base & yarn gql:codegen-formatter",
|
"gql:codegen": "yarn gql:codegen-base & yarn gql:codegen-formatter",
|
||||||
|
"i18n:gen-resources": "ts-node -T tools/scripts/generatei18nResources.ts",
|
||||||
"prepare": "husky"
|
"prepare": "husky"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|||||||
28
tools/scripts/generatei18nResources.ts
Normal file
28
tools/scripts/generatei18nResources.ts
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) Contributors to the Suwayomi project
|
||||||
|
*
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import path from 'path';
|
||||||
|
import fs from 'fs';
|
||||||
|
|
||||||
|
const outputFilePath = path.join(__dirname, '../../src/i18n/index.ts');
|
||||||
|
const resourcesDirPath = path.join(__dirname, '../../public/locales');
|
||||||
|
|
||||||
|
const resourceFileNames = fs.readdirSync(resourcesDirPath);
|
||||||
|
|
||||||
|
const resourceNames = resourceFileNames.map((resourceFileName) =>
|
||||||
|
path.basename(resourceFileName, path.extname(resourceFileName)),
|
||||||
|
);
|
||||||
|
|
||||||
|
const outputFileContent = fs.readFileSync(outputFilePath, 'utf-8');
|
||||||
|
|
||||||
|
const updatedFileContent = outputFileContent.replace(
|
||||||
|
/(export const i18nResources = \[)[\s\S]*?(])/g,
|
||||||
|
`$1'${resourceNames.join("', '")}'$2`,
|
||||||
|
);
|
||||||
|
|
||||||
|
fs.writeFileSync(outputFilePath, updatedFileContent);
|
||||||
Reference in New Issue
Block a user