teil 6 : internationlisierung / lokalisierung...

40
Informatik II Informatik II Bachelor of Arts: TSIT Bachelor of Arts: TSIT Teil 6 : Teil 6 : Internationlisierung / Lokalisierung / Qualitätskontrolle Internationlisierung / Lokalisierung / Qualitätskontrolle Stephan Mechler Stephan Mechler 1. Vorlesung 23.06.2019 How many translators does it take to change a lightbulb? ....hmm, depends on the context!

Upload: others

Post on 18-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Informatik IIInformatik IIBachelor of Arts: TSITBachelor of Arts: TSIT

Teil 6 :Teil 6 : Internationlisierung / Lokalisierung / QualitätskontrolleInternationlisierung / Lokalisierung / Qualitätskontrolle

Stephan MechlerStephan Mechler1. Vorlesung

23.06.2019

How many translators does it take to

change a lightbulb?

....hmm,depends on the context!

Page 2: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

22INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Status Quo

▪ Weltweite Märkte und Vernetzung

▪ Vertrieb bzw. Nutzung von Programmen weltweit.♦ Ein Programm für jede Sprache schreiben?

♦ NEIN!

♦ Antwort: Lokalisierung von zuvor Internationalisierten Programmen

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 3: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

33INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Internationalisierung

Was ist Internationalisierung?

▪ Software wir so konzeptioniert dass Sie

♦ leicht

♦ An Kulturen

♦ Sprachen angepasst werden kann

▪ Kurz: i18n

Was Ist Informatik → Was ist ein Computer? → Was Ist Information? → Felder der Informatik → Betriebssysteme →

Page 4: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

44INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

I18n = INTERNATIONALIZATION

INTERNATIONALIZATION

I18n

Page 5: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

55INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Lokalisierung

Was ist Lokalisierung?

▪ Anpassung der Inhalte einer Software an

♦ Region

♦ Kulturen

♦ Sprachen

▪ Kurz: l10n

Was Ist Informatik → Was ist ein Computer? → Was Ist Information? → Felder der Informatik → Betriebssysteme →

Page 6: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

66INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Lokalisierung

Betroffene Inhalte?

▪ Farben, Grafiken, Farbpaletten

▪ Zeichensätze, Schreibrichtungen

▪ Texte

▪ Video, Audio

▪ Konventionen in Bezug auf Datum, Dezimalzahlen,Währungen, Telefonnummern

Was Ist Informatik → Was ist ein Computer? → Was Ist Information? → Felder der Informatik → Betriebssysteme →

Page 7: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

77INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 26.09.08)

??? Fragen

Welche Fragen

haben Sie?

Welche Fragen

haben Sie?Programmiersprachen → Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius

Page 8: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

88INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 26.09.08)

JETZT

Internationalisierung und Lokalisierung

mit Java

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 9: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

99INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Kommandozeile – 2

public class Hello {

public static void main(String[ ] args) {System.out.println(“Hallo Mannheim!“);

}

}

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 10: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

1010INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Internationalisierung

Was Ist Informatik → Was ist ein Computer? → Was Ist Information? → Felder der Informatik → Betriebssysteme →

# HelloWorld_de.properties HelloWorld=Hallo Welt. Bye=Tschüss.

# HelloWorld_en.properties HelloWorld=Hello World. Bye=Bye.

<name>_<language>_<country>.properties

Page 11: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

1111INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

1. Beispiel

import java.util.*;

public class I18NHelloWorld { public static void main( String[] args ) { String baseName = "resources.HelloWorld"; try { ResourceBundle bundle = ResourceBundle.getBundle( baseName ); System.out.println( bundle.getString("HelloWorld") ); } catch ( MissingResourceException e ) { System.err.println( e ); } } }

Was Ist Informatik → Was ist ein Computer? → Was Ist Information? → Felder der Informatik → Betriebssysteme →

Page 12: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

1212INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Anderer Sprachen und Regionen

Was Ist Informatik → Was ist ein Computer? → Was Ist Information? → Felder der Informatik → Betriebssysteme →

Page 13: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

1313INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 26.09.08)

??? Fragen

Haben SieFragen?

Haben SieFragen?

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 14: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

1414INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

2. Beispiel

import java.util.MissingResourceException;import java.util.ResourceBundle;import java.util.Locale;

public class I18NHelloWorld2 { public static void main( String[] args ) { String baseName = "resources.HelloWorld"; try { ResourceBundle bundle = ResourceBundle.getBundle( baseName ); System.out.println( bundle.getString("HelloWorld") ); System.out.println( bundle.getString("Bye") ); } catch ( MissingResourceException e ) { System.err.println( e ); } } }

Was Ist Informatik → Was ist ein Computer? → Was Ist Information? → Felder der Informatik → Betriebssysteme →

Page 15: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

1515INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

3. Beispiel

import java.util.MissingResourceException;import java.util.ResourceBundle;import java.util.Locale;

public class I18NHelloWorld3 { public static void main( String[] args ) { String baseName = "resources.HelloWorld"; Locale.setDefault( new Locale("en", "GB") ); try { ResourceBundle bundle = ResourceBundle.getBundle( baseName ); System.out.println( bundle.getString("HelloWorld") ); System.out.println( bundle.getString("Bye") ); } catch ( MissingResourceException e ) { System.err.println( e ); } } }

Was Ist Informatik → Was ist ein Computer? → Was Ist Information? → Felder der Informatik → Betriebssysteme →

Page 16: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

1616INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 26.09.08)

??? Fragen

Welche Fragengibt es?

Datentypen→ Java Struktur → Variablen und Konstanten → Zuweisungen → Bedingungen: if → Schleifen Datentypen→ Java Struktur → Variablen und Konstanten → Zuweisungen → Bedingungen: if → Schleifen

Page 17: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

1717INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 26.09.08)

JETZT

Internationalisierungmit eclipse

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 18: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

1818INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Internationalisierung

Mit Eclipse

▪ Eigene Funktion um feste Strings in Ressourcen zu wandeln

♦ Externalize Source

▪ Eclipse, WB und Locale ermöglichen damit I18N

▪ Auch nachträglich

Was Ist Informatik → Was ist ein Computer? → Was Ist Information? → Felder der Informatik → Betriebssysteme →

Page 19: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

1919INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

3. Beispiel

Was Ist Informatik → Was ist ein Computer? → Was Ist Information? → Felder der Informatik → Betriebssysteme →

Page 20: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

2020INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

3. Beispiel

Was Ist Informatik → Was ist ein Computer? → Was Ist Information? → Felder der Informatik → Betriebssysteme →

Page 21: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

2121INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Anpassungen

Was Ist Informatik → Was ist ein Computer? → Was Ist Information? → Felder der Informatik → Betriebssysteme →

public class Messages {private static final String BUNDLE_NAME = "Text2Box"; //$NON-NLS-1$

private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);

private Messages() {}

public static void update() {Messages.RESOURCE_BUNDLE = ResourceBundle.getBundle(Messages.BUNDLE_NAME);

}public static String getString(String key) {

try {return RESOURCE_BUNDLE.getString(key);

} catch (MissingResourceException e) {return '!' + key + '!';

} }}

Page 22: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

2222INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 26.09.08)

JETZT

Qualitätssicherung

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 23: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

2323INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Prozesse

▪ Qualitätssicherung mittlerweile bei der Softwareentwicklung einen wichtigen Stellenwert.

▪ Alle Teile eine Software durchlaufen heutzutage Qualitätssicherungsprozesse

▪ Der Teil der Internationalisierung / Lokalisierung nimmt hierbei eine eigene Position mit eignen Aufgaben und Techniken ein.

▪ Verschiedene Firmen/Projekte/Teams können hierbei verschiedene QA Prozesse verwenden

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 24: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

2424INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Java -I18N Testing

▪ Für die Qualitätssicherung/Tests für I18n mit Java können Sie sich an folgenden Richtlinien und Techniken orientieren.▪ ((https://web.archive.org/web/20120816030156/http://developers.sun.com/sol

aris/articles/i18n/I18N_Testing.html)

▪ Grundsätzlich werden alle Tests vorgehensweisen in einem sogenannten QS-Handbuch festgehalten. Prodzeduren zum Test in Testplänen, die nach festgelegten Schema/ Zyklen abgearbeitet werden

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 25: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

2525INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Test lokalisierter Text-Ressourcen

▪ Kommen alles Text aus dem Katalog♦ Automatische Pseudo-Übersetzung aller

Labels

▪ Sprachspezifische Dateien prüfen♦ Werden alle sprachspezifische Dateien

gefunden?

▪ Stimmen die Größen der Texte bei GUI Objekten, wird die Größe richtig angepasst?♦ Peudo-Übersetzung mit kurzen / mittleren /

langen Texten

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 26: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

2626INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Test lokalisierter „nicht“ Text-Ressourcen

▪ Jedes Produkt hat auch „nicht Text“ Ressourcen♦ Images / Icons♦ Soundfiles♦ Hilfe♦ Use.

▪ Test dieser Daten durch Test mit Pseudodaten

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 27: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

2727INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Test: Datum, Zeit, Zahlen, Sortierte Daten

▪ Prüfe alle Anzeigen folgender Funktionen/Daten● Uhrzeit und Datumsfunktionen● Nummer + Separatoren / Dezimalpunkte● Währungen + Separatoren / Dezimalpunkte● Suchen● Sortierungen und deren Reihenfolge● Gebietsschema- und sprachspezifische

Silbentrennung, Zeilenumbruch und Interpunktion

▪ In jedem Gebietsschema: Alle Vorkommen anzeigen und prüfen.

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 28: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

2828INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Test: Multibyte Ausgabe

▪ Aufruf aller Produktfunktionen die Daten mit multibyte / extended ASCII erzeugen

▪ Verifikation der gedruckten / geschriebenen Daten

▪ Wiedereinlesen dieser Daten.

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 29: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

2929INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Test: Rückfall auf Standard Gebietsschema

▪ Was passiert wenn sich der Benutzer in einem Gebietsschema befindet in dem Teile nicht lokalisiert sind♦ Ausgabe in Standard Gebietsschema?♦ Nachricht dass gewähltes Gebietsschema

nicht/tlw. nicht vorhanden?♦ Programm beendet sich?♦ Programm stürzt ab?

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 30: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

3030INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Test: Überprüfung der Anzeige

▪ Werden Ausgaben (Commandline / GUI) richtig angezeigt.♦ Multibyte Text / Extended ASCII

▪ Test mit Pseudo-Übersetzung (Prefixing) für Multibyte Gebietsschemata bzw. multibyte Zeichen

▪ Beispiel: Japanisch: ♦ "File not found" as "JAXXFile not foundXXJA"

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 31: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

3131INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Test: Eingabe Methoden, Tastatureingabe

▪ Test der Eingabe für● Extended ASCII● Multiybyte (ja, zh, zh_TW, ko)● Akzent Charakter (Umlaute) ● Charakter via Shift/Ctrl/Alt / andere Keyboards

▪ Testen über manuelle Eingabe in Textfelder (ggf. automatisiert [Maven, AutoLt, Jmeter, Selenium usw.)

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 32: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

3232INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Test: Hilfe System and Hilfe Database Suche

▪ Einige Hilfe-System nutzen HTML/ Browser

▪ Daher i18N tests ♦ Generell ♦ Browser spezifisch und Encoding (Folie: 26)

▪ Test: Pseudo Lokalisation (+multibyte)

▪ Test in verschiedenen Gebietschemata, Prüfung ob geändertes oder default Schema benutzt wird

▪ Bei Suchfunktionen/DB-Suchfunktion Test, ob gebietsspezifische Daten/Dateien und Daten mit multibytes gefunden werden

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 33: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

3333INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Test: Browser und I18n-Encodings

Einige Produkte verwenden einen Webbrowser (ggf. für das Hilfesystem), deshalb müssen neben den grundlegenden Funktionen alle speziellen Funktion getestet werden:

▪ Wie reagiert Browser auf Dateien mit verschiedenen Encodings?

▪ Wird multibyte text korrekt dargestellt / gedruckt?

▪ Kann Encoding geladener Seite umgestellt+ angezeigt werden.

▪ Wird das <META> -Tag für Encoding einer Seite benutzt.

▪ Dürfen/Können Dateien im gewählten Encoding gespeichert werden?

▪ Behalten besuchte Seiten d. Encoding, wenn Sie einmal geladen wurden?

▪ Wird HTML Quellcode im Editor im ausgewählten Encoding dargestellt?

▪ Werden Bookmarks usw. mit Multibytezeichen richtig dargestellt?

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 34: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

3434INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Test: Browser und I18n-Encodings II

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Test: multibyte text:Wenn das zu testende Betriebssystem die Anzeige von Multibytetext erlaubt.

▪ Prüfung ob Mix von Einzel- und Multibyte-Zeichen funktioniert (siehe vorherige Folie).

▪ Prüfung von Dateien/Seiten mit der größtmöglichen Anzahl verschiedener HTML Tags (Forms, Frams, Tables, ggf. JS) in Verbindung mit Multibytezeichen

▪ Verwendung von Seiten mit <META> tags die ein anderes Encoding anzeigen. Beispiel;<META> HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=x-sjis">

Hiermit wird SJIS – Encoding für Japanisch eingestellt

Page 35: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

3535INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Test: Compiler

Wenn Compiler Teil des Produktes sind, müssen dessen i18N Gebiete zusätzlich zu den Basistest durchgeführt werden:

▪ Parst der Compiler Multibyte-Werte, Wo dürfen sie vorkommen: Kommentare, Strings, Argumente, Optionen

▪ Kommen die Compiler-Meldungen aus Dateien die übersetzt werden können (Ggf. in gebietspezifischen Verzeichnissen).

Test:

▪ Dateien anlegen mit multibyte text: Z.b. Schlüsselwörter, Kommentare, Strings usw. (wenn vom Compiler erlaubt) und in verschiedenen Schemata compilieren und testen..

▪ Prüfen ob multibyte Dateinamen und Verzeichnisse für Dateien benutzt werden können. (compilieren und testen)

▪ Compiler in einem Schemata aufrufen, in dem Compiler -Meldungen übersetzt und installiert sind (und/oder Pseudo Lokaliserung)

▪ Außerdem siehe: Message Catalog Testing

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 36: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

3636INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Verarbeitung von Multibyte Text und Daten

Verarbeitet, liest, speichert oder zeigt das Produkt (oder Teile davon) Pfade, Dateiinhalte oder andere Daten mit Multibyte- bzw. Extended ASCII charactern in verschiedenen Encodings an.

Beispiele:

▪ Dateiennamen, Pfade, (Class-Namen, Archive, HTML-Dateien, Textdateien, Kommentare, )

▪ Tool tipps, Statusleisten

▪ Applet oder andere HTML- Text oder ähnliches (codebases, silverligth, flash, usw.)

▪ Kommandozeilen parameter oder Produkt-Optionen

▪ Registierungs-, Kommentar- oder Feedbackfunktionen

▪ Browser: Pfade. Seitennamen, Dateinamen

▪ Gedruckte Informationen

▪ Datenbankfunktionalitäten

▪ Usw.

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 37: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

3737INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Verarbeitung von Multibyte Text und Daten

Test:

▪ Analysieren Sie das Produkt und erstellen Sie eine Liste:

▪ welche Bereiche Dateien, Pfade, Dateiinhalte und andere Informationen nutzen.

▪ Das Produkt in anderen Gebietsschemata läuft indem Multibyte oder Extended ASCII zulässig sind.

▪ Prüfen Sie ob diese Inhalte korrekt geparsed, verarbeitet und ausgegeben werden.

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 38: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

3838INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Source Code Tests und Reviews

▪ Prüfung dass keine hart-kodierten Strings im Quelltext (alles in Ressource-Dateien)

▪ Ggf. können Strings die nicht in ein i18n Katalog gehören speziell „ausgezeichnet“ werden (NOI18N)

▪ Wurden die Ressource-Dateien geprüft auf (manuelle / IT-Übersetzer):

♦ Kommentare für Übersetzer vorhanden wenn benötigt

♦ Gibt es fragmentierte Meldungen

♦ Gibt es Meldungen die auf Grund von Argumenten umsortiert werden (sprachlich).

♦ Sind die Meldungen klar, präzise und unmissverständlich

▪ Prüfung auf:

♦ doppelte Ressource-Identifiers (Keys im Ressource-File),

♦ Prüfung von umgebrochenen Strings,

♦ Sind die Ressouce-Datein korrekt

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 39: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

3939INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Test: Email, Registrierung, Installation, usw.

▪ E-mail Funktionen

▪ Registrierung

▪ Installations-Tools

▪ Lizenzierung

▪ Hilfe, Anweisungen, Verpackungsinstruktionen usw.

▪ Tools von Drittfirmen

▪ Test/Verifikation (nach vor genannten Methoden)

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare

Page 40: Teil 6 : Internationlisierung / Lokalisierung ...services.informatik.hs-mannheim.de/~mechler/inf2/inf2_6_i18n.pdf · INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

4040INF2 – TSIT , Imperative Programmierung - Teil I (V3 – 02.05.18)

Fazit

▪ I18n Tests …

♦ … sind umfangreich♦ … bedürfen Planung

(Testkatalog, Projektplanung)

♦ … benötigen geschultes Personal♦ … benötigen Testumgebungen♦ … benötigen Kontrolle♦ … können tlw. automatisiert werden

Java Einführung → Java Beispiel → Eclipse → IDE → Java Beispiel: Celsius → Kommentare