如何配置AnQiCMS实现多语言内容的无缝切换与显示?

在全球化日益深入的今天,网站支持多语言已不再是可有可无的选项,而是企业拓展国际市场、服务多元用户群体的关键。无论是为了吸引海外客户,还是提升品牌国际影响力,无缝切换和显示多语言内容的能力都至关重要。

AnQiCMS 深知这一需求,通过其强大的多站点管理功能和灵活的模板机制,为实现多语言内容的无缝切换与显示提供了高效且实用的解决方案。这里,我们将一起探讨如何配置 AnQiCMS,让您的网站轻松驾驭多语言内容。

核心理念:将“站点”视为“语言站”

AnQiCMS 实现多语言内容的核心思路,是将每一种语言版本视作一个独立的“站点”进行管理。这意味着,您的英文站、中文站、日文站等,在 AnQiCMS 后台都将作为相互独立的网站实例存在,但它们都由同一个 AnQiCMS 系统统一管理。这种设计极大地保证了内容管理的清晰性和灵活性。

第一步:规划您的多语言网站结构

在动手配置之前,清晰的规划是成功的基石。您需要考虑以下几个方面:

  1. 确定目标语言: 明确您的网站需要支持哪些语言,这将决定您需要创建多少个“语言站”。
  2. 域名策略:
    • 子域名: 例如 en.yourwebsite.com (英文站), fr.yourwebsite.com (法文站)。这是常见的国际化做法。
    • 子目录: 例如 yourwebsite.com/en/ (英文站), yourwebsite.com/fr/ (法文站)。这需要在您的服务器(如 Nginx 或 Apache)上配置反向代理规则,将不同子目录的请求转发到 AnQiCMS 内部对应的“站点”。
    • 独立域名: 例如 yourwebsite.com (中文站), yourwebsite.co.uk (英文站)。 选择哪种方式取决于您的具体需求和 SEO 策略。

第二步:在 AnQiCMS 后台配置多语言站点

一旦规划明确,便可以着手在 AnQiCMS 后台创建这些语言站点了。

首先,请登录您的 AnQiCMS 主站点后台。在左侧导航栏中,找到并点击“多站点管理”功能。这里是您管理所有网站实例的入口。

接着,点击“添加新站点”按钮,您会看到一个配置新站点的表单。

  • 站点名称: 为您的新语言站命名,例如“英文站”、“法文站”,以便区分。
  • 站点根目录: 这是一个非常关键的设置。每个语言站点都需要一个独立的根目录,AnQiCMS 将在这个目录中存储该站点的缓存、日志等数据。为了避免冲突,请确保为每个站点设置一个独一无二的目录名。通常建议以 /app/ 开头,并结合域名或语言代码来命名,例如 /app/en_yourwebsite_com
  • 网站地址: 填写新语言站点的完整访问 URL,例如 http://en.yourwebsite.comhttp://yourwebsite.com/en
  • 管理员账号/密码: 为这个新语言站点设置独立的后台管理账号和密码。
  • 数据库名称: 同样,为了数据隔离和安全性,建议为每个语言站点使用独立的数据库。您可以根据实际情况填写一个新的数据库名称,例如 en_anqicms_com。如果您在 Docker 环境下安装 AnQiCMS,并且拥有全部数据库管理权限,也可以选择“复用默认数据库账号信息”,AnQiCMS 会自动使用主站点的数据库配置并创建新的数据库。
  • 选择使用的模板: 您可以为每个语言站点选择不同的模板,也可以使用相同的模板,然后在模板内部通过逻辑判断来适配不同语言。

完成表单填写后,点击“确定”按钮,一个新的语言站点就成功创建了。对于每一种您希望支持的语言,重复上述步骤,创建相应的语言站点。

关于系统默认语言包的说明: 在“后台设置”下的“全局功能设置”中,有一个“默认语言包”的选项。这个设置主要用于更改 AnQiCMS 后台界面和系统提示信息的语言,例如后台菜单的显示语言、错误提示等。它不会自动翻译您网站前端的文章、分类等内容。网站前端内容的多语言化,需要通过上述创建独立语言站点和在每个站点上发布对应语言内容的方式来实现。

第三步:为每个语言站点准备内容

每个语言站点创建完成后,您就可以像管理一个独立网站一样,为它填充内容了。

  • 登录对应语言站点的后台: 通过“多站点管理”列表中的“访问后台”按钮,或直接输入对应站点的后台地址(例如 http://en.yourwebsite.com/system/),登录到该语言站点的后台。
  • 创建语言特定的内容: 在该语言站点的后台,您可以独立地创建和管理分类、文章、产品、单页面等内容,并确保这些内容都是用当前站点的目标语言编写的。例如,在英文站的后台发布英文文章,在中文站的后台发布中文文章。
  • 上传语言特定资源: 图片、视频等资源也可以根据语言站点的需求独立上传和管理。

第四步:在网站前端实现语言切换功能

内容准备就绪后,下一步就是在网站前端提供一个用户友好的语言切换器,并优化搜索引擎可见性。这主要通过修改模板文件来实现。

AnQiCMS 提供了 languages 标签,可以方便地获取所有多语言站点的信息。您通常会在网站的公共头部(例如 template/您的模板目录/partial/header.htmltemplate/您的模板目录/bash.html)添加这段代码。

1. 显示语言切换器:

通过 languages 标签,您可以遍历所有已配置的语言站点,并为它们生成切换链接。

{%- languages websites %}
{%- if websites %}
<div class="language-switcher">
    <span>{{ tr "切换语言" }}:</span> {# 使用翻译标签显示 "切换语言" #}
    {%- for item in websites %}
    <a href="{{item.Link}}" {% if item.Nofollow == 1 %} rel="nofollow"{% endif %}>
        {%- if item.LanguageIcon %}
        <img src="{{item.LanguageIcon}}" alt="{{item.LanguageName}} 站点图标" class="language-icon" />
        {%- else %}
        <span class="language-emoji">{{item.LanguageEmoji}}</span>
        {% endif %}
        <span class="language-name">{{item.LanguageName}}</span>
    </a>
    {%- endfor %}
</div>
{%- endif %}
{%- endlanguages %}

在这段代码中:

  • websites 变量包含了所有已配置的多语言站点信息。
  • item.Link 是指向对应语言站点的链接。
  • item.LanguageIconitem.LanguageEmoji 可以用来显示语言图标或表情符号,提升用户体验。
  • item.LanguageName 显示语言的名称。
  • {{ tr "切换语言" }} 是一个翻译标签,用于在模板中显示不同语言的文字,它的内容会根据当前站点设置的语言包进行自动翻译。要启用此功能,您需要在模板目录下创建 locales 目录,并在其中为每种语言创建 yml 文件(例如 zh-cn/default.ymlen-us/default.yml),定义好对应的翻译文本。

2. 实现 hreflang 标签,优化 SEO:

为了帮助搜索引擎理解您的多语言内容并正确索引,在每个语言站点的 <head> 区域添加 hreflang 标签至关重要。这告诉搜索引擎哪些页面是同一内容的替代语言版本。

同样在模板文件的 <head> 部分,添加以下代码:

{%- languages websites %}
{%- for item in websites %}
<link rel="alternate" href="{{item.Link}}" hreflang="{{item.Language}}">
{%- endfor %}
{%- endlanguages %}
  • item.Link 指向对应语言版本的 URL。
  • item.Language 是该语言站点的语言代码(例如 zh-CN 代表简体中文,en-US 代表美式英文)。

第五步:测试与优化

配置完成后,务必进行全面的测试:

  1. 访问每个语言站点: 确保它们都能正常访问,且显示的是对应语言的内容。
  2. **测试语言