首页 > 其他分享 >laravel 官方语言包

laravel 官方语言包

时间:2023-06-26 21:34:53浏览次数:32  
标签:laravel __ name welcome messages echo 官方语言 lang

安装 laravel 官方语言包( https://laravel-lang.com )
composer require laravel-lang/lang

安装完成后,会在项目根目录或者 resources 目录下生成 lang 语言包

添加语言包
php artisan lang:add zh_CN

php artisan lang:add en

更新已添加的语言包
php artisan lang:update


修改配置文件 config/app.php

'locale' => 'zh_CN',  // 默认语言
'fallback_locale' => 'en', //备用语言

相关方法
App::setLocale('en');
App::currentLocale();
App::isLocale('en')

使用短键
lang/en/messages.php

<?php
return [
    'welcome' => 'Welcome to our application!', //一般用法     echo __('messages.welcome');
    'welcome.name' => 'Welcome, :name',         //传参数       echo __('messages.welcome.name', ['name' => 'tom']);
    'welcome.ucfirst' => 'Welcome, :Name',      //首字母大写   echo __('messages.welcome.ucfirst', ['name' => 'tom']);
    'welcome.upper' => 'Welcome, :NAME',        //转大写      echo __('messages.welcome.upper', ['name' => 'tom']);

    // 复数 trans_choice('messages.apples', $count); 原理是根据 | 分割成数组,传入数量,判断符合哪个条件区间,就返回哪句翻译
    'apples' => 'There is one apple|There are many apples',  //单复数,数量大于1为复数, 要切换到支持复数的语言,参考 Illuminate\Translation\MessageSelector::getPluralIndex()
    'apples.count' => '{0} There are none|[1,19] There are some|[20,*] There are many', // trans_choice('messages.apples.count', 10)
    'minutes_ago' => '{1} :value minute ago|[2,*] :value minutes ago', //传入参数 echo trans_choice('messages.minutes_ago', 5, ['value' => 5]);
];


使用翻译字符串作为键
lang/en.json
{
    "我爱编程": "I love programming."
}
//使用方式
echo __('我爱编程');


注册在 AppServiceProvider::boot() 中

public function boot(): void
{

    // 设置其他复数语言
    Illuminate\Support\Pluralizer::useLanguage('spanish');

    // 将对象作为参数传时,如 trans('messages.price', ['money' => (new Money)]),会调用 Money 对象的 __toString(),你也可以调用 Lang::stringable() 注册自定义格式处理程序
    Illuminate\Support\Facades\Lang::stringable(function (Money $money) {
        return $money->formatTo('en_GB');
    });
}


测试代码

Route::any('/test', function (){

    App::setLocale('en');

    echo __('messages.welcome');
    echo __('messages.welcome.name', ['name' => 'tom']);
    echo __('messages.welcome.ucfirst', ['name' => 'tom']);
    echo __('messages.welcome.upper', ['name' => 'tom']);
    echo trans_choice('messages.apples.count', 10);
    echo trans_choice('messages.minutes_ago', 5, ['value' => 5]);

});

 

标签:laravel,__,name,welcome,messages,echo,官方语言,lang
From: https://www.cnblogs.com/zbseoag/p/17506758.html

相关文章

  • laravel软删除
    2023年6月22日09:49:49使用demo<?phpnamespaceApp\Models;useEloquence\Behaviours\CamelCasing;useIlluminate\Database\Eloquent\Model;useIlluminate\Database\Eloquent\SoftDeletes;classFeedbackextendsModel{//蛇形命名转驼峰useCamelCas......
  • 最为常用的Laravel操作(3)-模板
    Blade模板引擎模板继承定义布局:<!--存放在resources/views/layouts/app.blade.php--><html><head><title>AppName-@yield('title')</title></head><body>@section('sidebar')......
  • laravel数据库模型蛇形命名自动转换驼峰命名
    2023年6月20日15:10:59我看了各种方案,但是多多少少都有各种问题建议使用https://github.com/kirkbushell/eloquence安装composerrequirekirkbushell/eloquence添加到provider添加eloquenceserviceprovider在你的config/app.php文件中'providers'=>[/......
  • windows下使用minio搭建s3存储,使用laravel和postman进行测试
    1、下载服务端https://dl.min.io/server/minio/release/windows-amd64/minio.exe2、启动服务minio.exeserverd:\data\minio--console-address:9090 可以看到上面有两块ip,分别是9000和9000端口,其中9090是后台管理端地址的端口,9000是前台接口端口3、创建bucket4......
  • Laravel 9 高德根据坐标获得定位
    <?phpnamespaceApp\Services;useIlluminate\Http\Request;classLocationService{publicfunction__construct(){$this->key='********';}publicfunctionsetLocation($longitude){$longitude......
  • laravel 队列linux环境下的部署与使用 supervisor 的使用
    由于上一章写了laravel队列本地开发的注意事项,但真实项目是要上线到linux服务器上,所以还得借助supervisor工具,网上资料很多,但良莠不齐,所以自己基于实践总结了下: linux下laravel队列操作1.安装yuminstallsupervisor查看版本 supervisord-v 我使用的是4.2.2 2.......
  • laravel 队列的使用
    队列的好处:不阻塞程序运行,比如中间件,可以使用队列,不耽误程序返回数据的时间 创建队列需要使用的表 phpartisanqueue:tablephpartisanmigratephpartisanqueue:failed-tablephpartisanmigrate会生成jobs和failed_jobs表   查看队列运行情况phpartisanque......
  • Laravel 框架使用外部的js、css等文件
    Laravel框架使用外部的js、css等文件阅读有道云笔记https://note.youdao.com/s/d1ZQ9AC8Laravel项目的web虚拟主机指定的目录(即网址的根目录),项目的入口文件笔系统的静态资源目录(css、img、js、uploads)后期使用的外部静态文件都需要放到Public目录下,图中所示,可以想像成views......
  • Laravel利用控制器传递参数心得(初始入门)
    2023-06-11 14:29:25有阅读有道云笔记https://note.youdao.com/s/7LhJ27j8 2023年6月9日07时33分44秒近期学习开始学习Laravel,遇到的问题是,如何通过一个blade模板文件,传递参数,并在第二个网页文件中显示出来?此时需要具备弄明白以下基础知识:①已经在搞懂创建控制器phpa......
  • laravel框架接口
    下面是增删改查的接口,在使用过程中按自己需求对代码进行更改控制器代码<?phpnamespaceApp\Http\Controllers;useApp\Models\Fang;useIlluminate\Http\Request;useNette\Schema\ValidationException;classFangControllerextendsController{//房源添加......