Vorbereiten Ihrer Windows Store-App für den Weltmarkt

Möchten Sie Ihre neue App weltweit anbieten und mehr potenzielle Kunden erreichen? Mit Windows 8 ist es so einfach wie noch nie, eine App zu erstellen, die sich an verschiedene Sprachen und Regionen anpassen lässt. In diesem Beitrag zeige ich Ihnen, wie Sie mit minimalen Codeänderungen eine neue App für den internationalen Markt erstellen.

Sara Thomas hat die Marktchancen für Sie in ihrem Beitrag über das Multilingual App Toolkit erläutert. Ihre Erwähnung, dass Apps potenziell bis zu 4,5 Milliarden Benutzer erreichen und in mehr als 200 Märkten angeboten werden können, weckt hoffentlich Ihr Interesse, hier weiterzulesen.

Ein Beispiel

Stellen Sie sich vor, Sie entwickeln eine Tablet-App für den Windows Store, die in einem Autoverleih verwendet wird. Der Verleihmitarbeiter und die Kundin verwenden die App, um ein Bild des Mietwagens, eine Beschreibung sowie dessen Standort auf dem Parkplatz anzuzeigen. Sie nehmen das Tablet mit, um Informationen über das Auto einzugeben oder zu überprüfen (z. B. den aktuellen Kilometerstand) und etwaige Schäden festzuhalten. Die Kundin unterzeichnet den Mietvertrag auf dem Tablet.

Autoverleih-App mit Texten und Steuerelementen in englischer Sprache

Dieselbe App wird bei der Rückgabe des Autos verwendet. Der aktuelle Kilometerstand und mögliche neue Schäden am Auto werden eingegeben. Diese Vorgehensweise ist universell. Das Mieten eines Autos erfolgt weltweit auf ähnliche Weise. Diese App ist ein großartiger Kandidat für den globalen Marktmit einem hohen Absatzpotenzial.

Beim Entwickeln der App setzen Sie zwei eng miteinander verknüpfte Verfahren ein:

  • Globalisierung: Der Prozess des Entwerfens und Entwickelns einer App, sodass sie in mehreren Regionen und Sprachen funktioniert.
  • Lokalisierung: Der Prozess des Anpassens der App (einschließlich Text und Grafik) an die sprachlichen, kulturellen und politischen Erwartungen eines bestimmten lokalen Markts.

Globalisierung

Ein paar Aspekte, die Sie beim Globalisieren der App beachten sollten:

  • Entwerfen Sie ein flexibles App-Layout

Entwerfen Sie keine statischen Apps. Windows Store-Apps unterstützen Layoutfunktionen, durch die Ihre App flexibel wird und sich an unterschiedliche Textformate, Layouts und Ausrichtungen anpassen lässt. Empfehlungen finden Sie im Dev Center unter Auswählen eines Layouts.

Wenn Sie aus irgendeinem Grund statische Formen verwenden müssen, stellen Sie sicher, dass die Textfelder und Schaltflächenbeschriftungen groß genug sind, um die Übersetzungen unterzubringen. Die Übersetzung englischer Texte kann um bis zu 40 % länger sein als der Originaltext. Zusätzlicher vertikaler Raum wird für Sprachen mit Sonderbuchstaben wie Å oder Ņ benötigt, oder für solche, die eine höhere Mindestschriftgröße erfordern, um gut lesbar zu sein.

  • Erstellen Sie Texte und Bilder, die leicht zu übersetzen sind

Sie möchten, dass Ihre App leicht in andere Sprachen und Regionen zu übersetzen ist, unabhängig davon, ob Sie die Übersetzung selbst vornehmen oder andere damit beauftragen.

Aspekte, die Sie beachten sollten:

    • Vermeiden Sie Umgangssprache oder Metaphern, die spezifisch für eine bestimmte Sprache sind.
    • Vermeiden Sie Technikjargon, Abkürzungen oder Akronyme, die schwer zu übersetzen sind.

Wenn Ihre App informelle Redewendungen oder einen bestimmten Soziolekt enthält, sollten Sie die Übersetzer darauf hinweisen.

    • Vermeiden Sie Text in Bildern, der übersetzt werden muss.
    • Vermeiden Sie außerdem regionalspezifische Bilder (wie z. B. Briefkästen) mit Inhalten, die nicht auf der ganzen Welt gebräuchlich sind. Wenn diese unvermeidbar sind, stellen Sie lokalisierte Bilder bereit. (Darauf komme ich später zurück.)
  • Achten Sie sorgfältig auf kulturelle Unterschiede

Bilder, die in Ihrer eigenen Kultur angemessen sind, können in anderen Kulturen beleidigend wirken oder falsch interpretiert werden.

Aspekte, die Sie beachten sollten:

  • Vermeiden Sie die Verwendung von religiösen Symbolen und Tieren sowie Farbkombinationen, die mit Nationalflaggen oder politischen Bewegungen assoziiert werden.
  • Vermeiden Sie Landkarten, die umstrittene regionale oder nationale Grenzen enthalten. Bezeichnen Sie eine Nation als „Land/Region“. Sie sollten keine umstrittenen Territorien in eine Liste mit der Bezeichnung „Länder“ aufnehmen.
  • Gehen Sie achtsam vor, wenn Sie Farben zur Bedeutungsvermittlung verwenden. Farben sind in verschiedenen Kulturen unterschiedlich konnotiert. Versuchen Sie, Informationen durch weitere Mittel wie Größe, Form oder Beschriftung zu vermitteln. So können auch farbblinde Benutzer Ihre App verwenden.

Verwenden Sie Globalisierungs-APIs, um Datumsangaben, Uhrzeiten, Zahlen und Währungen in den entsprechenden Formaten darzustellen

Unsere Autoverleih-App enthält Datumsangaben und Uhrzeiten für das Aus- und Einchecken des Autos. Diese sollen in den entsprechenden Sprachen und Formaten angezeigt werden. Achten Sie darauf, dass der Kilometerstand mit dem entsprechenden Zahlenformat und der Mietpreis in der richtigen Währung angezeigt werden.

Mit Globalisierungs-Namespaces lassen sich formatierte Objekte für Ihre Windows Store-App erstellen. Diese Objekte stellen Zeichenfolgen bereit, die in der bevorzugten Sprache des Benutzers formatiert sind. Beispielsweise zeigen Sie das heutige Datum mit JavaScript in der jeweiligen Sprache des Benutzers an:

JavaScript

 var dtf = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter
              ("dayofweek day month year");
var now = new Date();
var el = document.getElementById('todaysDate');
el.TextContent = dtf.format(now);

C#

 var dtf = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter
              ("dayofweek day month year");
DateTime now = DateTime.Now;
todaysDate.Text = dtf.Format(now);  // todaysDate is a XAML TextBlock.

Weitere Informationen finden Sie unter Schnellstart: Verwenden weltweit einsetzbarer Formate. Beachten Sie auch unsere Formatierungsbeispiele:

Lokalisierung

Da Sie nun alle Informationen zum Entwerfen einer globalisierten App haben, möchten Sie bestimmt mit dem Code beginnen. Nutzen Sie beim Erstellen Ihrer App die Ressourcentechnologie von Windows 8 zur Unterstützung bei der Lokalisierung.

Schreiben Sie Ihre App nicht mit der Idee, dass Sie sie irgendwann später bei Bedarf für eine andere Sprache lokalisieren. Um Ihre App lokalisierbar zu gestalten, sollten Sie sich am besten vorstellen, dass die erste Version bereits für die ursprüngliche Sprache lokalisiert ist. Befolgen Sie daher von Anfang an die folgenden Schritte:

Trennen Sie Code und Ressourcen

Verwenden Sie beim Schreiben des Codes keine hartcodierten Zeichenfolgen, Anzeigeelemente oder Steuerelemente – weder Titel, Bezeichnungen, Schaltflächenbeschriftungen, Bildunterschriften noch Absätze. Die vollständige Trennung von Code und Zeichenfolgenressourcen bietet zwei sich ergänzende Vorteile:

  • Sie können Ressourcen separat vom Code lokalisieren. Übersetzer müssen nicht Ihren Code kompilieren, sodass Sie sich keine Gedanken darüber machen müssen, dass bei der Lokalisierung Bugs verursacht werden.
  • Sie können den Code von den Inhalten der Ressourcen trennen. Code kann in einer einzigen Codebasis geändert werden, sodass das Risiko verringert wird, lokalisierte Inhalte zu ändern.

Verweisen Sie im Markup mithilfe von Ressourcenbezeichnern auf Ressourcen. (Dies wird im nächsten Abschnitt erläutert.) Die Zeichenfolgen werden aus der entsprechenden Ressource abgerufen und beim Verarbeiten der Seite angezeigt.

Laden Sie in Ihrem Code Zeichenfolgen mithilfe von Ressourcenbezeichnern, um die entsprechenden Versionen abzurufen.

Schreiben Sie Markup und Code, die Ressourcen verwenden

HTML und JavaScript

Ich stelle ein paar Highlights eines Verfahrens vor, das unter Schnellstart: Verwenden von Zeichenfolgenressourcen (Windows Store-Apps mit JavaScript und HTML) noch ausführlicher behandelt wird. Verwenden Sie die Informationen in diesem Schnellstart, während Sie den Code schreiben.

Erstellen Sie in Visual Studio einen Ordner für die Ressourcendateien. Speichern Sie die Ressourcendatei für jede Sprache in einen Unterordner, der nach dem BCP-47-Sprachtag benannt ist. Die Ressourcendatei selbst wird normalerweise mit „resources.resjson“ benannt.

Erstellen Sie beispielsweise für US-amerikanisches Englisch im Ordner „strings/en-US“ die folgende „resources.resjson“-Datei:

 {
    "greeting"              : "Hello",
    "_greeting.comment"     : "A welcome greeting.",

    "farewell"              : "Goodbye",
    "_farewell.comment"     : "A goodbye."
}

Hierbei handelt es sich um strikte JSON-Syntax (JavaScript Object Notation), bei der ein Komma nach jedem Name/Wert-Paar gesetzt werden muss, mit Ausnahme des letzten. In diesem Beispiel bezeichnen „greeting“ und „farewell“ die anzuzeigenden Textzeichenfolgen. Wir haben außerdem „_greeting.comment“ und „_farewell.comment“ als Kommentare zum Beschreiben der Zeichenfolgen erstellt. Die Kommentare sind der Ort, an dem Sie spezielle Anweisungen für Übersetzer bezüglich Wortwahl, Tonfall oder Bedeutung bereitstellen.

Verweisen Sie im HTML-Code mithilfe der Ressourcenbezeichner auf die Zeichenfolgenressourcen:

 <h2><span data-win-res="{textContent: 'greeting'}"></span></h2>
<h2><span data-win-res="{textContent: 'farewell'}"></span></h2>

In JavaScript können Sie wie folgt Zeichenfolgen abrufen und diese in den HTML-Code einbinden:

 var el = document.getElementById('header');
var res = WinJS.Resources.getString('greeting');
el.textContent = res.value;
el.setAttribute('lang', res.lang);

XAML und C#/VB/C++

Weitere Hinweise finden Sie unter Schnellstart: Verwenden von Zeichenfolgenressourcen (Windows Store-Apps mit C#/VB/C++ und XAML).

Erstellen Sie in Visual Studio einen Ordner für die Ressourcendateien. Sie speichern Sie die Ressourcendatei für jede Sprache in einen Unterordner, der nach dem BCP-47-Sprachtag benannt ist. Die Ressourcendatei selbst wird normalerweise mit „resources.resw“ benannt.

Erstellen Sie beispielsweise für US-amerikanisches Englisch im Ordner „Strings/en-US“ die folgende „Resources.resw“-Datei:

Ressourcendatei mit Name, Wert und Kommentar der zu anzeigenden Textzeichenfolge

In diesem Beispiel bezeichnen „Greeting.Text“ und „Farewell“ die anzuzeigenden Textzeichenfolgen. Der Bezeichner „Greeting.Text“ enthält die Eigenschaft des XAML-Steuerelements, das die Zeichenfolge empfängt, und „Farewell“ bezeichnet eine Zeichenfolge, die vom Code geladen werden soll. Die Kommentare sind der Ort, an dem Sie spezielle Anweisungen für Übersetzer bezüglich Wortwahl, Tonfall oder Bedeutung bereitstellen.

Verweisen Sie im XAML-Code mithilfe des Ressourcenbezeichners und der Eigenschaft auf die Zeichenfolgenressource:

 <TextBlock x:Uid="Greeting" Text="" />

In C# können Sie Zeichenfolgen wie folgt abrufen:

 var loader = new Windows.ApplicationModel.Resources.ResourceLoader();
var string = loader.GetString('Farewell');

Stellen Sie lokalisierte Bilder bereit

Wenn Sie keine Bilder erstellen können, die ohne Übersetzung auskommen, können Sie lokalisierte Versionen erstellen. Die entsprechende Datei kann dann automatisch von der App geladen werden. Tatsächlich verwenden Sie die gleiche Ressourcentechnologie neben der Lokalisierung auch zum Erstellen mehrerer Versionen Ihrer Bilder für verschiedene Skalierungsfaktoren, Kontrasteinstellungen und mehr.

Sie können beispielsweise Ihre Logodatei in Kombinationen aus verschiedenen Skalierungsfaktoren, Kontrasteinstellungen und mehreren Sprachen erstellen. Benennen Sie die Dateien wie folgt:

  • Images\en-Us\logo.scale-100.png
  • Images\en-Us\logo.scale-140.png
  • Images\fr-Fr\logo.scale-100.png
  • Images\fr-Fr\logo.scale-140.png

Ihre App verweist einfach auf „Images/logo.png“, und das entsprechende Bild wird geladen. Unter So wird's gemacht: Benennen von Ressourcen mithilfe von Qualifizierern finden Sie weitere Informationen.

Windows Store-Anforderungen

Ich habe Ihnen eine große Anzahl von Märkten für Ihre App versprochen. Um die App in all diesen Märkten zu verkaufen, müssen Sie die Windows Store-Anforderungen einhalten. Im Folgenden erhalten Sie ausführliche Informationen zur App-Zertifizierung sowie der Auswahl von Märkten und Sprachen.

    • Zertifizierungssprachen: Die Sprachen, die bei der Bestätigung unterstützt werden, dass Ihre App unsere Zertifizierungsanforderungen erfüllt. Ihre App muss mindestens eine dieser Sprachen unterstützen.
    • Zulässige Sprachen: Sprachen, die wir unterstützen, die jedoch nicht im Rahmen des Zertifizierungsvorgangs verwendet werden. Ihre App kann beliebig viele dieser Sprachen unterstützen, solange sie mindestens eine der Zertifizierungssprachen unterstützt.

Zusammenfassung

Wie steht es um unsere Autoverleih-App? Wenn wir sie korrekt erstellt haben, enthält sie alle Textzeichenfolgen und Bilder in Ressourcen. Sie zeigt Datumsangaben, Uhrzeiten, Zahlen und Währungen im richtigen Format für die bevorzugte Sprache des Benutzers an. Und wenn wir sie für einen weiteren Markt lokalisieren möchten, ändern wir nicht den Code – wir fügen eine neue Ressourcendatei (von uns selbst oder einem Übersetzer übersetzt) und neue Bilddateien (soweit erforderlich) hinzu und erstellen die App neu.

Autoverleih-App in französischer Sprache

Weitere Informationen über die hier beschriebenen Verfahren finden Sie unter den folgenden Links:

– Ray Shuman, Programmierer, Windows Content Services

Besonderer Dank geht an Karl Bridge, Rylan Hawkins, Dave Shevitz und Bob Watson für ihre Hilfe und die Mitarbeit an diesem Beitrag.