aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package.json3
-rw-r--r--src/i18n/apply-branding.ts66
2 files changed, 1 insertions, 68 deletions
diff --git a/package.json b/package.json
index 25632884d..7248c766e 100644
--- a/package.json
+++ b/package.json
@@ -33,9 +33,8 @@
33 "build": "electron-builder", 33 "build": "electron-builder",
34 "contributors": "all-contributors", 34 "contributors": "all-contributors",
35 "reformat-files": "./node_modules/.bin/prettier --ignore-path .eslintignore --write --require-pragma \"**/*.{js,jsx,scss}\"", 35 "reformat-files": "./node_modules/.bin/prettier --ignore-path .eslintignore --write --require-pragma \"**/*.{js,jsx,scss}\"",
36 "apply-branding": "ts-node ./src/i18n/apply-branding.ts",
37 "update-submodules": "git submodule update --init --recursive --remote --rebase --force", 36 "update-submodules": "git submodule update --init --recursive --remote --rebase --force",
38 "prepare-code": "npm run lint:fix && npm run reformat-files && npm run manage-translations && npm run apply-branding", 37 "prepare-code": "npm run lint:fix && npm run reformat-files && npm run manage-translations",
39 "link-readme": "ts-node scripts/link-readme.ts", 38 "link-readme": "ts-node scripts/link-readme.ts",
40 "minify-images": "./scripts/minify-images.sh", 39 "minify-images": "./scripts/minify-images.sh",
41 "start:server": "ts-node src/internal-server/test.ts", 40 "start:server": "ts-node src/internal-server/test.ts",
diff --git a/src/i18n/apply-branding.ts b/src/i18n/apply-branding.ts
deleted file mode 100644
index 7943c099d..000000000
--- a/src/i18n/apply-branding.ts
+++ /dev/null
@@ -1,66 +0,0 @@
1/**
2 * Apply Ferdi branding to i18n translations
3 */
4import { readdirSync, readJson, writeJson } from 'fs-extra';
5import { join } from 'path';
6
7console.log('Applying Ferdi branding to translations...');
8
9// Keys to ignore when applying branding
10const ignore = new Set([
11 'login.customServerSuggestion',
12 'login.customServerQuestion',
13 'settings.app.todoServerInfo',
14 'settings.app.serverMoneyInfo',
15 'settings.team.teamsUnavailableInfo',
16 'settings.team.contentHeadline',
17 'settings.team.intro',
18 'settings.team.copy',
19 'settings.team.manageAction',
20 'settings.app.serverMoneyInfo',
21]);
22
23// Files to ignore when applying branding
24const ignoreFiles = new Set(['.DS_Store', '.', '..']);
25
26// What to replace
27const replace = {
28 'meetfranz.com': 'getferdi.com',
29 'meetferdi.com': 'getferdi.com', // If Franz already got replaced with Ferdi
30 franz: 'Ferdi',
31 '!!!': '',
32};
33
34const locales = join(__dirname, 'locales');
35const files = readdirSync(locales);
36
37const replaceFind = Object.keys(replace);
38const replaceReplaceWith = Object.values(replace);
39
40const replaceStr = (str: string, find: any[], replaceWith: string[]) => {
41 for (const [i, element] of find.entries()) {
42 str = str.replace(new RegExp(element, 'gi'), replaceWith[i]);
43 }
44 return str;
45};
46
47// eslint-disable-next-line unicorn/no-array-for-each
48files.forEach(async file => {
49 if (ignoreFiles.has(file)) return;
50
51 // Read locale data
52 const filePath = join(locales, file);
53 const locale = await readJson(filePath);
54
55 // Replace branding
56 for (const key in locale) {
57 if (!ignore.has(key)) {
58 locale[key] = replaceStr(locale[key], replaceFind, replaceReplaceWith);
59 }
60 }
61
62 await writeJson(filePath, locale, {
63 spaces: 2,
64 EOL: '\n',
65 });
66});