最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

ThinkPHP 6.0 多语言优化扩展包的安装与使用

来源:动视网 责编:小采 时间:2020-11-02 22:06:49
文档

ThinkPHP 6.0 多语言优化扩展包的安装与使用

ThinkPHP 6.0 多语言优化扩展包的安装与使用:下面由thinkphp框架教程栏目给大家介绍ThinkPHP 6.0 多语言优化扩展包,希望对需要的朋友有所帮助!think-langThinkPHP 6.0 多语言优化扩展包https://github.com/TLingC/think-lang特色支持通过如 mywebsite.com/zh-hans/ 的二级
推荐度:
导读ThinkPHP 6.0 多语言优化扩展包的安装与使用:下面由thinkphp框架教程栏目给大家介绍ThinkPHP 6.0 多语言优化扩展包,希望对需要的朋友有所帮助!think-langThinkPHP 6.0 多语言优化扩展包https://github.com/TLingC/think-lang特色支持通过如 mywebsite.com/zh-hans/ 的二级
 下面由thinkphp框架教程栏目给大家介绍ThinkPHP 6.0 多语言优化扩展包,希望对需要的朋友有所帮助!

think-lang

ThinkPHP 6.0 多语言优化扩展包

https://github.com/TLingC/think-lang

特色

  1. 支持通过如 mywebsite.com/zh-hans/ 的二级目录访问对应语言页面。
  2. 支持每种语言的语言包单独成目录,目录下可设有二级目录。

安装

composer require tlingc/think-lang

使用

基础配置

请参照 官方文档(https://www.kancloud.cn/manual/thinkphp6_0/1037637) 进行相关配置。同时注意如下与官方文档的不同点。

开启和加载语言包

中间件名称为:

'tlingclangmiddlewareLoadLangPack',

由于多语言通过二级目录访问,使用Cookie保存语言 功能无效。

语言文件定义

自动加载的应用语言文件:

// 单应用模式applang当前语言.php
applang当前语言\*.php
applang当前语言\**.php// 多应用模式app应用\lang当前语言.php
app应用\lang当前语言\*.php
app应用\lang当前语言\**.php

请注意此扩展包没有对语言包解析行为进行修改,语言文件的文件名不会影响语言分组,在多个文件中存在相同定义时会导致被覆盖。

路由设置

使用二级目录访问对应语言页面,必须使用路由定义,同时建议开启 强制路由 模式。

use thinkfacadeConfig;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 thinkfacadeRequest;use thinkfacadeLang;use thinkfacadeRoute;use think
outeUrl 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参数。
  • 文档

    ThinkPHP 6.0 多语言优化扩展包的安装与使用

    ThinkPHP 6.0 多语言优化扩展包的安装与使用:下面由thinkphp框架教程栏目给大家介绍ThinkPHP 6.0 多语言优化扩展包,希望对需要的朋友有所帮助!think-langThinkPHP 6.0 多语言优化扩展包https://github.com/TLingC/think-lang特色支持通过如 mywebsite.com/zh-hans/ 的二级
    推荐度:
    标签: 安装 6.0 扩展
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top