安企CMS(AnQiCMS)致力于帮助用户轻松应对全球化内容推广的需求,其内置的多语言支持功能,让您能够灵活地配置和展示不同语言版本的网站内容。无论您是希望为模板中的静态文本提供翻译,还是为文章、产品等核心内容创建独立的语言版本,安企CMS都提供了直观且强大的工具。
接下来,我们将一起探索如何在安企CMS中实现多语言网站内容的配置与显示。
第一部分:理解安企CMS的多语言能力
在安企CMS中实现多语言网站,主要涉及两个层面:
- 模板文本的翻译: 针对网站界面中的固定文本、导航名称、按钮文字等,通过语言包机制进行翻译,确保用户在切换语言时,界面元素能相应地显示为目标语言。
- 内容实体的多语言管理: 对于文章、产品、单页面等动态内容,您需要为每种语言创建独立的内容实体,并在前端通过切换语言链接进行展示。
安企CMS的“多站点管理”功能也为您构建多语言网站提供了另一种灵活的架构选择,您可以为每种语言独立设置一个站点,虽然管理上更为独立,但本文将主要侧重于如何在同一AnQiCMS实例下通过语言包和内容管理实现多语言。
第二部分:配置模板中的多语言文本翻译
为了让您的网站界面能够根据用户选择的语言进行切换,您需要为模板中的静态文本创建语言包。安企CMS提供了一个简洁的 {% tr %} 标签来处理这类翻译。
1. 建立语言包文件结构
首先,您需要在您的模板目录下创建一个名为 locales 的文件夹。在这个文件夹中,为每种目标语言创建一个子文件夹,文件夹的命名遵循语言代码规范(例如,简体中文使用 zh-cn,英文使用 en-us)。在每个语言子文件夹内,您再创建一个或多个 yml 格式的语言文件,例如 default.yml。
例如,您的目录结构可能看起来像这样:
./template/您的模板名称/locales
├── en-us
│ └── default.yml
└── zh-cn
└── default.yml
2. 编写语言包内容
在 default.yml 文件中,您将定义键值对,其中键是您在模板中使用的标识符,值是该标识符对应的翻译文本。
例如,zh-cn/default.yml 的内容可能是:
"yourLocation": "您的位置"
"homePage": "首页"
"contactUs": "联系我们"
而 en-us/default.yml 的内容则对应为:
"yourLocation": "Your Location"
"homePage": "Home"
"contactUs": "Contact Us"
3. 在模板中使用 {% tr %} 标签
完成语言包设置后,您就可以在模板文件中使用 {% tr %} 标签来调用这些翻译文本了。当用户切换网站语言时,安企CMS会自动加载对应语言的 default.yml 文件,并显示正确的翻译。
例如,如果您想在网站顶部显示“您的位置”,您可以这样写:
<div>
<span>{% tr "yourLocation" %}:</span>
<a href="/">{% tr "homePage" %}</a>
</div>
通过这种方式,当用户访问中文版网站时,会看到“您的位置:首页”;而访问英文版网站时,则显示“Your Location: Home”。
此外,在安企CMS后台的“全局功能设置”中,您可以设置“默认语言包”,这主要用于控制后台管理界面的显示语言,以及网站前端部分内置提示信息的语言,但不会影响您通过 {% tr %} 标签或手动创建的内容。
第三部分:管理不同语言版本的内容实体
对于网站的核心内容,如文章、产品、单页面等,您需要为每种语言创建独立的内容实体。这意味着,一篇关于“安企CMS介绍”的文章,您需要创建一篇中文版,再创建一篇英文版。
- 文章和产品: 在“内容管理”下,您可以进入“文档管理”或“产品管理”来发布您的内容。每发布一篇新的文章或产品时,请确保您选择的分类与该内容的语言相对应,并输入该语言的标题、简介、详细内容等。例如,您可以创建“中文文章”和“英文文章”两个顶级分类,然后将相应语言的文章发布到对应的分类下。
- 单页面: 在“页面资源”下的“页面管理”中,您可以为“关于我们”、“联系我们”等单页面创建不同语言的版本。例如,创建一个名为“关于我们(中文)”的页面,以及一个名为“About Us (English)”的页面。
通过这种内容分离管理的方式,您可以确保每种语言的内容都能精准传达信息,并且便于针对不同语言的用户进行独立的SEO优化。
第四部分:实现多语言站点切换功能
为了让用户能够方便地在不同语言版本之间切换,您需要在网站前端添加一个语言切换器。安企CMS提供了 {% languages %} 标签来获取所有已配置的多语言站点信息。
1. 获取语言列表
使用 {% languages %} 标签,您可以遍历所有可用的语言站点:
{%- languages websites %}
{%- if websites %}
<div>
<span>切换语言:</span>
{%- for item in websites %}
<a href="{{item.Link}}">
{%- if item.LanguageIcon %}
<img src="{{item.LanguageIcon}}" alt="{{item.LanguageName}}" />
{%- else %}
{{item.LanguageEmoji}}
{% endif %}
{{item.LanguageName}}
</a>
{%- endfor %}
</div>
{%- endif %}
{%- endlanguages %}
在上面的代码中:
websites变量是一个数组,包含了每个语言站点的详细信息。item.Link是该语言站点的URL。item.LanguageName是语言的显示名称(如“中文”、“English”)。item.LanguageEmoji提供了一个语言的Emoji图标(如🇨🇳,🇬🇧)。item.LanguageIcon如果您上传了语言图标,则会显示该图标的URL。
2. 优化搜索引擎识别:添加 hreflang 标签
为了帮助搜索引擎(如Google)更好地理解您的网站拥有多个语言版本,并将其展示给相应语言的用户,您应该在 HTML 的 <head> 区块中添加 hreflang 标签。这对于国际SEO至关重要。
使用 {% languages %} 标签结合 hreflang,可以这样实现:
{%- languages websites %}
{%- for item in websites %}
<link rel="alternate" href="{{item.Link}}" hreflang="{{item.Language}}">
{%- endfor %}
{%- endlanguages %}
这里 item.Language 会输出相应的语言代码(如 zh-cn,en-us),搜索引擎会根据这些信息,在不同语言的搜索结果中显示对应的页面。
总结
安企CMS的多语言功能,通过模板文本翻译和内容实体分离管理,为您构建全球化网站提供了坚实的基础。配合灵活的语言切换器和关键的SEO优化(如 hreflang 标签),您不仅能够提升用户体验,还能有效拓展国际市场。轻松配置,高效运营,让您的内容能够触达世界各地的用户。
常见问题 (FAQ)
1. 为什么我在后台“全局功能设置”里设置了“默认语言包”为英文,但前台网站内容还是中文? “默认语言包”设置主要影响的是安企CMS后台管理界面的显示语言,以及前端系统内置的一些提示信息(如果模板有调用)。