Skip to content

Commit

Permalink
generate typescript during compilation
Browse files Browse the repository at this point in the history
  • Loading branch information
Nutomic committed Feb 29, 2020
1 parent 5165301 commit d7f49ce
Show file tree
Hide file tree
Showing 20 changed files with 74 additions and 21 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@ docker/lemmy_mine.hjson
docker/dev/env_deploy.sh
build/
.idea/
ui/src/translations
25 changes: 25 additions & 0 deletions ui/generate_translations.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
fs = require('fs');

fs.mkdirSync('src/translations/', { recursive: true });
fs.readdir('translations', (err, files) => {
files.forEach(filename => {
const lang = filename.split('.')[0];
try {
const json = JSON.parse(
fs.readFileSync('translations/' + filename, 'utf8')
);
var data = `export const ${lang} = {\n translation: {`;
for (var key in json) {
if (key in json) {
const value = json[key].replace(/"/g, '\\"');
data = `${data}\n ${key}: "${value}",`;
}
}
data += '\n },\n};';
const target = 'src/translations/' + lang + '.ts';
fs.writeFileSync(target, data);
} catch (err) {
console.error(err);
}
});
});
4 changes: 2 additions & 2 deletions ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"scripts": {
"build": "node fuse prod",
"lint": "tsc --noEmit && eslint --report-unused-disable-directives --ext .js,.ts,.tsx src",
"prebuild": "node generate_translations.js",
"start": "node fuse dev"
},
"keywords": [],
Expand All @@ -25,7 +26,6 @@
"emoji-short-name": "^1.0.0",
"husky": "^4.2.1",
"i18next": "^19.0.3",
"i18next-xhr-backend": "^2.0.0",
"inferno": "^7.0.1",
"inferno-i18next": "nimbusec-oss/inferno-i18next",
"inferno-router": "^7.0.1",
Expand Down Expand Up @@ -55,7 +55,7 @@
"ts-node": "^8.6.2",
"ts-transform-classcat": "^0.0.2",
"ts-transform-inferno": "^4.0.2",
"typescript": "^3.7.5"
"typescript": "^3.8.3"
},
"engines": {
"node": ">=8.9.0"
Expand Down
53 changes: 40 additions & 13 deletions ui/src/i18next.ts
Original file line number Diff line number Diff line change
@@ -1,24 +1,51 @@
import i18next from 'i18next';
import { getLanguage } from './utils';
import XHR from 'i18next-xhr-backend';
import { en } from './translations/en';
import { eo } from './translations/eo';
import { es } from './translations/es';
import { de } from './translations/de';
import { fr } from './translations/fr';
import { sv } from './translations/sv';
import { ru } from './translations/ru';
import { zh } from './translations/zh';
import { nl } from './translations/nl';
import { it } from './translations/it';
import { fi } from './translations/fi';
import { ca } from './translations/ca';
import { fa } from './translations/fa';
import { pt_br } from './translations/pt_br';

// https://github.com/nimbusec-oss/inferno-i18next/blob/master/tests/T.test.js#L66
const resources = {
en,
eo,
es,
de,
zh,
fr,
sv,
ru,
nl,
it,
fi,
ca,
fa,
pt_br,
};

function format(value: any, format: any, lng: any): any {
return format === 'uppercase' ? value.toUpperCase() : value;
}

i18next
.use(XHR)
.init({
debug: true,
//load: 'languageOnly',
i18next.init({
debug: false,
// load: 'languageOnly',

// initImmediate: false,
lng: getLanguage(),
fallbackLng: 'en',
interpolation: { format },
backend: {
loadPath: '/static/assets/translations/{{lng}}.json',
}
// initImmediate: false,
lng: getLanguage(),
fallbackLng: 'en',
resources,
interpolation: { format },
});

export { i18next as i18n, resources };
4 changes: 2 additions & 2 deletions ui/translation_report.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { nl } from './src/translations/nl';
import { it } from './src/translations/it';
import { fi } from './src/translations/fi';
import { ca } from './src/translations/ca';
import { pt_BR } from './src/translations/pt_br';
import { pt_br } from './src/translations/pt_br';
import fs from 'fs';

const files = [
Expand All @@ -24,7 +24,7 @@ const files = [
{ t: fr, n: 'fr' },
{ t: it, n: 'it' },
{ t: nl, n: 'nl' },
{ t: pt_BR, n: 'pt-br' },
{ t: pt_br, n: 'pt-br' },
{ t: ru, n: 'ru' },
{ t: sv, n: 'sv' },
{ t: zh, n: 'zh' },
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
8 changes: 4 additions & 4 deletions ui/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4572,10 +4572,10 @@ typescript@^2.6.2:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.9.2.tgz#1cbf61d05d6b96269244eb6a3bce4bd914e0f00c"
integrity sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==

typescript@^3.7.5:
version "3.7.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.5.tgz#0692e21f65fd4108b9330238aac11dd2e177a1ae"
integrity sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==
typescript@^3.8.3:
version "3.8.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061"
integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==

uc.micro@^1.0.1, uc.micro@^1.0.5:
version "1.0.6"
Expand Down

0 comments on commit d7f49ce

Please sign in to comment.