mirror of
https://github.com/DeviceFarmer/stf.git
synced 2026-04-18 16:13:24 +02:00
Added Auto-route language support for documentation.
This commit is contained in:
7
res/app/components/stf/language/index.js
Normal file
7
res/app/components/stf/language/index.js
Normal file
@@ -0,0 +1,7 @@
|
||||
module.exports = angular.module('stf-language', [
|
||||
require('stf/settings').name,
|
||||
require('gettext').name,
|
||||
require('stf/app-state').name
|
||||
])
|
||||
.factory('LanguageService', require('./language-service'))
|
||||
.provider('language', require('./language-provider'))
|
||||
65
res/app/components/stf/language/language-provider.js
Normal file
65
res/app/components/stf/language/language-provider.js
Normal file
@@ -0,0 +1,65 @@
|
||||
//var supportedLanguages = require('./../../../../common/lang/langs.json')
|
||||
|
||||
module.exports = function LanguageProvider(AppStateProvider) {
|
||||
var provider = {
|
||||
selectedLanguage: 'en'
|
||||
}
|
||||
|
||||
var a = AppStateProvider.$get()
|
||||
if (a && a.user && a.user.settings && a.user.settings &&
|
||||
a.user.settings.selectedLanguage) {
|
||||
provider.selectedLanguage = a.user.settings.selectedLanguage
|
||||
}
|
||||
|
||||
return {
|
||||
$get: function () {
|
||||
return provider
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//module.exports = function LanguageProvider() {
|
||||
// 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)
|
||||
//
|
||||
// return {
|
||||
// set: function (constants) {
|
||||
// angular.extend(LanguageService, constants)
|
||||
// },
|
||||
// $get: function (SettingsService, gettextCatalog) {
|
||||
// SettingsService.sync(
|
||||
// LanguageService, {
|
||||
// target: LanguageService.settingKey,
|
||||
// source: LanguageService.settingKey,
|
||||
// defaultValue: LanguageService.detectedLanguage
|
||||
// }, updateLanguage
|
||||
// )
|
||||
//
|
||||
// function updateLanguage() {
|
||||
// gettextCatalog.setCurrentLanguage(LanguageService.selectedLanguage)
|
||||
// }
|
||||
//
|
||||
// LanguageService.updateLanguage = updateLanguage
|
||||
//
|
||||
// return LanguageService
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
47
res/app/components/stf/language/language-service.js
Normal file
47
res/app/components/stf/language/language-service.js
Normal file
@@ -0,0 +1,47 @@
|
||||
var supportedLanguages = require('./../../../../common/lang/langs.json')
|
||||
|
||||
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 || '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.setCurrentLanguage(LanguageService.selectedLanguage)
|
||||
}
|
||||
|
||||
LanguageService.updateLanguage = updateLanguage
|
||||
|
||||
return LanguageService
|
||||
}
|
||||
Reference in New Issue
Block a user