Laravel 后台如何返回国际化的消息 
                                                    
                        
                    
                    
  
                    
                    使用 Blade 适合,国际化很容易使用。
首先App::setLocale('zh'),
再使用@lang('message.hello')就很容易让消息国际化了。
可是在文档中,却没有找到后台可以使用的方法。
而我又在做的是 API 服务器。又需要这些功能。
1. 发现问题,寻找思路
@lang() 也是一个方法,只不过它是 Blade 的语法,最终会被翻译成 php 的语法。
那就让我们来看看它翻译后是什么样子。到底是哪个类调用了哪个方法。
- 
随便找一个 blade 文件,在随便一个地方写上 @lang(),这里一定要为空,不传任何参数,让它报错,这也我们才能看到错误日志,快速便捷定位它调用的是哪个类中的哪个方法。
- 
运行这个 blade 文件,我们会看到如下图  我可以看到, @lang()被解析后,实际上调用的是Illuminate\Translation\Translator::getFromJson(),调用方法是app('translator')->getFromJson()。
- 
创建一个测试 Controller并调用刚刚的方法试一下。<?php namespace App\Http\Controllers use Illuminate\Http\Request; use App\Http\Controllers\Controller; use Illuminate\Translation\Translator; class TestController extends Controller { public function __invoke(Request $request) { $message = app('translator')->getFromJson("messages.welcome"); return view('welcome', $message); } }再运行一个这个 welcome.blade.php 文件。 
- 
大功告成!完结撒花~ 
本作品采用《CC 协议》,转载必须注明作者和本文链接
 
           Tricker 的个人博客
 Tricker 的个人博客
         
                     
                     
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: