Multilanguage-Site mit einem Template
Multilanguage-Site mit einem Template
Hi,
ich möchte eine zweisprachige Seite entwickeln. Wie man das macht wurde hier und im wiki ja bereits öfters diskutiert und beschrieben.
Ich hätte es nun gerne mit einem Template gemacht.
Gibt es so etwas wie
[de]
{NAV_LIST_UL:F,01,1,act_path,active}
[/de]
[en]
{NAV_LIST_UL:F,11,1,act_path,active}
[/en]
also "Schalter" für die einzelnen Sprachen?
Gruß
Jo
ich möchte eine zweisprachige Seite entwickeln. Wie man das macht wurde hier und im wiki ja bereits öfters diskutiert und beschrieben.
Ich hätte es nun gerne mit einem Template gemacht.
Gibt es so etwas wie
[de]
{NAV_LIST_UL:F,01,1,act_path,active}
[/de]
[en]
{NAV_LIST_UL:F,11,1,act_path,active}
[/en]
also "Schalter" für die einzelnen Sprachen?
Gruß
Jo
Re: Multilanguage-Site mit einem Template
Den Vorteil seh ich noch nicht, aber ich würde mal versuchen:
und dann in den Sprachdateien den "passenden" Integriert eintragen...
Keine Ahnung, ob's geht... ist ab in Nullkommanix getestet ... und dann wissen wir's
Code: Select all
{NAV_LIST_UL:F,@@HP_ID@@,1,act_path,active}
Keine Ahnung, ob's geht... ist ab in Nullkommanix getestet ... und dann wissen wir's
Re: Multilanguage-Site mit einem Template
Der Vorteil wäre halt, dass ich nur ein Template habe.
Im konkreten Fall soll ein Slider z.B. abhängig von der Sprache andere Bilder zeigen. Dann könnte ich halt unterscheiden und mit SHOW_CONTENT entspr. CPs einblenden.
Wenn es nicht geht, dann pflege ich halt zwei Templates. Gibt schlimmeres.
Im konkreten Fall soll ein Slider z.B. abhängig von der Sprache andere Bilder zeigen. Dann könnte ich halt unterscheiden und mit SHOW_CONTENT entspr. CPs einblenden.
Wenn es nicht geht, dann pflege ich halt zwei Templates. Gibt schlimmeres.
- Oliver Georgi
- Site Admin
- Posts: 9907
- Joined: Fri 3. Oct 2003, 22:22
- Contact:
Re: Multilanguage-Site mit einem Template
Das ist ein unschöner Ansatz. Unperformant. Überflüssig. Nicht sauber.
Für Templates empfiehlt sich:
Für Templates empfiehlt sich:
- sprachbasierter @@Ersetzer@@, empfohlen für Vorlagen-Texte
- Sprachumschaltung
Re: Multilanguage-Site mit einem Template
Anstelle von:
Wäre dann besser:
Oder vielleicht so:
Oder noch ganz anders?
Code: Select all
{NAV_LIST_UL:F,@@HP_ID@@,1,act_path,active}
Code: Select all
[DE]{NAV_LIST_UL:F,1,1,act_path,active}[/DE]
[EN]{NAV_LIST_UL:F,11,1,act_path,active}[/EN]
Code: Select all
{NAV_LIST_UL:F,[DE]1[/DE][EN]11[/EN],1,act_path,active}
- Oliver Georgi
- Site Admin
- Posts: 9907
- Joined: Fri 3. Oct 2003, 22:22
- Contact:
Re: Multilanguage-Site mit einem Template
Der Sprachrenderer greift viel zu spät, muss auf Systemebene realisiert werden. Frontend Render ist dafür geeignet. Alles andere nicht sinnvoll.
Wenn doch templatebasiert, sind [IF_CAT:…][\IF_CAT], [IF_NOTCAT:…][/IF_NOTCAT], [LEVEL1_ID]{LEVEL1_ID}[/LEVEL1_ID] sinnvoller, da diese sehr früh prüfen und ersetzen.
Wenn doch templatebasiert, sind [IF_CAT:…][\IF_CAT], [IF_NOTCAT:…][/IF_NOTCAT], [LEVEL1_ID]{LEVEL1_ID}[/LEVEL1_ID] sinnvoller, da diese sehr früh prüfen und ersetzen.
Re: Multilanguage-Site mit einem Template
Hey, super! Das kannte ich so nicht! Das ist im Prinzip genau das, was ich suchte!
Vielen Dank!
Vielen Dank!
Re: Multilanguage-Site mit einem Template
So, es ist endlich soweit, die Site soll zweisprachig werden. Ich habe mir languageSwitch bei github besorgt. Muss man in den beiden Dateien etwas anpassen?
Re: Multilanguage-Site mit einem Template
In der lang.ini.php musst du auf jeden Fall die Category IDs den eigenen Gegebenheiten anpassen:
ggf. auch die Formatierung für das Datum (kommt drauf an was du vor hast):
Code: Select all
$phpwcms['id_lang'] = array(
// cat-ID LANG
60 => 'de',
61 => 'en',
// 88 => 'fr',
// 99 => 'es'
);
Code: Select all
// switch default date setting
if($phpwcms['default_lang'] != 'de') {
$template_default['date']['language'] = strtoupper($phpwcms['default_lang']);
$template_default['date']['short'] = 'y/m/d';
$template_default['date']['article'] = 'Y/m/d';
$template_default['news']['date_language'] = $template_default['date']['language'];
$template_default['news']['date_format'] = $template_default['date']['article'];
}
Re: Multilanguage-Site mit einem Template
Danke für die Antwort.
Irgendwie komme ich gar nicht klar?
Die Site läufte seit fast einem Jahr ohne Probleme.
Das Menü erhielt ich bisher so:
Nun habe ich alle Kategorien unter HOME in eine neu angelegte Kategorie "de" (ID=167) verschoben. Dies dann kopiert und in "cn" (ID=167) umbenannt. Die lang.ini.php habe ich entsprechend angepasst.
Mit {SWITCH_LANG} erhalte ich nun z.B. de cn.
Nur was mache ich nun statt ?
Jo
Irgendwie komme ich gar nicht klar?
Die Site läufte seit fast einem Jahr ohne Probleme.
Das Menü erhielt ich bisher so:
Code: Select all
{NAV_LIST_UL:B,0,2,active|nav navbar-nav,active,id}
Mit {SWITCH_LANG} erhalte ich nun z.B. de cn.
Nur was mache ich nun statt
Code: Select all
{NAV_LIST_UL:B,0,2,active|nav navbar-nav,active,id}
Jo
Re: Multilanguage-Site mit einem Template
Versuchs doch zunächst mal so (vielleicht merkt OG momentan ja nix ):photo wrote:...
Nur was mache ich nun statt?Code: Select all
{NAV_LIST_UL:B,0,2,active|nav navbar-nav,active,id}
Jo
Vorausgesetzt, deine beiden Sprachzweige für de und cn liegen unmittelbar unterhalb von HOME!{NAV_LIST_UL:B,[LEVEL1_ID]{LEVEL1_ID}[/LEVEL1_ID],2,active|nav navbar-nav,active,id}
- Oliver Georgi
- Site Admin
- Posts: 9907
- Joined: Fri 3. Oct 2003, 22:22
- Contact:
Re: Multilanguage-Site mit einem Template
genau deswegen gibt es diese LEVEL Prüfungen, damit man das an der Stelle so abfeiern kann und zwar bevor der Rest reparst wird.
Re: Multilanguage-Site mit einem Template
Man, da bin ich ja jetzt richtig stolz auf mich
Re: Multilanguage-Site mit einem Template
Mühsam quäle ich mich weiter. Für das Projekt brauche folgendes:
Die beiden Seiten, de und cn, und deren Unterseiten sollen unterschiedliche Farben haben. Um die via CSS anzusteuern, habe bisher folgendes gehabt:
Nun habe ich dies:
Allerdings wäre mir hier statt der ID von $LEVEL_ID[1] der Alias der Katgorie (also de oder cn) lieber, da irgendwie verständlicher?
Kann mir jemand sagen, wie das geht?
LG
Jo
Die beiden Seiten, de und cn, und deren Unterseiten sollen unterschiedliche Farben haben. Um die via CSS anzusteuern, habe bisher folgendes gehabt:
Code: Select all
if(isset($LEVEL_ID[1])) { // lets say it is the main structure root
$content['body_id'] = $LEVEL_ID[1];
}
Code: Select all
if(isset($LEVEL_ID[2])) { // lets say it is the main structure root
$content['body_id'] = $LEVEL_ID[1].'_'.$LEVEL_ID[2];
}
Kann mir jemand sagen, wie das geht?
LG
Jo
- Oliver Georgi
- Site Admin
- Posts: 9907
- Joined: Fri 3. Oct 2003, 22:22
- Contact:
Re: Multilanguage-Site mit einem Template
Jede Kategorie kann eine Klasse haben, das ist sinnvoller statt des Alias.
Wenn auch noch das 2. Level
Gehen wir davon aus, dass das Alias für Level 1 "lang-de" ist und für Level 2 "whatever", dann kannst Du das wir folgt adressieren
Code: Select all
if(isset($LEVEL_ID[1]) && !empty($content['struct'][$LEVEL_ID[1]]['acat_alias'])) {
$template_default['body']['class'] = $content['struct'][$LEVEL_ID[1]]['acat_alias'];
// erhalten des Standardwertes
//$template_default['body']['class'] = trim($template_default['body']['class'].' '.$content['struct'][$LEVEL_ID[1]]['acat_alias']);
}
Code: Select all
if(isset($LEVEL_ID[1]) && !empty($content['struct'][$LEVEL_ID[1]]['acat_alias'])) {
$template_default['body']['class'] = trim($template_default['body']['class'].' '.$content['struct'][$LEVEL_ID[1]]['acat_alias']);
if(isset($LEVEL_ID[2]) && !empty($content['struct'][$LEVEL_ID[2]]['acat_alias'])) {
$template_default['body']['class'] = trim($template_default['body']['class'].' '.$content['struct'][$LEVEL_ID[2]]['acat_alias']);
}
}
Code: Select all
.lang-de {
background: yellow;
}
.lang-de.whatever {
background: red;
}