Antwort
 
LinkBack Themen-Optionen Thema bewerten Ansicht
  #1  
Alt 30.07.08, 13:02
Forum Newbie
 
Registriert seit: 06.02.08
Alter: 28
Beiträge: 15
Frage

Extension wechselt die Sprache nicht


Hallo,

habe eine 2-sprachige (default de, alternativ en) Site (templaVoila) und schreibe hierfür eine Extension, die eine Mitarbeitertabelle ausgibt. Die Tabellenüberschriften derselben sollen sich naheliegender Weise auch der aktuellen Sprache anpassen - tun sie aber leider nicht.

Wenn ich die Sprache wechsle, schaltet alles um - außer den mehrspreachigen Elementen der Extension. Auf die locallang.xml wird aber zugegriffen; die deutschen Texte werden hier geholt.

Hier der entsprechende Teil des Templates:

HTML-Code:
<!-- ###LISTVIEW### -->\n
<table cellpadding="3" cellspacing="1" style="table-layout:fixed; width:520px">\n
  <tr class="tr-0">\n
      <td class="td-0" style="width:140px"><strong>###THNAME###</strong></td>    \n
    <td class="td-1" style="width:110px"><strong>###THPHONE###</strong></td>    \n
    <td class="td-2"><strong>###THEMAIL###</strong></td>    \n
    <td class="td-last"style="width:35px">&nbsp;</td>\n
  </tr>\n
  <!-- ###ROW### -->\n
  <tr class="tr-###EVENODD### tr-###ROWNR###">    \n
      <td class="td-0"><a href="###LINK###" ###LINKTARGET###>###NAME###</a> </td>\n
    <td class="td-1" >###TELEFON###</td>    \n
    <td class="td-2" style="white-space: nowrap;"><script language="javascript">elektropost("###MAILNAME###","","###MAILDOMAIN###");</script></td> <td class="td-last" style="white-space: nowrap;">###STATUSICONS###</td>\n
  </tr>\n
  <!-- ###ROW### -->\n
</table>\n
<br> <br> <br>\n
<!-- ###LISTVIEW### -->\n
... und hier die locallang.xml:

HTML-Code:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>\n
<T3locallang>\n
    <meta type="array">\n
        <type>module</type>\n
        <description>Language labels for plugin &quot;tx_mitarbeiter_pi1&quot;</description>\n
    </meta>\n
    <data type="array">\n
        <languageKey index="default" type="array">   \n     
            <label index="th_name">Name</label>\n
            <label index="th_phone">Telefon</label>\n
            <label index="th_email">E-Mail</label>\n       
        </languageKey>\n
        <languageKey index="de" type="array">\n
            <label index="th_name">Name</label>\n
            <label index="th_phone">Telephone</label>\n
            <label index="th_email">E-Mail</label>\n
        </languageKey>     \n   
    </data>\n
</T3locallang>\n
.. und die relevanten Teile pi1.php:

PHP-Code:
function main($content,$conf) {          
        
$this->conf $conf;
        
$this->pi_setPiVarDefaults();
        
$this->pi_loadLL();
                                 
$this->template=$this->cObj->fileResource('EXT:mitarbeiter/template.html');
$this->id=$GLOBALS['TSFE']->id;
        
        
# Mitarbeiterdaten holen
        
$res=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
            
'*',   #select
            
'tx_mitarbeiter_data'#from
            
'hidden=0 and deleted=0 and pid IN ('$this->id')',  #where
            
$groupBy='',
            
$orderBy='',
            
$limit='');
        
        if(
$res) {
            if(
$row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
                
# Je nach Konfig passende Ausgabe anzeigen ..
                
if($row['mitarbeiter'] != ""){ 
                    
$content $this->detailAnsicht($row);
                } else {
                    
$content $this->listenAnsicht($row);
                }
            }
        }

        return 
$this->pi_wrapInBaseClass($content);
        
    }

function 
listenAnsicht($mitarbeiterKonfig) {                                     
  
// $buildListArray holt die Daten aus der DB und baut ein Array    
$tma $this->buildListArray("Status = 'Technische Mitarbeiter'");
   
// ....
 
$listContent .= $this->tabellenAusgabe($tma,"Technische Mitarbeiter",$mitarbeiterKonfig["zeige_titel"]);
}

function 
tabellenAusgabe($InputArray,$UeberschriftErzwingen,$TitelAnzeigen)    {          
        if(
is_array($InputArray)) {
            
        
# Template-Subpart auswählen
            
$subpart=$this->cObj->getSubpart($this->template,'###LISTVIEW###');                               
            
$markerArray['###THNAME###'] = $this->pi_getLL('th_name');
            
$markerArray['###THPHONE###'] = $this->pi_getLL('th_phone');
            
$markerArray['###THEMAIL###'] = $this->pi_getLL('th_email');

    
// rows Ausgeben ..

Ich habe mich sehr bemüht, den PHP-Code auf das nötigste zusammen zu stauchen und hoffe, dass verständlich bleibt, was gemacht wird und natürlich, dass alle relevanten Elemente drin sind.

Bin für jeden Tipp dankbar!

Gruß,
David
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #2  
Alt 30.07.08, 15:07
TYPO3forum.net Donater
 
Registriert seit: 19.01.06
Ort: Köln
Beiträge: 836

Also ein bisschen sonderbar ist, dass die default Werte in locallang Deutsch und die de-Werte Englisch sind.

Wie ist der Sprachumschalter gemacht?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #3  
Alt 31.07.08, 15:47
Forum Newbie
 
Registriert seit: 06.02.08
Alter: 28
Beiträge: 15

Das stimmt, hatte damit herumexperimentiert um zu prüfen, ob die Daten aus der locallang.xml überhaupt verwendet werden und es evtl. funktioniert, wenn man en als default verwendet etc.

Zum Umschalten verwende ich das PHP languageMenu von Kasper in einer etwas modifizierten Form.. so sieht's aus:

PHP-Code:
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'];
}

// 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[] = '<a href="'.htmlspecialchars('index.php?id='.$GLOBALS['TSFE']->id.'&L=0').'" lang="de" xml:lang="de" target="_top"><img src="fileadmin/media/flags/flag_de'.($GLOBALS['TSFE']->sys_language_uid==0?'_grau':'').'.gif" width="21" height="13" hspace="5" border="0" alt="Diese Seite auf deutsch" /></a>';
$flags[] = '<a href="'.htmlspecialchars('index.php?id='.$GLOBALS['TSFE']->id.'&L=1').'" lang="en" xml:lang="en" target="_top"><img src="fileadmin/media/flags/flag_uk'.($GLOBALS['TSFE']->sys_language_uid==5?'_grau':'').'.gif" width="21" height="13" hspace="5" border="0" alt="Switch to English" /></a>';

// 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 implode('',$flags); 
Ist zwar nicht besonders schön, aber hat bisher immer prima funktioniert und spart mir Typoscript, was gut ist, weil mehrere Seiten mit eigenem TS-Setup parallel in dem Projekt betrieben werden. Meinst du es liegt daran?

Gruß,
David
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #4  
Alt 06.08.08, 11:31
TYPO3forum.net Donater
 
Registriert seit: 19.01.06
Ort: Köln
Beiträge: 836

Ich kann mir vorstellen, dass es daran liegt, dass bei dir die Labels in deiner Locallang vertauscht sind. Setzt die bitte richtig rum - bei de die deutschen Wörter, bei default die englischen. Und wenn es dann nicht funktioniert, schauen wir weiter...
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #5  
Alt 06.08.08, 14:27
Forum Newbie
 
Registriert seit: 06.02.08
Alter: 28
Beiträge: 15

Das war's leider nicht ..


Hi ghoti,
danke für die Tipps, aber daran hat es nicht gelegen.. nachdem ich die englischen Texte in den default-Bereich gesetzt habe, werden mir nun immer diese angezeigt. Wechseln funktioniert leider trotzdem nicht.

Gruß,
David
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #6  
Alt 07.08.08, 12:48
TYPO3forum.net Donater
 
Registriert seit: 19.01.06
Ort: Köln
Beiträge: 836

Wechselt bei dir denn die Sprache überhaupt?
Hast du so was bei dir drinstehen im Template:
Typoscript-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
config {
# default language settings
linkVars = L
sys_language_uid = 0
language = de
locale_all = de_DE.UTF-8
}
[globalVar = GP:L = 1]
config {
sys_language_uid = 1
locale_all = en_EN.UTF-8
language = en
}
[global]
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #7  
Alt 07.08.08, 13:12
Forum Newbie
 
Registriert seit: 06.02.08
Alter: 28
Beiträge: 15

Jepp, alles außer der Extension wechselt genau wie es soll.
Hier der Abschnitt zur Mehrsprachigkeit aus dem Setup:
Typoscript-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
config.sys_language_overlay = 1

# Standardsprache festlegen
config.linkVars = L
config.sys_language_uid = 0
config.language = de
config.locale_all = de_DE


# Alternative Sprachen
[globalVar = GP:L=1]
config.sys_language_uid = 5
config.language = en
config.locale_all = en_EN
config.htmlTag_langKey = en

[global]

ib.langswitch = PHP_SCRIPT
lib.langswitch.file = fileadmin/scripts/languageMenu.php
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #8  
Alt 13.08.08, 09:13
TYPO3forum.net Donater
 
Registriert seit: 19.01.06
Ort: Köln
Beiträge: 836

kannst du mal die Extension als t3x zur Verfügung stellen, dann probiere ich das mal lokal aus.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Gelöst Headerbilder wechselt passend zur Sprachwahl typjoo TYPO3 4.x Fragen und Probleme 2 19.06.08 12:00
Sprachwahl wechselt immer zurück sirride TYPO3 4.x Fragen und Probleme 2 06.04.08 09:57
sr_language Extension: neue Sprache erscheint nicht in der Auswahl jenno TYPO3 4.x Fragen und Probleme 0 11.01.08 00:59
Eigene Extension und RealURL probleme mit Sprache? typonewbe Extension modifizieren oder neu erstellen 0 20.09.07 13:23
Mehrsprachigkeit: Menü wechselt auf dt. bastian83 GMENU, HMENU, TMENU und Co. 10 15.08.07 22:42


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0