我目前正在制作双语Expression Engine 2.5.2网站。我正在使用this technique创建两个语言,它们完美无缺。
我在两个index.php文件中创建了一个{country_code}全局变量,允许我检测当前语言。
使用这种技术,访问条目时获取语言相关数据没有问题。我唯一关心的是,我显然必须特权使用特定于语言的“干净”URL。
示例条目:
如果我请求http://www.example.com/index.php/en/blog/articles/my-test-article
,我希望使用博客模板组中的模板文章以英文找到“我的文章”。
一切都很好,但请求http://www.example.com/index.php/fr/blog/articles/my-test-article
时可以访问法语翻译。网址的正确翻译应为http://www.example.com/index.php/fr/blogue/articles/mon-article-test
。
有人遇到过这样的问题吗?通过扩展或模块的任何解决方案?
答案 0 :(得分:1)
我相信Transcribe module通过提供翻译模板组和模板名称的能力,并为您的网站中的每种语言和内容创建单独的条目来解决这个问题(因此,您有两个单独的网址标题)。但这意味着购买他们的多语言网站的整个方法。
我自己,我通常只是坚持使用entry_id
而不是url_title
,并使用主要语言的模板名称。
答案 1 :(得分:0)
我发现实现这一目标的最佳方法是嵌入带有段转换的模板,复制模板组和复制通道。
在blog/articles
模板中:
{embed="shared/.head" segment_2_translation="blogue" segment_3_translation="articles"}
在blogue/articles
模板中:
{embed="shared/.head" segment_2_translation="blog" segment_3_translation="articles"}
在shared/.head
模板中:
[...] <a href="/{lang}/{if embed:segment_2_translated}{segment_2_translated}/{/if}{if embed:segment_3_translated}{segment_3_translated}/{/if}">{if lang == "fr"}English{if:else}Français{/if}</a> [...]
然后,您可以创建Articles (FR)
和Articles (EN)
个频道,每个频道都有其唯一的网址标题。您还可以为每个频道添加关系自定义字段,以将条目与其翻译相关联。
感觉很麻烦,但这是我能够在没有模块,插件或诸如此类的情况下使其工作的唯一方法。