Zum Inhalt springen

URL's der alternativen Sprache mit CoolURI

Erstellt am 7. April 2010 · 3 Antworten · letzte Antwort am 28. April 2010

Tags: Frage

stefan_1st ·

Hallo zusammen,

ich such mich grad dumm und dusselig, aber irgendwie find ich nicht das passende.

Folgende Situation: Ich habe eine deutsche Typo3 Seite. Die läuft mit CoolUri und alles ist supi. Jetzt soll sie aber auch übersetzt werden, englisch als Alternative. Das stellt auch kein Problem dar. Übersetzung ist soweit schon eingebaut.

Das eigentlich "Problem" ist jetzt, dass die generierten URL's eigentlich uncool sind, denn eine Seite wie /verband/ueber-uns wird "übersetzt" zu /en/verband/ueber-uns , was natürlich nicht schön ist. Das /en ist ja soweit ok, aber verband/ueber-uns müßte doch eigentlich zu so etwas werden wie association/about-us. Die Seitentitel sind auf jeden Fall eingestellt.

Hab ich in der Configuration etwas übersehen oder so? Geht das denn bei euch?

Danke,
Stefan

pxlr.​de ·

Habe gerade exakt das gleiche Problem ..

mein TS

#Cooluri
config {
  baseURL = http://www.domain.de/
  simulateStaticDocuments = 0
  tx_cooluri_enable = 1
  redirectOldLinksToNew = 1
  sys_language_overlay = 1
}

#Sprache
config {
  linkVars = L(1)
  uniqueLinkVars = 1
  sys_language_uid = 0
  language = de
  locale_all = de_DE
  htmlTag_langKey = de
}

[globalVar = GP:L = 1]
config {
  sys_language_uid = 1
  language = en
  locale_all = en_UK
  htmlTag_langKey = en
}
[global]
to3i ·

Also ich hab dasselbe Problem.

Hier eine Diskussion die einigen weiterhelfen könnte:

http://www.mail-archive.com/typo3-english@lists.netfielders.de/msg21579.html

Geh mal in die class.tx_cooluri.php und mach ein print unter der Zeile:

  function getPageTitleBE($conf,$value) {
  //print_r($value);

und an der Stelle
(Hier liegt bei mir das Problem. $langVar ist empty.)

    $confArray = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['cooluri']);
    $langVar = $confArray['LANGID'];
    //print 'langvar:'.$langVar.'</br></br>';;
    
    $langId = empty($value[$langVar])?false:$value[$langVar];
    $langId = (int)$langId;
    $pagepath = Array();

und an der Stelle

if ($count['num']>0 || $page['is_siteroot']==1) { return $pagepath; }
//print 'pages_language_overlay pid='.$id.' AND sys_language_uid='.$langId.$enable.'</br>';

Bei mir ist das Problem, dass sys_language_uid immer 0 ist, weil das $langVar leer und damit langId = 0 ist. Hat jemand eine Idee, warum $confArray['LANGID'] leer sein könnte?

# Setting up language:
config.sys_language_mode = content_fallback
config.sys_language_overlay = 1
config.linkVars = L
## Languages ##
# Default Language Deutsch
config.sys_language_uid = 0
config.language = de
config.locale_all = de-DE
page.meta.language = de
#page.config.additionalHeaders = language:de


# English language, sys_language.uid = 2
[globalVar = GP:L = 2]
config.htmlTag_langKey = en
config.sys_language_uid = 2
config.language = en
config.locale_all = en-EN
page.meta.language = en
lib.clickpfad.10.value = <span>you are here:&nbsp;</span>
[global]
<valuemaps>
    <valuemap>
      <parameter>L</parameter>
      <value key="">0</value>
      <value key="en">2</value>
	  <value key="cz">3</value>
    </valuemap>
  </valuemaps>
  <pagepath>
    <title>tx_realurl_pathsegment,alias,subtitle,title</title>
    <saveto>id</saveto><!-- READONLY -->
    <default>0</default><!-- READONLY -->
    <userfunc>tx_cooluri->getPageTitle</userfunc>
    <t3conv>1</t3conv>
  </pagepath>