Skip to main content

다국어 지원 (i18n)

📋 작성 예정

이 문서는 다국어 시스템 고도화 후 상세 내용이 추가됩니다.

Multi-SaaS Kit의 다국어 지원 시스템입니다.

개요

Multi-SaaS Kit은 Laravel의 기본 다국어 시스템을 사용하며, 테넌트별로 다른 언어 설정을 지원합니다.

항목
기본 언어한국어 (ko)
지원 언어한국어, 영어
상태기본 구현 완료, 고도화 예정

현재 지원 언어

언어코드상태
한국어ko✅ 기본
영어en✅ 지원

기본 설정

config/app.php

'locale' => env('APP_LOCALE', 'ko'),
'fallback_locale' => env('APP_FALLBACK_LOCALE', 'en'),
'faker_locale' => env('APP_FAKER_LOCALE', 'ko_KR'),

.env

APP_LOCALE=ko
APP_FALLBACK_LOCALE=en

번역 파일 구조

lang/
├── ko/
│ ├── auth.php # 인증 메시지
│ ├── pagination.php # 페이지네이션
│ ├── validation.php # 유효성 검사
│ └── landing.php # 랜딩 페이지
└── en/
├── auth.php
├── pagination.php
├── validation.php
└── landing.php

기본 사용법

Blade 템플릿

// 기본 번역
{{ __('messages.welcome') }}

// 변수 치환
@lang('messages.greeting', ['name' => $user->name])

// 복수형
{{ trans_choice('messages.items', $count) }}

PHP 코드

// 기본 번역
$message = __('auth.failed');

// 복수형
$message = trans_choice('messages.items', $count);

// 언어 변경
App::setLocale('en');

예정 기능

테넌트별 언어 설정

  • 테넌트마다 기본 언어 설정 가능
  • 사용자 선호 언어 저장
  • 자동 언어 감지

공개 방문자 국가 기반 언어 힌트

Core는 공개 방문자 요청마다 visitor.context를 만들 수 있습니다. 기본 provider는 Cloudflare CF-IPCountry 헤더입니다.

언어 결정 우선순위는 다음과 같습니다.

  1. URL ?lang=
  2. 로그인 사용자 locale
  3. Tenant / SaaS Product 기본 locale
  4. session / cookie
  5. 브라우저 Accept-Language
  6. visitor.context.locale_hint
  7. 기본 locale

IP 국가는 보조 힌트일 뿐입니다. 보안, 권한, 과금 판단에는 사용하지 않습니다.

CORE_VISITOR_COUNTRY_DETECTION=true
CORE_VISITOR_COUNTRY_HEADER=CF-IPCountry
CORE_VISITOR_COUNTRY_SOURCE=cloudflare

SiteStats의 live feed는 이 컨텍스트를 읽어 국가 코드, 국기, 실제 적용 locale을 표시할 수 있습니다.

Filament 패널 다국어

  • 관리 패널 완전 한글화
  • 언어 전환 UI
  • 커스텀 번역 관리

동적 번역

  • 데이터베이스 기반 번역 관리
  • 테넌트별 커스텀 번역
  • 번역 관리 UI

관련 문서