J'ai trouvé que la meilleure stratégie consiste à reproduire un peu la structure du fichier de sorte que, compte tenu de toute traduction, je peux immédiatement trouver l'endroit où il a été appelé à partir. Cela me donne une sorte de contexte pour faire la traduction.
La majorité de la demande de traductions sont trouvés dans les points de vue, donc, mon plus haut niveau de l'espace de noms est habituellement views
.
- Je créer des sous espaces de noms pour le contrôleur nom et le nom de l'action ou partielle être utilisés ex :
views.users.index.title
views.articles._sidebar.header
Ces deux exemples devraient à l'évidence qu'une partie de mon application, nous sommes la traduction et le fichier à regarder dans pour trouver.
Vous mentionnez la navigation et les boutons, s'ils sont génériques, alors qu'ils appartiennent à l' views.application
espace de noms que leur vue homologues :
-
views.application._main_nav.links.about_us
- un lien dans notre application principale de navigation partielle
views.application.buttons.save
-
views.application.buttons.create
- J'ai un tas de ces boutons prêt à être utilisé en cas de besoin
Les messages Flash sont générés à partir du contrôleur, de sorte que leur haut niveau de l'espace de noms est... controllers
! :)
Nous appliquons la même logique que nous faisons de vues :
controllers.users.create.flash.success|alert|notice
De nouveau, si vous vouliez génériques flash des messages comme "Opération réussie", vous devez écrire quelque chose comme ceci :
controllers.application.create.flash.notice
Enfin, les touches peuvent être ce qui est valable YAML, mais s'il vous plaît tenir à l'utilisation de périodes d' .
des séparateurs et des traits de soulignement _
entre les mots comme une question de convention.
La seule chose qui reste à trier maintenant, est en train de rails pour les traductions, dans son propre espace de noms pour nettoyer notre haut niveau :)