Schrift
[thread]13108[/thread]

I18N mit Catalyst

Leser: 5


<< >> 6 Einträge, 1 Seite
dominicn
 2009-02-07 21:48
#118702 #118702
User since
2003-08-08
327 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich versuche gerade eine Applikation mit dem Mangoframework, also mit Catalyst zu erstellen. Diese soll auch mehrsprachig werden, weshalb ich mir den Beitrag im Catalyst Advent Calender angesehen habe. Allerdings ist mir nicht klar, wo ich diese sub zum Abfangen der Sprache reinpacken soll:
Code (perl): (dl )
1
2
3
sub language : PathPart('') Chained('/') CaptureArgs(1) {
    my ($self , $c, $language )  =@_;
}


Ich habe das jetzt so verstanden, dass ich den Anfang _jeder_ Prozedur so anpassen muss, dass diese language-Funktion aufgerufen wird. Ist das wirklich so? Dann wäre das für die von Mango abgeleiteten subs nicht praktikabel, die müsste ich dann wahrscheinlich rüberkopieren in meinen Quelltext und dort anpassen. Oder habt ihr eine bessere Idee?

Danke
dominicn
 2009-02-08 02:08
#118705 #118705
User since
2003-08-08
327 Artikel
BenutzerIn
[default_avatar]
Also es gibt schon ein fertiges Modul Mango::I18N, was einfach eine Ableitung von Locale::Maketext ist. Allerdings ist damit noch nicht die Spracherkennungslogik eingebaut. Am liebsten wäre mit eben wenn man das an der URI ablesen könnte, also /de/meine/unterseite/ für Deutsch und /en/meine/unterseite/ für Englisch. Dann sollte das auch bei $c->uri_for immer schön mit weitergegeben werden. Da hakt es jetzt bei mir mit der Logik, wie ich das irgendwie hinkriegen könnte, dass man so ein /<lang>/-Argument einbaut und abfängt ...

Könnt ihr mir einen Hinweis geben?
esskar
 2009-02-09 01:57
#118723 #118723
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ich glaube zu meinen, dass das Modul auf die Ländereinstellung des Browsers schaut.
dominicn
 2009-02-09 12:44
#118746 #118746
User since
2003-08-08
327 Artikel
BenutzerIn
[default_avatar]
esskar+2009-02-09 00:57:00--
ich glaube zu meinen, dass das Modul auf die Ländereinstellung des Browsers schaut.


Genau so ist es. Allerdings würde ich das gern ändern und komme damit nicht richtig zurecht.
Taulmarill
 2009-02-09 12:48
#118747 #118747
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
esskar+2009-02-09 00:57:00--
ich glaube zu meinen, dass das Modul auf die Ländereinstellung des Browsers schaut.

Ganz genau so ist es (habe eben mal in die Sources geschaut). Was mir dabei noch fehlen würde, währe das automatische überschreiben von $c->languages mit einem Wert aus der Session, damit der User das über die Webseite ändern kann und dafür nicht die Einstellungen des Browsers anpassen muss. Aber so was könnte man zur not auch in /auto machen.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
dominicn
 2009-02-09 13:01
#118749 #118749
User since
2003-08-08
327 Artikel
BenutzerIn
[default_avatar]
Okay, dann mach ich das über die Session und nicht per URI ...
<< >> 6 Einträge, 1 Seite



View all threads created 2009-02-07 21:48.