angularjs - navigationend - Soporte js angular para localización
router events subscribe angular 4 (6)
Creé un módulo específicamente para fines de localización: https://github.com/4vanger/angular-l10n Admite la localización de mensajes, la sustitución de parámetros, el cambio de configuración regional en el vuelo y proporciona varias formas útiles de usarlo: filtros, directivas, etc. .
Traté de encontrar documentación en AngularJS para soportar múltiples idiomas sin éxito. ¿Es compatible la localización?
Eche un vistazo a angular-translate: https://github.com/angular-translate/angular-translate
para todos los aficionados al bricolaje:
Puede encontrar archivos localizados para angular: here
Estos archivos lo ayudarán con los filtros angulares incorporados: date , currency y number . Increíble ... hasta ahora.
Ahora quiere usar sus propios textos, que todo lo que necesita es el poder de la inyección de dependencia angular.js. Cree un nuevo archivo como: "myTexts_en_us.js" y use $ provide.value como este:
$provide.value("myTexts", {firstText : "This is my localized text"});
Para detalles:
http://jsfiddle.net/4tRBY/24/
Para uso en el mundo real, debe agregar un filtro : http://jsfiddle.net/4tRBY/41/
Consejos:
- Asegúrese de insertar su nuevo archivo de localización en su html a mano, JS o Servidor. (¡El servidor es la mejor opción aquí!)
- si incluye uno de los here , no necesita configurarlo en su módulo de aplicación. (tendrá $ locale automáticamente - vea el violín)
- agregue una clave de identificación a su $ provide-value, y establezca el valor en un código de idioma que esté utilizando en su archivo; esto será útil para las pruebas.
Lo que estás buscando es $locale .
También hay un ejemplo a mitad de camino de la página de inicio de angularjs .
Un fragmento de su ejemplo:
function BeerCounter($scope, $locale) {
$scope.beers = [0, 1, 2, 3, 4, 5, 6];
if ($locale.id == ''en-us'') {
$scope.beerForms = {
0: ''no beers'',
one: ''{} beer'',
other: ''{} beers''
};
} else {
$scope.beerForms = {
0: ''žiadne pivo'',
one: ''{} pivo'',
few: ''{} pivá'',
other: ''{} pív''
};
}
}
No estoy seguro si es un "estándar" por decir ... pero es un comienzo. Si tuviera que hacer muchas localizaciones, creo que simplemente crearía un servicio para inyectar en mis controladores ... algo como este código psuedo:
app.service(''myLocalization'', [''$locale'', function($locale) {
var res = {
''help'' : {
''en-us'': ''help'',
''es-mx'': ''ayudame''
},
''beer'' : {
''en-us'': ''beer'',
''es-mx'': ''cerveza''
}
}
return {
getString: function(key) {
return res[key][$locale.id];
}
}
});
Si busca soporte para i18n, puede consultar el siguiente proyecto, que cuenta con la capacidad multilingüe completa y también es fácil de implementar. Echa un vistazo al proyecto github
Solo para completar la información, comenzando en algún lugar dentro de la secuencia de AngularJS 1.4, habrá otra implementación de i18n desde el núcleo. Por favor, eche un vistazo a https://github.com/angular/i18n
también puedes ver esto:
https://github.com/angular-ui/ui-utils/pull/173
el rendimiento es mejor que cualquiera de las otras bibliotecas i18n disponibles para angular en este momento.