0

Je suis confronté à un problème étrange. Dans mes rails 3 application je soutiens l'internationalisation avec l'anglais et le français. Ici, dans mon modèle, j'ai écrit quelque chose comme çaRails: i18n, variable est imprimée si la traduction n'est pas là

<%= t "Hi %{person}!", :person => "Simpson" %> 

Quand je mets locale comme tout français fonctionne très bien, car il a obtenu la traduction pour cela, mais quand je mets locale en anglais alors il donne une sortie comme

Hi %{person}! 

dans mon navigateur. Lorsque j'ajoute une traduction à en.yml, cela fonctionne très bien. Je ne comprends pas pourquoi il est nécessaire d'ajouter une traduction dans en.yml pour cela. De plus, je ne veux pas que cela se produise, y a-t-il du travail pour ça?

Merci

Répondre

1

Le premier givent argument à la méthode t devrait être une clé, de sorte que votre vue devrait avoir quelque chose comme ceci:

<%= t :greetings, :person => "Simpson" %> 

Votre config/locales/en.yml ressemblerait à ceci:

en: 
    greetings: Hi %{person} 

et votre config/locales/fr.yml quelque chose comme:

fr: 
    greetings: Bonjour %{person} 
+0

Je ne veux pas de traduction dans en.yml, ce qui devrait être fait dans ce cas. Dans votre solution, cependant, j'ajoute de la traduction. –

+0

Eh bien soit la même réponse que http://stackoverflow.com/questions/12914019/rails-remove-missing-translation-errors/12930993#comment17524467_12930993 s'applique ou vous ne pouvez pas simplement I18n, comme ceci: <% = "Hi # { personne} "%> – tigrish

+0

merci, je vais essayer. –