Rails i18n Wie bekomme ich alle Werte für einen bestimmten Schlüssel?

8

In Rails i18n erfahren Sie, wie Sie mit einem der folgenden Schlüssel alle Werte für einen bestimmten Schlüssel erhalten:

%Vor%

Erhalte alle Schlüssel

Ich muss in der Lage sein, einen bestimmten Abschnitt zu erhalten, um zum Beispiel nur alles unter "home"

zurückzugeben %Vor%     
Rubytastic 01.02.2013, 12:04
quelle

3 Antworten

12

Der Rückgabewert von I18n.backend.send(:translations) ist nur ein Hash, so dass Sie auf eine Teilmenge zugreifen können, indem Sie einfach die entsprechenden Schlüssel übergeben.

z.B. wenn du hast:

%Vor%

Dann können Sie die Untermenge des Hashs unter bar mit:

erhalten %Vor%     
Chris Salzberg 01.02.2013, 13:29
quelle
5

Das Standard-I18n-Backend ist I18n::Backend::Simple , wodurch Ihnen die Übersetzungen nicht zur Verfügung stehen. ( I18.backend.translations ist eine geschützte Methode.)

Dies ist im Allgemeinen keine gute Idee, aber wenn Sie diese Information wirklich benötigen und die Datei nicht analysieren können, können Sie die Backend-Klasse erweitern.

%Vor%

Sie können dann I18n.backend.translations_store aufrufen, um die geparsten Übersetzungen zu erhalten. Sie sollten sich wahrscheinlich nicht auf eine langfristige Strategie verlassen, aber Sie erhalten die Informationen, die Sie gerade brauchen.

    
My God 01.02.2013 13:16
quelle
0

Einstellung von I18n.locale dann tut I18n.t funktioniert gut, z.B.:

%Vor%     
Dorian 28.02.2018 12:28
quelle