2009-05-18 15 views
1

Je travaille sur une application Merb en utilisant Haml comme langage de modèle. Comme haml encourage la logique de déplacement hors de la vue et dans les aides, j'ai bientôt commencé à penser à enlever la copie/texte des calibres eux-mêmes. Dans le passé, soit je laissais simplement le texte en ligne dans les modèles, soit je le déplaçais dans des fichiers yaml séparés séparés par un contrôleur. J'ai trouvé que laisser du texte en ligne est plus pratique, mais plus laide et implique l'utilisation de Ack beaucoup pour savoir où un morceau de texte particulier est stocké. Le stocker dans un fichier yaml est plus facile à chercher, mais plus difficile de trouver un schéma de nommage sain pour trouver un morceau de texte particulier dans une zone donnée.Enregistrement du texte de l'application: fichier en ligne ou fichier séparé

Je suis également curieux de connaître d'autres approches à ce problème.

Répondre

1

Enregistrer des textes séparément est bon si vous voulez globaliser/internationaliser votre application. Pour les rails, il y a beaucoup de bons plugins pour faire cela (Rails 2.3 a même une API pour ça), mais ils fonctionnent généralement aussi pour Merb. Il existe diverses approches pour cela, les deux principales approches est la façon dont vous stocker la clé:

  • L'interface YAML comme vous utilisez des symboles des magasins, je pense, et il affecte le texte à ce symbole. L'approche de style gettext est que le texte EST le symbole, et vous pouvez le redéfinir dans un fichier séparé si vous le souhaitez (mais si vous ne le faites pas, vous récupérerez la même chaîne que la clé).

Les deux approches ont leurs avantages et leurs inconvénients. En dehors de la clé, vous pouvez utiliser de nombreux moyens de stockage, comme YAML, ou vous pouvez créer un fichier ActiveRecord/DataMapper/etc complet. mécanisme de stockage basé.

Vous pourriez vérifier comment les rails 2.3 font avec la mondialisation, parce que leur schéma de nommage pourrait être un bon point de départ pour vous. Ou utilisez des espaces de noms pour diviser les fichiers YAML afin qu'ils soient plus faciles à rechercher. Vous pouvez aussi essayer l'approche gettext, mais elle n'est pas considérée comme sûre ni DRY (mais elle contient beaucoup d'outils qui créeront des fichiers de mapping contenant tout le texte de votre application).