4

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

我建立的最后一个站点使用的是 biber 多语言模块,从那时起它似乎已经更改了名称,现在称为Multi Language Support。在最后一次构建中,我使用矩阵和一个下拉菜单来设置每一行的语言设置,从而确保每一页都在一个条目中,并且很容易添加其他语言,只需向矩阵添加额外的行场地。

我的问题是双重的。在这一点上是否有其他方法可以考虑,因为我上次建立多语言网站已经两年了。

其次,上一个站点的所有 SEO(元描述、元关键字和标题标签都是英文的)新站点将需要所有这些都用英语和法语。我通常使用SEO Lite 模块来处理 SEO,但我看不出有一种方法可以使用多种语言。有没有一种简单的方法来设置它,还是我需要使用上面提到的矩阵字段?

我对任何可供我评估的方法持开放态度。

** 更新 **

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

4

7 回答 7

11

我没有冗长的答案,但是Bold mind 的Publisher看起来相当不错并且功能齐全。它正在出售。

Brian 是一个伟大的开发者,得到了很大的支持。根据过去的支持经验,我强烈建议您看看。

http://bold mind.com/add-ons/publisher

于 2012-11-02T14:21:38.303 回答
7

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

  • Transcribe 最近一直在使用。它适用于模板重写、语言变量。它很容易设置,但有时也有点太强大了。它应该适用于结构,但我还没有真正研究过它。好处之一是您不需要拥有所有语言的所有页面。

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

    主页 /关于我们 /产品 /nl/home /nl/over ons /nl/producten

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

于 2012-11-02T14:55:51.487 回答
6

我会说这将取决于网站的大小。对于在矩阵中构建两列的小型站点来说,就像您所做的那样是完美的。我已经使用移动设备完成了此操作,该移动设备只有一个用于所有内容元素以及元标记的英语和西班牙语列。然后我只是根据访问者最初选择的语言传递了一个变量。

但我会说多站点管理器可能是你最好的选择。如果您在“默认”站点上使用它们,确实需要购买一些额外的插件,但它很容易管理。另外,您不希望您的 URL 结构有所不同吗?出于 SEO 的目的,您真的希望拥有西班牙语/法语或任何语言来拥有自己的唯一 URL。

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

于 2012-11-02T14:31:47.700 回答
2

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

  1. 模板内语言变量的低变量
  2. 模板组和模板名称的战略规划(因为这是用 htaccess 以外的任何东西处理翻译有点困难的一件事)
  3. 可扩展性的“语言”渠道
  4. 每个通道都有一个语言字段,该字段使用从语言通道中提取的单选按钮,因此将语言分配给条目(然后在条目循环中用作限制器)
  5. Playa 将条目“等价物”相互关联(即允许一对一的语言切换,而所有语言都不在同一个条目中) - 关系字段在技术上是更好的解决方法,但 Playa 在关系字段没有的情况下具有可搜索性
  6. 使用渠道中的自定义字段处理 SEO,有条件地回退到低变量中的默认设置

这种方法是我更喜欢的(我使用过 Transcribe,但我确实发现它在查询方面有点资源密集,而这种方法有点轻,尤其是缓存)。例如,它使我能够保持对必填字段的一致执行和验证,并带来各种其他好处 - 特定于语言的条目 url 标题(无需在内容编辑器之前手动创建它们)、异步内容、异步内容翻译(这似乎总是一个问题 - 例如,在法语出现之前,英语可用,等待翻译),潜在的单独工作流程等。

您可以在www.cps.ca看到这种方法的实际应用

于 2012-11-02T15:15:50.460 回答
2

我已经使用 EE 完成了许多多语言网站,尽管从未使用 Bieber 模块。我的偏好是使用共和国变量为标签创建一个变量矩阵(然后它只是页面上一个简单的灵活标签)。有一些设置需要完成,但是一旦你完成了几次,它只需要 5 分钟的工作:

步骤的基本概述(我已经开始在我非常旧的 EE 网站上记录它们):

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]

查看我的网站以获取更详细的说明)

3)安装美妙的共和国变量并设置您需要的语言数量。(_en 表示英语,_ru 表示俄语,_es 表示西班牙语等),并将默认语言设置为 index.php 中的默认语言。在配置下,我更喜欢设置语言后缀。添加一个变量“teaser”进行测试,并填写所有语言。

4) 在页面上,放入具有以下格式的标签:{variable_{language}},例如

{teaser_{language}

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

于 2012-11-02T15:24:59.113 回答
2

我认为 MSM 也可以被视为多语言网站的一种选择,原因如下:

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

这是我维护的网站的示例

于 2012-11-03T09:50:57.273 回答
2

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

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

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

第 54 集让 Nicolas Bottari 谈论他的流程

于 2012-11-03T22:12:57.520 回答