2009-07-17 15 views
0

Wie ändert man die Sprache in der iPhone-Anwendung?Sprache ändern

ich meine zB: in meiner Anwendung ein Label ist da ich will ein niederländisches Wort. Was ist der einfache Weg.

  1. Lese von Immobilien Datei

  2. macht eine statische Klasse in Projekt mit String-Variablen.

oder ist jede Änderung in der Eigenschaftendatei möglich.

pls help me ... thnx und in Bezug auf alle

+1

Sie können auf ch17 im Buch Beginn der iPhone-Entwicklung verweisen. –

Antwort

4

Es gibt eine Tonne gebaut Infrastruktur dafür ist. Grundsätzlich haben die NSBundle-APIs das Konzept der Lokalisierung und leiten alles, was sie durchläuft, transparent in eine entsprechend lokalisierte Version um, wenn eine verfügbar ist. Wenn Sie jemals ein ".lproj" in Ihrem Paket gesehen haben, ist das für die Lokalisierung.

Okay, also ist die Frage, wie Sie das einrichten? Mit Nibs ist es einfach, du legst einfach mehrere Kopien der Feder in deine App, eine in jedem Lproj. Strings sind ein wenig komplizierter, was Sie tun, ist eine Strings.localizable-Datei erstellen, und dann, wenn Sie eine Zeichenfolge benötigen, rufen Sie NSLocalizedString(), die die Zeichenfolge in der Localized.strings-Datei Ihrer aktuellen Sprache sucht.

Xcode hat einige eingebaute Möglichkeiten, dies schnell einzurichten. Sie können eine beliebige Ressource auswählen und das Fenster "Informationen anzeigen" öffnen. Dort befindet sich die Schaltfläche "Localizable". Sobald Sie darauf klicken, wird eine weitere Schaltfläche "Lokalisierungen hinzufügen" angezeigt, mit der Sie bestimmte Lokalisierungen zum Projekt hinzufügen können. An dieser Stelle befindet sich neben Ihrer Ressource ein Dreieck, mit dem Sie die Ressource in jedem bestimmten Gebietsschema bearbeiten können.

Je nach App gibt es eine Reihe von Möglichkeiten, um einige dieser Dinge zu handhaben, und Apple bietet die entsprechenden Tools, um dies zu vereinfachen. This ist ein anständiger Blog-Post darüber, wie man Dinge lokalisieren kann.

Die Sache, an die Sie denken sollten, ist, dass Sie wahrscheinlich falsch liegen, wenn Sie die Lokalisierung nachschlagen und manuell entscheiden, welche Ressourcen Sie verwenden sollen. In den meisten Fällen möchten Sie einfach den Ort angeben, der eine Lokalisierung erfordert, und das System nach der Ressource über eine API fragen, die diese für Sie verarbeitet (NSLocalizedString(), - [NSBundle pathForResource: ofType:] usw.).

+0

gibt es ein Problem mit diesem Ansatz. Angenommen, der Benutzer iphone ist auf Deutsch eingestellt und die Anwendung hat keine Lokalisierung für Deutsch. Was geschieht? Wie kann ich der Anwendung mitteilen, eine Standardsprache zu verwenden, falls die aktuelle Sprache nicht übersetzt wurde? – SpaceDog

+0

Aus diesem Grund sollten Sie die eingebaute Infrastruktur nutzen, um so etwas für Sie zu tun. Im Speziellen betrachtet das Telefon die Lokalisierungen, die Sie haben, und wählt basierend auf den Benutzereinstellungen das beste aus. Wenn Ihre Anwendung nur eine Lokalisierung hat, wird sie verwendet, unabhängig davon, was der Benutzer angegeben hat, da sie die einzige ist, die verfügbar ist. –