介绍
这篇文章将为大家详细讲解有关ThinkPHP 6.0多语言优化扩展包的安装方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
think-lang
6.0 ThinkPHP多语言优化扩展包
https://github.com/TLingC/think-lang
特色
- <李>
支持通过如<代码>mywebsite.com/zh-hans/> 代码的二级目录访问对应语言页面。
李> <李>支持每种语言的语言包单独成目录,目录下可设有二级目录。
李>安装
composer require tlingc/think-lang
使用
基础配置
请参照官方文档(https://www.kancloud.cn/manual/thinkphp6_0/1037637)进行相关配置。<强>同时注意如下与官方文档的不同点。强>
开启和加载语言包
中间件名称为:
& # 39;朗tlingc \ \中间件\ LoadLangPack& # 39;,
由于多语言通过二级目录访问,<代码>使用饼干保存语言代码>功能无效。
语言文件定义
自动加载的应用语言文件:
//,单应用模式应用朗\ \当前语言。php 应用朗\ \当前语言\ * . php 应用朗\ \当前语言\ * \ *。php//,多应用模式应用程序\应用朗\ \当前语言。php app \应用朗\ \当前语言\ * . php app \应用朗\ \当前语言\ * \ *。php
请注意此扩展包没有对语言包解析行为进行修改,语言文件的文件名不会影响语言分组,在多个文件中存在相同定义时会导致被覆盖。
路由设置
使用二级目录访问对应语言页面,必须使用路由定义,同时建议开启<代码>强制路由代码>模式。
use 认为\外观\ Config,路线:视图(& # 39;/& # 39;,,& # 39;索引/指数# 39;);langs 美元;=,配置:获得(& # 39;lang.allow_lang_list& # 39;); foreach (langs 美元;as 朗美元){ 路线:规则(lang 美元;只& # 39;/& # 39;,,& # 39;索引/指数# 39;); 路线:规则(lang 美元;只& # 39;/欢迎# 39;,,& # 39;索引/欢迎# 39;);}
重写<代码> url> 代码助手函数
在应用公共文件<代码>常见。php代码>中加入。
use 认为\外观\请求;use 认为\外观\朗;use 认为\外观\路线;use 认为\路线\ Url as UrlBuild; function url (string Url 美元;=,& # 39;& # 39;,,array vars 美元;=,[],,suffix 美元;=,真的,,domain 美元;=,假,,lang 美元;=,真的,,replace 美元;=,false):, UrlBuild { ,,,if (! $朗),{ 如果(取代美元),{ $ explode =,爆炸(& # 39;/& # 39;,,要求::url (), 3); $ url =, url 美元;只美元爆炸[2]; } ,,,,,,,return 路线:buildUrl ($ url,, $ var)→后缀(后缀美元)→域(域); } $ lang =,朗:getLangSet (); return 路线::buildUrl(& # 39;/& # 39;,只lang 美元;只$ url, $ var)→后缀(后缀美元)→域(域)美元;}
对比官方提供的助手函数,增加了朗美元<代码> 代码>及<代码>美元取代> 代码参数。
普通跳转,生成url时会自动带上前方的语言名称。
url(& # 39;/欢迎# 39;)
如需仅替换url中的语言名称(如在语言选择器中使用),把<代码>美元取代> 代码参数置为真正<代码> 代码>即可。
TODO
- <李>
整合路由定义方法。
李> <李>整合重写<代码> url> 代码参数。
李>关于“ThinkPHP 6.0多语言优化扩展包的安装方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。