Zuerst installieren Sie die rails-i18n gem. Dieses Juwel enthält Lokalisierungsdaten für viele Ländereinstellungen. Achten Sie sorgfältig darauf, welche Version des Gems Sie basierend auf der Rails-Version installieren (wie in der README dokumentiert).
Als nächstes definieren Sie die Schauplätze (wie wieder in der Readme beschrieben), die Sie benötigen in Ihrem application.rb
Config zu unterstützen:
config.i18n.available_locales = [:cs, :en, :es, :de]
Dann können Sie einfach I18n.l
(dh die localize
Methode von I18n verwenden) überall und drucken Sie nur den Monatsnamen im angegebenen Gebietsschema (siehe einige weitere Informationen auf localize
in the Rails guides und strftime
für die Formatierungsoptionen).
Sie müssen zuerst eine Sequenz von Daten (z. B. die ersten Tage aller Monate) in einem Jahr generieren.
# generate dates for each month in the year
dates = (1..12).map{|d| Date.parse("#{'%02d' % d}/01") }
# => [Fri, 01 Jan 2016, Mon, 01 Feb 2016, Tue, 01 Mar 2016, Fri, ..., 01 Nov 2016, Thu, 01 Dec 2016]
# use these dates to get month names in the given locale
dates.map{ |d| I18n.l(d, format: "%B", locale: :en) }
# => ["January", "February", "March", "April", "May", ..., "November", "December"]
dates.map{ |d| I18n.l(d, format: "%B", locale: :de) }
# => ["Januar", "Februar", "März", "April", "Mai", ..., "November", "Dezember"]
dates.map{ |d| I18n.l(d, format: "%B", locale: :cs) }
# => ["leden", "únor", "březen", "duben", "květen", ..., "listopad", "prosinec"]
Ja, aber dann muss ich manuell die Übersetzung machen. Ich hatte gehofft, wenn Rails sowieso die Übersetzung für mich übernimmt, da es mir schon die Namen in Englisch geben könnte ... –
@Dbugger was meinst du manuelle Übersetzung? –
Nun, die Namen werden automatisch in Englisch bereitgestellt, also habe ich mich gefragt, ob ich sie auch automatisch in anderen Sprachen bekommen könnte. –