Zum Inhalt springen

Flaggen sind nicht anklickbar

Erstellt am 24. März 2007 · 13 Antworten · letzte Antwort am 23. Februar 2008

Tags: Frage

Dinchen21 ·

Hallo Zusammen,

meine Flaggen Deutsch und Englisch werden nun endlich angezeigt aber ich habe festgestellt, dass sie nicht anklickbar sind.

Weiß jemand woran das liegen kann?
Könnte es an der php-datei liegen?

Ich weiß leider nicht mehr weiter...

Hier das TS:

...

lib.sprache = PHP_SCRIPT
lib.sprache.file = fileadmin/scripts/example_languageMenu.php
 
...

#############################
# Seiten Einstellungen
#############################

config.doctype = xhtml_trans
config.xhtml_cleaning = all
config.htmlTag_langKey = de

config.linkVars = L
config.sys_language_uid = 0
config.language = de


#############################
# Mehrsprachigkeit
#############################

# SprachVariable L initialisieren

config.linkVars = L
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE


# Standardsprache UID 0 -> Deutsch

[globalVar = GP:L = 0]
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
[global]

 
# Englisch, sys_language.uid = 1

[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = en
config.locale_all = en_EN
[global]

Vielen Dank!
LG Dinchen

velvet ·

Hallo Dinchen,

wie sieht denn Deine example_languageMenu.php aus? Kannst Du sie auch mal posten?

Gruß
Nicole

velvet ·

Hi Dinchen,

ich würd das TS so schreiben:

#############################
# Seiten Einstellungen
#############################
 
config.doctype = xhtml_trans
config.xhtml_cleaning = all
config.htmlTag_langKey = de
 
 
#############################
# Mehrsprachigkeit
#############################
 
# SprachVariable L initialisieren
 
config.linkVars = L
 
# Standardsprache Deutsch wird festgelegt 
 
[globalVar = GP:L = 0]
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
[global]
 
 
# Englisch, sys_language.uid = 1
 
[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = en
config.locale_all = en_EN
[global] 

# ###############################################
# Einbinden der Flaggen und des PHP-Scripts
#################################################

lib.mehrsprachig.select.where = col.Pos=0
lib.mehrsprachig.select.languageField = sys_language_uid
lib.mehrsprachig = PHP_SCRIPT
lib.mehrsprachig.file = fileadmin/scripts/mylanguagemenu.php

Hilft das?

Gruß Nicole

just2b ·

Standardsprache braucht und darf in keine COndition, so gesehen ist im original zeile 35-39 überflüssig.

georg

Dinchen21 ·

Hallo Nicole,

also in der Zwischenzeit habe ich gemerkt, dass ich in meinem TS manches doppelt habe :o

Hier nochmal das aktuelle TS:

#############################
# Seiten Einstellungen
#############################

config.doctype = xhtml_trans
config.xhtml_cleaning = all
config.htmlTag_langKey = de

config.sys_language_mode = content_fallback
config.sys_language_overlay = hideNonTranslated
config.linkVars = L
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
config.metaCharset = iso-8859-1
config.renderCharset = iso-8859-1


#############################
# Mehrsprachigkeit
#############################

# Standardsprache UID 0 -> Deutsch

[globalVar = GP:L = 0]
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE
[global]

 
# Englisch, sys_language.uid = 1

[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = en
config.locale_all = en_EN
[global]

Und hier die example_languageMenu.php:

<?php
/***************************************************************
*  Copyright notice
*
*  (c) 1999-2005 Kasper Skaarhoj (kasperYYYY@typo3.com)
*  All rights reserved
*
*  This script is part of the TYPO3 project. The TYPO3 project is
*  free software; you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
*  the Free Software Foundation; either version 2 of the License, or
*  (at your option) any later version.
*
*  The GNU General Public License can be found at
*  http://www.gnu.org/copyleft/gpl.html.
*  A copy is found in the textfile GPL.txt and important notices to the license
*  from the author is found in LICENSE.txt distributed with these scripts.
*
*
*  This script is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*
*  This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
/**
 * Creates a language-selector menu with three flags, an english, a danish and a german flag for each language supported on the site.
 *
 * THIS IS AN EXAMPLE designed to work with the official TYPO3 testsite, section "Another site in the ..."
 * You will have to program a similar menu for your own case.
 *
 * $Id: example_languageMenu.php 1425 2006-04-12 19:42:41Z ingmars $
 * Revised for TYPO3 3.6 June/2003 by Kasper Skaarhoj
 * XHTML compliant
 *
 * @author	Kasper Skaarhoj <kasperYYYY@typo3.com>
 */


if (!is_object($this)) die ('Error: No parent object present.');




 // First, select all pages_language_overlay records on the current page. Each represents a possibility for a language.
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'pages_language_overlay', 'pid='.intval($GLOBALS['TSFE']->id).$GLOBALS['TSFE']->sys_page->enableFields('pages_language_overlay'), 'sys_language_uid');

$langArr = array();
while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res))	{
	$langArr[$row['sys_language_uid']] = $row['title'];
}

// Little red arrow, which is inserted to the left of the flag-icon if the TSFE->sys_language_uid equals the language uid (notice that 0=english, 1=danish and 2=german is SPECIFIC to this database, because these numbers refer to uid's of the table sys_language)



// Set each icon. If the language is the current, red arrow is printed to the left. If the language is NOT found (represented by a pages_language_overlay record on this page), the icon is dimmed.
$flags = array();

$flags[] = ($GLOBALS['TSFE']->sys_language_uid==0?$pointer:'').($GLOBALS['TSFE']->sys_language_uid!=0?'<a href="'.htmlspecialchars('?&L=0').'" target="_top"><img class="flag" src="fileadmin/templates/version1/images/flag_de.gif" width="21" height="13" alt="Deutsch" title="Deutsch" /></a>':'<img class="flag" src="fileadmin/templates/version1/images/flag_de.gif" width="21" height="13" alt="Deutsch" title="Deutsch" />');
$flags[] = ($GLOBALS['TSFE']->sys_language_uid==1?$pointer:'').($GLOBALS['TSFE']->sys_language_uid!=1?($langArr[1]?'<a href="'.htmlspecialchars('?&L=1').'" target="_top"><img class="flag" src="fileadmin/templates/version1/images/flag_uk.gif" width="21" height="13" alt="English" title="English" /></a>':'<img class="flag" src="fileadmin/templates/version1/images/flag_uk.gif" width="21" height="13" alt="English" title="English - not available yet" />'):'<img class="flag" src="fileadmin/templates/version1/images/flag_uk.gif" width="21" height="13" alt="English" title="English" />');

// Make the little menu. Notice, the menu does ONLY transfer the page-id and the "L" variable (which is also SPECIFIC for this website because "L" has been used in the extension template used to control the language setup)
$content = '<div class="sprachMenu">'.implode($flags).'</div>';
?>

Also die ganzen kommentare nicht beachten :-) Ich habe da eine Vorlage benutzt.

Achso, die Falggen sind nur manchmal nicht anklickbar, das ist echt komisch. Also manche Seiten werden auf Deutsch und manche auf Englisch angezeigt. Es ist echt seltsam :o

Wenn ich beispielsweise auf einen Menüpunkt Login klicke erscheint die Seite sogleich in Englisch (das wird in der URL mitgegeben: index.php?id=29&L=1).
Und wenn ich dann auf die Deutsche Flagge klicke werde ich mit Home verlinkt obwohl ja nun eigentlich der Login in deutsch erscheinen sollte.

Ich habe so etwas noch nie gesehen :-) sehr komisch das Ganze...

LG Dinchen

Dinchen21 ·

Hallo,

dankeschön, also Zeile 23-29 habe ich nun entfernt aber es ist leider immernoch das seltsame Verhalten der Flaggen vorhanden...

hmmm..

LG Dinchen

just2b ·

In deinem letzten TS kannst du Zeilen 25-29 entfernen! 😉
Und ich würde auf das languagescript ganz verzichten und das mit dieser Ext machn: bb_languageselect, dann bekommst auch gleich die richtigen urls (also mit realurl/simulatestatic)

lg georg

Dinchen21 ·

Hallo Georg,

ok, die Zeilen habe ich entfernt aber funktionieren tuts leider noch nicht so richtig.
Habe nicht gewusst das das auch ohne die php-datei geht.
Wo kann ich die bb_languageselect finden? Denn im Ext. Manager ist sie nicht.

Dankeschön.
LG Dinchen

Dinchen21 ·

Hallo Georg,

dankeschön.
Die Extension habe ich nun.
Kannst du mir sagen wie ich weiter fortfahren kann bzw. was ich nun ändern muss?

Da weiß ich nämlich nicht mehr weiter...

LG Dinchen

Dinchen21 ·

Hallo Georg,

wow, es hat geklappt :p Das ist ja echt klasse!
Läuft nun alles ohne Probleme.

Das einzige was nun noch fehlt ist, dass die Menüpunkte selbst nicht
in Englisch erscheinen. Wo muss ich das denn festlegen bzw. einstellen
damit auch die Navigationspunkte in englischer Sprache angezeigt werden?

Vielen Dank für die Hilfe!

LG Dinchen

Dinchen21 ·

Hallo Georg,

ok, das Problemchen hat sich nun auch gelöst *freu*
Jetzt ist alles perfekt :p

Vielen Dank nochmal für die Hilfe!
LG Dinchen

jens ·

Hallo zusammen,

mit großem Interesse habe ich diesen Thread gelesen und Stück für Stück nachvollzogen, da ich auch gerade an einer bilingualen Seite bastele.

Ich habe im TS alle nötigen Angaben für die Sprachumstellung vorgenommen. Zumindest wird die Sprache gewechselt, wenn ich händisch http://domain.de/index.php?id=14&L=0 (deutsch) bzw. http://domain.de/index.php?id=14&L=2 (englisch) eingebe.

Leider bekomme ich es nicht hin, dass mein Marker durch das Sprachmenü ersetzt wird. Ich habe es bereits mit dem php Dokument und nun auch mittels der Extension versucht.

Hierzu habe ich folgenden Code im Setup Feld eingetragen

temp.languageSelect = USER
temp.languageSelect {
userFunc = tx_bblanguageselect_pi1->showFlags
iconset = jacorre
cn_DE = 0
cn_GB = 2
}
lib.SPRACHE < temp.languageSelect

Wobei SPRACHE mein Marker ist, der leider nicht ersetzt wird.

Was mache ich hier falsch?

Bin für jeden Tip dankbar... 😃