Page 1 of 1

Zwei Sprachen durch URL-Abfrage

Posted: Mon Jan 11, 2010 6:21 am
by jeff1980
Hallo,

hab hier im Forum nichts dazu gefunden.
Ich möchte meine Seite gerne zweisprachig aufbauen (mit .de und .com Domain). Es gibt ja nun verschiedene Ansätze wie z.B. MLE oder mehrere "Seitenbäume" für die unterschiedlichen Sprachen aufzubauen.
Heute kam mir der Gedanke, es per URL-Abfrage zu lösen und ich würd gern wissen, was Ihr davon haltet bzw. ob es evtl. Problem oder Nachteile gibt, die ich nicht sehe.
Mein Plan sieht so aus:

1. In der config.php die Zeile mit der Domainkonfiguration wie folgt ausfüllen:

Code: Select all

$config['root_url'] = 'http://'.$_SERVER['HTTP_HOST'];
Dadurch bleibt die Domain, die ursprünglich eingegeben wurde immer in der Adresszeile erhalten.

2. Im Template folgende Struktur für die Inhaltsblöcke aufbauen:

Code: Select all

{if $gCms->config.root_url == 'http://www.domain.de'}
{content}
{elseif $gCms->config.root_url == 'http://www.domain.com'}
{content block="content_en"}
{/if}
3. Alle anderen mehrsprachigen Inhalte können durch die obige Abfrage ja entweder direkt im Template oder (sauberer und zugänglicher) per GCB eingebunden werden.

4. Um die Sprache von Hand umzustellen (falls ein deutscher User die com-Domain eingibt), kann man einfach zwei Links jeweils auf die de- bzw. com-Domain machen.

Bin gespannt, ob ich da irgendwo einen Denkfehler habe oder ob es wohl so klappen würde...

viele Grüße
Jan

Re: Zwei Sprachen durch URL-Abfrage

Posted: Mon Jan 11, 2010 6:33 am
by nockenfell
Ich frage mich ob die Abfrage so richtig ist. Möglich das es klappt. Müsste die Abfrage allerdings nicht eher so heissen?

Code: Select all

{if $_SERVER['HTTP_HOST'] == 'http://www.domain.de'}
{content}
{elseif $_SERVER['HTTP_HOST'] == 'http://www.domain.com'}
{content block="content_en"}
{/if}

Re: Zwei Sprachen durch URL-Abfrage

Posted: Mon Jan 11, 2010 7:01 am
by cyberman
jeff1980 wrote: 2. Im Template folgende Struktur für die Inhaltsblöcke aufbauen:

Code: Select all

{if $gCms->config.root_url == 'http://www.domain.de'}
{content}
{elseif $gCms->config.root_url == 'http://www.domain.com'}
{content block="content_en"}
{/if}
Hmm, könnte grundsätzlich funktionieren - jedoch solltest du eine andere Blockbezeichnung wählen. Seit der Version 1.6 ist {content} die Kurzschreibweise für {content block='content_en'} - siehe Changelog
{content} block is now just a shortcut for {content block='content_en'} and there is no special handling

Re: Zwei Sprachen durch URL-Abfrage

Posted: Mon Jan 11, 2010 9:46 am
by jeff1980
Hi,

das ging ja mal wieder super schnell - danke  ;D.

@nockenfell: Leider spuckt die Seite bei Deinem Vorschlag diese Fehlermeldung aus:
string(127) "Smarty error: [in tpl_body:23 line 24]: syntax error: unidentified token '['HTTP_HOST']' (Smarty_Compiler.class.php, line 1410)" string(127) "Smarty error: [in tpl_body:23 line 26]: syntax error: unidentified token '['HTTP_HOST']' (Smarty_Compiler.class.php, line 1410)"
Hab das "$gCms->config.root_url"-Schnipselchen hier im Forum gefunden, als ich nach URL in Template aufrufen gesucht habe - da es auf Anhieb funktioniert hat, hab ich auch gar nicht weiter geschaut...

@Cyberman: Danke für den Tipp - mir kam content_en auch irgendwie bekannt vor... Aber das kann man ja durch content_english o.ä. ersetzen. Sollte man evtl. sämtliche Länderkürzel meiden? Ist da evtl. irgendwas in Planung (von wegen ML-Unterstützung)? Wäre ja kein Ding, die Länder auszuschreiben - man müßte es halt nur wissen...

Viele Grüße
Jan

Re: Zwei Sprachen durch URL-Abfrage

Posted: Tue Jan 12, 2010 7:51 am
by cyberman
jeff1980 wrote: Ist da evtl. irgendwas in Planung (von wegen ML-Unterstützung)?
Das war wohl der Grund für die Änderung - lt. Roadmap soll ML aber erst in der 2.2 kommen ...