Expression Engine有内置的i18n(国际化)解决方案吗?
我需要构建一个多语言网站,想知道在EE中做到这一点的最佳方法。
Expression Engine有内置的i18n(国际化)解决方案吗?
我需要构建一个多语言网站,想知道在EE中做到这一点的最佳方法。
以下是从ExpressionEngine Wiki文章总结的两个最流行的解决方案:
基本思路是使用URL段、自定义字段和一些PHP来呈现不同语言的内容。
优势
例如,假设您有一个三种语言站点:英语(en)、西班牙语(es)和德语(de)。
对于您站点中的每个内容,您都会创建一个带有语言标识符作为后缀(或前缀,无论您喜欢哪种方式)的自定义字段。
您的自定义字段名称可能如下所示:
custom_field_en
custom_field_es
custom_field_de
要切换语言,只需添加与语言相匹配的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
全局变量来保存国家代码和/或语言作为变量。
优点
以第一种方法的三种语言为例,您可以在EE安装根目录下创建一个新目录,并以想要添加的语言的国家代码命名:
您的文件夹结构可能如下所示:
+ /de
+ /en
+ /es
index.php
+ /images
+ /system
+ /themes
index.php
的副本。然后,您需要修改每个文件,将变量分配给每个语言目录对应的变量名:$assign_to_config['site_index'] = 'http://www.example.com/en/';
$assign_to_config['global_vars'] = array(
"country_code" => "en",
"language" => "english"
);
example.com/es-MX/template_group/template/
example.com/MX/template_group/template/