下面由thinkphp框架教程栏目给大家介绍ThinkPHP 6.0 多语言优化扩展包,希望对需要的朋友有所帮助!
think-lang
ThinkPHP 6.0 多语言优化扩展包
https://github.com/TLingC/think-lang特色
支持通过如mywebsite.com/zh-hans/的二级目录访问对应语言页面。
支持每种语言的语言包单独成目录,目录下可设有二级目录。
安装composerrequiretlingc/think-lang使用
基础配置
请参照 官方文档 进行相关配置。同时注意如下与官方文档的不同点。
开启和加载语言包
中间件名称为:
'tlingc\lang\middleware\LoadLangPack',
由于多语言通过二级目录访问,使用Cookie保存语言功能无效。
语言文件定义
自动加载的应用语言文件:
//单应用模式app\lang\当前语言.phpapp\lang\当前语言\*.phpapp\lang\当前语言\*\*.php//多应用模式app\应用\lang\当前语言.phpapp\应用\lang\当前语言\*.phpapp\应用\lang\当前语言\*\*.php
请注意此扩展包没有对语言包解析行为进行修改,语言文件的文件名不会影响语言分组,在多个文件中存在相同定义时会导致被覆盖。
路由设置
使用二级目录访问对应语言页面,必须使用路由定义,同时建议开启 强制路由 模式。
usethink\facade\Config;Route::view('/','index/index');$langs=Config::get('lang.allow_lang_list');foreach($langsas$lang){Route::rule($lang.'/','index/index');Route::rule($lang.'/welcome','index/welcome');}
重写 url 助手函数
在应用公共文件 common.php 中加入。
usethink\facade\Request;usethink\facade\Lang;usethink\facade\Route;usethink\route\UrlasUrlBuild;functionurl(string$url='',array$vars=[],$suffix=true,$domain=false,$lang=true,$replace=false):UrlBuild{if(!$lang){if($replace){$explode=explode('/',Request::url(),3);$url=$url.$explode[2];}returnRoute::buildUrl($url,$vars)->suffix($suffix)->domain($domain);}$lang=Lang::getLangSet();returnRoute::buildUrl('/'.$lang.$url,$vars)->suffix($suffix)->domain($domain);}
对比官方提供的助手函数,增加了 $lang 及 $replace 参数。
普通跳转,生成url时会自动带上前方的语言名称。
url('/welcome')
如需仅替换url中的语言名称(如在语言选择器中使用),把 $replace 参数置为 true 即可。
TODO
整合路由定义方法。
整合重写url参数。
以上就是ThinkPHP 6.0 多语言优化扩展包的安装与使用的详细内容
产品猿社区致力收录更多优质的商业产品,给服务商以及软件采购客户提供更多优质的软件产品,帮助开发者变现来实现多方共赢;
日常运营的过程中我们难免会遇到各种版权纠纷等问题,如果您在社区内发现有您的产品未经您授权而被用户提供下载或使用,您可按照我们投诉流程处理,点我投诉;
本文来自用户发布投稿,不代表产品猿立场 ;若对此文有疑问或内容有严重错误,可联系平台客服反馈;
部分产品是用户投稿,可能本文没有提供官方下下载地址或教程,若您看到的内容没有下载入口,您可以在我们产品园商城搜索看开发者是否有发布商品;若您是开发者,也诚邀您入驻商城平台发布的产品,地址:点我进入;
如若转载,请注明出处:https://www.chanpinyuan.cn/40867.html;