在 AnQiCMS 搭建多语言网站时,内容替换是常见的运营需求。无论是需要修正某个通用词汇,还是希望根据不同语言环境动态调整文本表达,灵活有效地进行字符串替换都至关重要。AnQiCMS 提供了功能强大的 replace 过滤器以及完善的多语言翻译机制,巧妙地将二者结合,可以实现更精准、更具语境适应性的内容替换策略。

理解 replace 过滤器的基础用法

replace 过滤器是 AnQiCMS 模板引擎中用于字符串替换的核心工具。它的基本功能是查找字符串中指定的“旧词”(old)并替换为“新词”(new),然后返回替换后的新字符串。

其基本语法结构非常简洁直观:

{{ 目标字符串 | replace:"old,new" }}

其中,oldnew 之间使用逗号 , 分隔。

举例来说:

如果你有一段文本 "欢迎使用安企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 格式),实现了灵活的多语言内容管理。

工作原理:

  1. 在模板中,需要翻译的文本不直接写入,而是使用翻译键(key)。例如 {% tr "yourLocation" %}
  2. locales 目录下,为每种支持的语言创建一个文件夹,并在其中放置语言包文件(如 default.yml)。
  3. 语言包文件以键值对的形式存储翻译内容。
    • zh-cn/default.yml “`yml