一个条目是否有可能在Expression Engine中有两个URL,并翻译模板名称?

时间:2012-07-23 19:15:29

标签: multilingual expressionengine

我目前正在制作双语Expression Engine 2.5.2网站。我正在使用this technique创建两个语言,它们完美无缺。

我在两个index.php文件中创建了一个{country_code}全局变量,允许我检测当前语言。

使用这种技术,访问条目时获取语言相关数据没有问题。我唯一关心的是,我显然必须特权使用特定于语言的“干净”URL。

示例条目:

  • {entry_id} = 123
  • {title} =我的测试文章
  • {title_permalink} = my-test-article
  • {name_fr} =周一文章
  • {name_en} =我的文章

如果我请求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

有人遇到过这样的问题吗?通过扩展或模块的任何解决方案?

2 个答案:

答案 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)个频道,每个频道都有其唯一的网址标题。您还可以为每个频道添加关系自定义字段,以将条目与其翻译相关联。

感觉很麻烦,但这是我能够在没有模块,插件或诸如此类的情况下使其工作的唯一方法。