1

因此,例如,我想将语言按钮呈现给用户的顺序从英语 - 中文 - 法语更改为中文 - 法语 - 英语。

我假设它位于: zope.interface.interface-plone.app.i18n.locales.languageselector位于portal_view_customizations/registrations.html内。

更具体地说,我假设它与这段脚本有关:

> <tal:nonflag condition="python:not showFlags or not flag" replace="name">
>      language name 
> </tal:nonflag>

但是我仍然不知道我应该如何或写什么来控制屏幕上的语言顺序。

任何帮助,将不胜感激。

4

2 回答 2

2

没有 GUI 可以更改 ZMI 的 portal_language 工具中的条目顺序(据我所知,这是在页面上使用的顺序)。

但是:在 中portal_setup,您可以导出语言设置,这将为您提供一个portal_languages.xml包含在存档中的文件,其内容类似于以下内容:

<?xml version="1.0"?>
<object>
 <default_language value="en"/>
 <use_path_negotiation value="False"/>
 <use_cookie_negotiation value="True"/>
 <set_cookie_everywhere value="False"/>
 <use_request_negotiation value="True"/>
 <use_cctld_negotiation value="False"/>
 <use_content_negotiation value="True"/>
 <use_combined_language_codes value="False"/>
 <display_flags value="False"/>
 <start_neutral value="False"/>
 <use_subdomain_negotiation value="False"/>
 <authenticated_users_only value="False"/>
 <supported_langs>
  <element value="de"/>
  <element value="da"/>
  <element value="it"/>
  <element value="en"/>
  <element value="fr"/>
  <element value="cs"/>
 </supported_langs>
</object>

您可以更改 中的行顺序<supported_langs>,将文件放回存档中,并在portal_setup的导入功能中使用“导入上传的 tarball”来应用更改的 xml 文件。

或者,您可以像这样创建(并通过“测试”选项卡运行)脚本(Python),它将首先删除然后按所需顺序一一重新添加语言。@@language-setup-folders(如果您为您的语言使用不同的文件夹和根语言切换器,您可能需要在之后再次运行该步骤。)

# Return a string identifying this script.
print "This is the", script.meta_type, '"%s"' % script.getId(),
if script.title:
    print "(%s)" % html_quote(script.title),
print "in", container.absolute_url()

pl = context.portal_languages
pl.removeSupportedLanguages(pl.getSupportedLanguages())
print pl.supported_langs
pl.addSupportedLanguage('de')
pl.addSupportedLanguage('fr')
pl.addSupportedLanguage('da')
pl.addSupportedLanguage('en')
print pl.supported_langs

return printed

我尝试manage_setLanguageSettings直接通过文档中的方法,但是,至少在 4.3.2 中,这需要您显式设置所有其他参数(使用 cookie 进行语言协商等),所以我并没有留下太深刻的印象。

于 2015-10-14T11:08:50.217 回答
2

所以我找到了一个可行的解决方案!

为了重新排列使用 Plone CMS 的网站上的语言顺序,您需要执行以下步骤:

  1. 转到 Zope ( [您的网站 url]/manage_main )
  2. 从那里转到门户视图自定义([您的网站 url]/portal_view_customizations/registrations.html
  3. 从那里转到plone.app.i18n.locales.languageselector ( Products.LinguaPlone.interfaces.ILinguaPloneProductLayer )
  4. <tal:language repeat="i python:[2,0,1]">从那里在标签之前添加这段代码<li>,其中 [2,0,1] 代表我选择的订单。如果你有一个更大的语言列表,那么它当然会像 [0,1,2,3,4...等] 这样你可以根据需要重新排列。

谢谢@Ulrich Schwarz,即使我无法使用您的建议使其工作。我相信可以通过多种方式进行,包括您建议的方式。

于 2015-10-22T16:36:40.910 回答