2

Je suis impliqué dans la préparation d'une application de rails préexistante pour la traduction - en passant par les fichiers sous app/views/, trouver le texte, en faisant une clé dans config/locales/de.yml (dans ce cas), en copiant le texte dans de.yml et en mettant t("key") dans le fichier de vue. Répétez des centaines, peut-être des milliers de fois. C'est très fastidieux.Outils pour accélérer la génération de fichiers de paramètres régionaux (pour les rails)

Je ne pense pas qu'il puisse être entièrement automatisé, mais les choses clés que je dois faire sont de sélectionner le texte et de lui donner une clé.

Alors, est-ce que quelqu'un connaît un outil qui automatisera le reste des étapes? Je veux sélectionner le texte, appuyer sur une combinaison de touches, taper une clé, et l'outil va mettre une clé dans le fichier de.yml, ajouter le texte, et mettre t("key") à la place du texte qui a été sélectionné.

Ma seule exigence clé est qu'elle devrait fonctionner sous Linux. Je suis un utilisateur vim, mais je vais apprendre Emacs si c'est la meilleure façon de le faire. Je vais même installer Eclipse si c'est le meilleur moyen ... J'imagine que les macros vim ou emacs devraient facilement être capables de faire le travail que je demande.

Quelqu'un? S'il vous plaît?

Avec un peu de googling, j'ai réussi à trouver un textmate plugin qui serait presque parfait si j'avais un Mac et Textmate. Quelque chose de similaire serait génial.

Répondre

1

Normalement pour les cas j'utilise, I18n :: Backend :: Database (ActiveRecord Adapter pour stocker des traductions dans la base de données). Cela a un avantage majeur qui pourrait également être utile pour votre cas, je peux stocker des traductions sans la syntaxe clé.

Supposons que vous ayez ce texte <%= link_to 'Das ist ein Link Text', root_url %> Vous pouvez transformer ce avec I18n :: :: Base de données Backend <%= link_to t('Das ist ein Link Text'), root_url %>. En utilisant ceci, vous pouvez créer un raccourci rapide Textmate/Emacs/Vim pour envelopper simplement le t() autour d'une chaîne.

Est-ce que cela résout votre problème?