如何在AnQiCMS中显示多语言站点的切换选项和hreflang标签?

📅 👁️ 61

在AnQiCMS中构建多语言网站,并提供便捷的语言切换选项及正确的hreflang标签,是拓展国际市场和提升用户体验的关键一步。AnQiCMS以其灵活的架构,提供了清晰的路径来实现这一目标,让您的网站内容能够精准触达全球用户,同时确保搜索引擎的友好性。

AnQiCMS 多语言实现原理概述

AnQiCMS在设计上,将多语言支持与多站点管理功能深度融合。这意味着,每个不同的语言版本,在系统内部通常被视为一个独立的站点进行管理。这种设计的好处在于,不同语言站点的后台管理、内容发布、URL结构乃至模板样式都可以高度独立和定制,从而避免了单站点多语言可能带来的复杂性。

例如,您的中文站点(www.example.com)和英文站点(en.example.com)将拥有各自独立的内容库,可以发布完全不同的文章、产品或页面。AnQiCMS的“默认语言包”设置主要影响后台管理界面或系统内置的提示信息语言,而网站前台展示的核心内容,如文章标题、正文、分类名称等,则需要为每个语言站点单独创建和维护。

正是基于这样的架构,AnQiCMS提供了强大的标签功能,帮助我们轻松地在前端实现语言切换和hreflang标签的集成。

第一步:配置多语言站点

首先,您需要在AnQiCMS后台设置多个独立的语言站点。

  1. 安装主站点: 如果您尚未安装AnQiCMS,请先完成主站点的安装。
  2. 创建新的语言站点: 登录到您的AnQiCMS主站点后台。在左侧菜单中,找到“多站点管理”功能,点击“添加新站点”。
    • 在弹出的界面中,您需要为每个语言站点填写相应的信息。例如,要创建一个英文站点:
      • 站点名称: 例如“英文站点”。
      • 站点根目录: 这是一个独立的目录路径,用于存放该站点的缓存、配置文件等数据,例如/app/en_example_com。确保这个目录名是唯一的。
      • 网站地址: 设定该语言站点将使用的域名或子域名,例如https://en.example.comhttps://www.example.com/en
      • 管理员账号密码: 为该新站点设置独立的后台管理员账号和密码。
      • 数据库名称: 为该站点创建独立的数据库,例如en_example_com_db。如果您是在Docker环境下使用AnQiCMS,并且复用默认数据库账号信息,通常无需额外填写数据库账号密码。
      • 选择使用的模板: 您可以为每个语言站点选择一套独立的模板,也可以复用现有模板并进行语言相关的修改。

完成站点的添加后,您还需要在服务器层面(如Nginx或Apache)配置相应的反向代理,将用户的请求正确路由到AnQiCMS的Docker容器端口(默认是8001),并确保您的域名解析正确。这部分操作与AnQiCMS的安装部署文档中关于多站点配置的说明类似,确保每个语言站点都能独立访问。

第二步:在模板中添加语言切换选项

当您的多语言站点都配置好并可独立访问后,接下来就是在网站前端提供一个显眼的语言切换选项,方便用户根据自己的偏好选择语言。AnQiCMS提供了一个名为 languages 的强大标签,可以获取所有已配置的语言站点信息。

通常,我们建议将这段代码放置在全局的模板文件,例如template/{您的模板名称}/bash.htmlheader.html中,这样可以确保它在所有页面上都可见。

您可以通过以下方式使用 languages 标签来显示语言切换选项:

{%- languages websites %}
{%- if websites %}
<div class="language-switcher">
    <span>切换语言:</span>
    {%- for item in websites %}
    <a href="{{item.Link}}" {% if item.Link == currentUrl %}class="active"{% endif %}>
        {%- if item.LanguageIcon %}
        <img src="{{item.LanguageIcon}}" alt="{{item.LanguageName}}图标" />
        {%- else %}
        {{item.LanguageEmoji}}
        {% endif %}
        {{item.LanguageName}}
    </a>
    {%- endfor %}
</div>
{%- endif %}
{%- endlanguages %}

在这段代码中:

  • {% languages websites %} 会遍历所有在AnQiCMS后台配置的多语言站点,并将它们的数据存储在 websites 变量中。
  • item.Link 会提供该语言站点的完整URL。
  • item.LanguageName 显示语言的名称(例如“中文”、“English”)。
  • item.LanguageEmoji 提供语言对应的Emoji图标,如果您的模板支持显示Emoji,这是一个简洁的选择。
  • item.LanguageIcon 如果您在后台为语言配置了图标,这里会显示图标的URL。您可以根据实际需求选择显示Emoji还是图标。
  • {% if item.Link == currentUrl %}class="active"{% endif %} 这一行(currentUrl需要作为全局变量传入模板,或者通过其他方式获取当前页面的URL)可以用于高亮显示当前用户正在访问的语言。

第三步:实现 hreflang 标签

除了为用户提供可见的语言切换选项,正确配置 hreflang 标签对于多语言站点的SEO至关重要。hreflang 标签告诉搜索引擎特定页面有哪些其他语言版本,有助于避免重复内容问题,并确保用户在搜索结果中看到正确语言和地区的内容。

hreflang 标签需要放置在每个页面的 <head> 部分。您可以继续利用 languages 标签来动态生成这些链接:

{%- languages websites %}
{%- for item in websites %}
<link rel="alternate" href="{{item.Link}}" hreflang="{{item.Language}}">
{%- endfor %}
{%- endlanguages %}

在这段代码中:

  • item.Link 同样提供了每个语言站点的URL。
  • item.Language 则提供了该语言站点的ISO 639-1语言代码(例如 zh-cnen-us)。这些代码是AnQiCMS在创建语言站点时自动生成的,或者您在后台进行配置时设定的。

将这段代码添加到您模板的 <head> 部分(例如template/{您的模板名称}/bash.htmlhead.html),即可确保每个页面都包含正确的 hreflang 信息。

集成与**实践

  • 模板文件位置: languages 标签的代码,无论是语言切换选项还是 hreflang 标签,都应该放置在网站的全局头部模板文件(如bash.htmlheader.html)中,确保它们在所有页面上都能被正确加载和渲染。
  • 内容同步: 由于每个语言版本都是一个独立站点,您需要为每个站点分别维护内容。在发布新文章或产品时,请记得在所有相关语言站点上进行发布和翻译。
  • 统一URL结构: 规划清晰且一致的URL结构(例如,使用子目录/en/或子域名en.example.com)有助于用户和搜索引擎理解您的多语言内容布局。
  • 规范化标签: 尽管 hreflang 解决了多语言内容问题,但仍建议在每个页面上使用 <link rel="canonical" href="..."/> 标签指向该语言版本的主URL,以避免不必要的爬虫混淆。AnQiCMS提供了 tdk 标签来获取规范链接。

通过上述步骤,您就可以在AnQiCMS中有效地显示多语言

相关文章

如何在AnQiCMS模板中获取并显示用户组的详细信息?

在AnQiCMS中,用户组管理是构建差异化服务和内容变现体系的核心功能之一。无论是为VIP用户提供专属内容,还是为不同权限等级的用户设定访问限制,精准地在前端模板中展示用户组的详细信息都至关重要。这不仅能提升用户体验,也能有效引导用户了解和升级自身权限。 那么,我们如何在AnQiCMS的模板中灵活地获取并展示这些用户组的详细信息呢?AnQiCMS提供了专门的模板标签

2025-11-07

AnQiCMS模板中如何将HTML代码解析输出而不是转义显示?

在使用安企CMS进行网站内容创作和模板设计时,我们经常会遇到一个关于HTML代码显示的问题:为什么我在后台编辑器中输入的HTML代码,在前台页面上却被显示成了纯文本,而不是被浏览器解析成实际的HTML元素?这其实是内容管理系统为了网站安全,默认开启了HTML内容转义的机制。 本文将深入探讨在AnQiCMS模板中如何有效地控制HTML代码的输出,确保它们被正确解析而不是转义显示。 ###

2025-11-07

如何获取AnQiCMS图片资源的缩略图并显示?

AnQiCMS 在内容展示上非常注重视觉效果和页面加载效率,因此,如何高效地获取和显示图片资源的缩略图,是我们在日常运营中经常会遇到的问题。幸运的是,AnQiCMS 提供了一套非常便捷且灵活的方式来处理图片缩略图,让我们可以轻松实现各种展示需求。 --- ### AnQiCMS 如何管理和生成图片缩略图? 在深入模板调用之前,我们有必要了解一下 AnQiCMS

2025-11-07

AnQiCMS模板中如何对浮点数进行格式化并保留指定位数小数显示?

在网站内容运营中,我们经常需要展示价格、百分比、评分等浮点数信息。这些数字的精确度和显示方式,直接影响着用户体验和信息的专业性。安企CMS深知这一需求,在模板引擎中提供了强大而灵活的浮点数格式化功能,让你可以轻松控制浮点数的显示精度。 接下来,我们将探讨两种在AnQiCMS模板中格式化浮点数并保留指定小数位数的主要方法:`floatformat` 过滤器和 `stringformat` 过滤器

2025-11-07

AnQiCMS如何管理网站导航链接,并在前台页面展示?

在构建和管理网站时,清晰、直观的导航系统是用户体验和搜索引擎优化的基石。AnQiCMS 提供了一套灵活且功能强大的导航管理机制,让您可以轻松地组织网站结构,并将其优雅地呈现在用户面前。 ### 一、 后台导航管理:构建你的网站骨架 AnQiCMS 的导航管理功能位于后台的“后台设置”菜单中,点击“导航设置”即可进入。在这里,您可以像搭积木一样,为网站构建起清晰的导航体系。 **1.

2025-11-07

如何在AnQiCMS中设置联系方式,并在前台页面显示(如电话、地址、微信)?

在当今数字时代,一个网站的联系方式不仅是信息展示,更是企业与客户之间沟通的桥梁。清晰、易寻的联系信息能够有效提升客户信任度,促成业务转化。AnQiCMS(安企内容管理系统)深知这一点,为您提供了简洁高效的方式来设置和展示各类联系方式,无论是电话、地址,还是微信。 下面,就让我们一步步了解如何在AnQiCMS中配置和展示这些关键信息。 ### 第一步:在后台设置您的联系方式 首先

2025-11-07

AnQiCMS文档内容的标题(ContentTitles)在前台模板中如何进行循环和显示?

在AnQiCMS前台模板中动态展示文档内容标题:ContentTitles的循环与应用 在使用AnQiCMS进行网站内容运营时,我们经常需要为用户提供更好的阅读体验和导航便利,其中一个非常实用的功能就是自动生成文章目录(Table of Contents)。AnQiCMS在这方面考虑得非常周到,它能自动提取文档内容中的标题,并以 `ContentTitles` 的形式提供给前台模板使用。今天

2025-11-07

AnQiCMS如何支持自定义内容模型以实现

在构建和运营网站的过程中,我们经常会遇到这样的挑战:标准的内容管理系统(CMS)提供的“文章”或“产品”模板,往往无法完全匹配我们业务的独特需求。安企CMS(AnQiCMS)深知这一痛点,因此在设计之初,就将“灵活的内容模型”作为其核心亮点之一,旨在帮助用户摆脱传统CMS的束缚,实现真正意义上的个性化内容管理。 ### 突破传统,定义您的专属内容结构 想象一下,您正在运营一个房产信息网站

2025-11-07