1

In der Hoffnung, dass einige gelehrte Rails-Entwickler hier ein bestehendes Ruby on Rails-Plugin oder ein Juwel empfehlen können, mit dem Sie das Simple I18n-Backend weiterhin verwenden können, während Sie optional Übersetzungen in der Datenbank angeben können.Plugin für die Verwendung von Ruby on Rails Einfaches I18n-Backend mit übersetzbaren Übersetzungen in der Datenbank?

Hier ist der Grund:

Ich habe eine Rails-Anwendung für viele Websites verwendet werden. Für das Beispiel werde ich nur 2 Websites verwenden:

Website 1: Leprechauns R Us

Webseite 2: Unicorns R Us

Die meisten Übersetzungen sind die gleichen für beide Seiten, aber occassionally möchte ich außer Kraft setzen eine Übersetzung. Zum Beispiel in meiner en-US.yml Datei habe ich folgende Übersetzung:

view_all: All

Und für die meisten Websites dieser Übersetzung in Ordnung ist, auch für die Website 1 (Kobolde), wo ich bin glücklich, um "Alles anzeigen" zu verwenden.

Allerdings möchte ich für Website 2 "Alle Unicorns anzeigen" als die Ansicht "view_all" verwenden, und ich möchte dies in der Datenbank angeben. Aus Wartungsgründen möchte ich diese Überschreibung nicht in einer YAML-Datei angeben.

Vielen Dank,

Eliot

Antwort

1

Am Ende entschied ich mich Vorteil Rails' I18n nehmen :: Backend :: Simple Fähigkeit sowohl .yml Dateien und .rb Dateien als locale Wörterbücher zu verarbeiten.

Artefakte erstellt:

  1. DB Migration eine Übersetzung Tabelle mit Spalten zu erstellen: locale, Schlüssel, Text

  2. Übersetzungsmodell der Übersetzungen Tabelle

  3. Klasse Methode to_locale_hash zur Karte on Übersetzungsmodell, das einen länderspezifischen Hashwert zurückgibt, wie von I18n :: Backend :: Simple.load_rb

  4. Eine einzeilige Datei in config/translations.rb mit der Linie

die Spree für den Quellcode ‚Translation.to_locale_hash‘ befindet Erweiterung sehen (leider nicht in einer Rails-Plugin-Struktur, wird es leicht sein um zu einem Plugin zu wechseln, falls Sie es benötigen) hier:

http://github.com/eliotsykes/spree-i18n-db/tree/master

Verwandte Themen