开启多语言需配置lang_switch_on为true并设置默认语言,创建对应语言包文件,通过URL、Cookie、Session或代码切换语言,使用lang()或__()函数输出多语言内容。
ThinkPHP 的多语言功能可以帮助开发者为不同语言环境的用户提供对应的界面语言。配置和切换多语言主要涉及语言包定义、配置开启多语言、以及动态切换语言三个部分。以下是具体操作步骤。
配置多语言环境
要启用多语言功能,先在应用配置中开启多语言支持:
示例配置:
return [ 'lang_switch_on' => true, 'default_lang' => 'zh-cn', 'lang_list' => ['zh-cn', 'en'], ];
创建语言包文件
语言包文件通常放在 lang/语言代码/ 目录下,例如:
立即学习“PHP免费学习笔记(深入)”;
- lang/zh-cn/common.php:中文语言包
- lang/en/common.php:英文语言包
每个语言包返回一个键值数组。例如英文包 lang/en/common.php:
return [ 'hello' => 'Hello, world!', 'welcome' => 'Welcome to our site' ]; </font>
在代码中使用语言变量
使用 ThinkPHP 提供的 lang() 函数或助手函数 __(‘key’) 输出翻译内容:
- lang(‘hello’) 或 __(‘hello’) 会根据当前语言输出对应文本
- 在模板中可直接使用 {:lang(‘hello’)} 或 {__(‘hello’)}
切换当前语言
ThinkPHP 支持多种方式自动或手动切换语言:
- 通过 URL 参数,如 ?lang=en,系统会自动识别并切换
- 通过 Cookie 设置语言:cookie(‘think_lang’, ‘en’);
- 通过 Session 控制:session(‘think_lang’, ‘zh-cn’);
- 手动设置当前语言:app()->lang->setLangSet(‘en’);
只要设置了 lang_switch_on 为 true,系统会优先检查 GET 参数中的 lang,其次是 Cookie 和 Session。
基本上就这些。配置好语言包、开启多语言、再通过参数或代码切换,就能实现页面内容的多语言显示。不复杂但容易忽略细节,比如目录结构和键名一致性。保持语言文件整洁,维护起来更方便。
php thinkphp cookie app session switch 多语言 多语言切换 php thinkphp Cookie Session