在 AnQiCMS 搭建多语言网站时,内容替换是常见的运营需求。无论是需要修正某个通用词汇,还是希望根据不同语言环境动态调整文本表达,灵活有效地进行字符串替换都至关重要。AnQiCMS 提供了功能强大的 replace 过滤器以及完善的多语言翻译机制,巧妙地将二者结合,可以实现更精准、更具语境适应性的内容替换策略。
理解 replace 过滤器的基础用法
replace 过滤器是 AnQiCMS 模板引擎中用于字符串替换的核心工具。它的基本功能是查找字符串中指定的“旧词”(old)并替换为“新词”(new),然后返回替换后的新字符串。
其基本语法结构非常简洁直观:
{{ 目标字符串 | replace:"old,new" }}
其中,old 和 new 之间使用逗号 , 分隔。
举例来说:
如果你有一段文本 "欢迎使用安企CMS",想把其中的 "安企" 替换成 "anqi",可以这样使用:
{{"欢迎使用安企CMS"|replace:"安企,anqi"}}
{# 输出结果:欢迎使用anqiCMS #}
replace 过滤器还有一些特殊用法:
- 如果
old参数为空字符串,它会在目标字符串的开头和每个 UTF-8 字符序列之后进行匹配,并在这些位置插入new字符串。{{"欢迎使用安企CMS"|replace:",-"}} {# 输出结果:-欢-迎-使-用-安-企-C-M-S- #} - 如果
new参数为空字符串,它将移除old字符串。{{"欢迎使用安企CMS"|replace:"安企,"}} {# 输出结果:欢迎CMS #}
了解了 replace 过滤器的基本用法后,我们接下来看看 AnQiCMS 的多语言机制。
AnQiCMS 的多语言翻译机制概览
AnQiCMS 通过内置的 {% tr %} 翻译标签,配合 locales 目录下的语言包文件(通常是 YAML 格式),实现了灵活的多语言内容管理。
工作原理:
- 在模板中,需要翻译的文本不直接写入,而是使用翻译键(key)。例如
{% tr "yourLocation" %}。 - 在
locales目录下,为每种支持的语言创建一个文件夹,并在其中放置语言包文件(如default.yml)。 - 语言包文件以键值对的形式存储翻译内容。
- zh-cn/default.yml “`yml