Files
stf-DeviceFarmer/res/app/components/stf/language/language-service.js
Gunther Brunner 1eb6af0119 Replaced old jade with new pug.
Using temporarily npm-shrinkwrap since `template-html-loader` uses an old `consolidate.js` version which doesn't support `pug`.
Follow here: https://github.com/jtangelder/template-html-loader/issues/8
2016-08-05 18:24:30 +09:00

50 lines
1.4 KiB
JavaScript

var supportedLanguages = require('./../../../../common/lang/langs.json')
var _ = require('lodash')
module.exports =
function LanguageServiceFactory(SettingsService, gettextCatalog) {
// TODO: make this LanguageProvider so it can be used on config
var LanguageService = {}
function detectLanguage() {
return navigator.language || navigator.userLanguage
}
function browserToSupportedLang(lang) {
//supportedLanguages.
//return lang.replace(/([A-Za-z]{2})(-|_)?([A-Za-z]{0,4})/gm, '$1')
}
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.setCurrentLanguage(LanguageService.selectedLanguage)
}
LanguageService.updateLanguage = updateLanguage
return LanguageService
}