So finden Sie eine Android-App

Lokalisierung ist mehr als nur die Übersetzung der Zeichenfolgen Ihrer App in andere Sprachen. Dazu gehört auch die Anzeige von Daten wie Datum und Uhrzeit im richtigen Format für Ihre Benutzer. Auch wenn Sie nur eine englische Version Ihrer App möchten, ist es gut zu wissen, was Lokalisierung bedeutet. Auf diese Weise sind Sie vorbereitet, wenn Sie zusätzliche Gebietsschemaeinstellungen unterstützen möchten, und müssen nicht in der gesamten Codebasis Ihrer App nach Zeichenfolgen und Werten suchen.

Beim Android SDK hängen die Sprache der lokalisierten Zeichenfolgen und das Format für die Anzeige von Werten vom Gebietsschema des Geräts ab. Regionale Einstellungen sind eine Kombination aus Sprache und Land. Die Sprache wird durch die definiert ISO 639-1 Standard, während das Land durch die definiert ist ISO 3166-1 Standard. Dies bedeutet, dass das Android-Gebietsschema mit der Kultur oder dem Gebietsschema kompatibel ist, die von den meisten anderen Programmiersprachen und Frameworks verwendet werden.

Das einzige Gebietsschema, das garantiert auf allen Android-Geräten vorhanden ist, ist Englisch wie in der gesprochen Vereinigte Staaten. Er wird vertreten durch die en_US Code, mit fr als Sprachcode für Englisch und wir als Ländercode für die Vereinigten Staaten. Sie können auch die verwenden fr Nur Sprachcode als Ort, um alle englischsprachigen Länder und Regionen zu vertreten.

Um eine App für eine Sprache oder für ein bestimmtes Land und eine bestimmte Sprache zu lokalisieren, müssen Sie die Ressourcen für diese Sprache in die / res Ordner Ihrer Anwendung. Dies umfasst normalerweise Zeichenfolgenressourcen in der / res / Werte Ordner, kann aber auch andere Arten von Ressourcen enthalten, z. B. Bilder und Layouts. Das Android SDK identifiziert die verschiedenen alternativen Ressourcen mit Konfigurationsqualifizierern, die dann verwendet werden, um den Ordner zu benennen, der diese Ressourcen enthält. Das Konfigurationsqualifikationsmerkmal für das Gebietsschema ist der Sprachcode, optional gefolgt vom Ländercode. Daher müssen sich die lokalisierten Zeichenfolgenressourcen für Ihre Anwendung in der befinden /.res / values- oder /.res / values- -r Dossier.

Beachten Sie, dass Ressourcen, die mit einem Konfigurationsqualifizierer für ein bestimmtes Gebietsschema gekennzeichnet sind, Vorrang vor den meisten anderen Ressourcen haben. Andere gängige Konfigurationsqualifizierer für Ressourcen mit niedrigerer Priorität sind Bildschirmgröße und Bildschirmpixeldichte, um je nach Bildschirmgröße unterschiedliche Layouts zu beschreiben. Nur Ressourcen, die mit einem MCC-Konfigurationsqualifikator (Mobile Country Code) identifiziert wurden, haben eine höhere Priorität als Zeichenfolgenressourcen, die mit einem lokalen Konfigurationsqualifikator identifiziert wurden. Der mobile Ländercode wird verwendet, um die Ressourcen für ein Land zu definieren. Optional kann der Mobilfunknetzcode (MNC) einer SIM-Karte folgen, um einen bestimmten Mobilfunkbetreiber in diesem Land anzusprechen. Es wird verwendet, um länderspezifische Inhalte wie einen Vertrag oder eine Datenschutzrichtlinie bereitzustellen.

1. Kanallokalisierung

Jede Android-App muss alle Kanalressourcen im Internet haben /res/values/strings.xml fallen lassen. Dies ermöglicht die Wiederverwendung von Zeichenfolgen in Ihrer Anwendung, auch wenn keine Lokalisierung erforderlich ist. Wenn für das aktuelle Gebietsschema des Geräts keine Datei verfügbar ist, Die Datei wird verwendet. Wenn Sie keine haben und Ihre App versucht, auf eine Zeichenfolgenressource zuzugreifen, die nur in a verfügbar ist string.xml Länderspezifisch stürzt Ihre Anwendung ohne Warnung ab, da Ressourcen zur Laufzeit und nicht während der Kompilierung geladen werden.

EIN string.xml Die länderspezifische Datei muss nicht alle Zeichenfolgenressourcen in der Datei enthalten /res/values/strings.xml fallen lassen. Dies bedeutet, dass wenn eine Ressource wie der Name Ihrer Anwendung nicht gefunden werden muss, Sie sie nicht in jede Zeichenfolgendatei aufnehmen müssen.

verbunden :  Wie Android Doze funktioniert, um den Akku zu optimieren (und wie man ihn ausschaltet)

Zum Zeitpunkt der Ausführung war die /.res / values- -r /strings.xml Die Datei für die regionalen Einstellungen des Geräts wird überprüft, gefolgt von / rde / values- /strings.xml Datei nur für Sprache. Wenn die angegebene Zeichenfolge in diesen Dateien nicht verfügbar ist, wird die Anwendung auf die zurückgesetzt / res / values ​​/ strings.xml.

Wenn Sie beispielsweise Ihre Anwendung für alle französischsprachigen Regionen und Länder lokalisieren möchten, ohne auf eine bestimmte zu zielen, fügen Sie die Anwendungszeichenfolgen in das Feld ein / res / values-de /string.xml fallen lassen. Wenn Sie jedoch einige Zeichenfolgen mit einer für Französisch spezifischen Schreibweise lokalisieren möchten, wie sie in Frankreich geschrieben wurden, müssen Sie sie in das Feld einfügen /res/values-fr-rFr/strings.xml fallen lassen. Stellen Sie sicher, dass Sie die hinzufügen r vor dem Ländercode im Ordnernamen oder er wird zur Laufzeit nicht gefunden, wenn sich die Anwendung befindet.

Hier ist ein Beispiel von / res / values ​​/string.xml Datei mit einigen englischen String-Ressourcen:

Und hier ist ein / res / values-fr /string.xml Datei mit den gleichen Ressourcen in Französisch:

Suchen von Zeichenfolgen in Präsentationen

Die Zeichenfolgen in Ihren Layouts müssen Zeichenfolgenressourcen sein. Tatsächlich wird eine Flusenwarnung angezeigt, wenn ein Kanal fest codiert ist. Sie können Ressourcen überall dort verwenden, wo Sie Zeichenfolgen in Layouts definieren würden. String-Ressourcen werden durch identifiziert @string/ gefolgt vom Namen des string.xml fallen lassen. Die folgende Tabelle zeigt die hello_world Zeichenfolge aus dem vorherigen Beispiel in a TextView abhängig von den regionalen Einstellungen des Geräts:

Es zeigt „Hallo Welt!“ auf einem Android-Gerät, das auf regionale Einstellungen einschließlich der französischen Sprache eingestellt ist. Für alle anderen regionalen Einstellungen gilt die „Hallo Welt!“ Der Kanal wird angezeigt.

Zeichenfolgen im Code suchen

Sie müssen auch Zeichenfolgen in Ihrem Code suchen, wenn Sie Steuerelemente außerhalb Ihrer Layouts erstellen oder ändern. Um diese Zeichenfolgen zu finden, müssen Sie zuerst die erhalten
android.content.res.Resources Objekt, das alle Paketressourcen der Anwendung für den aktuellen Kontext enthält. Sie rufen dann die getString Methode für dieses Objekt, wobei der Bezeichner der anzuzeigenden Zeichenfolge übergeben wird. Der folgende Codeblock zeigt Ihnen beispielsweise, wie Sie den Text von a definieren TextView Objekt:

Bei komplexeren Zeichenfolgen mit einer oder mehreren variablen Komponenten müssen Sie Formatzeichenfolgen verwenden. Mit Formatzeichenfolgen können Sie die Werte der anzuzeigenden Parameter angeben. Formatzeichenfolgenparameter werden durch Formatspezifizierer identifiziert. Der am häufigsten verwendete Formatbezeichner ist %s, eine Zeichenfolge darstellend. In der Tat sind alle Formatzeichenfolgen in der java.util.Formatter Klasse sind verfügbar. Wenn mehr als ein Parameter erforderlich ist, müssen Sie außerdem Ihre Formatspezifizierer nummerieren. Bei String-Format-Spezifizierern muss der erste sein %1$s, der Zweite %2$s, usw.

Sobald die Formatzeichenfolgen angegeben sind, verwenden Sie die String.format Methode zum Übergeben der anzuzeigenden Parameter an Ihre Zeichenfolge. So definieren Sie den Text, der in a angezeigt werden soll TextView mit dem hello_world_name Formatzeichenfolge string.xml Anzahlung. Diese Formatzeichenfolge enthält einen Formatbezeichner für den Benutzernamen:

Dies zeigt das „Hallo Bob!“ Zeichenfolge für ein Android-Gerät, dessen regionale Einstellungen die französische Sprache enthalten. Für alle anderen Gebietsschemas ist das „Hallo Bob!“ Der Kanal wird angezeigt.

2. Ort von Datum und Uhrzeit

Wenn die Zeichenfolgen Ihrer App bereits lokalisiert sind, ist Ihre App bereits in einem recht guten Zustand. In vielen Fällen müssen Sie dem Benutzer jedoch möglicherweise Datum und Uhrzeit anzeigen. Diese Daten und Zeiten müssen auch an die aktuellen regionalen Einstellungen des Geräts angepasst werden. Glücklicherweise enthält das Android SDK Klassen, die Datum und Uhrzeit basierend auf dem Gebietsschema formatieren.

Im Android SDK werden Datum und Uhrzeit von der verwaltet Date Klasse der java.util Namespace. Das aktuelle Datum und die aktuelle Uhrzeit des Geräts werden von der zurückgegeben java.util.Calendar.

Ort der Daten

Daten können mit einer Instanz von formatiert werden DateFormat Trainer von java.text Namespace. Sie müssen die verwenden DateFormat Android SDK Klasse in der android.text.format Namespace, um den richtigen Formatierer für das Gerätegebietsschema zu erhalten. Das folgende Codeausschnitt zeigt, wie Sie eine Zeichenfolge mit dem aktuellen Datum abrufen, das für das Gebietsschema des Geräts formatiert ist:

Wenn die aktuelle Gerätesprache Englisch ist, wie in den USA gesprochen, enthält die Zeichenfolge das aktuelle Datum in einem kurzen Datumsformat. 30/11/2014. Das DateFormat Die Klasse enthält einige andere Datumsformate. Zum Beispiel die getLongDateFormat Die Methode gibt ein langes Datumsformat zurück. Sonntag, 30. November 2014.

Zeit Ort

Da die Zeiten durch dargestellt werden Date Objekte vom Android SDK müssen auch mit einem vom Format zurückgegebenen Formatierer angezeigt werden DateFormat Klasse der android.text.format Namespace. Das getTimeFormat Gibt ein Format zurück, das nur die Zeit von a anzeigt Date Objekt. Das folgende Codeausschnitt zeigt, wie eine Zeichenfolge mit der aktuellen Zeit abgerufen wird, die für das Gebietsschema des Geräts formatiert ist:

Wenn das aktuelle Gebietsschema des Geräts Englisch ist, wie in den USA gesprochen, enthält die Zeichenfolge die aktuelle Uhrzeit im folgenden Format: 20 h 15.

Fazit

Es ist wichtig, nur die Zeichenfolgen zu suchen, die in der Benutzeroberfläche der Anwendung verwendet werden. Beispielsweise ist es nicht erforderlich, Debug-Meldungen zu suchen, die nur während der Entwicklung oder zu Diagnosezwecken verwendet werden. Beachten Sie auch, dass Sie keine lokalisierten Datums- und Uhrzeitangaben auf die Festplatte oder in eine Datenbank schreiben sollten. Das Gebietsschema eines Geräts kann sich nicht nur ändern, die Verwendung lokalisierter Datums- und Uhrzeitangaben macht die Entwicklung unnötig schwierig und komplex.

Moyens Staff
Moyens I/O-Personal. motivierte Sie und gab Ratschläge zu Technologie, persönlicher Entwicklung, Lebensstil und Strategien, die Ihnen helfen werden.