php

다국어 처리 (Locale)

브라우저에 설정된 유저의 언어에 따라서 사이트의 언어를 변경해주고 싶은 경우

  1. 구글에 언어 설정이 있다.

    해당 설정이 헤더의 아래와 같은 값을 통해서 전달된다

    아래의 예제의 경우 ko:1>ja:0.9>en:0.8 순으로 1에 근접한 값이 제일 우선된다

    Accept-Language : ko,ja;q=0.9,en;q=0.8

  2. php함수중에 locale_accept_from_http() 가 있고 위의 값을 넣으면 locale값(ko,ja,en)을 반환한다

  3. Accept-Language(클라이언트에서 사용하고 싶은 언어의 요청)를 취득하는 방법은 아래의 두가지가 있다

    php의 경우 $_SERVER['HTTP_ACCEPT_LANGUAGE'] 로 Accept-Language값 취득가능

    laravel의 경우 $request->server->get('HTTP_ACCEPT_LANGUAGE')로 값 취득 가능

  4. 라우터의 미들웨어를 작성하고 kerner에 추가한다

    미들웨어 생성 : php artisan make:middleware

    커널에 등록 : SetLocale'set.locale' => \App\Http\Middleware\SetLocale::class,

  5. 요청이 올때마다 라우터 미들웨어를 사용해서 다국어 확인을 해주고 세션에 저장한다


참조

https://yama-itech.net/laravel-multi-language

https://www.aska-ltd.jp/jp/blog/73