2009-05-18 8 views
1

Ich arbeite an einer Merb-Anwendung mit Haml als Templating-Sprache. Als ich die Bewegung der Logik aus dem Blickwinkel heraus und zu den Helfern ermutigte, begann ich bald darüber nachzudenken, die Kopie/den Text aus den Vorlagen selbst zu entfernen. In der Vergangenheit habe ich den Text entweder direkt innerhalb der Vorlagen gelassen oder ihn in separate Yaml-Dateien verschoben, die vom Controller getrennt sind. Ich habe festgestellt, dass Text inline ist bequemer, aber hässlicher und beinhaltet Ack viel, um herauszufinden, wo ein bestimmtes Stück Text gespeichert ist. Es ist einfacher in einer YAML-Datei zu suchen, aber es ist schwieriger, ein vernünftiges Namensschema zu finden, um ein bestimmtes Stück Text in einem bestimmten Bereich zu finden.Speichern von Anwendungstext: Inline vs. Separate Datei

Ich bin auch neugierig auf andere Ansätze zu diesem Thema.

Antwort

1

Das separate Speichern von Texten ist gut, wenn Sie Ihre Anwendung globalisieren/internationalisieren möchten. Für Rails gibt es eine Menge feiner Plugins dafür (Rails 2.3 hat sogar eine API dafür), aber diese funktionieren normalerweise auch für merb. Es gibt verschiedene Ansätze dazu, die beiden wichtigsten Ansatz ist, wie Sie den Schlüssel speichern:

  • Die YAML-ähnliche Schnittstelle, die Sie verwenden, speichert Symbole, denke ich, und es weist den Text zu diesem Symbol.
  • Der Gettext-Stil Ansatz ist, dass der Text das Symbol ist, und Sie können es in einer separaten Datei neu definieren, wenn Sie möchten (aber wenn Sie nicht dann erhalten Sie die gleiche Zeichenfolge wie der Schlüssel).

Beide Ansätze haben ihre Vor- und Nachteile. Neben dem Schlüssel gibt es zahlreiche Speichermöglichkeiten, die Sie verwenden können, wie YAML, oder Sie können sogar einen kompletten ActiveRecord/DataMapper/etc erstellen. basierter Speichermechanismus.

Sie könnten überprüfen, wie rails 2.3 mit Globalisierung funktioniert, weil ihr Namensschema ein guter Ausgangspunkt für Sie sein könnte. Oder verwenden Sie Namespaces, um die YAML-Dateien aufzuteilen, damit sie einfacher zu durchsuchen sind. Sie könnten auch den Gettext-Ansatz ausprobieren, aber er wird weder als DRY noch als sicher betrachtet (aber es hat viele Werkzeuge, die Mapping-Dateien erstellen, die den gesamten Text Ihrer Anwendung enthalten).

Verwandte Themen