1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-18 20:59:43 +02:00
documize/gui/app/services/i18n.js

89 lines
2.5 KiB
JavaScript
Raw Normal View History

2022-03-01 16:22:53 -05:00
// Copyright 2022 Documize Inc. <legal@documize.com>. All rights reserved.
//
// This software (Documize Community Edition) is licensed under
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
//
// https://www.documize.com
import Service, { inject as service } from '@ember/service';
import $ from 'jquery';
export default Service.extend({
2024-12-31 13:09:30 -05:00
langs: { enUS: [], deDE: [] , zhCN: [], ptBR: [], frFR: [], jaJP: [], itIT: [], esAR: [] },
2022-03-01 16:22:53 -05:00
locales: [],
session: service(),
init() {
this._super(...arguments);
$.getJSON("/i18n/en-US.json", (data) => {
this.langs.enUS = data;
});
2022-04-08 11:59:08 -04:00
$.getJSON("/i18n/de-DE.json", (data) => {
this.langs.deDE = data;
});
2022-07-09 08:50:35 +08:00
$.getJSON("/i18n/zh-CN.json", (data) => {
this.langs.zhCN = data;
});
2022-07-12 22:14:26 -03:00
$.getJSON("/i18n/pt-BR.json", (data) => {
this.langs.ptBR = data;
});
2023-02-06 11:45:47 -05:00
$.getJSON("/i18n/fr-FR.json", (data) => {
this.langs.frFR = data;
});
2023-02-11 12:43:32 +09:00
$.getJSON("/i18n/ja-JP.json", (data) => {
this.langs.jaJP = data;
});
$.getJSON("/i18n/it-IT.json", (data) => {
this.langs.itIT = data;
});
2024-12-31 13:09:30 -05:00
$.getJSON("/i18n/es-AR.json", (data) => {
this.langs.esAR = data;
});
2022-03-01 16:22:53 -05:00
},
localize(key, ...args) {
let str = "";
2022-03-01 16:22:53 -05:00
switch(this.session.locale) {
case "en-US":
str = this.langs.enUS[key];
break;
2022-04-08 11:59:08 -04:00
case "de-DE":
str = this.langs.deDE[key];
break;
2022-07-09 08:50:35 +08:00
case "zh-CN":
str = this.langs.zhCN[key];
break;
2022-07-12 22:14:26 -03:00
case "pt-BR":
str = this.langs.ptBR[key];
break;
2023-02-06 11:45:47 -05:00
case "fr-FR":
str = this.langs.frFR[key];
break;
2023-02-11 12:51:59 +09:00
case "ja-JP":
str = this.langs.jaJP[key];
break;
case "it-IT":
str = this.langs.itIT[key];
break;
2024-12-31 13:09:30 -05:00
case "es-AR":
str = this.langs.esAR[key];
break;
}
2022-03-02 19:55:52 -05:00
if (_.isUndefined(str)) {
// eslint-disable-next-line no-console
2022-03-02 19:55:52 -05:00
console.log(">>>>>>>>>>>> i18n missed key", key);
return `!${key}!`;
}
2022-03-02 19:55:52 -05:00
if (args) {
for (let i = 0; i < args.length; i++) {
str = str.replace(`{${i+1}}`, args[i]);
}
}
return str;
2022-03-01 16:22:53 -05:00
},
});