-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.js
More file actions
123 lines (103 loc) · 2.9 KB
/
Copy pathmain.js
File metadata and controls
123 lines (103 loc) · 2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
(function(root){
require(["config"], function(config){
requirejs.config(config);
require(['jquery', 'cookies', "App", "ember", "i18n","store", "controllers/LoginController", "app/StateManager",
// Aqui se cargaran todos los ficheros de idioma, aparte de agregarlos al config.js
"locEs", "locEn"],
function($, cookies , App, Ember, i18n, store , LoginController, StateManager){
$.cookie.json = true
var app_name = config.app_name || "App";
var loc = null;
var options = loadOptions();
console.log("Cargando " + options.locSelected);
loc = loadLoc(options.locSelected);
loadState(options);
// To-Do quitar el store de la aplicacion, y refactorizar allá donde se use
App.store = store;
// To-Do Refactorizar sitios donde estaba STORE
App.loginController = LoginController;
App.stateManager = StateManager.create({
initialState : 'notLoggedIn'
});
Em.I18n.translations = loc;
Ember.LOG_VERSION = false;
root[app_name] = App = Ember.Application.create(App);
});
});
})(this);
/*
Funcion que carga el idioma que considere la aplicacion correcto ( basandose en factores como el lenguaje del navegador y los idiomas disponibles ), y escribe una cookie en el navegador
con la informacion sobre el lenguaje seleccionado.
*/
function loadLoc(locSelected){
var language;
if(locSelected != null){
language = locSelected;
}else{
language = guessLanguage();
}
var lang;
switch(language){
case 'es':
loc = require('locEs');
break;
case 'es-ES':
loc = require('locEs');
break;
case 'en':
loc = require('locEn');
break;
case 'en-UK':
loc = require('locEn');
break;
case 'en-US':
loc = require('locEn');
break;
}
return loc
}
/*
Funcion interna de loadLoc que elige el lenguaje que considera correcto
*/
function guessLanguage(){
var selectedLang;
var supportedLangs = ['en-US', 'en-UK', 'en', 'es', 'es-ES'];
var userLang = navigator.language;
if(supportedLangs.contains(userLang)){
selectedLang = userLang;
}else{
selectedLang = "en";
}
console.debug("lenguaje elegido "+selectedLang);
return selectedLang
}
/*
Funcion que carga las opciones almacenadas en la cookie, devuelve un objeto con notacion JSON con las opciones
*/
function loadOptions(){
var options = $.cookie('options');
if(options){
console.debug("Se ha cargado la cookie de opciones");
}else{
// En caso de que no exista la cookie, creamos el objeto options con las opciones por defecto
options = {
isLogged : false,
username : null,
colorSelected : 'red',
loc : null
}
// Y guardamos la cookie con las opciones por defecto
$.cookie('options', options)
}
return options
}
/*
Funcion que recupera el estado basandose en las opciones
*/
function loadState(options){
if(options.isLogged){
console.debug("Cambiando a estado: isLogged")
}else{
console.debug("Cambiando a estado ")
}
}