【问题标题】:Language switching in TYPO3 v6TYPO3 v6 中的语言切换
【发布时间】:2013-11-17 10:44:26
【问题描述】:

按预期切换字体语言对我不起作用。到目前为止我做了什么:

在根页面,我创建了两种网站语言,德语和英语:

在我添加了以下设置的打字稿模板中,我发现大部分内容散布在网络上:

config {
  tx_realurl_enable = 1
  simulateStaticDocuments = 0
  sys_language_uid = 0
  language = de
  locale_all = de_DE
  htmlTag_langKey = de
  linkVars := addToList(L)
  uniqueLinkVars = 1
  sys_language_mode = content_fallback
  sys_language_overlay = 1
}

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

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

在一个页面上,我为该页面创建了一个新的翻译并添加了一些内容。

左边是标准语言(在本例中为德语),填充了 lorem ipsum。右边是新的语言(英语),填充了一些不同的内容,只是为了看看效果。

现在,当我点击英文栏上方的小预览图标时,它会将我带到index.php?id=3&L=2,这表示添加了L=2。但是网站上的内容仍然是标准(德语/lorem ipsum)内容。我哪里做错了?

另外:我在前端添加了一个菜单让用户在语言之间切换:

  languageMenu = HMENU
  languageMenu {
    special = language
    special.value = 0,2
    1 = TMENU
    1 {
      wrap = <ul id="language"> | </ul>
      NO = 1
      NO {
        wrapItemAndSub = <li> | </li>
        stdWrap.override = deutsch || english
      }
      ACT < .NO
      ACT {
        ATagParams = class="active"
      }
    }
  }

与 realurl 结合,会产生这样的 url:

德语:/startseite/ 英文:/2/home/

  1. 语言是否可以使用deen 等参数代替数字?
  2. 如何确保网址始终包含德语或英语参数?
  3. /startseite/ 上时,相应的链接将获得class="active",但在/2/home/ 上,没有链接被标记为活动的。怎么解决?

TYPO3 和多语言似乎是一个令人困惑的话题,我希望你们中的一些人能回答我的一些问题。提前致谢!

编辑:感谢丹尼尔找到了解决方案。

这里是为了以防其他人有同样的问题:

设置:

config {
  tx_realurl_enable = 1
  simulateStaticDocuments = 0
  sys_language_uid = 0
  language = de
  locale_all = de_DE
  htmlTag_langKey = de
  linkVars := addToList(L)
  uniqueLinkVars = 1
  sys_language_mode = content_fallback
  sys_language_overlay = 1
}

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

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

[...]

  languageMenu = HMENU
  languageMenu {
    special = language
    special.value = 0,2
    1 = TMENU
    1 {
      wrap = <ul id="language"> | </ul>
      NO = 1
      NO {
        wrapItemAndSub = <li> | </li>
        stdWrap.override = deutsch || english
      }
      ACT < .NO
      ACT {
        ATagParams = class="active"
      }
    }
  }

RealUrl 配置:

    'preVars' => 
    array(
      0 => 
      array(
        'GETvar' => 'L',
        'valueMap' => 
        array(
          'de' => '0',
          'en' => '2',
        ),
        'valueDefault' => 'de'
      ),
    ),

【问题讨论】:

  • 感谢 qus。我有同样的问题。但我仍然不知道“realURL”是否要添加这些代码。因为我是typo3的新手。请告诉我如何添加它。谢谢。

标签: internationalization typo3


【解决方案1】:

1) + 2) 在你的 realURL 配置中使用 valueMap:

   'preVars' =>
      array(
       0 =>
          array(
            'GETvar' => 'L',
            'valueMap' =>
              array(
                'de' => '0',                    
                'en' => '2'
              ),
          )
      )

3) 尽量让 L 参数与 sys_language_uid 保持同步。 所以对于英语使用:

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

【讨论】:

  • 谢谢,这很有魅力。我将解决方案编辑到我的问题中,以防其他人遇到同样的问题!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多