Dans les rails Documents, il semble y avoir des emplacements différents par défaut pour les chaînes I18N, selon que si la recherche I18N a été initiée à partir d'une vue, modèle / validation, contrôleur, assistant, ..., s'il s'agit d'une étiquette, etc. . p>
Comment puis-je voir où les rails essaient de rechercher des choses par défaut, par défaut. Quand je viens d'utiliser t ('. quelque chose')? P>
5 Réponses :
Vous pouvez corriger le sing-sinon le backend I18N en mode de développement pour imprimer les touches I18N qui sont levées dans le backend. P>
vérifier ici: p>
http://www.unixgods.org/rails/where_is_rails_trying_to_lookup_l10n_strings.html p>
Travaille pour moi. Utilisation de la rubymine, vous pouvez ouvrir la gemme et insérer ces positions dans le code et exécuter le serveur dans la RM. nettoyer. Néanmoins, je préférerais un config.i18n.lookup_debug = true code>
Désolé, c'était un souhait. Ce n'est pas là Afaik. Avez-vous une référence à la déclaration de Sven Fuchs?
J'ai eu une conversation twitter avec lui - recherchez "@svenfuchs config.i18n.lookup_debug" et cliquez sur "Développer"
Malheureusement, config.i18n.lookup_debug code> n'existe pas.
Le lien semble être 404 maintenant.
Quelqu'un peut-il partager les informations qui se trouvaient dans le lien?
Ne fonctionne pas dans les rails 6
@Perejoanmartorell Vous devez rechercher le code source du dernier code L10N et mettre à jour le patch de singe en conséquence ...
L'autonomique (Cliquez sur le lien "Source" ci-dessous sur la description des méthodes pour voir ce qui se passe à l'intérieur) P>
http://api.rubyonRails.org/classes/ Actionview / aides / traductionHelper.html # méthode - il p>
http://api.rubyonRails.org/classes/ ActiveModel / traduction.html # méthode-i-i18n_scope p>
abstractController strong> p>
http://api.rubyonrails.org/classes/abstractController/translation.html < / a> p> i18n.t code> ne préfixcule pas votre clé de traduction, voici les méthodes / modules d'assistance responsables de la magie des rails: P>
La solution ci-dessus n'aident pas à trouver quel fichier une clé est levé. Je n'ai trouvé aucune solution élégante à cela, ci-dessous est la meilleure méthode que j'ai proposée. Les instructions devraient être adaptées pour une boîte de production. P>
Bundle Exec Rails C Code> Li>
- Exécuter
i18n.load_path.join ("\ n") code> et copiez ceci dans votre presse-papiers. Si vous utilisez pry avec Quelques aides du presse-papiers , il suffit d'exécuter copie < / code> dans la console li>
- Ouvrez une nouvelle fenêtre de terminal et exécutez
PBPaste | ACK 'EN.YML $' | Xargs ACK 'Key:' Code> Ceci imprimera une liste de fichiers contenant la clé I18N tente d'accéder à li>
ol>
Pour i18n.load_path.join ("\ n") code>, lorsque plusieurs fichiers définissent la même clé, en fonction de l'ordre de la définition de fichier
i18n code> finir par ?
Dans Rails 3.2 (peut-être également des versions inférieures), une portée est produite par le T - Helper dans des vues qui vous montre quelle clé a été recherchée sur la traduction. Ce n'est pas une solution pour tous les cas (du contrôleur et ainsi de suite), mais je pense que cela peut être la réponse à beaucoup de personnes qui recherchent cette question, où le patch de singe complet de ci-dessus serait sur le dessus (le Sinkey Patch travaille également pour moi dans I18N 0.7.0 et donne plus de détails)
title="translation missing: de.<path to key>"
Si la traduction que vous essayez de déboguer est en cours d'installation dans le contrôleur, il existe une solution simple:
Définir une variable dans le contrôleur sur une balise qui n'existe pas et lit le retour de la traduction avertissement manquant. p>
par exemple dans le contrôleur p> à votre vue: p> sera Retour: p> traduction manquante: fr.unexpected_namespace.controller_name.action_name.choco_pizza code> p> p> p>