feat: Add multi-language support (i18n)

Languages supported (8):
- English (en)
- 日本語 (ja)
- Deutsch (de)
- Français (fr)
- Español (es)
- 简体中文 (zh-CN)
- 繁體中文 (zh-TW)
- 한국어 (ko)

Changes:
- Add locale column to users table
- Add SetLocale middleware for automatic locale detection
- Add LocaleController for language switching
- Create language files with translations for all UI elements
- Add language selector to user profile page
- Update all Blade views to use translation strings
This commit is contained in:
2025-11-29 12:00:09 +09:00
parent ecfa21d56c
commit cdf0bf4bad
25 changed files with 1183 additions and 84 deletions
+117
View File
@@ -0,0 +1,117 @@
<?php
return [
// Navigation
'nav' => [
'dashboard' => '대시보드',
'knowledge_base' => '지식 베이스',
'profile' => '프로필',
'user_management' => '사용자 관리',
'logout' => '로그아웃',
'login' => '로그인',
'register' => '회원가입',
],
// Documents
'documents' => [
'title' => '문서',
'new_document' => '새 문서',
'edit_document' => '문서 편집',
'edit' => '편집',
'delete' => '삭제',
'save' => '저장',
'cancel' => '취소',
'created_by' => '작성자',
'updated' => '업데이트',
'path' => '경로',
'last_modified' => '마지막 수정',
'no_documents' => '문서를 찾을 수 없습니다',
'search_placeholder' => '문서 검색...',
'create_success' => '문서가 성공적으로 생성되었습니다!',
'update_success' => '문서가 성공적으로 업데이트되었습니다!',
'delete_success' => '문서가 성공적으로 삭제되었습니다!',
'delete_confirm' => '이 문서를 삭제하시겠습니까?',
'linked_references' => '연결된 참조',
'title_label' => '제목',
'title_placeholder' => '문서 제목 (예: Laravel/Livewire/Components)',
'title_hint' => '팁: 제목에 슬래시(/)를 사용하면 문서를 폴더로 자동 정리할 수 있습니다',
'content_label' => '내용',
'content_placeholder' => '여기에 마크다운을 작성하세요...',
'saving' => '저장 중...',
],
// Quick Switcher
'quick_switcher' => [
'title' => '빠른 전환',
'placeholder' => '문서 검색...',
'no_results' => '문서를 찾을 수 없습니다',
'navigate' => '탐색',
'select' => '선택',
'close' => '닫기',
],
// Admin
'admin' => [
'user_management' => '사용자 관리',
'new_user' => '새 사용자',
'edit_user' => '사용자 편집',
'create_user' => '사용자 생성',
'users' => '사용자',
'name' => '이름',
'email' => '이메일',
'password' => '비밀번호',
'password_confirmation' => '비밀번호 확인',
'password_hint' => '현재 비밀번호를 유지하려면 비워두세요.',
'role' => '역할',
'admin' => '관리자',
'user' => '일반 사용자',
'grant_admin' => '관리자 권한 부여',
'created_at' => '생성일',
'actions' => '작업',
'edit' => '편집',
'delete' => '삭제',
'no_users' => '사용자를 찾을 수 없습니다.',
'create_success' => '사용자가 성공적으로 생성되었습니다.',
'update_success' => '사용자가 성공적으로 업데이트되었습니다.',
'delete_success' => '사용자가 성공적으로 삭제되었습니다.',
'cannot_delete_self' => '자신을 삭제할 수 없습니다.',
'self_admin_warning' => '자신의 관리자 권한을 제거하면 관리 패널에 액세스할 수 없게 됩니다.',
],
// Settings
'settings' => [
'language' => '언어',
'select_language' => '언어 선택',
'language_updated' => '언어가 성공적으로 업데이트되었습니다.',
],
// Common
'common' => [
'save' => '저장',
'cancel' => '취소',
'delete' => '삭제',
'edit' => '편집',
'create' => '생성',
'update' => '업데이트',
'back' => '뒤로',
'confirm' => '확인',
'yes' => '예',
'no' => '아니오',
'loading' => '로딩 중...',
'error' => '오류',
'success' => '성공',
],
// Auth
'auth' => [
'login' => '로그인',
'register' => '회원가입',
'email' => '이메일',
'password' => '비밀번호',
'remember_me' => '로그인 상태 유지',
'forgot_password' => '비밀번호를 잊으셨나요?',
'confirm_password' => '비밀번호 확인',
'already_registered' => '이미 계정이 있으신가요?',
],
];