You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fat-Free Framework多语言场景下含链接字符串单变量翻译实现方法

完全可以实现,不需要拆分多个翻译变量,有两种成熟的实现方案:


方案一:翻译字符串直接包含HTML标签(最简单)

你可以直接把完整的超链接HTML写在翻译变量里,只需要在模板输出时加上raw过滤器,避免F3默认的HTML转义机制把标签转义成纯文本:

  1. 翻译文件配置:
// 英文版本
$txt_HelpMeGetTranslated => 'Help me <a href="#">get</a> translated.'
// 其他语言版本示例(中文)
$txt_HelpMeGetTranslated => '帮我<a href="#">完成</a>翻译'
  1. 模板调用代码:
{{@txt_HelpMeGetTranslated|raw}}

这个方案适合链接地址固定的场景,操作成本最低。


方案二:占位符替换(适合链接地址动态的场景)

如果你的超链接地址是可变的,不想把链接硬写在翻译文件里,可以在翻译字符串里预留占位符,渲染时再替换成实际的HTML标签:

  1. 翻译文件配置:
// 英文版本
$txt_HelpMeGetTranslated => 'Help me {link_start}get{link_end} translated.'
// 中文版本
$txt_HelpMeGetTranslated => '帮我{link_start}完成{link_end}翻译'
  1. 控制器中做占位符替换:
// 动态生成链接标签,这里的href可以是任意变量值
$linkStart = '<a href="' . $dynamicUrl . '">';
$linkEnd = '</a>';
// 替换占位符后赋值给模板变量
$f3->set('txt_HelpMeGetTranslated', strtr($f3->get('txt_HelpMeGetTranslated'), [
    '{link_start}' => $linkStart,
    '{link_end}' => $linkEnd
]));
  1. 模板直接调用即可:
{{@txt_HelpMeGetTranslated|raw}}

注意:如果翻译工作由非技术人员协作完成,需要提前告知占位符的作用,避免误修改导致页面结构异常。


内容的提问来源于stack exchange,提问作者Ayam D Fynest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:45:02