3

我尝试在我的typo3 6.2 One-Tree Page 中自动设置语言。

在我的设置中,我使用 RealURL 将语言添加到 URL,我使用默认L参数。我不使用语言的 ISO 代码,但我使用 static_info_tables 来设置 ISO 代码。对于语言切换,我尝试使用扩展名rlmp_language_detection,但它不起作用。

我的语言配置(typo3name,官方 ISO 代码 - 使用 static_info_tables 选择,ID - 用于L参数)

  • 默认,-,0
  • en-jp, en, 1
  • en-us, en, 2
  • jp-jp, ja, 3

我的插件打字稿:

plugin.tx_rlmplanguagedetection_pi1 {
   useOneTreeMethod = 1
   defaultLang = en
}

我的语言排版:

config {
sys_language_uid = 0
language = en
locale_all = en-eu
}

[globalVar = GP:L = 1]
config {
sys_language_uid = 1
language = en
locale_all = en-us
}
[global]

[globalVar = GP:L = 2]
config {
sys_language_uid = 2
language = en
locale_all = en-jp
}
[global]

[globalVar = GP:L = 3]
config {
sys_language_uid = 3
language = jp
locale_all = jp-jp
}
[global]

为了测试它,我将我的第一种语言设置为日语,当我请求 rootpage 时,这在我的请求标头中:

Accept-Language:ja,de-DE;q=0.8,de;q=0.6,en-US;q=0.4,en;q=0.2

http://mybrowserinfo.com/说:

Language:Japanese
System Language:Not detectable with this browser
User Language:de

但是根本没有L设置参数,所以我得到了默认语言。

4

2 回答 2

4

我遇到了同样的问题:我是如何一步一步使它工作的:

1 步骤: 安装static_info_tables时要小心,它应该在 DB utf-8 charsetin latin1 中(在我的情况下)不起作用

2 步: 安装rlmp_language_detection

3 步: 检查您的服务器上是否安装了php-geoipphp 模块,如果没有安装 Ext:ml_geoip或任何方式安装它。

4 步骤 包括静态模板 在您的 TS 模板中包含静态模板

5 步

在此处输入图像描述在此处输入图像描述

请不要忘记在基线页面树中选择玩具语言的 ISO 代码

6 步 TS 设置 - 在所有 lang 配置后添加

plugin.tx_rlmplanguagedetection_pi1 {
   # this mean that you hav ejust one tree pages for all lang, for multi trees look manual
   useOneTreeMethod = 1 

   #important - this your website sys_language default
   defaultLang = ru 

   # use -1 when you wont to test redirect, after change to 0
   cookieLifetime = -1 

   # you defind which method will be used for redirect browser or ip, better testing just with one
   testOrder = browser,ip

  # we can config aliases like "code = lang1, lang2"
  languageAliases >
  languageAliases {
    ua = uk,en
    en = en
    ru = ru,en
  }

  #we can country codes dependencies "country code = lang"
  countryCodeToLanguageCode >
  countryCodeToLanguageCode {
    ua = uk
    us = en
    gb = en
    nz = en
    au = en
    ie = en
    ca = en
    by = ru
  }

  #this just limit input params array
  limitToLanguages = ru,uk,en 

}

# ok just after all we include ext to page, on ts begining you shoud to have "page = PAGE" just check
page.1007 = < plugin.tx_rlmplanguagedetection_pi1
于 2016-02-19T11:15:44.073 回答
2

我建议使用 .htaccess 重定向浏览器接受语言。这可以节省您加载整个 TYPO3 实例来进行重定向的工作。

根据您使用 realurl 的天气,它看起来像这样:

RewriteCond %{HTTP:Accept-Language} ^en-us [NC]
RewriteRule ^$ /en-us/ [L,R=307]

RewriteCond %{HTTP:Accept-Language} ^ja [NC]
RewriteRule ^$ /jp/ [L,R=307]

RewriteCond %{HTTP:Accept-Language} ^en-gb [NC]
RewriteRule ^$ /en-eu/ [L,R=307]

我不知道如何定位 en-jp。

在我们的网站上,我们使用 307 作为状态码,因此浏览器将始终寻找初始页面(以防结构发生变化),也不会影响 SEO。

于 2015-03-13T00:06:04.680 回答