Entwicklung & Design

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

Seite 2 / 2

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.

i18n bei Rails 2.2 kommt mit einer sehr geringen Anzahl von Klassen und Modulen aus.

i18n bei Rails 2.2 kommt mit einer sehr geringen Anzahl von Klassen und Modulen aus.

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.

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.

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

Schreib den ersten Kommentar!

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

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

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

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

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung