1

我目前正在制作一个双语表达引擎 2.5.2 网站。我正在使用这种技术来创建两种语言,效果很好。

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

使用这种技术,我在访问条目时可以毫无问题地获取与语言相关的数据。我唯一担心的是我显然必须为特定语言的“干净”URL 提供特权。

示例条目:

  • {entry_id} = 123
  • {title} = 我的测试文章
  • {title_permalink} = 我的测试文章
  • {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。URL 的正确翻译应该是http://www.example.com/index.php/fr/blogue/articles/mon-article-test.

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

4

2 回答 2

1

我相信Transcribe 模块通过提供翻译模板组和模板名称的能力以及让您为网站中的每种语言和内容创建单独的条目(因此,您有两个单独的 URL 标题)来解决这个问题。但这意味着要为多语言网站购买他们的整个方法。

我自己,我通常只是坚持使用entry_id而不是url_title,并且使用主要语言的模板名称。

于 2012-07-23T19:41:41.790 回答
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)频道,每个频道都有其独特的 URL 标题。您还可以为每个渠道添加关系自定义字段,以将条目与其翻译相关联。

感觉很乱,但这是我在没有模块、插件或其他东西的情况下让它工作的唯一方法。

于 2012-07-24T17:22:26.517 回答