如何使用ThinkPHP多语言标签输出多语言变量?

2026-05-06 22:000阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1031个文字,预计阅读时间需要5分钟。

如何使用ThinkPHP多语言标签输出多语言变量?

ThinkPHP 是一款流行的 PHP 开源框架,它简化了 PHP 项目的开发过程。以下是其基本内容:

模板中输出多语言变量只能用 {:lang('key')}{:__('key')}

ThinkPHP 模板引擎不识别语言 key 为普通变量,{$hello_world} 这类写法无效——它会去查 $hello_world 变量,而不是查语言包。正确方式是调用函数并包裹在 {:...} 中:

  • {:lang('welcome_message')} —— 最常用,推荐
  • {:__('welcome_message')} —— 助手函数别名,效果一致
  • 支持占位符:{:lang('hello_user', ['name' => $user['name']])},对应语言包中 'hello_user' => '你好,{name}!'
  • 不支持 {:lang($key)} 这种动态 key,因为模板编译期无法解析变量值;如需动态,应在控制器里先计算好再 assign

lang() 在控制器/模型里调用要早于任何视图渲染

语言切换状态在请求生命周期中是单次设定的,lang('xxx') 的结果取决于当前已激活的语言包。如果在控制器方法末尾才调用 Lang::setLang('en-us'),前面已执行的 lang('xxx') 仍按旧语言返回。

阅读全文

本文共计1031个文字,预计阅读时间需要5分钟。

如何使用ThinkPHP多语言标签输出多语言变量?

ThinkPHP 是一款流行的 PHP 开源框架,它简化了 PHP 项目的开发过程。以下是其基本内容:

模板中输出多语言变量只能用 {:lang('key')}{:__('key')}

ThinkPHP 模板引擎不识别语言 key 为普通变量,{$hello_world} 这类写法无效——它会去查 $hello_world 变量,而不是查语言包。正确方式是调用函数并包裹在 {:...} 中:

  • {:lang('welcome_message')} —— 最常用,推荐
  • {:__('welcome_message')} —— 助手函数别名,效果一致
  • 支持占位符:{:lang('hello_user', ['name' => $user['name']])},对应语言包中 'hello_user' => '你好,{name}!'
  • 不支持 {:lang($key)} 这种动态 key,因为模板编译期无法解析变量值;如需动态,应在控制器里先计算好再 assign

lang() 在控制器/模型里调用要早于任何视图渲染

语言切换状态在请求生命周期中是单次设定的,lang('xxx') 的结果取决于当前已激活的语言包。如果在控制器方法末尾才调用 Lang::setLang('en-us'),前面已执行的 lang('xxx') 仍按旧语言返回。

阅读全文