Dynamiczne ustawianie ustawień regionalnych RequireJS i18n
UżywamWtyczka RequireJS i18n załadować tłumaczenia do mojej aplikacji. Walczę z koncepcjąokreślenie runtime preferowanego języka użytkownika.
Wtyczka działa dobrze, jeśli używasznavigator.language
aby określić preferowany język użytkownika, ale w mojej aplikacji język użytkownika jest przechowywany w bazie danych na serwerze. Muszę więc ustawić ustawienia regionalne w czasie wykonywania:
require.config({
config: {
i18n: {
locale: userLocale
}
}
});
Potrzebuję więc sprytnego sposobu ustawieniauserLocale
przed RequireJS załadował moją aplikację. Czy ktoś wie, jaki byłby najlepszy sposób osiągnięcia tego celu? Możliwości obejmują:
userLocale
poza moją aplikacją, w sposób inny niż AMD://run Ajax call to determine user's localization preferencess
var Localization = Localization || getUserLocalization();
//and then...
require.config({
config: {
i18n: {
locale: Localization.userLocale
}
}
});
require(['app']);
To sprawia, że jestem trochę smutny, ponieważ oznacza to, że niektóre z moich aplikacji będą poza wymaganiami, a tym samym niechlujne. Oznacza to również, że wszystkie ustawienia lokalizacji użytkownika (strefa czasowa języka, format daty, format liczbowy) będą przechowywane w globalnej przestrzeni nazw.
2) Posiadanie oddzielnego wywołania żądania w celu pobrania ustawień lokalizacjiNie wiem, jak to działa, ale może:
var Localization = require(['localization']);
require.config({
config: {
i18n: {
locale: Localization.userLocale
}
}
});
require(['app']);
Może to nie zadziała z powodu asynchroniczności? Równieżapp
nie miałby dostępu doLocalization
obiekt, więc nadal musiałby być przechowywany jako zmienna globalna.
Czy ktoś może zobaczyć dobre rozwiązanie tego problemu? Czy ktoś użył wtyczki RequireJS i18n, aby zrobić coś podobnego?