skillby jeongsk

i18n-translator

Manage i18n translations for Note Sage plugin. Use when: (1) Adding new translation keys, (2) Updating existing translations, (3) Maintaining consistency across 11 languages (en, ko, ja, es, fr, de, pt, zh, ar, ru, hi), (4) Finding missing translations

Installs: 0
Used in: 1 repos
Updated: 1d ago
$npx ai-builder add skill jeongsk/i18n-translator

Installs to .claude/skills/i18n-translator/

# i18n Translator Skill

Note Sage Obsidian 플러그인의 다국어(i18n) 번역 관리 전담 스킬입니다.

## 지원 언어 (11개)

| 코드 | 언어 | 방향 | 파일 |
|------|------|------|------|
| `en` | English | LTR | 기준 언어, 타입 정의 포함 |
| `ko` | 한국어 | LTR | |
| `ja` | 日本語 | LTR | |
| `es` | Español | LTR | |
| `fr` | Français | LTR | |
| `de` | Deutsch | LTR | |
| `pt` | Português | LTR | |
| `zh` | 简体中文 | LTR | |
| `ar` | العربية | RTL | 오른쪽에서 왼쪽 |
| `ru` | Русский | LTR | |
| `hi` | हिन्दी | LTR | |

## 파일 구조

```
src/i18n/
├── index.ts                 # i18n 핵심 모듈 (t() 함수, setLanguage() 등)
└── locales/
    ├── en.ts               # 영어 (기준) - TranslationKeys 인터페이스 정의
    ├── ko.ts               # 한국어
    ├── ja.ts               # 일본어
    ├── es.ts               # 스페인어
    ├── fr.ts               # 프랑스어
    ├── de.ts               # 독일어
    ├── pt.ts               # 포르투갈어
    ├── zh.ts               # 중국어 (간체)
    ├── ar.ts               # 아랍어
    ├── ru.ts               # 러시아어
    └── hi.ts               # 힌디어
```

## 번역 키 구조

영어 파일(`en.ts`)에 정의된 `TranslationKeys` 인터페이스를 기준으로 합니다:

```typescript
export interface TranslationKeys {
  appTitle: string;
  quickAction: QuickActionTranslations;    // 빠른 액션 버튼
  commands: CommandsTranslations;           // 명령어 팔레트
  prompts: PromptsTranslations;             // 빠른 프롬프트
  settings: SettingsTranslations;           // 설정 탭
  // ... 기타 키
}
```

**주요 섹션:**
- `quickAction` - 채팅 입력창 위 빠른 액션 버튼
- `commands` - Obsidian 명령어 팔레트
- `prompts` - AI 프롬프트 템플릿
- `settings` - 플러그인 설정
  - `settings.builtinTools` - 내장 도구
  - `settings.agentOptions` - Agent SDK 옵션
  - `settings.mcp` - MCP 서버 설정

## 워크플로우

### 1. 새 번역 키 추가

**단계 1: 영어 파일에 인터페이스 및 값 추가**

```typescript
// src/i18n/locales/en.ts

// 1. 인터페이스에 새 키 추가 (중첩된 경우)
interface NewFeatureTranslations {
  title: string;
  description: string;
}

// 2. TranslationKeys 또는 SettingsTranslations에 추가
interface SettingsTranslations {
  // ... 기존 키
  newFeature: NewFeatureTranslations;  // 새로 추가
}

// 3. 영어 값 추가
export const en: TranslationKeys = {
  settings: {
    // ... 기존 값
    newFeature: {
      title: 'New Feature',
      description: 'Description of the new feature',
    },
  },
};
```

**단계 2: 다른 언어 파일에 동일한 구조로 번역 추가**

```typescript
// src/i18n/locales/ko.ts
export const ko: TranslationKeys = {
  settings: {
    // ... 기존 값
    newFeature: {
      title: '새 기능',
      description: '새 기능에 대한 설명',
    },
  },
};
```

**중요:** 모든 11개 언어 파일에 동일한 구조로 추가해야 합니다!

### 2. 기존 번역 수정

1. 먼저 영어 파일에서 해당 키 확인
2. 필요한 언어 파일을 열어 값 수정
3. 다른 언어와 일관성 유지 확인

### 3. 누락된 번역 탐지

```bash
# 검증 스크립트 실행
python .claude/skills/i18n-translator/scripts/validate_translations.py
```

## 코드에서 번역 사용

```typescript
import { t, setLanguage, getLanguage } from './i18n';

// 번역 텍스트 가져오기
const title = t('appTitle');                    // 단순 키
const apiKey = t('settings.apiKey');            // 중첩 키
const webSearch = t('settings.builtinTools.webSearch');  // 깊은 중첩

// 언어 변경
setLanguage('ko');

// 현재 언어 확인
const currentLang = getLanguage();  // 'ko'
```

## 체크리스트

새 번역 작업 시:

- [ ] 영어(`en.ts`)에 키와 인터페이스 추가 (기준)
- [ ] 한국어(`ko.ts`)에 번역 추가
- [ ] 일본어(`ja.ts`)에 번역 추가
- [ ] 스페인어(`es.ts`)에 번역 추가
- [ ] 프랑스어(`fr.ts`)에 번역 추가
- [ ] 독일어(`de.ts`)에 번역 추가
- [ ] 포르투갈어(`pt.ts`)에 번역 추가
- [ ] 중국어(`zh.ts`)에 번역 추가
- [ ] 아랍어(`ar.ts`)에 번역 추가
- [ ] 러시아어(`ru.ts`)에 번역 추가
- [ ] 힌디어(`hi.ts`)에 번역 추가
- [ ] 검증 스크립트로 누락 확인

## 주의사항

1. **영어가 기준**: 항상 영어 파일을 먼저 수정하고 다른 언어에 적용
2. **타입 안전성**: 인터페이스 수정 시 TypeScript 컴파일 오류 확인
3. **RTL 지원**: 아랍어는 오른쪽에서 왼쪽 텍스트 방향
4. **중첩 구조**: 점(`.`) 표기법으로 깊은 키 접근 가능
5. **Fallback**: 키를 찾지 못하면 키 경로 자체가 반환됨

## 참조 문서

- [번역 구조 상세](references/TRANSLATION_STRUCTURE.md)

Quick Install

$npx ai-builder add skill jeongsk/i18n-translator

Details

Type
skill
Author
jeongsk
Slug
jeongsk/i18n-translator
Created
4d ago