在全球化日益盛行的今天,让您的网站内容能够以多种语言呈现,是拓展市场、服务不同地区用户的重要一步。安企CMS(AnQiCMS)作为一个高效灵活的内容管理系统,充分考虑了这一需求,提供了多种方案来帮助您轻松配置和切换多语言内容。
接下来,我们将一起探索如何在安企CMS中有效地管理和展示多语言内容。
安企CMS的多语言理念:系统与内容的区分
在安企CMS中,多语言支持主要体现在两个层面:
- 系统级语言包: 这主要影响后台管理界面和一些内置的系统提示信息。例如,您可以选择将后台界面显示为中文或英文。
- 内容级多语言: 这才是我们常说的网站内容(文章、产品、单页面等)的多语言展示。安企CMS为此提供了灵活的策略,让您可以根据实际需求,选择最适合自己的实现方式。
理解这两者之间的区别非常重要。系统语言包的切换不会自动翻译您的网站文章内容,而网站内容的多语言展示则需要您采取相应的策略进行配置和管理。
配置系统级语言包
首先,我们来看看如何配置安企CMS的系统级语言。这非常简单,只需几步即可完成:
进入安企CMS的后台管理界面后,找到左侧菜单中的“后台设置”,点击进入后选择“全局功能设置”。
在这个页面中,您会看到一个名为“默认语言包”的选项。安企CMS目前内置了中文和英文两种语言包。您可以根据需要选择“中文”或“英文”。
选择并保存后,您的后台界面以及一些系统默认的提示文字(例如“首页”、“联系我们”等在模板中通过 {% tr "yourLocation" %} 标签调用的静态文本)就会切换到对应的语言。
请注意,正如前面提到的,这个设置并不会自动翻译您的文章、产品描述等动态内容,那部分需要更精细的策略来管理。
管理多语言内容:灵活的内容策略
安企CMS提供了两种主要的内容多语言管理策略,您可以根据您的业务规模、内容独立性以及运营成本来选择。
策略一:利用多站点管理实现完全独立的多语言站
对于内容独立性强、SEO策略需要高度定制,或者希望每个语言版本拥有独立域名和管理团队的场景,安企CMS的多站点管理功能是您的理想选择。
通过多站点管理,您可以为每种语言创建一个独立的安企CMS站点。例如,您可能拥有:
www.yourdomain.com作为中文主站en.yourdomain.com或www.yourdomain.com/en/作为英文子站
如何实现:
- 创建多个站点实例: 您可以在同一台服务器上部署多个安企CMS实例,每个实例对应一个语言版本。安企CMS支持在一台服务器上通过不同的端口运行多个实例,并通过反向代理(如Nginx、Apache、宝塔面板、1Panel等)将不同域名或子目录指向不同的实例。在安企CMS后台的“多站点管理”中,可以便捷地添加和配置这些新站点,为每个站点指定独立的数据库和根目录,确保数据互不干扰。
- 独立发布内容: 每个语言站点的后台可以独立发布和管理该语言的内容。例如,在英文站的后台,您只发布英文文章、英文产品信息。
- 模板与数据互联(可选): 尽管内容是独立的,但您可以在模板层面实现一定程度的互联互通。例如,在中文站点的某个页面上,您可能需要显示对应的英文版本链接。这时,可以利用安企CMS模板标签中的
siteId参数来调用其他站点的数据。- 例如,如果您想在当前站点显示另一个站点(假设站点ID为2的英文站)的某个特定文档,可以使用:
{% archiveDetail enArticle with name="Title" id="123" siteId="2" %} <p>对应的英文文章标题:{{ enArticle }}</p> - 同样,在前端实现语言切换时,也需要获取到所有语言站点的链接,这将在后面详细介绍。
- 例如,如果您想在当前站点显示另一个站点(假设站点ID为2的英文站)的某个特定文档,可以使用:
这种方式的优势在于: 内容完全隔离,管理清晰,有利于针对不同语言市场进行独立的SEO优化和运营。
策略二:在单一站点内通过内容模型管理多语言字段
如果您的多语言内容差异不大,或者预算有限、不希望维护多个独立的CMS实例,您可以在一个安企CMS站点内部通过自定义内容模型来管理多语言内容。
如何实现:
- 扩展内容模型: 安企CMS提供了“灵活的内容模型”功能。您可以针对“文章”、“产品”或自定义内容模型,添加语言特定的字段。
- 例如,在您的文章模型中,除了默认的
Title和Content字段外,您可以新增:Title_EN(英文标题)Content_EN(英文内容)Title_ES(西班牙语标题)Content_ES(西班牙语内容)
- 这些自定义字段可以在“内容管理”下的“内容模型”中进行配置,选择字段类型(单行文本、多行文本等),并为其命名。
- 例如,在您的文章模型中,除了默认的
- 内容发布时填写: 在发布文章或产品时,编辑人员需要手动填写每个语言对应的字段内容。
- 模板中条件显示: 在前端模板中,您可以根据当前页面选择的语言(通常通过URL参数或Cookie判断),使用
if逻辑判断标签来显示对应语言的内容。- 例如,在
detail.html详情页模板中:{% if currentLanguage == "en" %} <h1>{{ archive.Title_EN }}</h1> <div>{{ archive.Content_EN|safe }}</div> {% else %} <h1>{{ archive.Title }}</h1> <div>{{ archive.Content|safe }}</div> {% endif %} currentLanguage这个变量通常需要在后端进行判断并传入模板。
- 例如,在
这种方式的优势在于: 维护成本相对较低,所有内容都在一个后台管理,便于内容编辑人员操作。但对于内容量大、语言种类多的网站,可能会导致内容模型过于复杂,管理起来不如多站点清晰。
在前端实现语言切换
无论您采用哪种策略,都需要在前端为用户提供便捷的语言切换功能。安企CMS为此提供了 languages 标签,让您能够轻松构建语言切换器和优化SEO的 hreflang 标签。
语言切换器
languages 标签可以获取所有配置的多语言站点列表(如果配置了多站点)。您可以在网站头部、底部或其他显眼位置添加语言切换按钮或下拉菜单。
”`twig {%- languages websites %}