Wie um zu überprüfen, Gebietsschema-gegen-Nachricht.Eigenschaften
Ich bin mit hibernate, RestEasy-API auf einem server. ich habe 3 properties-Dateien message.properties a, mesage_en-GB.properties and message_en.propperties
- Dateien.
Wenn ich eine Anfrage vom client , es haben Gebietsschema im header param. Ich brauche, um dies zu überprüfen Gebietsschema gegen meine properties-Datei, d.h. wenn es sich um en-GB als mesage_en-GB.Eigenschaften, wenn nicht angegeben wird als Nachricht.Eigenschaften, und wenn falsch-geben Sie als Fehlermeldung.
aber bin nicht immer, wie vergleichen Sie diese Werte.
bitte vorschlagen.
- So bist du immer REST-Anforderung über RestEasy und empfangen einen HTTP-Header, und auf der server-Seite müssen Sie wählen, welche Eigenschaften zu verwenden-mache ich es richtig?
- ja..ich brauche, um zu vergleichen, HTTP heaer mit Eigenschaften, die Datei und auswählen, welche Datei zu wählen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Gebietsschemas und bundles können nicht verwaltet werden von einem container aus irgendeinem Grund müssen Sie Sie manuell verwaltet werden.
Ich nehme an, Sie haben die Eigenschaft Dateien in den classpath.
Zunächst benötigen Sie das Gebietsschema, das Sie verwenden. Zum Beispiel bekommt man Sprache aus dem HTTP-header als String
fr
, übergeben Sie es an Gebietsschema.forLanguageTag(String) Methode in Java7 oder verwenden Sie Locale(String) Konstruktor in Java6 und get Locale-Objekt:Dann passieren Sie das Gebietsschema auf der ResourceBundle.getBundle Methode, um den richtigen bundle:
Dann rufen Sie ResourceBundle s getString(key:String) Methode get localized String:
Sicher zu stellen, dass diese Methode 100% funktioniert, können Sie die nächsten einfachen Schritte:
1) Erstellen Sie einen Ordner
tmp
irgendwo2) In diesem Ordner legen Sie die Datei
A.java
mit folgendem Inhalt:3) Erstellen Sie die Datei
messages.properties
mit folgendem Inhalt:4) Erstellen Sie die Datei
messages_fr.properties
mit folgendem Inhalt:5) Gehen Sie zu
tmp
Ordner und zwei Befehle ausführen:Ausgabe:
Ich hoffe, das funktioniert für Sie!
PS:
Es gibt eine große begehbare hier: http://docs.oracle.com/javase/tutorial/i18n/resbundle/propfile.html
Registrieren Sie einen
LocaleChangeInterceptor
im Frühjahr die Konfiguration und die Nutzung<spring:message>
- tag zur Ausgabe von Meldungen.Hier ist eine große Exemplarische Vorgehensweise: http://viralpatel.net/blogs/2010/07/spring-3-mvc-internationalization-i18n-localization-tutorial-example.html
PS
Dieser Mechanismus kann von server zu server, in einigen Fällen mit
<fmt:message>
könnte eine bessere alternative sein.