ExpressionEngine的多语言方法

时间:2012-11-02 14:12:07

标签: expressionengine

自从我上次建立一个多语言网站已经两年了,我开始了一个新的海峡。

我构建的最后一个站点我使用了biber多语言模块,从那时起它似乎已经更改了名称,现在称为Multi Language Support。在最后一次构建时,我使用了矩阵和一个下拉列表来设置每一行的语言设置,从而确保每个页面都在一个条目中,只需在矩阵中添加一行,就可以轻松添加其他语言字段。

我的问题是双重的。还有其他方法需要考虑,因为我上次建立一个多语言网站已经两年了。

其次,最后一个网站所有的搜索引擎优化(元描述,元关键字和标题标签只有英文)新网站将需要所有这些英文和法文。我通常使用SEO Lite module来处理搜索引擎优化,但我认为没有办法让多种语言可用。有没有一种简单的方法来设置它,或者我需要使用上面提到的矩阵字段?

对我可以评估的任何和所有方法都是开放的。

**更新**

不会使用Structure,因此不需要成为一个因素。

7 个答案:

答案 0 :(得分:11)

我没有冗长的答案,但Boldminded的Publisher看起来很漂亮且功能齐全。它正在出售。

布莱恩是一个伟大的开发者,得到了很大的支持。基于过去的支持经验,我强烈建议您一起来看看。

http://boldminded.com/add-ons/publisher

答案 1 :(得分:7)

我一直在使用一些不同的方法:

  • 最近一直在使用转录。它适用于模板重写,语言变量。这很容易设置,但有时也有点太强大了。它应该适用于结构,但我还没有真正调查它。其中一个好处是您不需要使用所有语言的所有页面。

  • 结构 使用结构和低变量,您可以轻松设置如下树:

    家 /关于我们 /产品 /荷兰/家 / nl / over ons / NL / producten

您可以重复使用字段组,而不是所有内容都必须以不同的语言存在

答案 2 :(得分:6)

我想说这取决于网站的大小。对于一个小型网站,在矩阵中建立两列将是完美的,就像你已经完成。我用移动设备做了这个,它只有一个英语和西班牙语列,用于所有内容元素和元标记。然后我根据访问者最初选择的语言简单地传递一个变量。

但我想说与多站点管理器合作可能是你最好的选择。如果您在“默认”网站上使用它们,则需要购买一些额外的插件,但这很容易管理。另外,您不希望您的URL结构不同吗?出于搜索引擎优化的目的,你真的希望有西班牙语/法语或任何语言拥有自己独特的URL。

我通常会使用MSM和NSM Better Meta插件。我想说无论网站的大小如何,这都提供了最大的灵活性。

答案 3 :(得分:2)

我在几个网站上的方法,无论大小,都是:

  1. 模板内语言变量的低变量
  2. 模板组和模板名称的战略规划(因为它是一个 有点难以处理翻译的事情 除了htaccess之外的任何事情)
  3. 用于扩展的“语言”渠道
  4. 每个频道都有一个语言字段,该字段使用从语言频道中提取的单选按钮,因此语言被分配给该条目(然后在条目循环中用作限制器)
  5. Playa将条目“等价物”相互关联起来(即允许一对一语言切换而不是所有语言都在同一条目中) - 关系字段在技术上是更好的解决方案,但是Playa具有可搜索性的关系字段不
  6. 使用渠道中的自定义字段处理SEO,条件回退到“低变量”中的默认设置
  7. 这种方法是我的首选方法(我使用过Transcribe但我确实发现它在查询方面有点资源,这种方法稍微轻一点,特别是对于缓存)。例如,它允许我保持对所需字段的一致执行和验证,并允许各种其他好处 - 特定于语言的输入URL标题(无需手动编写内容编辑器),异步内容,异步内容翻译(这似乎总是一个问题 - 例如英语在法语出现之前可用,等待翻译),潜在的单独工作流等等。

    您可以在www.cps.ca

    看到这种方法

答案 4 :(得分:2)

我已经使用EE完成了许多多语言站点,尽管从未使用过Bieber模块。我倾向于使用Republic Variables为标签创建一个可变矩阵(然后它只是页面上一个简单的灵活标签)。有一些设置需要完成,但是一旦你做了几次,它只需要5分钟的工作时间:

步骤的基本概述(我已开始记录them on my very old EE site):

1)使用.htaccess方法从URL中删除index.php(使其保持干净),在EE中,将系统设置为使用标题作为文章链接

2)为每种语言创建ANSI目录,并移动index.php和.htaccess的副本 系统路径已更正:

$system_path = '..system';

并在语言导演中创建.htaccess以使用当前语言重新启动查询:

RewriteEngine on
RewriteCond $1 !^(index\.php) [NC]
RewriteRule ^(.*)$ /ru/index.php/$1 [L]

check my site了解更详细的说明)

3)安装精彩的Republic Variables并设置所需的语言数量。 (_en表示英语,_ru表示俄语,_es表示西班牙语等),并将相同的默认语言作为index.php中的默认语言。在配置下,我更喜欢设置语言后缀。添加变量“teaser”进行测试,并填写所有语言。

4)在页面上,使用以下格式添加标记:{variable_ {language}},例如

{teaser_{language}

你应该看到默认的语言变量。在模板/页面之前的URL中插入语言(例如www.sitename.com/ru/directory/template),语言将即时切换。我将在本周末的后续帖子中记录这一点。

答案 5 :(得分:2)

我认为MSM也可以被视为多语言网站的一个选项,因为有以下因素:

  • 对于内容丰富的网站,MSM对内容提供者来说非常容易,内容提供者通常负责提示语言。一种语言==一个站点方程式很容易理解
  • 多语言网站倾向于迎合各种受众。这些受众群体的需求通常会在您的网站持续3到4年后发展。 MSM为您提供了为特定语言添加部分或功能的可能性,这对于更纠结的数据结构来说更加困难
  • 作为开发人员,MSM设置为您提供了很大的灵活性。添加或删除语言就像复制,删除MSM网站一样简单,SEO往往更容易,因为您可以快速翻译模板/模板组/ url_titles。如果您的模板结构很干净,并且您使用低变量甚至全局变量等附加组件来避免在模板中包含内容,那么维护各种模板集非常容易。如果有一天你需要处理从右到左的语言或类似的东西,它也可以是奖励。

这是example of a site I maintain

答案 6 :(得分:2)

我还想指出EE Podcast上的多语言剧集:

http://ee-podcast.com/episodes/tag/multi-lingual

第49集实际上有Transcribe的Tom Jaeger在谈论多语言过程和陷阱。

Ep 54让Nicolas Bottari谈论他的流程