Ich habe ein Juwel (TranslationsGem) erstellt, das ich in mehreren Projekten verwende (eine Engine und eine Rails-App). Dieser Edelstein erstellt mehrere Hashes, die in das I18n-Backend geladen werden.
Eine Methode #store_dynamic_translations
richtet mehrere Hashes ein, die in das I18n-Backend geladen werden. Es funktioniert grundsätzlich so:
Meine Tests bestätigen, dass die Methode und das Laden der Übersetzung korrekt funktioniert. Ich kann es jedoch nicht in der Host-Engine und der Rails-App zum Laufen bringen.
In meiner Testumgebung muss ich die Methode in meinem test_helper
ausführen, um sicherzustellen, dass die Übersetzungen korrekt geladen sind. Außerhalb der Testumgebung scheint es nicht zu funktionieren. Ich kann überprüfen, dass die Methode ausgeführt wird, aber die Übersetzungen werden nicht geladen.
Ich habe viele Dinge stundenlang ausprobiert, wie die Methode in der Engine initializer und ActiveSupport-Hooks verwenden. In der Host-Rails-App habe ich versucht, die #store_dynamic_translations
in einem Initialisierer auszuführen, aber ohne Erfolg.
Seltsamerweise funktioniert es, wenn ich den #store_dynamic_translations
in meinem Rails-App-Controller oder in der Ansicht ausführe. Gibt es eine Möglichkeit, dies beim Hochfahren der App einzurichten?
BEARBEITEN: Ich habe ein Beispiel-Repository eingerichtet, das das aktuelle Setup enthält .
Ein Gem, das Übersetzungen dynamisch in das I18n-Backend speichert.
Eine Rails Engine, die den Edelstein lädt und seine Übersetzungen zur Verfügung haben soll
In wird der fragliche Test auskommentiert MyI18n::Translations.store_dynamic_translations
Direktive macht den Test bestanden. Aber es sollte möglich sein, dies innerhalb eines Engine-Initialisierers zu tun Ich denke?
Tags und Links ruby ruby-on-rails internationalization i18n-gem