2014-12-02 484 views
1

我希望这是简单的东西,我只是俯瞰。我们有3个Plone网站,其假设在其核心设置中完全相同,仅与安装的某些产品和实际内容不同。我注意到我们的翻译在一个网站上工作,而不是在另外两个网站上。到目前为止,我找不到任何区别。Plone Translations - i18ndude首选语言

我们使用i18ndude(版本3.3.3)和Plone 4.3.2。我们确实有自己的域名定制产品/类型,但它不仅仅是那些不起作用的东西,而是网站上的所有东西。

对于测试,我试图抓住并打印浏览器的语言。我同时使用context.REQUEST['LANGUAGE']context.portal_languages.getPreferredLanguage()。我在每次尝试'es','en'和'pt'时都设置了浏览器语言,因为这些语言是我们目前支持的语言。每个网站的网站语言都设置为英语。下面是我的测试结果:

Browser Language set to 'es': 
Site A: returned 'es' 
Site B: returned 'en' 
Site C: returned 'en' 

Browser Language set to 'en': 
Site A: returned 'en' 
Site B: returned 'en' 
Site C: returned 'en' 

Browser Language set to 'pt': 
Site A: returned 'en' 
Site B: returned 'en' 
Site C: returned 'en' 

站点A和B都在同一台服务器上,所以我不认为它缺少的服务器软件包。两者的构建几乎完全相同,但差异仅在于与这个问题看似无关的情侣蛋。

我只是不明白为什么它甚至没有检测到更新的浏览器语言,它只是默认回到网站的首选语言。除了一个站点中的一个场景。奇怪的是,这些都是我所知道的最好的工作,我不知道他们何时停止。

我没有检查context.portal_languages.getAvailableLanguages()只是为了确保我使用的是在那里,他们是。我还检查了国内目录的场所&的所有权和权限,这些都是跨网站匹配并准确设置的。

编辑

这是一个脚本,我很快就写了,看什么都值的Plone越来越:

pl = context.portal_languages 
langs = [str(language) for language in pl.getAvailableLanguages().keys()] 
print langs 
print "Preferred: ", pl.getPreferredLanguage() 

ts = context.translation_service 
print "Request Language: ", context.REQUEST['LANGUAGE'] 
print "Accept Language: ", context.REQUEST['HTTP_ACCEPT_LANGUAGE'] 

return printed 

这种运行这个时候,由优先级最高的第一列是我的浏览器的语言设置:

  1. PT-BR
  2. PT
  3. ES
  4. 连接
  5. EN-US

这是我的结果(站点A,这似乎认识到西班牙,而不是葡萄牙):

['gv', 'gu', 'gd', 'ga', 'gn', 'gl', 'lg', 'lb', 'ty', 'ln', 'tw', 'tt', 'tr', 'ts', 'li', 'tn', 'to', 'tl', 'lu', 'tk', 'th', 'ti', 'tg', 'as', 'te', 'ta', 'yi', 'yo', 'de', 'ko', 'da', 'dz', 'dv', 'qu', 'kn', 'lv', 'el', 'eo', 'en', 'zh', 'ee', 'za', 'uk', 'eu', 'zu', 'es', 'ru', 'rw', 'kl', 'rm', 'rn', 'ro', 'bn', 'be', 'bg', 'ba', 'wa', 'wo', 'bm', 'jv', 'bo', 'bh', 'bi', 'br', 'bs', 'ja', 'om', 'oj', 'la', 'oc', 'kj', 'lo', 'os', 'or', 'xh', 'ch', 'co', 'ca', 'ce', 'cy', 'cs', 'cr', 'cv', 'cu', 'ps', 'pt', 'lt', 'pa', 'pi', 'ak', 'pl', 'hz', 'hy', 'an', 'hr', 'am', 'ht', 'hu', 'hi', 'ho', 'ha', 'he', 'mg', 'uz', 'ml', 'mo', 'mn', 'mi', 'mh', 'mk', 'ur', 'mt', 'ms', 'mr', 'ug', 'my', 'ki', 'aa', 'ab', 'ae', 've', 'af', 'vi', 'is', 'vk', 'iu', 'it', 'vo', 'ii', 'ay', 'ik', 'ar', 'km', 'io', 'et', 'ia', 'az', 'ie', 'id', 'ig', 'ks', 'nl', 'nn', 'no', 'na', 'nb', 'nd', 'ne', 'ng', 'ny', 'kw', 'nr', 'nv', 'kv', 'fr', 'ku', 'fy', 'fa', 'kk', 'ff', 'fi', 'fj', 'ky', 'fo', 'ka', 'kg', 'ss', 'sr', 'sq', 'sw', 'sv', 'su', 'st', 'sk', 'kr', 'si', 'sh', 'so', 'sn', 'sm', 'sl', 'sc', 'sa', 'sg', 'se', 'sd'] 
Preferred: es 
Request Language: es 
Accept Language: pt-br,pt;q=0.8,es;q=0.6,en;q=0.4,en-us;q=0.2 

和结果网站B和C:

['en-mp', 'gv', 'gu', 'fr-dj', 'fr-gb', 'en-na', 'en-ng', 'en-nf', 'zh-hk', 'gd', 'pt-br', 'ga', 'gn', 'gl', 'en-nu', 'en-fm', 'en-ag', 'ms-my', 'ty', 'tw', 'tt', 'tr', 'ts', 'ko-kp', 'tn', 'to', 'tl', 'tk', 'th', 'ti', 'tg', 'te', 'zh-sg', 'ta', 'fr-mq', 'de', 'da', 'ar-ae', 'es-ni', 'dz', 'en-kn', 'fr-ml', 'dv', 'en-ms', 'fr-mg', 'fr-sc', 'fr-vu', 'qu', 'ar-qa', 'es-bo', 'en-nz', 'fr-bj', 'en-ws', 'fr-bi', 'zh', 'en-lr', 'fr-ch', 'fr-bf', 'za', 'fr-be', 'en-lc', 'fr-rw', 'zu', 'ch-mp', 'ar-ly', 'en-gb', 'en-nr', 'es-pr', 'tr-bg', 'en-gh', 'en-gi', 'fr-km', 'es-py', 'en-gm', 'es-pe', 'es-pa', 'en-gu', 'en-gy', 'sw-tz', 'ms-sg', 'wa', 'pt-st', 'wo', 'pt-ao', 'jv', 'fr-cd', 'ja', 'en-vu', 'es-ar', 'fr-td', 'fr-tg', 'da-dk', 'ch', 'co', 'en-vg', 'en-bz', 'ca', 'en-us', 'ce', 'en-ai', 'en-bm', 'en-vi', 'cy', 'en-bn', 'cs', 'cr', 'fr-ci', 'cv', 'cu', 'en-bb', 'ps', 'ln-cg', 'pt', 'en-au', 'zh-tw', 'es-mx', 'de-de', 'pa', 'es-ve', 'en-as', 'en-er', 'pi', 'de-dk', 'pl', 'en-sb', 'ch-gu', 'es-hn', 'en-sc', 'fr-nc', 'it-hr', 'ar-eg', 'mg', 'pt-pt', 'ml', 'mo', 'mn', 'mi', 'mh', 'mk', 'mt', 'ms', 'mr', 'fr-fr', 'hu-si', 'my', 'sv-fi', 'fr-re', 'en-pk', 've', 'vi', 'is', 'vk', 'iu', 'it', 'vo', 'ii', 'ik', 'en-io', 'fr-cm', 'io', 'ia', 'ie', 'id', 'ig', 'es-cu', 'hu-hu', 'es-cr', 'es-cl', 'es-co', 'fr-wf', 'pt-mz', 'en-il', 'it-it', 'de-be', 'fr', 'en-ke', 'fr-ga', 'fr-pf', 'es-do', 'ar-ps', 'fy', 'fr-gn', 'fr-pm', 'en-ki', 'en-ug', 'fa', 'fr-gp', 'ff', 'fi', 'fj', 'fo', 'ar-kw', 'bn-sg', 'ss', 'sr', 'sq', 'sw', 'sv', 'su', 'st', 'sk', 'si', 'sh', 'so', 'sn', 'sm', 'sl', 'sc', 'sa', 'sg', 'se', 'sd', 'bn-in', 'fr-mc', 'sv-se', 'ar-bh', 'lg', 'lb', 'la', 'ln', 'lo', 'ss-za', 'li', 'lv', 'lt', 'lu', 'sw-ke', 'en-bw', 'yi', 'en-ph', 'en-pn', 'yo', 'en-ie', 'en-pg', 'pt-cv', 'hr-ba', 'bn-bd', 'en-pr', 'en-pw', 'ss-sz', 'ar-iq', 'de-ch', 'ar-il', 'es-sv', 'el', 'eo', 'en', 'ar-dz', 'ee', 'tn-bw', 'es-gq', 'fr-gf', 'es-gt', 'eu', 'et', 'de-lu', 'es', 'ru', 'rw', 'zh-cn', 'ar-td', 'nl-nl', 'it-sm', 'it-si', 'rm', 'rn', 'ro', 'ar-sa', 'be', 'bg', 'ur-pk', 'ba', 'fr-ca', 'bm', 'bn', 'bo', 'bh', 'bi', 'fr-cg', 'fr-cf', 'es-us', 'el-cy', 'en-vc', 'sd-pk', 'ta-sg', 'br', 'bs', 'nl-an', 'sd-in', 'cs-cz', 'om', 'oj', 'fr-lb', 'en-fk', 'en-fj', 'oc', 'ln-cd', 'fr-lu', 'ar-om', 'de-at', 'os', 'or', 'tr-cy', 'xh', 'el-gr', 'de-li', 'ar-sy', 'en-jm', 'es-ec', 'ar-so', 'it-ch', 'en-ls', 'ar-sd', 'es-es', 'en-rw', 'tn-za', 'ar-jo', 'en-ky', 'en-bs', 'hz', 'ar-ma', 'da-gl', 'hy', 'en-mt', 'en-mu', 'nl-aw', 'en-mw', 'hr', 'en-tt', 'en-zw', 'ht', 'hu', 'en-to', 'ar-mr', 'hi', 'en-tk', 'ho', 'hr-hr', 'ha', 'en-tc', 'pt-gw', 'he', 'en-dm', 'fr-it', 'uz', 'en-et', 'ur-in', 'ur', 'tr-tr', 'uk', 'ms-bn', 'ug', 'aa', 'en-so', 'en-sl', 'ab', 'ae', 'en-sh', 'af', 'en-sg', 'ak', 'am', 'ko-kr', 'an', 'as', 'ar', 'en-sz', 'nl-be', 'ay', 'az', 'ar-lb', 'nl', 'nn', 'no', 'na', 'nb', 'nd', 'ne', 'ng', 'ny', 'ta-in', 'fr-yt', 'en-za', 'nr', 'nv', 'ar-ye', 'ar-tn', 'en-cm', 'en-ck', 'sr-ba', 'en-ca', 'ka', 'kg', 'en-gd', 'es-uy', 'kk', 'kj', 'ki', 'ko', 'kn', 'km', 'kl', 'ks', 'kr', 'fr-ad', 'kw', 'kv', 'ku', 'en-zm', 'ky', 'fr-ht', 'nl-sr'] 
Preferred: en 
Request Language: en 
Accept Language: pt-br,pt;q=0.8,es;q=0.6,en;q=0.4,en-us;q=0.2 

我刚刚注意到可用语言的列表从portal_languages这些网站不同。添加到奇怪的,但也许是罪魁祸首的提示?

对不起,很长的文章,只是尽量给我尽可能多的信息!

回答

1

我的怀疑是正确的,它是简单的,我俯瞰。在这里发布我的发现。

在ZMI,去portal_languages,并检查这些设置:

  • Allowed语言
    • 所有支持的语言应选择

      • 默认语言。
    • 谈判方案
      • 确保“使用浏览器语言请求协商”被选中

    仅发现默认语言Allowed语言选择我的问题选择列表。我不确定为什么它会像这样或那样重置。当使用语言设置控制面板时,我没有看到允许的语言选项,必须去ZMI。

    显然,hvelarde提到的更改也没有更新此设置。

  • 0

    搜索构建环境变量的实例部分zope_i18n_allowed_languages;它用于限制加载po文件的语言,以加速Zope启动时间并使用更少的内存。

    在你的情况,你应该如下设置:

    [instance] 
    ... 
    environment-vars = 
        PTS_LANGUAGES en es pt 
        zope_i18n_allowed_languages en es pt 
        zope_i18n_compile_mo_files true 
    

    有关更多信息,请Maurits的面包车里斯Internationalization in Plone 3.3 and 4.0

    +0

    我将这些变量添加到每个实例,运行建立并重新启动。什么也没有变。该网站仍未翻译,我的脚本显示我的浏览器语言为'en'。有关更多详细信息,我将使用我正在运行的确切脚本和结果编辑我的帖子。 – rain2o 2014-12-02 20:52:41

    +0

    好的,我觉得我可能会误解某些东西。如果在网站设置中,网站语言设置为英语,但我向所有产品和上述环境变量提供西班牙语翻译,如果用户使用浏览器语言设置为西班牙语访问我的网站,他们应该用西班牙语来看它,对吧? – rain2o 2014-12-02 21:12:40

    +0

    对于我所记得的这取决于你如何定制'portal_languages'工具,但你必须进入ZMI。有一些配置没有暴露给Plone级别。 – 2014-12-03 22:25:34

    相关问题