使用浏览器语言设置来设置语言(rlmp_language_detection)

时间:2015-03-12 15:36:32

标签: typo3 typo3-6.2.x language-detection

我尝试在我的拼写错误6.2 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

插件的我的Typoscript:

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参数,所以我得到了默认语言。

2 个答案:

答案 0 :(得分:4)

我遇到了同样的问题: 我是如何让它一步一步地运作的:

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

2步骤 istall rlmp_language_detection

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

4步 include static templates 在TS模板中包含静态模板

5步

enter image description here enter image description here

请不要忘记在基线页面树中选择玩具郎的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

答案 1 :(得分: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。