Zum Inhalt springen

/de /fr /en mit RealURL

Erstellt am 24. Januar 2007 · 8 Antworten · letzte Antwort am 6. Februar 2007

Tags: Frage

gongo ·

hallo zusammen hab realurl für eine mehrsprachige Seite.

Soweit funktoniert alles gut nur wenn ich jetzt die Seite www.domain.de/de/seite.html aufrufe und dann irgend ein link klicke (egal ob content oder Menü), gelange ich immer wieder auf www.domain.de/seitexxx.html obwohl alle Pfade relativ angegeben sind.
Wie kann ich das verhindern? Ich sitze da irgendwie auf dem Schlauch. Danke für eure Hilfe.

Also mein Frage: Wie muss ich konfigurieren damit die URL vom Menü auf www.domain.de/en/seite.html zeigt und nicht auf www.domain.de/seite.html
?

G.

gongo ·

Mein Menü sieht im Moment so aus

# Menu 1 cObject

lib.menu_1 = HMENU
  # First level menu-object, textual

lib.menu_1.1 = TMENU
lib.menu_1.1 {
    wrap = <ul>|</ul>
    NO.linkWrap =  | 
    NO.doNotShowLink = 1
    NO.before.cObject = TEXT
    NO.before.cObject.field = alias
    NO.before.cObject.dataWrap = <li><a href="{field:tx_realurl_pathsegment}.html" title="{field:title}">{field:nav_title}</a></li>
    NO.RO=1
    ACT = 1
    ACT.linkWrap = |
    ACT.doNotShowLink = 1
    ACT.before.cObject = TEXT
    ACT.before.cObject.field = alias
    ACT.before.cObject.dataWrap = <li><a href="{field:tx_realurl_pathsegment}.html"  title="{field:title}" class="current">{field:nav_title}</a></li>
}

Ich vermute dass ich hier noch die Sprache in der url ausgeben muss /de /en /fr
nur wie? Und wie geht das mit den Content Links?

Hmmm, hat keiner verstanden wo mein Problem liegt oder bin ich es der de Wald vor lauter Bäumen nicht sieht??? 😢

gongo ·

wirklich keiner eine Ahnung? So langsam läuft mir die Zeit davon... Muss das aber dringend bearbeiten. Ich kann auch gerne einen kleinen Job draus machen. Wenn es sich denn überhaupt lohnt. Ich denke es ist nur eine Kleinigkeit, nur muss man wissen wo man ansetzen muss...

G

Unbekannter Benutzer ·

achso, neee schon gut. Es liegt an deinem Menücode... Da wird die Sprache ja gar nicht berücksichtigt...

Gibts bestimmt eine elegantere Lösung, aber erstell mal eine Constant ala:

constant.languageISO = de

und dann mit Conditions umschalten

[globalVar = GP:L = x]
constant.languageISO = en
[end]

und so weiter, halt jeweils mit der Sprach ID und dem entsprechenden Kürzel.

Dann kannst du die Constant in deinem Menücode benutzen:

NO.before.cObject.dataWrap = <li><a href="{$constant.languageISO}/{field:tx_realurl_pathsegment}.html" title="{field:title}">{field:nav_title}</a></li>

passend dann auch im ACT ändern. Dann sollte es gehen. Die Sprache ist halt nicht Teil des Pathsegment.

Grüße

Christian

gongo ·

Hi, thx ... ich wußte ja dass es nicht so kompliziert sein kann 😃
das funktioniert auch prächtig... jetzt müssen nur noch die internen links im content angepasst werden.
Ok, wie passe ich jetzt die im content erzeugten internen Links an?

gongo ·

eben, das dachte ich auch dass die automatisch erstellt werden sollten. Ich dachte das müsste eigentlich auch bei Menü der Fall sein.
Also hier mein Sprachen Setup 3 Sprachen DE FR EN
Default ist DE

## Standard Sprache festlegen
config {
	uniqueLinkVars = L
	sys_language_mode = content_fallback
	#sys_language_overlay = hideNonTranslated
	language = de
	locale_all = de_DE
	sys_language_uid = 0
	htmlTag_setParams = xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"
}

[globalVar = GP:L = 1]
config.sys_language_uid = 1
config.language = en
config.locale_all = en_EN
config.htmlTag_setParams = xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"

[globalVar = GP:L = 2]
config.sys_language_uid = 2
config.language = fr
config.locale_all = fr_FR
config.htmlTag_setParams = xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"
[end]

Real URL

## Config Real URL
config {
 	simulateStaticDocuments = 0
	baseURL = http://www.example.com/
	tx_realurl_enable = 1
	prefixLocalAnchors = all
}

localconf.php

$TYPO3_CONF_VARS['EXTCONF']['realurl']['_DEFAULT'] = array(
 'init' => array(
  'enableCHashCache' => 1,
  'enableUrlDecodeCache' => 1,
  'enableUrlEncodeHash' => 1,
 ),
 'rewrite' => array(),
 'preVars' => array(
			array(
				'GETvar' => 'no_cache',
				'valueMap' => array(
					'nc' => 1,
				),
				'noMatch' => 'bypass',
			),
			array(
				'GETvar' => 'L',
				'valueMap' => array(
					'fr' => '6',
					'en' => '5',
					'de' => '4',
				),
				'noMatch' => 'bypass',
				'valueDescription' => array(
				'de' => 'deutsch',
				'en' => 'english',
				'fr' => 'francais',
				),
				'noMatch' => 'bypass',
			),
		),
 'pagePath' => array(
  'type' => 'user',
  'userFunc' =>
   'EXT:realurl/class.tx_realurl_advanced.php:&tx_realurl_advanced->main',
  'spaceCharacter' => '-',
  'languageGetVar' => 'L',
  'expireDays' => 3,
  'rootpage_id' => '1'
 ),
 'fileName' => array (
  'defaultToHTMLsuffixOnPrev' => 1,
  'index' => array(
   'page.html' => array(
    'keyValues' => array (
     'type' => 1,
    ),
   ),
  ),
 ),
 'fixedPostVarSets' => array(),
 'postVarSets' => array(
  '_DEFAULT' => array(
   'period' => array (
    array (
     'condPrevValue' => -1,
     'GETvar' => 'tx_ttnews[pS]',
    ),
    array (
     'GETvar' => 'tx_ttnews[pL]',
    ),
    array (
     'GETvar' => 'tx_ttnews[arc]',
     'valueMap' => array(
      'non-archived' => -1,
     ),
    ),
   ),
   'browse' => array (
    array (
     'GETvar' => 'tx_ttnews[pointer]',
    ),
   ),
   'select' => array (
    array (
     'GETvar' => 'tx_ttnews[cat]',
     'lookUpTable' => array (
      'table' => 'tt_news_cat',
      'id_field' => 'uid',
      'alias_field' => 'title',
      'addWhereClause'=> 'AND NOT deleted',
      'useUniqueCache'=> 1,
      'useUniqueCache_conf' => array (
       'strtolower' => 1,
       'spaceCharacter' => '-',
      ),
     ),
    ),
   ),
  ),
 ),
);
Unbekannter Benutzer ·

Das hier kann nicht funktionieren... Da müssen die IDs deiner Sprachen rein:

array(
                                'GETvar' => 'L',
                               'valueMap' => array(
                                        'fr' => '6', // hier 2
                                        'en' => '5', // hier 1
                                        'de' => '4', // hier 0
                                ),
                                'noMatch' => 'bypass',
                                'valueDescription' => array(
                                'de' => 'deutsch',
                                'en' => 'english',
                                'fr' => 'francais',
                                ),
                                'noMatch' => 'bypass',
                        ),

Die durch meinen Kommentar jeweils markierten Zeilen entsprechend ändern. Dann sollte es klappen. Bzw. wenn 6,5,4 deine Sprach-IDs sind, dann musst du im Setup bei den Bedingungen und bei sys_language_uid etwas ändern.

Viele Grüße

Christian