如何确保AnQiCMS多语言内容在前台正确切换和显示?

在内容全球化的今天,让网站支持多语言切换和显示,已经成为许多企业拓展国际市场的重要一环。AnQiCMS 凭借其灵活的架构,为我们提供了实现这一目标的高效途径。本文将深入探讨如何在 AnQiCMS 中配置和管理多语言内容,确保它们在前台网站上能够正确地切换和展示,从而为不同语种的用户提供优质的浏览体验。

AnQiCMS 多语言能力概览

AnQiCMS 将多语言内容的管理巧妙地融入其核心功能之中。其实现多语言的关键在于“多站点管理”与“语言包”及“模板标签”的紧密结合。这意味着,您可以将网站的每一个语言版本都视为一个独立的站点进行管理,每个站点都可以拥有自己独立的数据库内容、模板以及语言配置,从而实现了内容的高度定制化与隔离。

后台配置:奠定多语言基础

要确保 AnQiCMS 的多语言内容在前台正确切换和显示,首先需要在后台进行一系列基础配置。

  1. 设置默认语言包 在 AnQiCMS 后台的“全局功能设置”中,您可以找到“默认语言包”选项。这里内置了中文、英文等多种语言供您选择。选择一个语言包后,这会影响系统后台的界面显示以及前端一些内置的、非用户生成文本的语言。例如,一些系统提示、按钮文字等会按照所选语言进行显示。

    然而,请务必注意,这项设置并不会自动翻译您网站上发布的文章、产品、单页面等具体内容。这些由用户创建的核心内容,需要针对每种语言独立进行创作和维护。

  2. 通过多站点管理创建不同语言版本 AnQiCMS 强大的“多站点管理”功能是实现多语言策略的核心。您可以为每一种目标语言创建一个独立的站点。例如,如果您的目标用户群包括英语和西班牙语使用者,您可以创建一个名为 en.yourdomain.com 的英文站,以及一个名为 es.yourdomain.com 的西班牙文站。

    在后台“多站点管理”界面添加新站点时,您需要为每个语言站点配置以下信息:

    • 站点名称:便于区分不同语言版本,如“英文站”、“西班牙文站”。
    • 站点根目录:每个站点应有独立的根目录,用于存储缓存、上传文件等数据,避免冲突。通常以 /app/ 开头,后跟一个基于域名转换的名称,如 /app/en_yourdomain_com
    • 网站地址:这是该语言版本的访问域名,例如 http://en.yourdomain.com。请确保该域名已正确解析到您的服务器。
    • 管理员账号密码:为每个站点设置独立的后台管理权限。
    • 数据库名称:每个语言站点拥有独立的数据库,用于存储其独特的内容。同样建议以域名转换的名称命名,如 en_yourdomain_com
    • 选择使用的模板:您可以为每个语言版本选择或定制专属的模板,以适应不同语言的排版和设计需求。

    通过这种方式,每个语言站点都将拥有独立的后台、内容和模板,为精细化运营不同语言市场提供了坚实的基础。

前端模板实现:确保语言切换与内容匹配

在后台配置好不同语言的站点后,如何在网站前台实现语言的正确切换与内容展示是关键。这主要通过 AnQiCMS 提供的模板标签来完成。

  1. 构建前端语言切换器 为了让用户能够自由选择网站的语言版本,我们需要在网站前端提供一个语言切换菜单。AnQiCMS 的 languages 标签可以帮助我们轻松实现这一点。这个标签会返回一个包含所有已配置语言站点信息的数组。

    在模板中,您可以这样使用 languages 标签来构建语言切换器:

    {%- languages websites %}
    {%- if websites %}
    <div class="language-switcher">
        <span>切换语言:</span>
        {%- for item in websites %}
        <a href="{{item.Link}}" title="{{item.LanguageName}}">
            {%- if item.LanguageIcon %} {# 优先使用语言图标 #}
            <img src="{{item.LanguageIcon}}" alt="{{item.LanguageName}}" />
            {%- else %} {# 否则使用 Emoji 表情符号 #}
            {{item.LanguageEmoji}}
            {% endif %}
            {{item.LanguageName}}
        </a>
        {%- endfor %}
    </div>
    {%- endif %}
    {%- endlanguages %}
    

    这段代码会遍历所有已设置的语言站点,并为每个站点生成一个链接。item.Link 会指向对应语言站点的根目录,确保用户点击后能正确跳转到该语言版本的首页。

  2. 实现模板中的本地化文字翻译 对于网站界面上的固定文本,例如导航菜单项、页脚信息、表单提示等,您可以使用 AnQiCMS 的 tr (translate) 标签进行本地化。这避免了为每种语言复制整套模板,使得模板维护更加高效。

    要启用这项功能,您需要在模板的根目录下创建一个名为 locales 的文件夹。在该文件夹内,为每种语言创建一个子文件夹(例如 en-uszh-cn 等),并在这些子文件夹中放置一个 default.yml 文件。

    例如,您的 locales/zh-cn/default.yml 文件内容可能是:

    yourLocation: "您的位置"
    contactUs: "联系我们"
    

    locales/en-us/default.yml 文件内容则可能是: “`yaml yourLocation: “Your Location” contactUs: “Contact Us