Mehrsprachige Webseiten mit Ruby on Rails (3)

2010 Januar 8
by meier

Teil 3 – Qualitätssicherung

Texte gehören zu den Teilen einer Anwendung, die häufig geändert werden. Wenn dann noch externe Übersetzer im Spiel sind, kann es leicht zu fehlenden Übersetzungen kommen

Wir möchten deshalb automatisch testen, dass es zu allen Texten in Sprache A auch Übersetzungen in Sprache B vorhanden sind. Ein solcher Test allein hilft schon sehr, und sollte ja nicht so schwierig sein.
read more…

Classics reloaded: Das Assert-Makro von C

2009 September 20
by meier

Die erste Version des folgenden Textes stammt noch aus dem Jahr 1996. Er enstand, weil ich bei den damaligen Arbeitgebern beobachtete, dass viele C-Entwickler nicht wussten, was es mit assert() auf sich hat. Hier kommt die Wiederveröffentlichung:

Selbstidentifizierende Fehler

Es gibt in ANSI-C einen Mechanismus, viele Fehler auch ohne Debugger aufzuspüren: Das Assert Macro. Ein Teil des Problems liegt in Deutschland wohl auch im Namen: Assert ist ein Wort, welches im allgemeinen im Englisch an der Schule nicht benutzt wird.

read more…

Rotierende Reklametafel mit jQuery

2009 August 21
by meier

Im Jahre 1998 habe ich “Meiers Billboard” vorgestellt: Eine virtuelle Anzeigentafel, die Bilder durch Rollen austauscht. Technisch ist es ein Java Applet. Der Ruf von Java im Browser wurde immer schlechter, auch mein Applet war vor allem wegen des Bild des Rahmen verlinkt.

In der Zwischenzeit ist sind die Netze leistungsfähiger, die Rechner schneller geworden und dank CSS gibt es neue Gestaltungsmittel. Bei der Beschäftigung mit dem JavaScript-Framework “jQuery“  stieß ich auf die animate()-Methode und ich fragte mich: lässt sich das Billboard nicht auch mit JavaScript realisieren? read more…

Google Technology User Group Hamburg

2009 Juni 28
by meier

Erstes Treffen mit den Themen AppEngine, Mapplets und Gadgets.

[29dsnh4p5a] Am 23. Juni fand das erste Treffen der Google User Group Hamburg statt. Sie beschäftigt sich mit der Vielzahl der Technologien jenseits einer einfachen Suche, die Google inzwischen zur Nutzung auch für eigene Projekte anbietet.
Die Firma “eprofessional” stellte an diesem Abend den Raum und netterweise auch die Getränke. read more…

Mehrsprachige Webseiten mit Ruby on Rails (2)

2009 Mai 12

Teil 2 – Platzhalter, Validierungen, Modellklassen

[Zu Teil 1]

Oft enthalten Webseiten Sätze, in denen sich ein einzelnes Wort sich dynamisch ändert. Beispielsweise “Sie sind als xxxx eingeloggt.” Zur Übersetzung können wir natürlich den Satz aus seinen Bestandteilen zusammenzubauen. Oft gibt es ein Problem: in verschiedenen Sprachen ist der Satzbau anders.

Besser ist deshalb die sogenannte Interpolation, wie man sie in Ruby ja kennt. Im Satz steht ein markierter Platzhalter, der zur Laufzeit ersetzt wird. Die yaml-Datei zur Spezifikation nutzt hierbei nicht die Ruby Syntax, sondern markiert die zu ersetzenden durch doppelte geschweifte Klammern.

# Definition
  logmsg: "Sie sind als {{name}} eingeloggt."
 
# Aufruf
I18n.translate(:logmsg, :name => 'Administrator')
# oder in kurz
t :logmsg, :name => 'Administrator'

Wir müssen dabei sicherstellen, das die Parameter von Definition und Aufruf übereinstimmen. Die translate()-Methode dabei relativ tolerant: Überflüssige Parameter werden ignoriert, fehlende Parameter werden mit einem “(???)” ersetzt.

:!: Achtung: die übersetzende Person muss wissen, dass sie die Variablennamen in den Klammern nicht mit übersetzen soll!
Eine weitere kleine Falle lauert bei den Variablennamen: Sie dürfen nicht wie eine der anderen Parameter der translate()-Methode heißen. Verboten sind deshalb “default” und “scope”.

read more…

SQL: Feld aus verknüpfter Tabelle setzen

2009 Mai 4
tags: , ,
by meier

Ein kleiner Kniff für den Joomla Community Builder

Neulich erhielt ich eine kleine Auftragsanfrage. Ein bestehende Webanwendung wird stark erweitert und dabei auf das CMS “Joomla” umgestellt. Zur Mitgliederverwaltung wird die Erweiterung “Community Builder” eingesetzt.
Bisher hatten die Nutzer eine Nummer als Loginnamen. Diese Nummer soll jetzt für alle alten Nutzer in ein Feld “Mitgliedsnummer” überführt werden. So weit die Anforderung aus Kundensicht.

Analyse

Joomla verwaltet die Benutzer in einer Tabelle jos_user. read more…

Mehrsprachige Webseiten mit Ruby on Rails

2009 April 11

Teil 1 – Übersicht

Software in mehreren Sprachen anzubieten ist eine immer wiederkehrende Aufgabenstellung. Um so erstaunlicher ist es, dass Ruby on Rails erst sehr spät hierfür ein standardisiertes Vorgehen eingeführt hat. Seit Version 2.2. ist eine “Internationalization API” Bestandteil von Ruby on Rails.Das Ruby-On-Rails Mehrsprachigkeitsmodul read more…

Switch to our mobile site