213
The St8 of Rails I18n Jan Krutisch, mindmatters, Hamburg [email protected] http://www.mindmatters.de /

Rails i18n - Railskonferenz 2007

Embed Size (px)

DESCRIPTION

Rails Internationalisierung

Citation preview

Page 1: Rails i18n - Railskonferenz 2007

The St8 of Rails I18n

Jan Krutisch, mindmatters, [email protected]://www.mindmatters.de/

Page 2: Rails i18n - Railskonferenz 2007

Jan Krutisch

Page 3: Rails i18n - Railskonferenz 2007

Dipl.-Ing. (FH) Umwelttechnik

Page 4: Rails i18n - Railskonferenz 2007

Webentwicklung seit1996

Page 5: Rails i18n - Railskonferenz 2007

2002 - 2006AOL DeutschlandWeb-Engineer

Page 6: Rails i18n - Railskonferenz 2007

bzw. Interactive Media Developer

Page 7: Rails i18n - Railskonferenz 2007

bzw. Online-Producer

Page 8: Rails i18n - Railskonferenz 2007

2006 - 2007qype.comRails-Entwickler

Page 9: Rails i18n - Railskonferenz 2007

2007 - Time.nowmindmattersEntwicklungsleiter

Page 10: Rails i18n - Railskonferenz 2007

Buchautor

Page 11: Rails i18n - Railskonferenz 2007

Webanwendungenmit Ruby on RailsRamon WartalaJan Krutisch

Addison-Wesley

http://www.amazon.de/Webanwendungen-Praxiseinstieg-Installation-Testing-Erweiterung/dp/3827324912/

Page 12: Rails i18n - Railskonferenz 2007

Gründer/ Sysadminrubyonrails-ug.de

Page 14: Rails i18n - Railskonferenz 2007

Internationalisierung

Page 15: Rails i18n - Railskonferenz 2007

I19g

Page 16: Rails i18n - Railskonferenz 2007

Sprachen

Page 17: Rails i18n - Railskonferenz 2007

Kulturen

Page 18: Rails i18n - Railskonferenz 2007

Länder?

Page 19: Rails i18n - Railskonferenz 2007

Locale

Page 20: Rails i18n - Railskonferenz 2007

Language tag

Page 21: Rails i18n - Railskonferenz 2007

de-DEen-USde-CH

fr-CH en-GBse-FIpt-BR

se-SE

Page 22: Rails i18n - Railskonferenz 2007

Sprache

Page 23: Rails i18n - Railskonferenz 2007

Deutsch

Page 24: Rails i18n - Railskonferenz 2007

Jänner?

Page 25: Rails i18n - Railskonferenz 2007

de-AT

Page 26: Rails i18n - Railskonferenz 2007

localization?

Page 27: Rails i18n - Railskonferenz 2007

localiSation?

Page 28: Rails i18n - Railskonferenz 2007

en-US vs. en-GB

Page 29: Rails i18n - Railskonferenz 2007

Formate

Page 30: Rails i18n - Railskonferenz 2007

Datumsangaben

Page 31: Rails i18n - Railskonferenz 2007

1974-11-21

Page 32: Rails i18n - Railskonferenz 2007

Ein Hoch auf die ISO!

Page 33: Rails i18n - Railskonferenz 2007

16. Januar 1976

Page 34: Rails i18n - Railskonferenz 2007

18th of July, 2005

Page 35: Rails i18n - Railskonferenz 2007

06/22/2007

Page 36: Rails i18n - Railskonferenz 2007

9pm

Page 37: Rails i18n - Railskonferenz 2007

21:00

Page 38: Rails i18n - Railskonferenz 2007

21.00 Uhr

Page 39: Rails i18n - Railskonferenz 2007

Zahlen

Page 40: Rails i18n - Railskonferenz 2007

200.000,000

Page 41: Rails i18n - Railskonferenz 2007

200,000.000

Page 42: Rails i18n - Railskonferenz 2007

Und einige andere Dinge

Page 43: Rails i18n - Railskonferenz 2007

It‘s like 90 degrees in here

Page 44: Rails i18n - Railskonferenz 2007

Sprachfeatures

Page 45: Rails i18n - Railskonferenz 2007

Pluralisierung

Page 46: Rails i18n - Railskonferenz 2007

0 Dateien

Page 47: Rails i18n - Railskonferenz 2007

1 Datei

Page 48: Rails i18n - Railskonferenz 2007

2 Dateien

Page 49: Rails i18n - Railskonferenz 2007

5 Dateien

Page 50: Rails i18n - Railskonferenz 2007

5.000.000 Dateien

Page 51: Rails i18n - Railskonferenz 2007

1 Plik

Page 52: Rails i18n - Railskonferenz 2007

2 Pliki

Page 53: Rails i18n - Railskonferenz 2007

5 Plików

Page 54: Rails i18n - Railskonferenz 2007

5.000.000 Pliki

Page 55: Rails i18n - Railskonferenz 2007

Kultur

Page 56: Rails i18n - Railskonferenz 2007

Dear Doosie?

Page 57: Rails i18n - Railskonferenz 2007

Ansprache

Page 58: Rails i18n - Railskonferenz 2007

Ernsthaftigkeit

Page 59: Rails i18n - Railskonferenz 2007

Ironie

Page 60: Rails i18n - Railskonferenz 2007

Farben

Page 61: Rails i18n - Railskonferenz 2007

Formen

Page 62: Rails i18n - Railskonferenz 2007

Rechtliches

Page 63: Rails i18n - Railskonferenz 2007

fragt flickr

Page 64: Rails i18n - Railskonferenz 2007

IANAL

Page 65: Rails i18n - Railskonferenz 2007

Urheberrecht

Page 66: Rails i18n - Railskonferenz 2007

Jugendschutz

Page 67: Rails i18n - Railskonferenz 2007

Projektmanagement

Page 68: Rails i18n - Railskonferenz 2007

Deployment

Page 69: Rails i18n - Railskonferenz 2007

Roundtrip-Zeiten

Page 70: Rails i18n - Railskonferenz 2007

Übersetzungsworkflow

Page 71: Rails i18n - Railskonferenz 2007

versus

Page 72: Rails i18n - Railskonferenz 2007

Deploy early,deploy often

Page 73: Rails i18n - Railskonferenz 2007

‣ Neue Features‣ Übersetzung‣ Deployment‣ Neue Features‣ Übersetzung‣ Deployment

Drei sind zwei zuviel

Page 74: Rails i18n - Railskonferenz 2007

Tägliche Updates

Page 75: Rails i18n - Railskonferenz 2007

O RLY?

Page 76: Rails i18n - Railskonferenz 2007

Wöchentliche Updates

Page 77: Rails i18n - Railskonferenz 2007

Automatisierte Tests?

Page 78: Rails i18n - Railskonferenz 2007

QA notwendig

Page 79: Rails i18n - Railskonferenz 2007

Staging!

Page 80: Rails i18n - Railskonferenz 2007

Monatliche Updates?

Page 81: Rails i18n - Railskonferenz 2007

Übersetzungsworkflow

Page 82: Rails i18n - Railskonferenz 2007

Alle Strings

Page 83: Rails i18n - Railskonferenz 2007

Alle.

Page 84: Rails i18n - Railskonferenz 2007

Datenaustausch

Page 85: Rails i18n - Railskonferenz 2007

„Könnt Ihr die Texte als Word-Dokument exportieren?“

Page 86: Rails i18n - Railskonferenz 2007

„Oder WENIGSTENS Excel?“

Page 87: Rails i18n - Railskonferenz 2007

SkurrileÜbersetzungstools

Page 88: Rails i18n - Railskonferenz 2007

Datenverkehr

Page 89: Rails i18n - Railskonferenz 2007

„Subversion?!?2!1“

Page 90: Rails i18n - Railskonferenz 2007

E-Mail

Page 91: Rails i18n - Railskonferenz 2007

Beauftragter für Im- und Export

Page 92: Rails i18n - Railskonferenz 2007

Ich kann das selber!

Page 93: Rails i18n - Railskonferenz 2007

Deutsch?

Page 94: Rails i18n - Railskonferenz 2007

sicher

Page 95: Rails i18n - Railskonferenz 2007

Englisch?

Page 96: Rails i18n - Railskonferenz 2007

klar

Page 97: Rails i18n - Railskonferenz 2007

Französisch?

Page 98: Rails i18n - Railskonferenz 2007

nunja...

Page 99: Rails i18n - Railskonferenz 2007

Komplexe Probleme...

Page 100: Rails i18n - Railskonferenz 2007

...keine einfachen Lösungen

Page 101: Rails i18n - Railskonferenz 2007

Don‘t do it!

Page 102: Rails i18n - Railskonferenz 2007

unless @possible.nil?

Page 103: Rails i18n - Railskonferenz 2007

Schmerzlinderung

Page 104: Rails i18n - Railskonferenz 2007

Tools

Page 105: Rails i18n - Railskonferenz 2007

Automatisierung

Page 106: Rails i18n - Railskonferenz 2007

I18n MINI-HOWTO

Page 107: Rails i18n - Railskonferenz 2007

0. waffenwahl

Page 108: Rails i18n - Railskonferenz 2007

1. plugin/lib installieren

Page 109: Rails i18n - Railskonferenz 2007

2. Alle Strings Wrappen

Page 110: Rails i18n - Railskonferenz 2007

Hallo Welt --> <%= _(„Hallo Welt“) %>

Page 111: Rails i18n - Railskonferenz 2007

3. Strings sammeln

Page 112: Rails i18n - Railskonferenz 2007

automatisiert!

Page 113: Rails i18n - Railskonferenz 2007

4. Strings übersetzen

Page 114: Rails i18n - Railskonferenz 2007

5. Workflow etablieren!

Page 115: Rails i18n - Railskonferenz 2007

6. (Optional)Aufschrei der User bezüglich beschissener Übersetzungen abwarten

Page 116: Rails i18n - Railskonferenz 2007

fragt flickr

Page 117: Rails i18n - Railskonferenz 2007

Tools

Page 118: Rails i18n - Railskonferenz 2007

Marktüberblick

Page 119: Rails i18n - Railskonferenz 2007

Kriterien

Page 120: Rails i18n - Railskonferenz 2007

Vollständigkeit der Implementation

Page 121: Rails i18n - Railskonferenz 2007

Workflow-Unterstützung

Page 122: Rails i18n - Railskonferenz 2007

(Performanz)

Page 123: Rails i18n - Railskonferenz 2007

„Aus dem Weg bleiben“

Page 124: Rails i18n - Railskonferenz 2007

Kandidaten

Page 125: Rails i18n - Railskonferenz 2007

(diese Liste erhebt keinen Anspruch auf absolute Vollständigkeit)

Page 126: Rails i18n - Railskonferenz 2007

plugin:localization_simplified

Page 127: Rails i18n - Railskonferenz 2007

plugin: simple localization

Page 128: Rails i18n - Railskonferenz 2007

plugin: localization

Page 129: Rails i18n - Railskonferenz 2007

plugin: gloc

Page 130: Rails i18n - Railskonferenz 2007

plugin: globalite

Page 131: Rails i18n - Railskonferenz 2007

plugin: globalize

Page 132: Rails i18n - Railskonferenz 2007

gem:ruby/gettext

Page 133: Rails i18n - Railskonferenz 2007

plugin: gettext_localize

Page 134: Rails i18n - Railskonferenz 2007

localization_simplified

Page 135: Rails i18n - Railskonferenz 2007

localization_simplified‣ Scope: Anpassung von Rails an eine

Sprache != Englisch‣ AR-Fehlermeldungen‣ Helper-Anpassungen

‣ Keine UI-Übersetzung!‣ Keine Sprachdateien

Page 136: Rails i18n - Railskonferenz 2007

Vor- und Nachteile+ Einfache Handhabung/Installation+ Non-Invasiv

- Nicht alle Rails-Helper angepasst- Keine Übersetzung von Modellen/Attributen- (Beschränktes Einsatzgebiet)- Teilweise seltsame Übersetzungen

Page 137: Rails i18n - Railskonferenz 2007

simple localization

Page 138: Rails i18n - Railskonferenz 2007

simple localization

‣ Scope: Anpassung von Rails an eine Sprache != Englisch ‣ AR-Fehlermeldungen‣ Helper-Anpassungen

Page 139: Rails i18n - Railskonferenz 2007

Vor- und Nachteile+ Einfache Handhabung/Installation+ Non-Invasiv+ Übersetzung von Modellen/Attributen

- Nicht alle Rails-Methoden angepasst- (Beschränktes Einsatzgebiet)- Teilweise seltsame Datums-Formate

Page 140: Rails i18n - Railskonferenz 2007

localization

Page 141: Rails i18n - Railskonferenz 2007

localization

‣ Scope: Einfache Übersetzungen‣ UI-Übersetzung in ruby-code definiert

Page 142: Rails i18n - Railskonferenz 2007

Vor- und Nachteile

+ Einfache Handhabung/Installation

- Keine Rails-Helper angepasst- Übersetzungen als Ruby-Code- Keine Workflow-Automatismen

Page 143: Rails i18n - Railskonferenz 2007

gloc

Page 144: Rails i18n - Railskonferenz 2007

gloc

‣ UI-Übersetzung in YAML definiert‣ Helper angepasst

Page 145: Rails i18n - Railskonferenz 2007

Vor- und Nachteile+ Einfache Handhabung/Installation

- Nicht alle Rails-Helper angepasst- Helper-Übersetzungen nicht für „de“- Keine AR-Fehlermeldungen übersetzt- Keine Workflow-Automatismen

Page 146: Rails i18n - Railskonferenz 2007

globalite

Page 147: Rails i18n - Railskonferenz 2007

globalite

‣ UI-Übersetzung in YAML definiert‣ Helper angepasst

Page 148: Rails i18n - Railskonferenz 2007

Vor- und Nachteile

+ Einfache Handhabung/Installation

- Helper-Übersetzungen nicht für „de“- Einige Helper (noch) nicht angepasst- Keine Workflow-Automatismen

Page 149: Rails i18n - Railskonferenz 2007

globalize

Page 150: Rails i18n - Railskonferenz 2007

globalize‣ UI-Übersetzung in DB!‣ Helper angepasst‣ Keine (Automatische) Übersetzung von

AR-Fehlermeldungen‣ Modell-Übersetzungen

Page 151: Rails i18n - Railskonferenz 2007

Vor- und Nachteile+ Ermöglicht „online-Übersetzungen“+ Modell-Übersetzungen (auf 2 Arten)

- Schwieriger Einstieg- Workflow nur mit eigenem Code zu bauen- Keine Trennung von UI-Texten und Content- Keine Workflow-Automatismen

Page 152: Rails i18n - Railskonferenz 2007

ruby/gettext

Page 153: Rails i18n - Railskonferenz 2007

ruby/gettext

‣ basiert auf gettext‣ Eigenes Format für Text-Dateien‣ Fokus auf Workflow-Unterstützung‣ Helper

Page 154: Rails i18n - Railskonferenz 2007

Vor- und Nachteile+ Exzellente Workflow-Unterstützung+ Viele Tools

- Teilweise komplex- Teilweise schlechte Integration in Rails- Kaum Rails-Helper angepasst- (Fehlende Rake-Tasks für Automatisierung)

Page 155: Rails i18n - Railskonferenz 2007

gettext_localize

Page 156: Rails i18n - Railskonferenz 2007

gettext_localize

‣ basiert auf ruby/gettext‣ Tiefergehende Rails-Integration‣ Vereinfachung‣ Rake-Tasks

Page 157: Rails i18n - Railskonferenz 2007

Vor- und Nachteile

+ Alle Vorteile von Gettext+ Viele Helper angepasst

- Helper-Übersetzung nicht auf Deutsch

Page 158: Rails i18n - Railskonferenz 2007

praxiserfahrungen

Page 159: Rails i18n - Railskonferenz 2007

(casestudy)

Page 160: Rails i18n - Railskonferenz 2007

Globalize

Page 161: Rails i18n - Railskonferenz 2007

Eventuell mal Model-Translations?

Page 162: Rails i18n - Railskonferenz 2007

Übersetzungen in DB

Page 163: Rails i18n - Railskonferenz 2007

Doofe Idee.

Page 164: Rails i18n - Railskonferenz 2007

Sync DEV > STAGE > PROD???

Page 165: Rails i18n - Railskonferenz 2007

Versioniert, bitte!

Page 166: Rails i18n - Railskonferenz 2007

Subversion!

Page 167: Rails i18n - Railskonferenz 2007

Eigene rake-tasks fürim- und export

Page 168: Rails i18n - Railskonferenz 2007

csv als austauschformat

Page 169: Rails i18n - Railskonferenz 2007

CSV::ReaderCSV::Writer

Page 170: Rails i18n - Railskonferenz 2007

anstrengend

Page 171: Rails i18n - Railskonferenz 2007

merge-conflict-Hölle

Page 172: Rails i18n - Railskonferenz 2007

Keine automatische String-Sammlung

Page 173: Rails i18n - Railskonferenz 2007

Übersetzungs-GUI

Page 174: Rails i18n - Railskonferenz 2007

nicht bewährt

Page 175: Rails i18n - Railskonferenz 2007

Sync PROD > STAGE > DEV???

Page 176: Rails i18n - Railskonferenz 2007

Übersetzungswürgflow

Page 177: Rails i18n - Railskonferenz 2007

CSV-Datei an Übersetzer

Page 178: Rails i18n - Railskonferenz 2007

CSV vom Übersetzer

Page 179: Rails i18n - Railskonferenz 2007

Kontextfrei

Page 180: Rails i18n - Railskonferenz 2007

Sinnfrei

Page 181: Rails i18n - Railskonferenz 2007

Yes, Nummer, Abbruch

Page 182: Rails i18n - Railskonferenz 2007

(Audacity / MacOS X)

Page 183: Rails i18n - Railskonferenz 2007

Viele Iterationen

Page 184: Rails i18n - Railskonferenz 2007

Lehren

Page 185: Rails i18n - Railskonferenz 2007

Globalize für „traditionellen Workflow“ nicht geeignet

Page 186: Rails i18n - Railskonferenz 2007

Workflow ist wichtig

Page 187: Rails i18n - Railskonferenz 2007

Globalize bietet viel nicht

Page 188: Rails i18n - Railskonferenz 2007

Model Translations braucht man selten

Page 189: Rails i18n - Railskonferenz 2007

Wenn man sie braucht, klappt es mit globalize nicht

Page 190: Rails i18n - Railskonferenz 2007

Hätten wir doch nur...

Page 191: Rails i18n - Railskonferenz 2007

Zusammenfassung

Page 192: Rails i18n - Railskonferenz 2007

6 million ways to die

Page 193: Rails i18n - Railskonferenz 2007

choose one!

Page 194: Rails i18n - Railskonferenz 2007

simple localization

Page 195: Rails i18n - Railskonferenz 2007

für einsprachige Anwendungen

Page 196: Rails i18n - Railskonferenz 2007

(the simplest thing that could possibly work)

Page 197: Rails i18n - Railskonferenz 2007

ruby/gettext

Page 198: Rails i18n - Railskonferenz 2007

ausgereift

Page 199: Rails i18n - Railskonferenz 2007

workflow!

Page 200: Rails i18n - Railskonferenz 2007

Globalize für „besondere“ Zwecke

Page 201: Rails i18n - Railskonferenz 2007

User generated localisation

Page 202: Rails i18n - Railskonferenz 2007

Modell-Übersetzungen

Page 203: Rails i18n - Railskonferenz 2007

Und der Rest?!?

Page 204: Rails i18n - Railskonferenz 2007

Nicht Fisch

Page 205: Rails i18n - Railskonferenz 2007

Nicht Fleisch

Page 206: Rails i18n - Railskonferenz 2007

Was fehlt?

Page 207: Rails i18n - Railskonferenz 2007

german_rails

Page 208: Rails i18n - Railskonferenz 2007

Deutsche Übersetzungen

Page 209: Rails i18n - Railskonferenz 2007

generic globalize translation gui

Page 210: Rails i18n - Railskonferenz 2007

Workflow-Unterstützung

Page 211: Rails i18n - Railskonferenz 2007

F.I.T.-Projekthttp://fit.dit.upm.es/cgi-bin/trac.cgi

Page 212: Rails i18n - Railskonferenz 2007

Danke.