aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/app/i18n.ts
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-11-11 23:43:19 +0800
committercrupest <crupest@outlook.com>2020-11-11 23:43:19 +0800
commit5c85b13e03399a8b639390d88f72fa090ba4d17b (patch)
treeb4d0a0a53c4f6c062535d90044dcfbf5cb4d4a77 /FrontEnd/src/app/i18n.ts
parentfd87842b86b440f62bb317d36d8d27566e9ee8cd (diff)
downloadtimeline-5c85b13e03399a8b639390d88f72fa090ba4d17b.tar.gz
timeline-5c85b13e03399a8b639390d88f72fa090ba4d17b.tar.bz2
timeline-5c85b13e03399a8b639390d88f72fa090ba4d17b.zip
feat: Add admin i18n.
Diffstat (limited to 'FrontEnd/src/app/i18n.ts')
-rw-r--r--FrontEnd/src/app/i18n.ts41
1 files changed, 29 insertions, 12 deletions
diff --git a/FrontEnd/src/app/i18n.ts b/FrontEnd/src/app/i18n.ts
index c39888ed..5b8e9d41 100644
--- a/FrontEnd/src/app/i18n.ts
+++ b/FrontEnd/src/app/i18n.ts
@@ -13,18 +13,30 @@ const backend: BackendModule = {
callback(null, result);
}
- if (namespace !== "translation") {
- error("Namespace must be 'translation'.");
- }
+ const promise = (() => {
+ if (namespace === "translation") {
+ if (language === "en") {
+ return import("./locales/en/translation.json");
+ } else if (language === "zh") {
+ return import("./locales/zh/translation.json");
+ } else {
+ error(`Language ${language} is not supported.`);
+ }
+ } else if (namespace === "admin") {
+ if (language === "en") {
+ return import("./locales/en/admin.json");
+ } else if (language === "zh") {
+ return import("./locales/zh/admin.json");
+ } else {
+ error(`Language ${language} is not supported.`);
+ }
+ } else {
+ error(`Namespace ${namespace} is not supported.`);
+ }
+ })();
- if (language === "en") {
- const res = (await import("./locales/en/translation.json")).default;
- success(res);
- } else if (language === "zh") {
- const res = (await import("./locales/zh/translation.json")).default;
- success(res);
- } else {
- error(`Language ${language} is not supported.`);
+ if (promise) {
+ success((await promise).default);
}
},
init() {}, // eslint-disable-line @typescript-eslint/no-empty-function
@@ -61,7 +73,12 @@ export const i18nPromise = i18n
if (module.hot) {
module.hot.accept(
- ["./locales/en/translation.json", "./locales/zh/translation.json"],
+ [
+ "./locales/en/translation.json",
+ "./locales/zh/translation.json",
+ "./locales/en/admin.json",
+ "./locales/zh/admin.json",
+ ],
() => {
void i18n.reloadResources();
}