l10n.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import { Engine } from '../common/engine.js';
  2. import { Variables } from '../common/variables.js';
  3. import { Grammar } from '../rule_engine/grammar.js';
  4. import { af } from './locales/locale_af.js';
  5. import { ca } from './locales/locale_ca.js';
  6. import { da } from './locales/locale_da.js';
  7. import { de } from './locales/locale_de.js';
  8. import { en } from './locales/locale_en.js';
  9. import { es } from './locales/locale_es.js';
  10. import { euro } from './locales/locale_euro.js';
  11. import { fr } from './locales/locale_fr.js';
  12. import { hi } from './locales/locale_hi.js';
  13. import { ko } from './locales/locale_ko.js';
  14. import { it } from './locales/locale_it.js';
  15. import { nb } from './locales/locale_nb.js';
  16. import { nemeth } from './locales/locale_nemeth.js';
  17. import { nn } from './locales/locale_nn.js';
  18. import { sv } from './locales/locale_sv.js';
  19. import { LOCALE } from './locale.js';
  20. export const locales = {
  21. af: af,
  22. ca: ca,
  23. da: da,
  24. de: de,
  25. en: en,
  26. es: es,
  27. euro: euro,
  28. fr: fr,
  29. hi: hi,
  30. it: it,
  31. ko: ko,
  32. nb: nb,
  33. nn: nn,
  34. sv: sv,
  35. nemeth: nemeth
  36. };
  37. export function setLocale() {
  38. const msgs = getLocale();
  39. setSubiso(msgs);
  40. if (msgs) {
  41. for (const key of Object.getOwnPropertyNames(msgs)) {
  42. LOCALE[key] = msgs[key];
  43. }
  44. for (const [key, func] of Object.entries(msgs.CORRECTIONS)) {
  45. Grammar.getInstance().setCorrection(key, func);
  46. }
  47. }
  48. }
  49. function setSubiso(msg) {
  50. const subiso = Engine.getInstance().subiso;
  51. if (msg.SUBISO.all.indexOf(subiso) === -1) {
  52. Engine.getInstance().subiso = msg.SUBISO.default;
  53. }
  54. msg.SUBISO.current = Engine.getInstance().subiso;
  55. }
  56. function getLocale() {
  57. const locale = Variables.ensureLocale(Engine.getInstance().locale, Engine.getInstance().defaultLocale);
  58. Engine.getInstance().locale = locale;
  59. return locales[locale]();
  60. }
  61. export function completeLocale(json) {
  62. const locale = locales[json.locale];
  63. if (!locale) {
  64. console.error('Locale ' + json.locale + ' does not exist!');
  65. return;
  66. }
  67. const kind = json.kind.toUpperCase();
  68. const messages = json.messages;
  69. if (!messages)
  70. return;
  71. const loc = locale();
  72. for (const [key, value] of Object.entries(messages)) {
  73. loc[kind][key] = value;
  74. }
  75. }