如何在AnQiCMS网站上配置多语言内容的切换与显示?

在当今全球化的互联网环境中,网站支持多语言已成为拓展市场、服务不同用户群体的关键。安企CMS(AnQiCMS)凭借其灵活强大的功能,为网站的多语言内容切换与显示提供了行之有效的解决方案。本篇文章将详细介绍如何在AnQiCMS网站上配置多语言内容,帮助您轻松实现网站的国际化布局。


多语言策略的核心:理解AnQiCMS的多站点管理

AnQiCMS实现多语言功能的核心策略是充分利用其强大的多站点管理能力。这意味着,您通常会为每种目标语言创建一个独立的站点,而不是在同一个内容条目中直接切换语言版本。这种设计确保了每个语言站点内容的独立性、可定制性和SEO友好性,为不同语言的用户提供最精准、最原生的体验。

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

在着手配置之前,首先需要对多语言站点的结构进行规划。这主要涉及到域名策略,常见的有以下几种:

  • 独立域名(如:example.deexample.fr:这是最理想的模式,SEO效果**,但成本较高。
  • 子域名(如:en.example.comde.example.com:较为常用,SEO效果良好,易于管理。
  • 子目录(如:example.com/en/example.com/de/:部署和管理相对简单,但需要确保服务器配置支持URL重写,以便AnQiCMS能够正确解析。

无论选择哪种模式,您都需要为每种语言准备好相应的域名或路径,并提前进行域名解析工作,确保它们都能指向您的AnQiCMS服务器。

第二步:在AnQiCMS中创建语言站点

规划好站点结构后,我们便可以在AnQiCMS后台为每种语言创建对应的站点。AnQiCMS允许在同一套系统内管理多个站点,且每个站点可以拥有独立的配置和内容。

  1. 登录主站点后台: 使用您最初安装AnQiCMS时创建的管理员账号登录主站点的后台。
  2. 访问多站点管理: 在后台左侧菜单中找到“多站点管理”功能。
  3. 添加新站点: 点击“添加新站点”按钮,根据您的规划填写站点信息。
    • 站点名称: 为您的语言站点命名,例如“英文站”、“德文站”。
    • 站点根目录: 指定一个唯一的目录,例如/app/en_anqicms_com/www/wwwroot/en.anqicms.com。这个目录将用于独立存储该语言站点的缓存和其他数据,务必确保不与其他站点目录冲突。
    • 网站地址: 填写该语言站点的完整URL,例如https://en.yourdomain.comhttps://yourdomain.com/en
    • 管理员账号密码: 为这个新语言站点设置独立的后台管理账号和密码。
    • 数据库名称: 为新站点指定一个唯一的数据库,例如en_anqicms_com。如果您是在Docker环境中安装并希望复用主站点的数据库连接信息,可以选择“复用默认数据库账号信息”,AnQiCMS会自动创建新的数据库表。
    • 选择使用的模板: 您可以为每个语言站点选择不同的模板,或者使用同一套模板进行本地化修改。

值得注意的是,AnQiCMS后台的“全局功能设置”中有一个“默认语言包”选项。此选项主要用于切换AnQiCMS后台界面和系统内置提示信息的语言,并不会直接影响网站前台的内容语言。网站前台的内容本地化需要通过后续的内容管理和模板配置来实现。

第三步:内容本地化与管理

创建好语言站点后,接下来的核心任务是进行内容本地化。每个语言站点都将拥有自己独立的内容管理体系:

  1. 登录对应的语言站点后台: 使用您为该语言站点设置的管理员账号登录。
  2. 创建和翻译内容:
    • 文档(文章、产品等)和分类: 您需要为每个语言站点独立创建或翻译相应的文档(如文章、产品信息)和分类。这意味着,一篇英文文章和它的中文版本将是两个独立的文档,分别发布在英文站点和中文站点。
    • 单页面: 同样,像“关于我们”、“联系我们”等单页面也需要根据语言进行创建和翻译。
    • 图片和多媒体: 考虑为不同语言的用户提供本地化的图片或视频,例如带有本地语言字幕的视频。
  3. SEO本地化:
    • TDK(Title, Description, Keywords): 为每个语言站点的每篇文章、分类、页面设置符合当地语言习惯和搜索偏好的TDK。
    • URL结构: 确保URL结构也符合多语言SEO**实践。
    • Hreflang标签: 这是多语言网站SEO的关键。它告诉搜索引擎您的不同语言版本之间是互相对应的,避免内容重复的惩罚。在AnQiCMS中,您可以通过模板标签轻松实现。

第四步:实现网站前端的语言切换与显示

为了让用户能够方便地在不同语言版本之间切换,我们需要在网站前端添加语言切换功能,并配置hreflang标签以优化SEO。

  1. 获取多语言站点列表: AnQiCMS提供了一个名为languages的模板标签,用于获取所有已配置的多语言站点信息。
    
    {%- languages websites %}
    {# 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 %}
    
    这段代码会遍历所有语言站点,并为每个站点生成一个链接,显示语言名称或图标。您可以将其放置在网站的页眉或页脚等显眼位置。
  2. 配置Hreflang标签: Hreflang标签应放置在HTML的<head>区域,它会告诉搜索引擎哪些页面是同一内容的替代语言版本。
    
    {%- languages websites %}
    {%- for item in websites %}
    <link rel="alternate" href="{{item.Link}}" hreflang="{{item.Language}}">
    {%- endfor %}
    {%- endLanguages %}
    
    通过这个标签,搜索引擎可以理解您的多语言内容结构,并将用户引导至其偏好语言版本的网站。

第五步:模板层面的多语言微调

除了内容本身的翻译,网站模板中可能还包含一些静态文本,例如导航菜单项、页脚版权声明、表单标签等。AnQiCMS提供了tr(translate)标签来处理这些模板内的静态文本翻译。

  1. 创建语言文件: 在您的模板目录下,创建一个名为locales的文件夹,并在其中为每种语言创建子文件夹(例如zh-cnen-us),每个子文件夹内包含一个default.yml文件。 例如,zh-cn/default.yml
    
    "yourLocation": "您的位置"
    "home": "首页"
    "contactUs": "联系我们"
    
    对应的en-us/default.yml
    
    "yourLocation": "Your Location"
    "home": "Home"
    "contactUs": "Contact Us"
    
  2. 在模板中使用tr标签: 在模板文件中,您可以使用{% tr "键名" %}来调用对应的翻译文本。 “`twig