我正试图让plone.app.multilingual与一个网站的工作,目前是英语,但将成为部分翻译。我使用的是plone.app.multilingual,而不是更熟悉的LinguaPlone,因为LinguaPlone不支持站点使用的灵活的内容类型。
我有个试验场可以玩。当我翻译一页时,它似乎为英文内容创建了一个/en文件夹,为法语创建了(例如,/fr文件夹)。我可以在页面的两种语言变体之间来回切换,但是一旦我使用了法语,我就不能看到所有其他的英语页面。作为网站访问者,这是没有用的,它忽略了这样一个事实:尽管浏览器可能被设置为更喜欢法语,但它也可能接受英语。我选择了我认为是相关的选项,允许返回默认的站点语言,如果我知道页面的URL,它可以让我查看它们,但是如果我一开始没有看到内容存在,那就没有多大用处了。
是否可以让plone.app.multilingual以这样的方式工作:用户可以用(某种语言)看到一页内容,即使它不是他们自己的,或者是我转换站点使用原型的唯一选择?
谢谢。
发布于 2012-06-30 06:33:02
LinguaPlone将以同样的方式处理这种情况:使所有内容“语言中立”,但有翻译的地方除外。
通过标记您的所有内容‘语言中立’,它将被找到并显示给最终用户,不管设置了什么语言首选项。现在,如果您的任何内容都有翻译,您确实需要将英语设置为原始版本的语言,以便只在选择英语时显示。
为此,您可能可以使用plone.multilingual.events.IObjectTranslatedEvent的订阅服务器。
至于为您的内容创建en/和fr/位置,这是ITranslationLocator适配器的任务(从plone.multilingual.interfaces,您可以重写该适配器以提供您自己的选择。有关此操作当前的工作方式,请参见默认实现。
https://stackoverflow.com/questions/11269346
复制相似问题