| 123456789101112131415161718192021222324252627282930313233 |
- <?php
-
- namespace app\common\middleware;
- use think\facade\Lang;
- use think\facade\Config;
- class Locale
- {
- public function handle($request, \Closure $next)
- {
- $locale = $request->header('Accept-Language'); // 从HTTP头获取语言设置
- //$config=lang::getConfig();
- $config = Config::get('lang');
- if ($locale) {
- $extLang=$config['extend_list'];
- if(!isset($extLang[$locale])){
- $lang=$config['default_lang'];
- }
- $accept_lang=$config['accept_language'];
- // 检测替换包
- if(isset($accept_lang[$locale])){
- $lang=$accept_lang[$locale];
- }else{
- $lang=$config['default_lang'];
- }
- // 根据Accept-Language头设置语言
- Lang::setLangSet($lang); // 例如 'zh-cn' 或 'en'
- } else {
- // 如果没有指定语言,可以设置默认语言
- Lang::setLangSet($config['default_lang']); // 默认语言设置为中文
- }
- return $next($request);
- }
- }
|