ThinkPHP 6.0 多语言优化扩展包的安装与使用
发布时间 - 2020-06-23 00:00:00 点击率:次下面由thinkphp框架教程栏目给大家介绍thinkphp 6.0 多语言优化扩展包,希望对需要的朋友有所帮助!
think-lang
ThinkPHP 6.0 多语言优化扩展包
https://github.com/TLingC/think-lang
特色
- 支持通过如
mywebsite.com/zh-hans/的二级目录访问对应语言页
面。 - 支持每种语言的语言包单独成目录,目录下可设有二级目录。
安装
composer require tlingc/think-lang
使用
基础配置
请参照 官方文档(https://www.kancloud.cn/manual/thinkphp6_0/1037637) 进行相关配置。同时注意如下与官方文档的不同点。
开启和加载语言包
中间件名称为:
'tlingc\lang\middleware\LoadLangPack',
由于多语言通过二级目录访问,使用Cookie保存语言 功能无效。
语言文件定义
自动加载的应用语言文件:
// 单应用模式app\lang\当前语言.php app\lang\当前语言\*.php app\lang\当前语言\*\*.php// 多应用模式app\应用\lang\当前语言.php app\应用\lang\当前语言\*.php app\应用\lang\当前语言\*\*.php
请注意此扩展包没有对语言包解析行为进行修改,语言文件的文件名不会影响语言分组,在多个文件中存在相同定义时会导致被覆盖。
路由设置
使用二级目录访问对应语言页面,必须使用路由定义,同时建议开启 强制路由 模式。
use think\facade\Config;Route::view('/', 'index/index');$langs = Config::get('lang.allow_lang_list');foreach($langs as $lang){
Route::rule($lang . '/', 'index/index');
Route::rule($lang . '/welcome', 'index/welcome');}重写 url 助手函数
在应用公共文件 common.php 中加入。
use think\facade\Request;use think\facade\Lang;use think\facade\Route;use think\route\Url as UrlBuild;function url(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];
}
return Route::buildUrl($url, $vars)->suffix($suffix)->domain($domain);
}
$lang = Lang::getLangSet();
return Route::buildUrl('/' . $lang . $url, $vars)->suffix($suffix)->domain($domain);}对比官方提供的助手函数,增加了 $lang 及 $replace 参数。
普通跳转,生成url时会自动带上前方的语言名称。
url('/welcome')如需仅替换url中的语言名称(如在语言选择器中使用),把 $replace 参数置为 true 即可。
TODO
- 整合路由定义方法。
-
整合重写
url参数。
# 多语言
# 重写
# 文档
# 多个
# 给大家
# 请注意
# 跳转
# 如需
# 如在
# 增加了
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么在Blade中安全地输出原始HTML内容
Laravel怎么连接多个数据库_Laravel多数据库连接配置
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
,在苏州找工作,上哪个网站比较好?
Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用
javascript中的try catch异常捕获机制用法分析
如何续费美橙建站之星域名及服务?
制作旅游网站html,怎样注册旅游网站?
太平洋网站制作公司,网络用语太平洋是什么意思?
Laravel如何创建自定义中间件?(Middleware代码示例)
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
如何选择PHP开源工具快速搭建网站?
Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控
如何用y主机助手快速搭建网站?
如何在万网开始建站?分步指南解析
如何利用DOS批处理实现定时关机操作详解
Laravel如何使用模型观察者?(Observer代码示例)
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
LinuxShell函数封装方法_脚本复用设计思路【教程】
网站制作软件免费下载安装,有哪些免费下载的软件网站?
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
香港服务器部署网站为何提示未备案?
深圳网站制作平台,深圳市做网站好的公司有哪些?
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
高端企业智能建站程序:SEO优化与响应式模板定制开发
教你用AI润色文章,让你的文字表达更专业
Android okhttputils现在进度显示实例代码
微信推文制作网站有哪些,怎么做微信推文,急?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
如何快速搭建个人网站并优化SEO?
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
如何快速生成橙子建站落地页链接?
Laravel怎么上传文件_Laravel图片上传及存储配置
如何用西部建站助手快速创建专业网站?
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
js实现获取鼠标当前的位置
zabbix利用python脚本发送报警邮件的方法
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
开心动漫网站制作软件下载,十分开心动画为何停播?
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
Laravel如何使用Collections进行数据处理?(实用方法示例)


面。