2010-01-21 16 views
12

Unsere Anwendung sollte repariert werden, um eb-GB locale zu verwenden. Für jetzt habe ich hinzugefügt:So ändern Sie das Standardgebietsschema in GWT

<extend-property name="locale" values="en_GB"/> 

Aber das bedeutet, dass GWT Premutations für beide baut. Wie stelle ich GWT standardmäßig auf eb-GB ein? Oder wie man default aus der Zusammenstellung entfernt?

Antwort

9

Wie wäre:

 
<set-property name="locale" value="en_GB" /> 
+0

Ich denke, Sie müssen dies mit Antworten von oben kombinieren. –

+0

Das funktioniert! Ich hatte diese Idee. Aber scheint etwas ivorrectly getippt. –

+4

Wo soll ich das hinzufügen property? Ich versuchte es in meiner .gwt.xml-Datei, aber es beschwert sich über "Unerwartete Ausnahme beim Verarbeiten des Elements 'set-property'" – raisercostin

2

Siehe this.

Sie benötigen die locale in der Host-Seite wie so angeben ...

<meta name="gwt:property" content="locale=x_Y"> 

Sie auch Ihre eigenen Immobilienanbieter schreiben konnte.

+0

Dies ersetzt nicht das Standardgebietsschema. Dies ist im Begriff, das zu verwendende Gebietsschema festzulegen. Was ich brauche, ist "default" locale zu bahaive als 'en_GB'. –

+0

Wenn Sie ein Gebietsschema angegeben haben (wie oben gezeigt), sollte es nicht den Standard ersetzen. Hier finden Sie Informationen zum Standardgebietsschema ... "Das Modul com.google.gwt.i18n.I18N definiert standardmäßig nur ein Gebietsschema, das als Standard bezeichnet wird.Dieses Standardgebietsschema wird verwendet, wenn die Clienteigenschaft für das Gebietsschema in der Bereitstellung nicht angegeben wird. Das Standardgebietsschema wird intern als letzte Maßnahme zwischen einer Localizable-Schnittstelle und einer lokalisierten Ressource oder Klasse verwendet. " –

+0

Wir verwenden genau ein Gebietsschema -' default', aber wir möchten, dass es en-GB en-US ist Deshalb habe ich gefragt, wie man das Standardgebietsschema konfiguriert: –

3

Sie können den Standardwert über die Anmerkung festlegen: @DefaultLocale("en_GB") auf den Schnittstellen, die die i18-Schnittstellen erweitern, z. com.google.gwt.i18.client.Messages.

Zum Beispiel:

@DefaultLocale("en_GB") 
public interface MyMessages extends com.google.gwt.i18.client.Messages { 
    ... 

Ich bin mir nicht sicher, ob dies tatsächlich Ihr Problem löst, aber es scheint, den Weg, um den Standard festlegen. Siehe auch http://code.google.com/p/google-web-toolkit/wiki/I18nAnnotations

+0

Das sieht aus, wonach du wirklich suchst. –

+0

Ich brauche das meiste für eingebaute Sachen, wie Datum und Zahl formatiert, also danke, dass du das aufzeigst Das ist nicht mein Problem. Wie auch immer, danke für Ihre Zeit. –

1

Here is a better hack (den zweiten Kommentar sehen).

Beachten Sie, dass nur diesen Code mit

<set-property name="locale" value="en_GB" /> 

LocaleInfo.getLocaleNativeDisplayName(localeName) verursacht leere Zeichenfolge für Standardgebietsschema zurückzukehren.

9
<extend-property name="locale" values="sl_SI"/> 
<set-property name="locale" value="sl_SI" /> 

wird zuerst zu den verfügbaren Sprachumgebungen hinzugefügt.

setzt dann den Standardwert.

Wenn der Standardwert nicht auf dasselbe Gebietsschema eingestellt ist wie die hinzugefügten, erstellt gwt Permutationen für das hinzugefügte Gebietsschema und das Standardgebietsschema.

8

Ich spiele den Archäologen hier, aber nach GWT docs about internationalization sollten Sie die Eigenschaft Fallback für "locale" verwenden, anstatt das Gebietsschema selbst zu erzwingen.

So in Ihrem Modul XML (die .gwt.xml Datei) sollten Sie haben:

<!-- Let say you app supports the english language, independent of country --> 
<extend-property name="locale" values="en"/> 
<!-- Now set the fallback locale so your app will be in british english by default, Sir --> 
<set-property-fallback name="locale" value="en_GB"/> 

<set-property name="locale" value="en_GB"/> nur en_GB das Gebietsschema der Anwendung festgelegt werden und wird die Permutation für die anderen Gegenden Sie definiert nicht erstellen.

Hoffe, das hilft.

Verwandte Themen