Internationalization 表达式引擎i18n
Expression Engine是否有i18n(国际化)的内置解决方案Internationalization 表达式引擎i18n,internationalization,expressionengine,Internationalization,Expressionengine,Expression Engine是否有i18n(国际化)的内置解决方案 我必须建立一个多语言网站,并想知道在EE中实现这一点的最佳方法。在ExpressionEngine中有许多方法可以创建一个多语言或特定国家的网站,以提供特定于每种语言/国家的内容 以下ExpressionEngine Wiki文章总结了两种最流行的解决方案: 其基本思想是使用URL段、自定义字段和一点PHP组合,以不同的语言呈现内容 优势 单条目管理多种语言 简单URL结构 例如,假设您有一个3种语言的站点:英语(en
我必须建立一个多语言网站,并想知道在EE中实现这一点的最佳方法。在ExpressionEngine中有许多方法可以创建一个多语言或特定国家的网站,以提供特定于每种语言/国家的内容 以下ExpressionEngine Wiki文章总结了两种最流行的解决方案: 其基本思想是使用URL段、自定义字段和一点PHP组合,以不同的语言呈现内容 优势
- 单条目管理多种语言
- 简单URL结构
custom_field_en
custom_field_es
custom_field_de
+ /de
+ /en
+ /es
index.php
+ /images
+ /system
+ /themes
要在语言之间切换,只需添加与语言匹配的相应URL段(/en
、/es
或/de
):
example.com/template_group/template/en
example.com/template_group/template/es
example.com/template_group/template/de
这种方法的主要优点是,它将内容的所有版本保存在一个条目中,使更新和编辑变得简单一致。
另一种方法是为每个国家创建子目录,并使用ExpressionEngine的
path.php
全局变量来保存国家代码和/或语言作为变量
优势
- 不需要PHP
- 不需要跟踪哪个段保存语言变量
- 优雅的URL结构
custom_field_en
custom_field_es
custom_field_de
+ /de
+ /en
+ /es
index.php
+ /images
+ /system
+ /themes
要允许此方法工作,请在每个语言目录中放置一份mainindex.php
。然后,您可以通过分配与每种语言的目录对应的变量来修改每个文件:
$assign_to_config['site_index'] = 'http://www.example.com/en/';
$assign_to_config['global_vars'] = array(
"country_code" => "en",
"language" => "english"
);
构建的URL将使用您选择的任何语言/国家名称:
example.com/es-MX/template_group/template/
example.com/MX/template_group/template/
另一种方法的主要优点是使用全局变量,利用它们在很早就被解析的事实,并且几乎可以在模板中的任何地方使用。
见:(PDF,33KB)
其他解决方案 秉承ExpressionEngine的理念,作为设计师/开发人员,您所拥有的灵活性允许您定制适合您独特需求的定制解决方案 如果这两种方法中的任何一种都不能完全满足您的需求,您可以精心设计自己的方法或采用混合方法
考虑到这一点,一个很好的出发点是研究可能有助于您的开发的问题。现在所有的wiki链接都已失效。我无法轻松找到替换链接。如果其他人有他们,这将是伟大的更新这篇文章。