在全球化内容营销的浪潮下,网站支持多种语言已成为不可或缺的功能。安企CMS(AnQiCMS)深知这一需求,提供了灵活的多语言解决方案,帮助我们将内容轻松地呈现在不同语言的用户面前。本文将详细探讨如何在安企CMS中实现多语言内容的切换与显示。
区分系统语言与内容语言
在深入了解之前,我们首先需要明确安企CMS中两种“语言”的概念:
- 系统后台语言包: 这主要影响安企CMS后台管理界面的显示语言,以及网站内置的一些系统提示信息。例如,通过在“全局功能设置”中选择“默认语言包”(如中文、英文),后台界面和某些系统消息会相应切换。但这并不会改变您创建的文章、产品或分类等用户生成内容的语言。
- 前台内容语言: 这才是我们通常所说的“多语言网站”的核心,它指的是您网站上实际展示给访问者的文章、产品描述、分类名称等内容的语言版本。安企CMS主要通过“多站点”或“独立内容管理”的方式来承载不同语言的内容。
理解了这两点,我们便可以着手规划和实现多语言网站了。
核心实现方式:多站点策略与模板层翻译
安企CMS实现多语言内容切换的核心策略是,为每种语言创建一个独立的“站点”(可以理解为独立的内容管理单元),并辅以模板层的静态文本翻译和语言切换功能。
1. 部署与配置多语言站点
假设您需要支持中文和英文两种语言,您可以通过安企CMS的“多站点管理”功能来为每种语言设置一个独立的“站点”。这意味着:
- 独立的域名或子域名: 例如,
www.yourdomain.com用于中文内容,en.yourdomain.com用于英文内容。 - 独立的后台管理: 每个语言站点都有自己的后台,用于管理该语言的内容。
- 独立的数据库和内容: 中文站点的内容存储在自己的数据库中,英文站点的内容也存储在自己的数据库中,两者互不影响。
操作步骤概览:
- 准备环境: 确保您的服务器已安装安企CMS,并且运行环境支持多站点(如宝塔面板下的Go项目部署)。
- 添加反向代理(如果需要): 如果您为每个语言站点使用不同的域名或子域名,可能需要在Web服务器(Nginx/Apache)中配置反向代理,将不同的域名指向安企CMS的同一个监听端口(例如8001),并配合多站点功能进行区分。
- 在安企CMS后台创建新站点:
- 登录您的主站点后台。
- 进入“多站点管理”,点击“添加新站点”。
- 为新站点填写详细信息,包括:
- 站点名称: 例如“英文站”
- 网站地址: 填写对应的英文域名,如
https://en.yourdomain.com - 数据库名称: 建议使用与该语言相关的唯一名称,如
en_anqicms_com - 管理员账号密码: 为该语言站点设置独立的后台管理账号。
- 选择使用的模板: 可以为不同语言站点使用相同或不同的模板。
重复此过程,为每种需要支持的语言创建独立的安企CMS站点。
2. 内容的创建与管理
创建好每个语言站点后,接下来的工作就变得直观了:
- 登录对应站点的后台: 例如,要管理英文内容,您需要登录
en.yourdomain.com/system/。 - 独立创建内容: 在每个语言站点中,独立创建和发布该语言的文章、产品、单页面和分类。这意味着,一篇中文文章的翻译版本,需要作为一篇新的文章在英文站点中发布。虽然工作量会增加,但这种分离管理确保了内容的高度灵活性和独立性。
3. 前台语言切换按钮的实现
要在网站前台提供语言切换功能,让用户可以在不同语言版本之间方便地跳转,我们可以利用安企CMS模板中的{% languages %}标签。
这个标签能够获取所有已配置的多语言站点列表,并提供了每个语言站点的名称、代码、图标和链接等信息。
示例代码(通常放置在网站的页眉或页脚等公共区域):
{%- languages websites %}
{%- if websites %}
<div class="language-switcher">
<span>切换语言:</span>
{%- for item in websites %}
<a href="{{item.Link}}" lang="{{item.Language}}">
{%- if item.LanguageIcon %}
<img src="{{item.LanguageIcon}}" alt="{{item.LanguageName}}"/>
{%- else %}
{{item.LanguageEmoji}} {# 如果没有图标,可以使用表情符号 #}
{% endif %}
{{item.LanguageName}}
</a>
{%- endfor %}
</div>
{%- endif %}
{%- endLanguages %}
这段代码会遍历所有已配置的语言站点,为每个语言生成一个链接,用户点击即可跳转到对应语言的网站。
4. 模板静态文本的翻译
除了动态内容,网站模板中还有很多固定的、不会随文章变化而变化的文字,比如导航菜单项、页脚版权信息、表单标签等。对于这些静态文本,安企CMS提供了{% tr %}翻译标签和locales目录来实现多语言支持。
操作步骤:
创建
locales目录: 在您当前使用的模板根目录下,创建一个名为locales的文件夹。创建语言配置文件: 在
locales目录下,为每种语言创建一个子目录,并在此子目录中创建default.yml文件。例如:template/your_theme/locales/zh-cn/default.ymltemplate/your_theme/locales/en-us/default.yml
编辑语言配置文件: 在
default.yml文件中,以键值对的形式定义翻译内容。zh-cn/default.yml示例: “`yml “yourLocation”: “您的位置” “contactUs”: “联系我们” “