Ce que vous recherchez est $locale.
Il y a en fait un exemple à mi-chemin sur la page d'accueil d'angularjs également.
Un extrait de leur exemple:
function BeerCounter($scope, $locale) {
$scope.beers = [0, 1, 2, 3, 4, 5, 6];
if ($locale.id == 'en-us') {
$scope.beerForms = {
0: 'pas de bière',
one: '{} bière',
other: '{} bières'
};
} else {
$scope.beerForms = {
0: 'žiadne pivo',
one: '{} pivo',
few: '{} pivá',
other: '{} pív'
};
}
}
Je ne suis pas sûr que ce soit une "norme" en tant que telle... mais c'est un début. Si vous aviez beaucoup de localisation à faire, je pense que je créerais simplement un service à injecter dans mes contrôleurs... quelque chose comme ce pseudo-code:
app.service('myLocalization', ['$locale', function($locale) {
var res = {
'help' : {
'en-us': 'help',
'es-mx': 'ayudame'
},
'beer' : {
'en-us': 'bière',
'es-mx': 'cerveza'
}
}
return {
getString: function(key) {
return res[key][$locale.id];
}
}
});
7 votes
Ouvrons à nouveau ce truc!
0 votes
Tel qu'il est actuellement écrit, c'est fondamentalement une question de oui ou non. D'une grande valeur pour les programmeurs - même si la réponse est "non".
0 votes
"attranslate" est un outil moderne qui résout le problème: github.com/fkirc/attranslate Bien que "attranslate" soit destiné aux traductions semi-automatisées, il peut également être utilisé simplement dans le but de synchroniser les fichiers JSON