Post on 25-Jan-2017
© Zühlke 2015
Software in Medizingeräten effektiv internationalisierenSoftware in Medizingeräten effektiv internationalisieren | Tobias Kniep 15. Oktober 2015
© Zühlke 2015
Probleme
• Zu wenig Speicher für Schriftarten
• Displayauflösung zu gering
• Unpassendes UI-Design
• Unzureichende Frameworks
• Schlechte Datenstrukturen für Strings
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Aus dem Projektalltag
© Zühlke 2015
Motivation für i18n
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Usability
© Zühlke 2015
Motivation für i18n
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Safety
© Zühlke 2015
Motivation für i18n
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Akzeptanz
© Zühlke 2015
Projektsituation
• Entwicklung weit fortgeschritten
• Englisch und Deutsch funktionieren bereits
• Weitere Zielsprachen noch unklar
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Gerät in Entwicklung
© Zühlke 2015
Neue Anforderung
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Unterstützung für Japanisch
© Zühlke 2015
© Zühlke 2015
Character Set“A character set simply provides acommon bucket, repertoire, or collection of characters.”
Ken Lunde, CJKV Information Processing
© Zühlke 2015
Coded Character Set“A mapping from a set of abstract characters to a set of integers.”
Ken Lunde, CJKV Information Processing
© Zühlke 2015
Große Auswahl
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Den richtigen Character Set finden
• International und länderspezifisch
• Oft normiert
• ASCII noch immer verbreitet
• Empfehlung: Unicode
© Zühlke 2015
Zu viele Zeichen
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Auf Untermenge festlegen
ASCII128
JIS X 0213:2004 4354
Unicode BMP 65536
Unicode120737
© Zühlke 2015
Datenstrukturen
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Wie stelle ich Character Codes in Software dar?
© Zühlke 2015
ASCII
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Beispiel
H e a l t h
[0x48,0x65,0x61,0x6C,0x74,0x68]
© Zühlke 2015
Encoding Form
„A character encoding form plus byte serialization “
Glossary of theUnicode Consortium
„Mapping from a character set definition to the actual code units used to represent the data.”
Encoding Scheme
© Zühlke 2015
Encodings
健康
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Warum ist das wichtig?
UTF-8:0xE5,0x81,0xA5,0xE5,0xBA,0xB7
UTF-16LE:0x65,0x50,0xB7,0x5E
UTF-32BE:0x00,0x00,0x50,0x65,0x00,0x00,0x5E,0xB7
U+5065 U+5EB7 臥?랺
© Zühlke 2015
Schon wieder eine große Auswahl
• ASCII noch verbreitet
• Manche Character Sets geben Encoding vor
• Unicode definiert mehrere
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Das richtige Encoding finden
© Zühlke 2015
Endianess / Byte-Order
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Eigentlich ganz einfach, aber…
© Zühlke 2015
Endianess
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Warum ist das wichtig?
Little Endian (UTF-16LE):
0x65, 0x50, 0xB7, 0x5E
Big Endian (UTF-16BE):
0x50, 0x65, 0x53, 0xb7
敐띞
健康
0x5065 0x5EB7
© Zühlke 2015
UTF-8
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Eigenschaften
H 0x48
¥ 0xC2, 0xA5
健 0xE5, 0x81, 0xA5
𠀷 0xF0, 0xA0, 0x80, 0xB7
© Zühlke 2015
UTF-16
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Eigenschaften
H 0x0048
¥ 0x00A5
健 0x5065
𠀷 0xD840,0xDC37
© Zühlke 2015
UTF-32
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Eigenschaften
H 0x00000048
¥ 0x000000A5
健 0x00005065
𠀷 0x00020037
© Zühlke 2015
Anzeige
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Wie stelle ich meine Zeichen dar?
© Zühlke 2015
Font“A collection of glyphs usedfor the visual depictionof character data.”
Glossary of theUnicode Consortium
Glyph“A specific instance of a character.”
Ken Lunde, CJKV Information Processing
© Zühlke 2015
Bitmap Font
• Pixel-Matrix
• Leicht darzustellen
• Vorhersagbar
• Keine Skalierung
• Hoher Speicherbedarf
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Vor- und Nachteile
© Zühlke 2015
Anti-Aliasing
• Schöneres Schriftbild
• Wird üblicherweise erwartet
• Erhöht Speicherbedarf bei Bitmap Fonts
• Darstellung komplexer
• Überprüfung schwieriger
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Auswirkungen
© Zühlke 2015
Outline Font
• Mathematisch beschrieben
• Rendering-Engine nötig
• Schlecht vorhersagbar
• Skalierung kein Problem
• Geringer Speicherbedarf
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Vor- und Nachteile
© Zühlke 2015
Zusammenfassung
•Character Set•Encoding•Font
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Was haben wir betrachtet?
© Zühlke 2015
Zusammenfassung
15. Oktober 2015Software in Medizingeräten effektiv internationalisieren | Tobias Kniep
Und was nicht?
• Übersetzung
• Texteingabe
© Zühlke 2015
tobias.kniep@zuehlke.com