Commit a71a97c843d6f444c5fc1773bf5544766173fa3d
1 parent
c0bf3e72
UI: Improve client language detection.
Showing
1 changed file
with
10 additions
and
9 deletions
@@ -47,8 +47,6 @@ export default function AppConfig($provide, | @@ -47,8 +47,6 @@ export default function AppConfig($provide, | ||
47 | storeProvider.setCaching(false); | 47 | storeProvider.setCaching(false); |
48 | 48 | ||
49 | $translateProvider.useSanitizeValueStrategy(null); | 49 | $translateProvider.useSanitizeValueStrategy(null); |
50 | - $translateProvider.preferredLanguage('en_US'); | ||
51 | - $translateProvider.useLocalStorage(); | ||
52 | $translateProvider.useMissingTranslationHandler('tbMissingTranslationHandler'); | 50 | $translateProvider.useMissingTranslationHandler('tbMissingTranslationHandler'); |
53 | $translateProvider.addInterpolation('$translateMessageFormatInterpolation'); | 51 | $translateProvider.addInterpolation('$translateMessageFormatInterpolation'); |
54 | 52 | ||
@@ -57,8 +55,12 @@ export default function AppConfig($provide, | @@ -57,8 +55,12 @@ export default function AppConfig($provide, | ||
57 | addLocaleRussian(locales); | 55 | addLocaleRussian(locales); |
58 | addLocaleSpanish(locales); | 56 | addLocaleSpanish(locales); |
59 | 57 | ||
60 | - var $window = angular.injector(['ng']).get('$window'); | ||
61 | - var lang = $window.navigator.language || $window.navigator.userLanguage; | 58 | + for (var langKey in locales) { |
59 | + var translationTable = locales[langKey]; | ||
60 | + $translateProvider.translations(langKey, translationTable); | ||
61 | + } | ||
62 | + | ||
63 | + var lang = $translateProvider.resolveClientLocale(); | ||
62 | if (lang) { | 64 | if (lang) { |
63 | lang = lang.toLowerCase(); | 65 | lang = lang.toLowerCase(); |
64 | if (lang.startsWith('ko')) { | 66 | if (lang.startsWith('ko')) { |
@@ -69,12 +71,11 @@ export default function AppConfig($provide, | @@ -69,12 +71,11 @@ export default function AppConfig($provide, | ||
69 | $translateProvider.preferredLanguage('es_ES'); | 71 | $translateProvider.preferredLanguage('es_ES'); |
70 | } else if (lang.startsWith('ru')) { | 72 | } else if (lang.startsWith('ru')) { |
71 | $translateProvider.preferredLanguage('ru_RU'); | 73 | $translateProvider.preferredLanguage('ru_RU'); |
74 | + } else { | ||
75 | + $translateProvider.preferredLanguage('en_US'); | ||
72 | } | 76 | } |
73 | - } | ||
74 | - | ||
75 | - for (var langKey in locales) { | ||
76 | - var translationTable = locales[langKey]; | ||
77 | - $translateProvider.translations(langKey, translationTable); | 77 | + } else { |
78 | + $translateProvider.preferredLanguage('en_US'); | ||
78 | } | 79 | } |
79 | 80 | ||
80 | $httpProvider.interceptors.push('globalInterceptor'); | 81 | $httpProvider.interceptors.push('globalInterceptor'); |