gh_mirrors/la/lang快速集成:5分钟实现多语言切换

gh_mirrors/la/lang快速集成:5分钟实现多语言切换

【免费下载链接】lang List of 79 languages for Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova, Laravel Spark and Laravel UI. 【免费下载链接】lang 项目地址: https://gitcode.com/gh_mirrors/la/lang

你还在为Laravel项目的多语言切换功能繁琐配置而烦恼吗?本文将带你5分钟内完成gh_mirrors/la/lang多语言包的集成,轻松实现79种语言的无缝切换。读完本文你将掌握:环境准备、包安装、服务配置、翻译文件使用、语言切换实现及验证方法。

准备工作

环境要求

确保你的Laravel项目满足以下条件:

  • PHP版本 ≥ 8.2
  • Laravel框架 ≥ 11.0.7
  • 已安装Composer

获取项目

通过Git克隆仓库:

git clone https://gitcode.com/gh_mirrors/la/lang.git

安装与配置

安装依赖

在项目根目录执行Composer安装命令:

composer require laravel-lang/lang

该包信息定义在composer.json中,依赖laravel-lang/publisher ^16.0组件。

注册服务提供者

Laravel会自动发现服务提供者,如需手动注册,编辑config/app.php文件,添加服务提供者:

'providers' => [
    // ...
    LaravelLang\Lang\ServiceProvider::class,
],

服务提供者源码位于src/ServiceProvider.php,负责包的初始化与资源加载。

发布语言文件

执行Artisan命令发布翻译文件到项目resources/lang目录:

php artisan lang:publish

发布后可在项目中看到79种语言的翻译文件,如locales/en/json.json包含英文翻译。

使用翻译文件

基础翻译调用

在视图文件中使用__()助手函数调用翻译:

<h1>{{ __('Welcome') }}</h1>
<p>{{ __('messages.welcome') }}</p>

系统会根据当前语言环境自动加载对应语言文件,如中文环境加载locales/zh_CN/json.json

带参数的翻译

支持动态参数替换:

<p>{{ __('Hello, :name', ['name' => 'John']) }}</p>

对应JSON翻译条目:

"Hello, :name": "你好,:name"

语言文件结构

翻译文件采用JSON格式组织,示例locales/fr/json.json结构:

{
    "Welcome": "Bienvenue",
    "Login": "Connexion",
    "Register": "S'inscrire"
}

完整语言列表及状态可查看docs/status.md,其中标记✔的为完整翻译语言。

实现语言切换

创建语言切换控制器

生成LanguageController处理语言切换请求:

php artisan make:controller LanguageController

编写切换逻辑:

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;

class LanguageController extends Controller
{
    public function switch(Request $request, $lang)
    {
        if (in_array($lang, ['en', 'zh_CN', 'fr'])) { // 支持的语言列表
            App::setLocale($lang);
            session()->put('locale', $lang);
        }
        return back();
    }
}

添加路由

routes/web.php中添加路由:

Route::get('language/{lang}', [LanguageController::class, 'switch'])->name('language.switch');

创建切换按钮

在视图中添加语言切换链接:

<a href="{{ route('language.switch', 'en') }}">English</a>
<a href="{{ route('language.switch', 'zh_CN') }}">中文</a>
<a href="{{ route('language.switch', 'fr') }}">Français</a>

验证与扩展

检查语言状态

查看docs/status.md了解各语言翻译完成度,例如:

  • 英语(en):100%完成
  • 中文(zh_CN):98%完成
  • 法语(fr):100%完成 状态图标说明:✔表示完成,❗表示部分完成。

添加自定义翻译

创建项目专属翻译文件resources/lang/zh_CN/custom.json

{
    "dashboard": "控制台",
    "profile": "个人资料"
}

系统会自动合并官方翻译与自定义翻译。

支持的Laravel组件

该语言包支持多个Laravel生态组件:

总结与扩展

通过本文步骤,你已成功集成gh_mirrors/la/lang多语言包。该方案优势:

  • 79种语言开箱即用
  • 与Laravel生态完美兼容
  • 翻译文件定期更新维护
  • 支持自定义翻译扩展

更多高级用法请参考:

点赞收藏本文,关注作者获取更多Laravel实用技巧!下期将介绍"多语言项目的CI/CD自动化方案"。

【免费下载链接】lang List of 79 languages for Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova, Laravel Spark and Laravel UI. 【免费下载链接】lang 项目地址: https://gitcode.com/gh_mirrors/la/lang

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值