mirror of
https://github.com/DeviceFarmer/stf.git
synced 2026-04-19 05:53:27 +02:00
46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
var supportedLanguages = require('./../../../common/lang/langs.json')
|
|
|
|
module.exports = function LanguageServiceFactory(
|
|
SettingsService
|
|
, gettextCatalog
|
|
) {
|
|
var LanguageService = {}
|
|
|
|
function detectLanguage() {
|
|
return (navigator.language || navigator.userLanguage || 'en-US')
|
|
.substring(0, 2)
|
|
}
|
|
|
|
function isSupported(lang) {
|
|
return !!supportedLanguages[lang]
|
|
}
|
|
|
|
function onlySupported(lang, defaultValue) {
|
|
return isSupported(lang) ? lang : defaultValue
|
|
}
|
|
|
|
LanguageService.settingKey = 'selectedLanguage'
|
|
LanguageService.supportedLanguages = supportedLanguages
|
|
LanguageService.defaultLanguage = 'en'
|
|
LanguageService.detectedLanguage =
|
|
onlySupported(detectLanguage(), LanguageService.defaultLanguage)
|
|
|
|
SettingsService.sync(
|
|
LanguageService
|
|
, {
|
|
target: LanguageService.settingKey
|
|
, source: LanguageService.settingKey
|
|
, defaultValue: LanguageService.detectedLanguage
|
|
}
|
|
, updateLanguage
|
|
)
|
|
|
|
function updateLanguage() {
|
|
gettextCatalog.currentLanguage = LanguageService.selectedLanguage
|
|
}
|
|
|
|
LanguageService.updateLanguage = updateLanguage
|
|
|
|
return LanguageService
|
|
}
|