다국어 처리 (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

Jul 30, 2023 Views 209