如何使用ThinkPHP多语言标签输出多语言变量?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1031个文字,预计阅读时间需要5分钟。
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 是一款流行的 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') 仍按旧语言返回。

