2016-10-16 4 views
2

(번호에서 달의 이름을 지역화된다).Laravel 탄소 현지화 내가 <pre><code>setlocale(LC_TIME, 'hr-HR'); dd(Carbon::now()->formatLocalized('%A')); </code></pre> <p></p>를 사용하지만 <code>Sunday</code> 대신 <code>CroatianWordForSunday</code> 얻을 내 방법 <p>Laravel 5.3,</p>를 사용

setlocale() 대신 Carbon::setLocale('hr')을 사용해 보았지만 여전히 Sunday이 표시됩니다.

config/app.php 파일에 'locale' => 'hr'을 설정했습니다.

Carbon::setLocale('hr')을 사용하면 Carbon의 diffForHumans() 메서드가 성공적으로 번역됩니다.

결국 내가하려는 것은 8을 8로 변환하지만 크로아티아어로 변환하는 것입니다. 나는 항상 수동으로 1 월을 Siječanj로 변경할 수 있지만, PHP 코드 나 Carbon 메소드를 사용하여 코드를 간결하게 유지할 수 있다면 좋을 것입니다.

답변

3

hr_HR (아니 hr-HR!) 로켈이 시스템에 설치되어 있습니까?

서버가 유닉스 환경에서 실행된다고 가정하면 터미널에 locale -a을 테이프로 붙일 때 무엇을 볼 수 있습니까?

표시되지 않으면 먼저 설치해야합니다. 시스템의 따라, 당신은 시도 할 수 :

$ sudo locale-gen hr_HR.UTF-8 
$ sudo dpkg-reconfigure locales 

를 PHP strftime의 문서에 따르면 (카본이 함수를 호출한다) : 당신이에 설치된 각각의 로케일이있는 경우

이 예제가 작동합니다 귀하의 시스템. 그 다음은 .env 파일을 사용하여

// [...] 
'locale' => env('APP_LOCALE', 'en'), 
'lc_all' => env('APP_LC_ALL', 'en_US.UTF-8'), // Pay attention to the locale name! 
// [...] 

: 다음과 같은 구성 설정으로

use Config; 
use Carbon\Carbon; 

use Illuminate\Support\ServiceProvider; 

class AppServiceProvider extends ServiceProvider 
{ 
    /** 
    * Bootstrap any application services. 
    * 
    * @return void 
    */ 
    public function boot() 
    { 
     setlocale(LC_ALL, Config::get('app.lc_all')); 
     Carbon::setLocale(Config::get('app.locale')); 
    } 

    /** 
    * Register any application services. 
    * 
    * @return void 
    */ 
    public function register() 
    { 
     // 
    } 
} 

:

나는 탄소 번역 그 App\Providers\AppServiceProvider 부팅의 방법에서 선을 사용하여 프랑스어로 작동하도록 성공 :

APP_LOCALE = fr 
APP_LC_ALL = fr_FR.UTF-8