Zum Inhalt springen

nach Einrichtung nur Standardsprache

Erstellt am 27. August 2007 · 8 Antworten · letzte Antwort am 28. August 2007

Tags: Frage

Knalltuete ·

Ich habe auf einer Seite jetzt eine Sprachumschaltung eingerichtet. Jedoch werden die zur Sprache gehörenden Inhalte nicht angezeigt, sondern nur der Standardinhalt. Ich habe keine Ahnung woran es liegt.. es scheint auch zu funktionieren da in der Adressleiste nach einem Klick auf deutsch startseite.html stehen anstatt home.html.

Konstanten: + langsettings

########## Allgemeine Definitionen ###########

# Spracheinstellungen englisch
lang.en {
    sprach_id = 0
    sprach_kuerzel = en
    sprach_key = en-EN
}

# Spracheinstellungen deutsch
lang.de {
    sprach_id = 2
    sprach_kuerzel = de
    sprach_key = de-DE
}

# Spracheinstellungen japanisch
lang.pt {
    sprach_id = 1
    sprach_kuerzel = jp
    sprach_key = ja
}

#english standard
settings.lang_id = {$lang.en.lang_id}
   	settings.lang_short = {$lang.en.lang_short}
	settings.lang_key = {$lang.en.lang_key}
	lang_settings.totop = {$lang.en.totop}
	lang_settings.mailform = {$lang.en.mailform}
	lang_settings.navpath = {$lang.en.navpath}

#german
[globalVar = GP:L=2]
   	settings.lang_id = {$lang.de.lang_id}
	settings.lang_short = {$lang.de.lang_short}
	settings.lang_key = {$lang.de.lang_key}
	lang_settings.totop = {$lang.de.totop}
	lang_settings.mailform = {$lang.de.mailform}
	lang_settings.navpath = {$lang.de.navpath}
[global]

#japanese
[globalVar = GP:L=1]
   	settings.lang_id = {$lang.jp.lang_id}
	settings.lang_short = {$lang.jp.lang_short}
	settings.lang_key = {$lang.jp.lang_key}
	lang_settings.totop = {$lang.jp.totop}
	lang_settings.mailform = {$lang.jp.mailform}
	lang_settings.navpath = {$lang.jp.navpath}
[global]
############# Automatic language change on pageentry #############
# german if browser is german
[language = *de*, *de-de*, *de-at*, *de-lu*, *de-ch*, *de-li*, *de-DE*]
   	settings.lang_id = {$lang.de.lang_id}
   	settings.lang_short = {$lang.de.lang_short}
	settings.lang_key = {$lang.de.lang_key}
	lang_settings.totop = {$lang.de.totop}
	lang_settings.mailform = {$lang.de.mailform}
	lang_settings.navpath = {$lang.de.navpath}
[END]

# browser german and manually language selection english  
[language = *de*, *de-at*, *de-lu*, *de-ch*, *de-li*, *de-DE*] && [globalVar = GP:L=1]
	settings.lang_id = {$lang.en.lang_id}	
	settings.lang_short = {$lang.en.lang_short}
	settings.lang_key = {$lang.en.lang_key}
	lang_settings.totop = {$lang.en.totop}
	lang_settings.mailform = {$lang.en.mailform}
	lang_settings.navpath = {$lang.en.navpath}
[END]

Setup: + langsettings

config.linkVars = L
config.sys_language_uid = {$settings.lang_id}
config.language = {$settings.lang_short}
config.baseURL = {$settings.baseURL}
config.xhtml_cleaning = all
config.htmlTag_langKey = {$settings.lang_key}
config.locale_all = {$settings.lang_short}
xml:lang="{$settings.lang_short}" lang="{$settings.lang_short}"
plugin.tx_indexedsearch._DEFAULT_PI_VARS.lang = {$settings.lang_id}

tt_content.stdWrap.innerWrap2 = | <p class="totop"><a href="{TSFE:siteScript}#top">{$sprachkonstante.totop}</a></p>
tt_content.mailform.20.badMess = {$settings.mailform}

Setup: + langchanger

temp.langchanger = COA
temp.langchanger.1 = TEXT
temp.langchanger.1 {
	override = <img src="fileadmin/ironman2008/img/eng.gif" />
	typolink.title = English
	typolink.parameter.data = page:uid
	typolink.additionalParams = &L=0
	typolink.ATagParams = class="flag"
	typolink.addQueryString = 1
	typolink.addQueryString.exclude = id,cHash
	typolink.addQueryString.method = GET
}
temp.langchanger.2 = TEXT
temp.langchanger.2 {
	override = <img src="fileadmin/ironman2008/img/ger.gif" />
	typolink.title = German
	typolink.parameter.data = page:uid
	typolink.additionalParams = &L=2
	typolink.ATagParams = class="flag"
	typolink.addQueryString = 1
	typolink.addQueryString.exclude = id,cHash
	typolink.addQueryString.method = GET
}
temp.langchanger.3 = TEXT
temp.langchanger.3 {
	override = <img src="fileadmin/ironman2008/img/jpn.gif" />
	typolink.title = Japanese
	typolink.parameter.data = page:uid
	typolink.additionalParams = &L=1
	typolink.ATagParams = class="flag"
	typolink.addQueryString = 1
	typolink.addQueryString.exclude = id,cHash
	typolink.addQueryString.method = GET
}
temp.langchanger.wrap = <div id="language">|</div>
page.10.marks.language < temp.langchanger

Kann mir vielleicht jemand helfen?

einpraegsam.​net ·

Ohne mir alles anzuschauen, fällt sofort auf, dass du deine japanischen Einstellungen wieder überschreibst, wenn jemand mit einem deutschen Browser ankommt und der Type L=1 gesetzt ist:

#japanese
[globalVar = GP:L=1]
        settings.lang_id = {$lang.jp.lang_id}
        settings.lang_short = {$lang.jp.lang_short}
        settings.lang_key = {$lang.jp.lang_key}
        lang_settings.totop = {$lang.jp.totop}
        lang_settings.mailform = {$lang.jp.mailform}
        lang_settings.navpath = {$lang.jp.navpath}
[global]

#Das überschreibt die Einstellungen
[language = *de*, *de-at*, *de-lu*, *de-ch*, *de-li*, *de-DE*] && [globalVar = GP:L=1]
        settings.lang_id = {$lang.en.lang_id}   
        settings.lang_short = {$lang.en.lang_short}
        settings.lang_key = {$lang.en.lang_key}
        lang_settings.totop = {$lang.en.totop}
        lang_settings.mailform = {$lang.en.mailform}
        lang_settings.navpath = {$lang.en.navpath}
[END]
brokemeister ·

Wieso überschreibst du die Konstanten mit Konstanten, da kann man gleich einen teil weglassen und es mit den Conditions direkt setzen...

Teste das doch mal nach dem HOWTO mit Realurl direkt hier Forum, das funktioniert, dann kannst du es immer noch erweitern...

Da sind so viele Möglichkeiten für Fehler drin, die nicht nötig sind...

brokemeister ·

Was mir gerade noch aufgefallen ist...

Du solltest die Konstanten auch gleich bennen, wenn du das gleiche meinst

lang.de.sprach_id <> {$lang.de.lang_id}

Also wie eben schon geschrieben Total überflüssig

8-)

einpraegsam.​net ·
brokemeister schrieb

Also wie eben schon geschrieben Total überflüssig

Nein, ist es nicht, habe ich seinerzeit so angelegt 😃
Conditions kann man auch in den Konstanten nutzen um zentrale Definitionen einmal festzulegen...

brokemeister ·
wunschtacho schrieb

Conditions kann man auch in den Konstanten nutzen um zentrale Definitionen einmal festzulegen...

Das ist schon klar. Aber es besteht eine Fehlerquelle mehr (zu mindest hier)...
wenn man die Konstanten nicht korrekt benennt.

Wenn man dann aber in der Condition wieder die fixe ID angibt und es an fast "derselben" Stelle steht, ist es sehr ungünstig...