在安企CMS中,如何实现多语言内容的切换与显示?

在全球化内容营销的浪潮下,网站支持多种语言已成为不可或缺的功能。安企CMS(AnQiCMS)深知这一需求,提供了灵活的多语言解决方案,帮助我们将内容轻松地呈现在不同语言的用户面前。本文将详细探讨如何在安企CMS中实现多语言内容的切换与显示。

区分系统语言与内容语言

在深入了解之前,我们首先需要明确安企CMS中两种“语言”的概念:

  1. 系统后台语言包: 这主要影响安企CMS后台管理界面的显示语言,以及网站内置的一些系统提示信息。例如,通过在“全局功能设置”中选择“默认语言包”(如中文、英文),后台界面和某些系统消息会相应切换。但这并不会改变您创建的文章、产品或分类等用户生成内容的语言。
  2. 前台内容语言: 这才是我们通常所说的“多语言网站”的核心,它指的是您网站上实际展示给访问者的文章、产品描述、分类名称等内容的语言版本。安企CMS主要通过“多站点”或“独立内容管理”的方式来承载不同语言的内容。

理解了这两点,我们便可以着手规划和实现多语言网站了。

核心实现方式:多站点策略与模板层翻译

安企CMS实现多语言内容切换的核心策略是,为每种语言创建一个独立的“站点”(可以理解为独立的内容管理单元),并辅以模板层的静态文本翻译和语言切换功能。

1. 部署与配置多语言站点

假设您需要支持中文和英文两种语言,您可以通过安企CMS的“多站点管理”功能来为每种语言设置一个独立的“站点”。这意味着:

  • 独立的域名或子域名: 例如,www.yourdomain.com 用于中文内容,en.yourdomain.com 用于英文内容。
  • 独立的后台管理: 每个语言站点都有自己的后台,用于管理该语言的内容。
  • 独立的数据库和内容: 中文站点的内容存储在自己的数据库中,英文站点的内容也存储在自己的数据库中,两者互不影响。

操作步骤概览:

  1. 准备环境: 确保您的服务器已安装安企CMS,并且运行环境支持多站点(如宝塔面板下的Go项目部署)。
  2. 添加反向代理(如果需要): 如果您为每个语言站点使用不同的域名或子域名,可能需要在Web服务器(Nginx/Apache)中配置反向代理,将不同的域名指向安企CMS的同一个监听端口(例如8001),并配合多站点功能进行区分。
  3. 在安企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目录来实现多语言支持。

操作步骤:

  1. 创建 locales 目录: 在您当前使用的模板根目录下,创建一个名为 locales 的文件夹。

  2. 创建语言配置文件:locales 目录下,为每种语言创建一个子目录,并在此子目录中创建 default.yml 文件。例如:

    • template/your_theme/locales/zh-cn/default.yml
    • template/your_theme/locales/en-us/default.yml
  3. 编辑语言配置文件:default.yml 文件中,以键值对的形式定义翻译内容。

    zh-cn/default.yml 示例: “`yml “yourLocation”: “您的位置” “contactUs”: “联系我们” “