Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

languageDetector.native.ts 1013B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { NativeModules } from 'react-native';
  2. import LANGUAGES_RESOURCES from '../../../../lang/languages.json';
  3. const LANGUAGES = Object.keys(LANGUAGES_RESOURCES);
  4. /**
  5. * The singleton language detector for React Native which uses the system-wide
  6. * locale.
  7. */
  8. export default {
  9. /**
  10. * Does not support caching.
  11. *
  12. * @returns {void}
  13. */
  14. cacheUserLanguage: Function.prototype,
  15. detect() {
  16. const { LocaleDetector } = NativeModules;
  17. const parts = LocaleDetector.locale.replace(/_/, '-').split('-');
  18. const [ lang, regionOrScript, region ] = parts;
  19. let locale;
  20. if (parts.length >= 3) {
  21. locale = `${lang}${region}`;
  22. } else if (parts.length === 2) {
  23. locale = `${lang}${regionOrScript}`;
  24. } else {
  25. locale = lang;
  26. }
  27. if (LANGUAGES.includes(locale)) {
  28. return locale;
  29. }
  30. return lang;
  31. },
  32. init: Function.prototype,
  33. type: 'languageDetector'
  34. };