2010-12-28 4 views
0

Meine Anwendung enthält 4 Sprachen. Allerdings muss nur ein Modul von 5,android localisation: Ist es eine gute Übung, nur benötigte Ressourcen in lokalisierten Ordnern zu verwenden?

Dieses Modul hat 4 Layout-Dateien und einige Bilder, verbleibende Dateien können in Standard layout Ordner und drawable Ordnern sein.

Meine Frage ist: ist es gute Praxis, nur benötigte Dateien in Lokalisierungsordner zu setzen, wenn ich andere Dateien in den entsprechenden Ordnern belege und sie nicht in Übersetzungsordner kopiere, wirft meine Anwendung NullPointerException, wenn meine Anwendung läuft andere Sprache?

und

Hat Android Market jede Größenbeschränkung? (Auch als BB-Entwickler, AFAIK erlauben sie nicht OTA, wenn die Anwendungsgröße mehr als 3 MB wächst) [Falls ich die Layout- und Bilddateien kopieren muss].

Hinweis über NullPointerException: es wirft in Zeichenfolge, wenn Sie einige Zeichenfolge in Lokalisierung und Anwendung in diesem bestimmten Gebietsschema weglassen.

Dank

+0

Bitte trennen Sie in zwei verschiedene Fragen, danke :-) –

+0

Ich habe sie in einzelne Frage, weil ich dachte, sie sind relevant. Anyways thanks for comment und das Problem ist derzeit irrelevant für meine Entwicklung – Prasham

Antwort

1

Kurze Antwort (auf Ihre erste Frage): Ja, es gute Praxis ist „nur benötigten Dateien in Ordnern Lokalisierung zu setzen“.

Sie sollten sicherstellen, dass jede Ressource, die Sie verwenden (das heißt, jeder R.something.something, die Sie verweisen) in Ihrem Standard-res Verzeichnisse definiert ist. Dann definieren Sie für Ihre anderen Sprachen nur die Ressourcen, die Sie lokalisieren möchten.

Nehmen wir als Beispiel an, dass Ihre Standardressourcen in Englisch sind und Sie einen Teil Ihrer App für Hindi und Gujarati lokalisieren möchten. Sie sollten in res/values/strings.xml definiert alle englischen Strings haben, die Hindi-Strings in res/values-hi/strings.xml (nur Hindi, kein Englisch!) Und die Gujarati-Strings in res/values-gu/strings.xml (nur Gujarati, kein Englisch!)

Wenn die Anwendung läuft auf einem Gerät , wird jeder Verweis auf eine Ressource (alle R.string.some_string_key) überprüft, um die beste Übereinstimmung für das Gebietsschema zu finden, das das Gerät verwendet. Wenn sich das Gerät in einem Hindi-Gebietsschema befindet, werden Zeichenfolgenwerte von res/values-hi/strings.xml abgerufen. Wenn es dort nicht gefunden wird, wird es in res/values/strings.xm auf den Standard (Englisch) zurückgesetzt. Es wird nur eine Ausnahme ausgelöst, wenn die Ressource im Standardordner /res/values nicht gefunden werden kann.

+0

@Dalbergai wo hast du Werte-Gu-Ordner für Gujrati-Schriften gefunden ????? Kannst du den Link angeben? – MGDroid

+0

Ich tat es nicht. Sie müssen es erstellen. – Dalbergia