2010-11-11 6 views
0

Étant donné que j'ai une clé avec cette traduction cléTraiter avec l'argument manquant et I18n

t('my.key', :url => @url) 

et la traduction dans de nombreuses langues:

key: "Click %{url}" 

-je faire le changement suivant:

t('my.key', :link => @link) 

key: "Click %{url}" 

Les clés sont traduites par la communauté, j'en ai quelques unes. Nous maintenons uniquement les paramètres régionaux anglais.

Maintenant ofcourse, mon test aller rouge, parce que si ce point de vue de rendre dans une autre langue que l'anglais sans mettre à jour toutes les autres clés, il retournera:

missing interpolation argument in "Click %{url}" ({:link=>"..."} given) 
(ActionView::TemplateError) 

Quelle est la manière paresseuse-programmeur pour résoudre ce ? Rake tâche pour supprimer les clés? Singe patch I18n à sauver à: en?

Répondre

0

Rien n'a changé dans la section localisable de la chaîne.

Le% {...} n'est jamais traduit, c'est juste un nom de variable.

Il est donc prudent de changer% {url} en% {link} dans toutes les langues (en veillant à ne pas endommager les chaînes en utilisant un éditeur qui perturbe l'encodage).

Il est un peu comme changer les balises HTML:

<p>Click <b>Print</b> to whatever</p> 

changement à:

<p>Click <i>Print</i> to whatever</p> 
+0

nous maintenons que les paramètres régionaux anglais, donc nous éditons jamais d'autres paramètres régionaux en mains, il altérerait la traduction frontend nous utilisons. –