Anzeige
Anzeige
UX & Design

Internationalisierung von Webanwendungen mit Ruby on Rails: Parlez-vous Rails i18n?

Andere Länder, andere Sitten. Dieses Zitat besitzt auch im Web seine Gültigkeit. Einerseits müssen Webplattformen mit internationalem Publikum in verschiedene Sprachen übersetzt werden. Andererseits verfügen einzelne Länder und Regionen über unterschiedliche Formate. Ruby on Rails ist an vielen Stellen Inspirationsquelle für andere Frameworks. Das Thema Internationalisierung kam bisher zu kurz. Mit der Version 2.2 steht jetzt eine leistungsfähige API zur Verfügung, die Entwicklern die Arbeit deutlich erleichtert.

6 Min.
Artikel merken
Anzeige
Anzeige

Webplattformen aller Art stehen, was die Jagd nach dem Nutzer angeht, untereinander in einem starken Wettbewerb. Eine Variante, die Reichweite der Unternehmung im Netz zu steigern, ist die Durchführung einer Internationalisierung.

Was bedeutet der Begriff Internationalisierung?

Anzeige
Anzeige

Der Begriff Internationalisierung wird in verschiedenen Kontexten verwendet. Daher gibt es unterschiedliche Auffassungen, wie er zu verstehen ist. Am häufigsten wird der Themenkomplex in zwei Teile getrennt. Internationalisierung (Internationalization, kurz i18n) bezeichnet die Aufgabe, ein Programm so zu entwickeln, dass eine Anpassung an die Anforderungen von anderen Kulturen und Ländern möglich ist, ohne den Quellcode nachträglich verändern zu müssen. Die zweite Teilleistung ist die Lokalisierung (Localization, kurz l10n). Hier werden die Anforderungen, die ein Land stellt, konkret umgesetzt. Vorteilhaft an dieser Ansichtsweise ist die klare Trennung zwischen den beiden Teilleistungen: i18n beschreibt die Definition der abstrakten Schnittstellen und l10n füllt sie mit Leben.

Chancen und Spannungsfelder bei der Internationalisierung

Die Durchführung von i18n und l10n verspricht erhebliche Chancen, die Reichweite der eigenen Produkte zu vergrößern. Die Tatsache, dass man den Nutzerkreis durch die Erschließung neuer Sprachen und Länder ausweiten kann, ist nicht zu leugnen. Studien im E-Commerce belegen sogar, dass Menschen eher auf Plattformen kaufen, wo sie Informationen in ihrer Sprache präsentiert bekommen [1]. Daher begegnet einem im Beratungsalltag häufig die Auffassung von Produktmanagern, dass man „mal eben“ eine i18n durchführen oder von vornherein vorsehen könnte, weil eben so viel dafür spricht. Dass bei diesem Vorhaben neben den technischen Herausforderungen auch länderspezifische und kulturelle Unterschiede einfließen müssen, die über die Übersetzung der Sprache hinaus gehen, ist häufig unbekannt. Die Tabelle stellt die wesentlichen Spannungsfelder dar.

Anzeige
Anzeige
Spannungsfelder bei der Internationalisierung
Sprache
Beachtung verschiedener lokaler Sprachausprägungen (US English: localization vs. British English: localisation)
Verschiedene Zeichencodierungen (ASCII vs. UTF-8)
Verschiedene Schreibrichtungen (Deutsch: links nach rechts vs. Chinesisch: oben nach unten)
Verschiedene Tastaturlayouts
Kultur
Interpretation von Farben und Symbolen
Unterschiedliche Formate beispielsweise für Telefonnummern und Postleitzahlen
Unterschiedliche Maße beispielsweise für Währungen und Gewichte
Verschiedene Papierformate
Sonstige
Verschiedene Kalender und Zeitzonen
Unterschiedlicher Umgang mit Trennungszeichen (‚.‘ vs. ‚,‘)

Jeder Kulturraum verfügt über gewachsene Ausprägungen. Dessen sollte man sich bewusst sein, wenn man ein i18n-Projekt startet. Kulturelle Aspekte wie Farbinterpretationen und die Leserichtung können sogar Änderungen am Layout erfordern. Diese Anforderungen sind nur schwierig zu erfüllen. Weitere Spannungsfelder findet man hier [2].

Anzeige
Anzeige

Auswirkungen auf Projektdurchführung

Die Spannungsfelder der i18n führen indirekt zu Implikationen bei der Projektdurchführung. So müssen die Entwickler bei jedem Release einen Übersetzungs-Zyklus anstoßen. Dieser lässt sich im Rahmen des Projektmanagements im Vorhinein planen, dennoch kommt es in der Regel zu Wartezeiten, wodurch sich der Entwicklungsprozess verlangsamt. Außerdem lassen sich Übersetzungen in den seltensten Fällen selbst durchführen. Die Beauftragung professioneller Übersetzer bindet zusätzliche finanzielle Ressourcen. Diese Investition wird aber empfohlen, zumal Übersetzungsfehler in hohem Maße unprofessionell auf den Nutzer wirken und in Segmenten wie dem E-Commerce „tödlich“ sind. Häufig reicht es jedoch noch nicht, dass der Übersetzer nur professionell sein Fach beherrscht, da Aspekte wie bestimmte Sprachstile gefragt sind. In einer „hippen“ Jugend-Community wird ein anderes Englisch gesprochen als auf einem Finanzportal. Dieses Einfühlungsvermögen für die sprachlichen Gepflogenheiten fremder Länder ist schwierig am Markt zu finden. In der Regel wird man an einem Team, welches vor Ort agiert und aus Einheimischen besteht, nicht vorbeikommen. Ein Negativbeispiel von vielen ist beispielsweise das Social Network StudiVZ [3], das sich inzwischen wieder aus dem Ausland zurückzieht [4].

Internationalisierung mit Ruby on Rails

Die vorherigen Abschnitte schildern, welche Dinge man bei i18n-Projekten beachten muss. Neben den organisatorischen Herausforderungen muss man sich auch den technischen Herausforderungen stellen. Diese bestehen im Wesentlichen darin, dass der Entwickler Lösungen für die in der Tabelle dargestellten Spannungsfelder finden muss. Schön für den Entwickler ist es, wenn man ein Framework verwendet, das einem den Großteil der Arbeit abnimmt. Wie eingangs erwähnt, gehört Ruby on Rails zu den innovativsten Frameworks, die es momentan im Web gibt. Die Macher von Rails haben an sehr vielen Stellen neue Standards geschaffen und die Latte für andere Frameworks höher gehängt. Was die Unterstützung von i18n angeht, sah es allerdings bisher recht düster aus: Es existierten lediglich verschiedene Lösungen in Form von Plugins und Gems, die allerdings alle nicht auf ganzer Linie überzeugen konnten. Einen guten Überblick über Lösungen für i18n mit Rails (< 2.2) inklusive Bewertung findet man in der Präsentation von Jan Krutisch auf der Rails-Konferenz 2007 [5].

Anzeige
Anzeige

Ende November 2008 war es so weit: Mit der Veröffentlichung der Version 2.2 verfügt Ruby on Rails über eine integrierte API, die dem Entwickler die Arbeit deutlich erleichtert. Das Konzept ist gelungen, schlank und entschädigt Rails-Entwickler für alles, was vorher war.

Hands on!

Wie bei vielen Dingen, die man mit Rails macht, ist der Einstieg sehr einfach gehalten. Falls man noch nicht die aktuellste Version von Rails installiert hat, sollte man mit „sudo gem update rails“ die Version 2.2.2 installieren. Als nächstes sollte man in der Datei „environment.rb“ den Standardwert für die Lokalisierung festlegen. „:en“ (Englisch) ist vordefiniert, für eine deutsche Übersetzung legt man den Wert „:de“ fest.

config/environment.rb
config.i18n.default_locale = :de

Listing 1

Lokaliserungen werden im Rails-typischen Yaml-Format im Verzeichnis „config/locales/*.yml“ abgelegt. Die Dateien müssen nach dem Symbol benannt werden, also „de“, „en“ etc. Kernmethoden in der i18n-API sind „translate“ und „localize“. „translate“ dient der Übersetzung von Zeichenketten, „localize“ übernimmt die Formatierung zum Beispiel von spezifischen Datums- und Zeitobjekten. In den Yaml-Dateien werden sowohl Übersetzungen als auch Formate festgelegt.

Anzeige
Anzeige
config/locales/de.yml
de:
	title: "Hallo Welt" # Übersetzung einer Zeichenkette 
	date:
		day_names: [Sonntag, Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag]
		abbr_day_names: [So, Mo, Di, Mi, Do, Fr, Sa]
		month_names: [~, Januar, Februar, März, April, Mai, Juni, Juli, August, September, Oktober, November, Dezember]
		abbr_month_names: [~, Jan, Feb, Mär, Apr, Mai, Jun, Jul, Aug, Sep, Okt, Nov, Dez]
	time:
		formats:
		default: "%H:%M Uhr" # Festlegung der Darstellung des Zeitformats
	am: "vormittags"
	pm: "nachmittags"

Listing 2

Es folgen Beispiele, die die Verwendung von „translate“ mittels Shortcut-Methode „t“ und „localize“ mittels Shortcut-Methode „l“ darstellen.

Beispiele: translate und localize in einer View
<%= t('title') %> # => Hallo Welt
<%= l(Time.now) %> # => 20:53 Uhr

Listing 3

Für die Lokalisierung von verschiedenen Formaten gibt es ein spannendes Projekt bei Github [6]. Sven Fuchs, einer der treibenden Kräfte des Rails-i18n-Projekts, stellt dort zahlreiche Yaml-Dateien mit Lokalisierungen zur Verfügung, sodass man eine Menge Zeit sparen kann, wenn man seine Seite internationalisiert. Aus dieser Quelle stammt auch der Inhalt der Yaml-Datei.

Fazit

Internationalisierung mit Rails bietet noch deutlich mehr Funktionen als hier vorgestellt. Da man zahlreiche Quellen im Netz findet, die sämtliche Details beschreiben, sei an dieser Stelle auf diese verwiesen, um dem Motto „Don’t repeat others“ treu zu bleiben [7]
[8]
[9]. Rails 2.2 stellt eine tolle Weiterentwicklung in Bezug auf Internationalisierung dar. Entwickler bekommen damit eine abstrakte Schnittstelle an die Hand, die sie für ihre Zwecke nutzen und anpassen können. Die Anpassung ist dermaßen einfach, dass genügend Zeit bleibt, auch die kulturellen Aspekete der Internationalisierung zu bedenken.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige