5

我正在尝试让 plone.app.multilingual 与当前为英文的网站合作,但将部分翻译。我使用的是 plone.app.multilingual 而不是更熟悉的 LinguaPlone,因为 LinguaPlone 不支持的站点使用的敏捷内容类型。

我有一个测试站点可以玩。当我翻译一页时,它似乎为英语内容创建了一个 /en 文件夹,而(例如)为法语创建了一个 /fr 文件夹。我可以在页面的两种语言变体之间来回切换,但是一旦我使用法语,我就看不到所有其他英语页面。作为站点访问者,这是没有用的,它忽略了这样一个事实,即尽管浏览器可能设置为首选法语,但它也可能接受英语。我已经选择了我认为允许回退到默认站点语言的相关选项,如果我知道页面的 URL,它可以让我查看它们,但如果我看不到内容,那就没什么用了首先。

plone.app.multilingual 是否可以以这样一种方式工作,即用户可以看到某种语言的内容页面,即使它不是他们自己的,或者是我将网站转换为使用 Archetypes 的唯一选择?

谢谢。

4

1 回答 1

2

LinguaPlone 将以相同的方式处理这种情况:使所有内容“语言中立”,除非有翻译。

通过将所有内容标记为“语言中立”,无论设置了何种语言偏好,最终用户都会找到并显示它。现在,如果您的任何内容确实有翻译,您确实需要将英语设置为原始版本的语言,以便仅在选择英语时才会显示。

为此,您可能可以使用plone.multilingual.events.IObjectTranslatedEvent.

至于内容的创建en/fr/位置,这是ITranslationLocator适配器的任务(从 开始plone.multilingual.interfaces,您可以覆盖该适配器以提供您自己的选择。请参阅默认实现以了解当前的工作方式。

于 2012-06-30T06:33:02.297 回答