Hallo,
ich habe folgendes TypoScript:
config {
// Spracheinstellungen
linkVars = L
uniqueLinkVars = 1
sys_language_mode = content_fallback
sys_language_overlay = hideNoneTranslated
sys_language_uid = 0
language = de
// Je nach Serverumgebung funktionieren verschiedene Werte:
// de_DE, de_DE.utf8, de_DE@euro
locale_all = de_DE.utf8@euro
htmlTag_langKey = de
plugin.meta.language = de
}
[globalVar = GP:L = 1] // Englisch, sys_language.uid = 1
config {
sys_language_uid = 1
language = en
locale_all = en_GB
htmlTag_langKey = en
plugin.meta.language = en
}
[global]
Nun ist es so, dass immer die Werte von [globalVar = GP:L = 1] verwendet werden, egal, welchen L Parameter ich an die URL hänge oder auch keinen.
Entferne ich [globalVar = GP:L = 1], so erhalte ich immer die Werte Standardwerte, wie ich es auch erwarte.
Was ist an der Condition falsch, dass sie immer wahr ist?
Ich stehe total auf dem Schlauch. Ich freue mich auf Antworten jedweder Art!
stehte die codition innerhalb von {} ?
georg
Nein.
Hie das komplette TS des Erweiterungstemplates:
// Cache während der Entwicklung ausschalten, danach unbedingt wieder einschalten
config.no_cache = 1
// Allgemeine Einstellungen
config {
pageTitleFirst = 1
// E-Mail-Adresse für Harvester verschleiern
spamProtectEmailAddresses = ascii
spamProtectEmailAddresses_atSubst = <span>@</span>
// Cache-Zeitraum festlegen
cache_period = 86400
// Spracheinstellungen
linkVars = L
uniqueLinkVars = 1
sys_language_mode = content_fallback
sys_language_overlay = hideNoneTranslated
sys_language_uid = 0
language = de
// Je nach Serverumgebung funktionieren verschiedene Werte:
// de_DE, de_DE.utf8, de_DE@euro
locale_all = de_DE.utf8@euro
htmlTag_langKey = de
plugin.meta.language = de
}
[globalVar = GP:L = 1] // Englisch, sys_language.uid = 1
config {
sys_language_uid = 1
language = en
locale_all = en_GB
htmlTag_langKey = en
plugin.meta.language = en
}
[global]
config.dateFormat = %A %e. %B %Y
config.timeFormat = Uhr %H:%M Sek %S
Hallo,
hm kommt mir etwas strange vor, TS Object Browser sagt auch nix über Fehler oder so?
Georg
Nein, das ist es ja. Ich hatte mal einen Fehler, das lag daran, dass die Bedingung innerhalb der geschweiften Klammern war. Den hatte ich behoben, doch es funktioniert immer noch nicht.
Das beste jedoch ist, dass alles richtig gesetzt wird, wenn ich die Condition als wahr setzte im TS Object Browser (also die Setup Config).
Wenn es hilft, könnte ich die einen Admin Backend Zugang geben...
wenn du Probleme in verbindung mit RealURL hast dann kannst du dir auch das: uniqueLinkVars = 1
sparen.
RealURL verarbeitet selbst auch keine doppelten Parameter.
Einen Fehler kann ich aber auch nicht direkt sehen... :-(
Grüße,
Tim
ja ich kanns mir mal anschauen
@ tim: doppelte parameter sind nur für das menschliche auge hässlich, realurl & co ist das egal, der letzte zieht
georg
So, folgendes funktioniert NICHT:
// Spracheinstellungen
linkVars = L
uniqueLinkVars = 1
sys_language_mode = content_fallback
sys_language_overlay = hideNoneTranslated
}
[globalVar = GP:L = 0]
config {
sys_language_uid = 0
language = de
// Je nach Serverumgebung funktionieren verschiedene Werte:
// de_DE, de_DE.utf8, de_DE@euro
locale_all = de_DE.utf8@euro
htmlTag_langKey = de
plugin.meta.language = de
}
[globalVar = GP:L = 1] // Englisch, sys_language.uid = 1
config {
sys_language_uid = 1
language = en
locale_all = en_GB
htmlTag_langKey = en
plugin.meta.language = en
}
[global]
Das hier funktioniert aber wie gewünscht:
// Spracheinstellungen
linkVars = L
uniqueLinkVars = 1
sys_language_mode = content_fallback
sys_language_overlay = hideNoneTranslated
}
[globalVar = GP:L = 1] // Englisch, sys_language.uid = 1
config {
sys_language_uid = 1
language = en
locale_all = en_GB
htmlTag_langKey = en
plugin.meta.language = en
}
[globalVar = GP:L = 0]
config {
sys_language_uid = 0
language = de
// Je nach Serverumgebung funktionieren verschiedene Werte:
// de_DE, de_DE.utf8, de_DE@euro
locale_all = de_DE.utf8@euro
htmlTag_langKey = de
plugin.meta.language = de
}
[global]
Einfach nur vertauscht und mit zwei Bedingungen.
Hat jemand eine Idee warum dem so ist? Jetzt trickse ich ihn ja nur aus. Da muss ich gleich mal testen wie es mit einer dritten Sprache ist, ob dann die Bedingung bei ID 2 auch immer wahr ist. und ich dann mit dieser Version maximal zwei Sprachen nutzen kann.
just2b: Ich schreibe dir eine PN, vielen Dank dass du dir das ansehen möchtest.
Hallo,
ich kapier nicht was dein Problem ist, nur das mit den metatags?
plugin.meta.language = en muss natürlich außerhalb von config {} stehen
und conditions musst du immer mit [global] oder [end] beenden, glaub nicht dass du einfach so eine neue danach starten kannst
sonst schaut ja alles ok aus
georg
Ok, nochmal verbessert (und erneut getestet):
So geht es NICHT:
// Spracheinstellungen
linkVars = L
uniqueLinkVars = 1
sys_language_mode = content_fallback
sys_language_overlay = hideNoneTranslated
}
[globalVar = GP:L = 0]
config {
sys_language_uid = 0
language = de
// Je nach Serverumgebung funktionieren verschiedene Werte:
// de_DE, de_DE.utf8, de_DE@euro
locale_all = de_DE.utf8@euro
htmlTag_langKey = de
}
plugin.meta.language = de
[global]
[globalVar = GP:L = 1] // Englisch, sys_language.uid = 1
config {
sys_language_uid = 1
language = en
locale_all = en_GB
htmlTag_langKey = en
}
plugin.meta.language = en
[global]
So klappt es:
// Spracheinstellungen
linkVars = L
uniqueLinkVars = 1
sys_language_mode = content_fallback
sys_language_overlay = hideNoneTranslated
}
[globalVar = GP:L = 1] // Englisch, sys_language.uid = 1
config {
sys_language_uid = 1
language = en
locale_all = en_GB
htmlTag_langKey = en
}
plugin.meta.language = en
[global]
[globalVar = GP:L = 0]
config {
sys_language_uid = 0
language = de
// Je nach Serverumgebung funktionieren verschiedene Werte:
// de_DE, de_DE.utf8, de_DE@euro
locale_all = de_DE.utf8@euro
htmlTag_langKey = de
}
plugin.meta.language = de
[global]
Ich vergleiche für Deutsch und Englisch im Quelltext jeweils
"<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">"
der nur auf de in der letzten Variante steht wenn als Sprache die Standardsprache gewählt wird, ansonsten immer en...
für L=0 brauchst du keine condition wenn du es vor die andere schreibst
georg
So hatte ich es ganz am Anfang (sihe Threadstart). Dann ist aber immer die Condition mit L=1 wahr, daher dieser Umweg mit zwei Bedingungen und der L=0 auch als letztes, damit die erste überschrieben wird, wenn die Dafault-Language ausgewählt ist.
Ich habe es nun mit drei Sprachen:
// Spracheinstellungen
linkVars = L
uniqueLinkVars = 1
sys_language_mode = content_fallback
sys_language_overlay = hideNoneTranslated
}
[globalVar = GP:L = 1] // Englisch, sys_language.uid = 1
config {
sys_language_uid = 1
language = en
locale_all = en_GB
htmlTag_langKey = en
}
plugin.meta.language = en
[global]
[globalVar = GP:L = 2] // Indonesisch, sys_language.uid = 2
config {
sys_language_uid = 2
language = id
locale_all = id_ID
htmlTag_langKey = id
}
plugin.meta.language = id
[global]
[globalVar = GP:L = 0]
config {
sys_language_uid = 0
language = de
// Je nach Serverumgebung funktionieren verschiedene Werte:
// de_DE, de_DE.utf8, de_DE@euro
locale_all = de_DE.utf8@euro
htmlTag_langKey = de
}
plugin.meta.language = de
[global]
Wenn ich nicht die Bedingung "[globalVar = GP:L = 0]" zuletzt hätte, hätte ich stets die Einstellungen für Indonesisch!
Jetzt habe ich "nur" für die Sprachen Englisch und Indonesisch die indonesischen Einstellungen...
Hat jemand eine vermutung warum die Bedingungen immer true zurückgeben, wenn die Abfrage > 0 ist?
just2b schrieb
und conditions musst du immer mit [global] oder [end] beenden, glaub nicht dass du einfach so eine neue danach starten kannst
Warum tut dies dann Kasper in seiner Anleitung:
Frontend Localization Guide - Extension Key: doc_l10nguide
Seite 9:
#Achtung: Der folgende Code funktioniert nicht (ergibt diverse Fehler)!
0: # Loca l i z a t i o n :
1: config {
2: linkVars = L
3: }
4: [globalVar = GP:L=1]
5: config {
6: sys_language_uid = 1
7: language = dk
8: locale_all = da_DK
9: metaCharset = iso-8859-1
10: }
11: [globalVar = GP:L=2]
12: config {
13: sys_language_uid = 2
14: language = ru
15: }
16: [global]
Hat jemand eine Vermutung warum die Bedingungen bei mir immer true zurückgeben, wenn die Abfrage > 0 ist?
Hallo !
Ich glaube ich weiss wo das problem liegt ...
nimm einfach mal das kommentar weg. so wie ich das sehe (hab es nur kurz getestet) verhält sich der typo3 TS parser anders wenn ein kommentar in der condition zeile ist ...
grüsse,
Bernhard
Das war es!
Ich kann gar nicht ausdrücken, wie glücklich mich dein Beitrag macht. Vielen, vielen Dank.
Auf die Idee wäre ich nie gekommen.