I18N translate "." oder "%" bewirkt ein vollständiges Array aller Übersetzungen

9

Ich habe ein Problem in meiner Rails-App der Übersetzung mit I18n. Ich erstelle dynamische Sätze in Arrays wie diesem [:this_is_a, 5, :which_is_a_number, "."] , für die ich jedes Wort einzeln übersetze.

Wenn ich das durch I18n.t (".") übersetze, erhalte ich die vollständige Anordnung aller Übersetzungen in meiner gesamten App, die einen Array-Text von mehr als 1000 Wörtern ausgibt. Dies scheint auch für I18n.t ("%") zu gelten.

Gibt es eine Einstellung, die das verhindert? Meine einzige Hack-Lösung dafür ist im Moment, alle "." zu "." aber ich hoffe, dass es eine bessere Lösung gibt. Irgendwelche Tipps?

    
Christoffer 24.08.2016, 18:35
quelle

1 Antwort

4

"" wird für Namespacing-Übersetzungsschlüssel verwendet. Wenn Sie eine Datei wie folgt haben:

%Vor%

Dann greifen Sie auf diese mit "."

zu %Vor%

Wenn Sie nur I18n.t(".") verwenden, wird der gesamte Namespace der obersten Ebene angegeben. Sie können dieses Verhalten ändern, indem Sie das Trennzeichen

ändern %Vor%

Wähle einfach ein Zeichen aus, von dem du weißt, dass es nicht als Token erscheint.

"%" - Zeichen wird für die Interpolation verwendet:

%Vor%

Und dann

%Vor%

Es sieht nicht so aus, als könntest du "%" in etwas anderes ändern, weil es fest codiert ist. Aber es sollte nicht die ganze Reihe von Übersetzungen zurückgeben. Es sollte nur "Übersetzung fehlt" Fehler zurückgeben. Zumindest habe ich das auf meiner Version von I18n gem.

    
Michał Młoźniak 31.08.2016, 23:25
quelle

Tags und Links