Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Mehrsprachige Programme
BeitragVerfasst: 23 Feb 2004, 15:54 
Offline
Son-shi

Registriert: 23 Feb 2004, 14:59
Beiträge: 941
Wohnort: Esslingen
Hallo,
hat jemand eine Idee, wie mehrsprachige Programme in ruby am günstigsten erstellt werden können? Ich habe zu dem Thema leider noch nichts gefunden.

Ich will ein Programm schreiben, das wahlweise deutschen oder englischen Output erzeugt.
Ich könnte mir vorstellen eine Klasse "Texte" anzulegen, die alle Textbausteine bereithält. Je Sprache kann dann ein Objekt angelegt werden.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

class Text
def initialize( lang, texts={} )
@lang = lang
end
attr_reader :anrede
attr_writer :anrede
end
english = Text.new('english')
english.anrede = "Dear Sirs,"
deutsch = Text.new('german')
deutsch.anrede = "Sehr geehrte Damen und...,"

puts deutsch.anrede
puts english.anrede


Bei dem einfachen Beispiel wäre ein Objekt der Klasse Struct vermutlich besser. Evtl. lade ich die Texte später aus einer anderen Datei hinzu.

Kurz und gut meine Frage bevor ich mir selbst was zusammen bastle:
Gibt es sowas schon in ruby?
Wie würdet ihr das machen?


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 23 Feb 2004, 16:20 
Offline
Obfuscator

Registriert: 20 Jul 2003, 22:14
Beiträge: 595
Ich hab z.B. beim RubyBoard über einen Hash der in einer extra Datei ist gemacht.

./driver/lang/0.rb


1
2
3
4
5
6

@lang = {
"boards" => "Foren",
"members" => "Mitglieder",
"search" => "Suche",
...




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# Sprache festlegen

lang = @conf["LANGUAGE"]

unless web.cookie["lang"] == nil then
lang = web.cookie["lang"].to_i
end


unless (web.param["lang"] == "") then
lang = web.param["lang"].to_i
if (@languages[lang] == nil) then
unless web.cookie['lang'] == "" then
lang = web.cookie['lang'].to_i
else
lang = @conf["LANGUAGE"]
end
else
web.addCookie("lang%3D"+web.param["lang"])
end

end


if lang == 0 then lang = 1 end
require @conf['REALPATH']+"driver/lang/"+lang.to_s+".rb"


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 23 Feb 2004, 16:33 
Offline
Ex-Admin
Benutzeravatar

Registriert: 12 Mai 2003, 18:49
Beiträge: 890
Wohnort: Kiel
Moin!

In der Unixwelt wird sowas im allgemeinen mit GNU Gettext gemacht, da gibts auch Bindings für Ruby: http://ponx.s5.xrea.com/hiki/ruby-gettext.html Leider weiss ich nicht, wie gut das unter Windows läuft (ehrlich gesagt hab ich das noch gar nicht ausprobiert, aber Gettext ist echt Standard, kann also nicht ganz schlecht sein ;)).

Ansonsten kann man auch hier wieder einen Blick ins Ruby Application Archive empfehlen: http://raa.ruby-lang.org/cat.rhtml?cate ... minor=I18N

Das phpBB2 (diese Forensoftware) verwendet übrigens eine ähnliche Sache wie der von bunny vorgeschlagene Hash. Heissen die Dinger in PHP halt nicht Hashes, sondern assoziative Arrays ;)

Achja: Willkommen an Bord! :)

iGEL


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
cron