다국어 가이드 업데이트

This commit is contained in:
kjs
2025-08-29 10:09:34 +09:00
parent 49b4b6c550
commit 11f40c3fc3
5 changed files with 473 additions and 356 deletions

View File

@@ -21,7 +21,7 @@
### 지원 언어
- **한국어 (KR)**: 기본 언어
- **영어 (EN)**: 사용자 설정 가능
- **영어 (US)**: 사용자 설정 가능
### 주요 특징
@@ -72,7 +72,7 @@
```sql
CREATE TABLE public.language_master (
lang_code varchar(10) NOT NULL PRIMARY KEY, -- 언어 코드 (KR, EN)
lang_code varchar(10) NOT NULL PRIMARY KEY, -- 언어 코드 (KR, US)
lang_name varchar(50) NOT NULL, -- 언어명 (Korean, English)
lang_native varchar(50) NOT NULL, -- 원어명 (한국어, English)
is_active bpchar(1) DEFAULT 'Y', -- 활성화 여부
@@ -93,7 +93,7 @@ CREATE TABLE public.multi_lang_key_master (
lang_key varchar(100) NOT NULL, -- 다국어 키 (예: button.add)
description text, -- 키 설명
is_active bpchar(1) DEFAULT 'Y', -- 활성화 여부
menu_name varchar(50), -- 메뉴명 (사용하지 않음)
menu_name varchar(50), -- 메뉴명 (다국어 관리 화면에 어디에서 쓰이는지 보여지는 용도. 한국어로 어느 메뉴에 쓰이는지 작성)
created_date timestamp DEFAULT CURRENT_TIMESTAMP,
created_by varchar(50),
updated_date timestamp DEFAULT CURRENT_TIMESTAMP,
@@ -108,7 +108,7 @@ CREATE TABLE public.multi_lang_key_master (
CREATE TABLE public.multi_lang_text (
text_id serial4 NOT NULL PRIMARY KEY, -- 텍스트 ID (자동 증가)
key_id int4 NOT NULL, -- 키 마스터의 key_id
lang_code varchar(10) NOT NULL, -- 언어 코드 (KR, EN)
lang_code varchar(10) NOT NULL, -- 언어 코드 (KR, US)
lang_text text NOT NULL, -- 번역된 텍스트
is_active bpchar(1) DEFAULT 'Y', -- 활성화 여부
created_date timestamp DEFAULT CURRENT_TIMESTAMP,
@@ -155,7 +155,7 @@ CREATE TABLE public.multi_lang_text (
```sql
INSERT INTO language_master (lang_code, lang_name, lang_native) VALUES
('KR', 'Korean', '한국어'),
('EN', 'English', 'English');
('US', 'English', 'English');
```
#### 2. 다국어 키 등록
@@ -184,7 +184,7 @@ WHERE km.lang_key IN ('button.add', 'button.edit', 'menu.title')
-- 영어 번역
INSERT INTO multi_lang_text (key_id, lang_code, lang_text)
SELECT km.key_id, 'EN',
SELECT km.key_id, 'US',
CASE km.lang_key
WHEN 'button.add' THEN 'Add'
WHEN 'button.edit' THEN 'Edit'
@@ -209,7 +209,7 @@ export const useMultiLang = (options: { companyCode?: string } = {}) => {
// 언어 변경 처리
return {
userLang, // 현재 사용자 언어 (KR, EN)
userLang, // 현재 사용자 언어 (KR, US)
getText, // 다국어 텍스트 조회 함수
changeLang, // 언어 변경 함수
companyCode, // 회사 코드
@@ -229,7 +229,7 @@ export const useMultiLang = (options: { companyCode?: string } = {}) => {
const { userLang, getText, changeLang } = useMultiLang({ companyCode: "*" });
// 언어 변경
await changeLang("EN");
await changeLang("US");
// 다국어 텍스트 조회
const text = await getText("menu.management", "button.add");
@@ -519,7 +519,7 @@ INSERT INTO multi_lang_text (
)
SELECT
km.key_id,
'EN',
'US',
CASE km.lang_key
WHEN 'page.title' THEN 'My Page'
WHEN 'page.description' THEN 'This is my page'
@@ -622,7 +622,7 @@ INSERT INTO multi_lang_text (
)
SELECT
km.key_id,
'EN',
'US',
CASE km.lang_key
WHEN 'menu.management.title' THEN 'Menu Management'
WHEN 'button.add' THEN 'Add'
@@ -727,7 +727,7 @@ INSERT INTO multi_lang_text (
)
SELECT
km.key_id,
'EN',
'US',
CASE km.lang_key
WHEN 'new.feature.title' THEN 'New Feature'
WHEN 'new.feature.description' THEN 'This is a new feature'