您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

Translation.js 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /* global interfaceConfig */
  2. import i18n from 'i18next';
  3. import XHR from 'i18next-xhr-backend';
  4. import { DEFAULT_LANG, languages } from './constants';
  5. import languagesR from '../../../../lang/languages.json';
  6. import mainR from '../../../../lang/main.json';
  7. import LanguageDetector from './LanguageDetector';
  8. /**
  9. * Default options to initialize i18next.
  10. *
  11. * @enum {string}
  12. */
  13. const defaultOptions = {
  14. compatibilityAPI: 'v1',
  15. compatibilityJSON: 'v1',
  16. fallbackLng: DEFAULT_LANG,
  17. load: 'unspecific',
  18. resGetPath: 'lang/__ns__-__lng__.json',
  19. ns: {
  20. namespaces: [ 'main', 'languages' ],
  21. defaultNs: 'main'
  22. },
  23. lngWhitelist: languages.getLanguages(),
  24. fallbackOnNull: true,
  25. fallbackOnEmpty: true,
  26. useDataAttrOptions: true,
  27. app: typeof interfaceConfig === 'undefined'
  28. ? 'Jitsi Meet' : interfaceConfig.APP_NAME
  29. };
  30. i18n.use(XHR)
  31. .use(LanguageDetector)
  32. .use({
  33. type: 'postProcessor',
  34. name: 'resolveAppName',
  35. process: (res, key) => i18n.t(key, { app: defaultOptions.app })
  36. })
  37. .init(defaultOptions);
  38. // adds default language which is preloaded from code
  39. i18n.addResourceBundle(DEFAULT_LANG, 'main', mainR, true, true);
  40. i18n.addResourceBundle(DEFAULT_LANG, 'languages', languagesR, true, true);
  41. export default i18n;