Die Seite muss aktualisiert werden, nachdem das Gebietsschema für die zu übersetzende Blacklight-Beschriftung geändert wurde

9

Ich versuche eine arabische Version einer Rails-App zu erstellen, die auf Blacklight basiert. Hier ist das Problem, vor dem ich stehe:

Wenn ich die Sprache umstelle, wird alles perfekt übersetzt, mit Ausnahme der Blacklight-Labels. Nur wenn ich die Seite aktualisiere, werden die Labels übersetzt.

Dies ist das Etikett, das ich anzeigen möchte: "ترتيب حسب عام" (Übersetzung: Sortieren nach Jahr)

Aber das bekomme ich gerade: "Year ترتيب حسب"

Dasselbe Problem tritt auf, wenn von Arabisch auf Englisch zurückgekehrt wird - die Beschriftung wird auf Arabisch angezeigt, bis ich die Seite aktualisiere.

So sieht meine Blacklight-Konfiguration aus:

%Vor%

So setze ich das Gebietsschema in meinem Application Controller:

%Vor%

Ich bin mir nicht sicher, was passiert, und ich würde Ihre Hilfe sehr schätzen.

    
humairatasnim 10.04.2017, 08:00
quelle

1 Antwort

4

Ich denke, das Problem, dass das korrekte Gebietsschema auf der ersten Seite nicht berücksichtigt wird, liegt in der Tatsache, dass configure_blacklight eine Klassenmethode ist, die ausgeführt wird, wenn die CatalogController -Klasse bekommt interpretiert, dh , bevor das before_filter für die Gebietsschemaumschaltung ausgeführt wird . (Eigentlich verstehe ich nicht ganz, warum es nach einem Seiten-Reload tatsächlich funktioniert, da ich erwarte, dass der Vorher-Filter immer ausgeführt wird, nachdem die Blacklight-Konfiguration eingestellt hat.)

Dennoch wurde die Unterstützung für Such- und Sortierfelder kürzlich dem Blacklight-Projekt hinzugefügt - siehe Pull-Anfrage # 1566 . Es scheint, dass diese Änderung noch nicht Teil einer öffentlichen Version ist. Daher müssen Sie die master -Verzweigungsversion verwenden, um diese Funktion tatsächlich verwenden zu können.

Blacklight im Allgemeinen, sowie dieses neue Feature, verwendet die Rails I18n API für lokalisierte Labels, also statt Wenn Sie die Labels manuell angeben, sollten Sie die I18n-Wörterbuch-YAML-Dateien verwenden (weitere Informationen finden Sie in den Rails-Guides ).

>

In Ihrem speziellen Fall ist die Bezeichnung für ein Sortierfeld nachgeschlagen unter der folgende Schlüssel:

%Vor%

Dabei ist key der Wert des ersten Parameters, den Sie an die Sortierfelddefinition übergeben. Daher sollten Sie für Ihr spezielles Feld in Ihren Wörterbüchern Folgendes definieren:

%Vor%

(das wäre für die englische Version). Ich bin erstaunt, dass YAML keine Probleme mit Leerzeichen und Kommas in den Schlüsseldefinitionen hat, aber in der Tat habe ich getestet, dass ein solcher Schlüssel funktioniert, wenn er von der I18n API verwendet wird.

    
BoraMa 14.04.2017 21:57
quelle