Mehrsprachige Absendebuttons

Hier finden sich Fragen und Ergänzung zur Dokumentation. // All questions and discussions about the documentation.
Antworten
Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Mehrsprachige Absendebuttons

Beitrag von Well » 25.02.2010, 17:13:16

möp möp :)

Wie kann ich die Beschriftung der Absendebuttons von Formularen Mehrsprachig gestalten? XML Element in XML Element scheint ja nicht funktionieren...
Gibt es noch einen anderen Weg, außer das gesammte Formular in zwei verschiedensprachige Templates zu packen?

(Und noch eine Frage, die nicht ganz so dazupasst: Wie entschiedet eigentlich das Framework, welche Sprache genommen werden soll? Hab darauf noch keine Antwort gefunden. :D)

mfg

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Mehrsprachige Absendebuttons

Beitrag von Screeze » 25.02.2010, 17:21:05

HI,

Mit diesem schnipsel im controller regel ich das:

Code: Alles auswählen

$frm = &$this->__getForm('myForm');

// Load languagedata
$Config = &$this->__getConfiguration('languagefiles','anyting');

$Button = &$frm->getFormElementByName('ButtonName');
$Button->setAttribute('value',$Config->getValue($this->__Language,'AnySection.Button'));
Natürlich an deine configdatei anpassen.

Ich hoffe das hilft?

Benutzeravatar
dr.e.
Administrator
Beiträge: 4605
Registriert: 04.11.2007, 16:13:53

Re: Mehrsprachige Absendebuttons

Beitrag von dr.e. » 25.02.2010, 18:55:05

(Und noch eine Frage, die nicht ganz so dazupasst: Wie entschiedet eigentlich das Framework, welche Sprache genommen werden soll? Hab darauf noch keine Antwort gefunden. :D)
Hier hast du in jedem Objekt die property $this->__Language enthalten. Diese beinhaltet die Sprache der Seite. Wichtig dabei ist, dass du bei einem Sprachwechsel, das Attribut entsprechend befüllst (z.B. über eine Front-Controller-Action oder eine entsprechende Anweisung in der index.php). Solltest du weitere Ideen oder Code-Beispiele brauchen, sag Bescheid. Grundsätzlich kannst du dir jedoch mal den Code der APF-Seite im SVN ansehen.
Viele Grüße,
Christian

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Mehrsprachige Absendebuttons

Beitrag von Well » 25.02.2010, 20:10:42

Screeze: Dankeschön. :)

dr.e.: Hm, das verstehe ich nun nicht so ganz. Angenommen, ich möchte z.B.: über

Code: Alles auswählen

$_SERVER['HTTP_ACCEPT_LANGUAGE']
entscheiden, welche Sprache der Benutzer zu Gesicht bekommt. Wo könnte ich sowas dann integrieren?

Benutzeravatar
Screeze
Beiträge: 1920
Registriert: 05.08.2009, 09:49:04
Kontaktdaten:

Re: Mehrsprachige Absendebuttons

Beitrag von Screeze » 25.02.2010, 20:20:23

Bitte.

Hier ist ein HowTo dazu im Wiki (hab glaub ich sogar ich geschrieben, bin aber nicht sicher):

http://wiki.adventure-php-framework.org ... C3%A4ndern

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Mehrsprachige Absendebuttons

Beitrag von Well » 25.02.2010, 20:43:15

Screeze hat geschrieben:Bitte.

Hier ist ein HowTo dazu im Wiki (hab glaub ich sogar ich geschrieben, bin aber nicht sicher):

http://wiki.adventure-php-framework.org ... C3%A4ndern
Perfekt :)
Danke! :P

Benutzeravatar
dr.e.
Administrator
Beiträge: 4605
Registriert: 04.11.2007, 16:13:53

Re: Mehrsprachige Absendebuttons

Beitrag von dr.e. » 26.02.2010, 10:10:06

Hallo Well,

alternativ dazu könntest du in der index.php - wenn du keinen Front-Controller brauchst - auch bei der Instanziierung der Page-Klasse eine entsprechende Abfrage integrieren:

Code: Alles auswählen

$page = new Page();
$page->set('Context','...');
if($_SERVER['HTTP_ACCEPT_LANGUAGE'] == 'de'){
   $page->set('Language','de');
}
elseif($_SERVER['HTTP_ACCEPT_LANGUAGE'] == 'fr'){
   $page->set('Language','fr');
}
else{
   $page->set('Language','en');
}
Nutzt du bereits die 1.12er SVN-Version würde das per

Code: Alles auswählen

$page = new Page();
$page->setContext('...');
if($_SERVER['HTTP_ACCEPT_LANGUAGE'] == 'de'){
   $page->setLanguage('de');
}
elseif($_SERVER['HTTP_ACCEPT_LANGUAGE'] == 'fr'){
   $page->setLanguage('fr');
}
else{
   $page->setLanguage('en');
}
funktionieren. Natürlich sind die Vergleiche nur Beispiele, den Inhalt von $_SERVER['HTTP_ACCEPT_LANGUAGE'] muss man entsprechend aufbereiten.
Viele Grüße,
Christian

Well
Beiträge: 263
Registriert: 25.10.2009, 11:00:19
Wohnort: Beuren
Kontaktdaten:

Re: Mehrsprachige Absendebuttons

Beitrag von Well » 26.02.2010, 15:03:35

Ah, das ist sogar noch besser. :) Das erspart mir den FrontController. :)

Nochmals danke an beide. :)

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast