2014-03-25 10 views
5

Ich werde meine Anwendung strings.xml-Datei zu übersetzen. Was ist die Standardsprache der Datei strings.xml? weil ich jetzt Italienisch (die Sprache mit ich habe Strings.xml für jetzt schreiben) und Englisch unterstützen muss. Sollte ich string.xml für Englisch und erstellenAndroid: Standardsprache von strings.xml

res/Werte-it/

Ordner für italienische und "default" strings.xml in Englisch übersetzen?

+0

Sie können diese strings.xml einfach in die values-it kopieren und eine in Englisch für Werte übersetzen:> – noidraug

+2

Die Standardsprache ist Englisch. Die String-Datei ist **/res/values ​​/ strings.xml ** –

Antwort

13

strings.xml ist die Standardeinstellung und wird verwendet, wenn keine länderspezifische Datei wie res/values-it/strings.xml oder res/values-fr/strings.xml vorhanden ist. Lesen Sie mehr über Localizing with Resources.

Ich würde persönlich strings.xml mit englischen Übersetzungen als Fallback verwenden, wie Sie bereits vorgeschlagen haben.

+0

Ich sehe keine Beispiele für die Verwendung wie "strings-it.xml" in der oben genannten Dokumentation. –

+0

@DoctororDrive Sie haben Recht, ich habe das falsch verstanden. Ich werde meine Antwort reparieren. – Kai

4

Werfen Sie einen Blick auf here; wie gesagt:

Locale Verzeichnisse und String-Dateien erstellen

Um die Unterstützung für weitere Sprachen hinzufügen, erstellen zusätzliche Werte Verzeichnisse innerhalb res/die einen Bindestrich und die ISO-Ländercode am Ende des Verzeichnisnamens enthalten. Beispiel: values-es/ist das Verzeichnis, das den einfachen Ressourceneintrag für die Sprachumgebungen mit dem Sprachcode "es" enthält. Android lädt die entsprechenden Ressourcen gemäß den Gebietsschemaeinstellungen des Geräts zur Laufzeit.

Sobald Sie sich für die unterstützten Sprachen entschieden haben, erstellen Sie die Ressourcenunterverzeichnisse und die String-Ressourcendateien. Beispiel:

MyProject/ res/ values/ strings.xml values-es/ strings.xml values-it/ strings.xml 

Fügen Sie die Zeichenfolgenwerte für jedes Gebietsschema in die entsprechende Datei ein.

Zur Laufzeit verwendet das Android-System den entsprechenden Satz von Zeichenfolgenressourcen basierend auf dem Gebietsschema, das derzeit für das Gerät des Benutzers festgelegt ist.

Zum Beispiel gibt es einige verschiedene String-Ressourcendateien für verschiedene Sprachen.

Englisch (default locale), /values/strings.xml:

<?xml version="1.0" encoding="utf-8"?> 
    <resources> 
    <string name="title">My Application</string> 
    <string name="hello_world">Hello World!</string> 
</resources> 

Italienisch, /values-it/strings.xml:

<?xml version="1.0" encoding="utf-8"?> 
    <resources> 
    <string name="title">la mia domanda </string> 
    <string name="hello_world">ciao mondo!</string> 
    </resources> 

Hinweis: Sie können die Verwendung Gebietsschemaqualifikator (oder ein beliebiger Qualifizierer für die Konfiguration) für einen beliebigen Ressourcentyp, z. B. wenn Sie lokalisierte Versionen Ihrer Bitmap-Zeichnungsdatei bereitstellen möchten. Weitere Informationen finden Sie unter Lokalisierung.

+0

Ich muss nur Strings für jetzt zu lokalisieren. Aber warum muss ich zwei Ordner für die Sprache erstellen (values-es und values-it)? was ich will ist, dass, wenn Locale Sprache Italienisch ist, italienische Saiten zeigen, sonst (Rest der Welt) Englisch. Vielleicht könnte ich nur in Englisch strings.xml übersetzen und nur Werte erstellen-it-Ordner – giozh

+0

Für jede Sprache sollten Sie ALLE String-Ressourcen definiert haben, auch wenn Sie einige von ihnen nicht verwenden, werden sie vom Layout verwendet werden und sie werden den Wert aus der Standardsprache nehmen. Dies ist, wo diese Zeichenfolgen ihre Werte nehmen. –

+0

Wenn jedoch zur Laufzeit kein Wert-Ordner gefunden wird, der mit dem Gebietsschema übereinstimmt, verwendet das System die Standarddatei strings.xml? – giozh

Verwandte Themen