Votre API REST sera plus facile à utiliser par d'autres si vous fournissez des ID de chaîne au lieu de chaînes traduites. L'utilisation d'une API qui renvoie "E_NOT_AUTHORIZED"
est plus simple que si elle renvoie du langage humain, et même une chaîne localisée.
En outre, vous souhaiterez peut-être modifier les chaînes localisées dans les futures versions, ce qui constituerait un changement d'API de rupture. Avec l'approche de l'ID de chaîne, vous revenez toujours "E_NOT_AUTHORIZED"
, en gardant votre API compatible.
Si vous utilisez un framework comme Angular.js , il est facile d'implémenter le changement de langue à chaud si vous utilisez l'approche de l'ID de chaîne. Vous chargez simplement une autre table de modification et toutes les chaînes changent automatiquement leur langue car vous utilisez simplement une logique de filtre dans vos modèles, comme {{errorStringID | loc}}
.
Autre considération: pour réduire la charge de votre serveur, gardez votre back-end aussi simple que possible. Vous pourrez servir plus de clients avec le même nombre de serveurs. Livrez vos stringtables via un CDN et effectuez la localisation dans le front-end.
C'est une question de goût personnel, mais si vous faites des choses côté client, vous économiserez sur la charge du serveur (en supposant des dictionnaires statiques ou mis en cache), et pourrez utiliser des outils indépendants de la langue pour tester le service.
la source