배경
관련 사용자 요청: #67
#67에서 중국어 지원 요청이 있었으며, 메뉴 이름과 린트 로그를 언어 설정에 따라 바꾸는 기능이 향후 작업으로 언급되었습니다. 이 이슈에서는 해당 요청을 포함해 TXTeditor에서 사용자에게 표시하는 문구 전반의 다국어 지원을 추적합니다.
지원할 언어
다음 로케일을 지원합니다.
enUS — English (US)
zhTW — 繁體中文
deDE — Deutsch
esES — Español
frFR — Français
itIT — Italiano
koKR — 한국어
plPL — Polski
esMX — Español (México)
jaJP — 日本語
ptBR — Português (Brasil)
ruRU — Русский
zhCN — 简体中文
기본 언어는 현재와 동일하게 enUS로 유지합니다.
언어 설정 UI
- 현재 Settings에 언어 설정 항목을 추가합니다.
- 언어 설정을 클릭하면 지원 언어가 드롭다운 목록으로 표시됩니다.
- 목록에서 언어를 클릭하는 즉시 현재 화면의 언어가 바뀌어야 합니다.
- 애플리케이션 재시작을 요구하지 않습니다.
- 선택한 언어는 저장되어 다음 실행에도 유지됩니다.
- 아직 열려 있는 메뉴, 설정 창, Problems, 상태 문구와 이후 표시되는 호버 및 진단도 선택한 언어를 따라야 합니다.
번역 대상
TXTeditor 또는 진단기가 자체적으로 만들어 사용자에게 표시하는 문구는 선택한 언어로 완전하게 번역합니다.
- 상단 메뉴, 도구 모음, 컨텍스트 메뉴와 버튼
- Settings 및 각종 설정 창의 제목, 항목, 설명과 선택지
- 대화상자, 확인 문구, 상태 메시지, 오류 및 알림
- Explorer, Problems와 기타 패널의 고정 UI 문구
- 검색, 바꾸기, 이동 등 편집 기능의 UI 문구
- Legacy Lint의 진단 로그, 문제 설명 및 호버 메시지
- Vector-LSP의 Rust 내장 진단, 플러그인 진단, 문제 설명 및 호버 메시지
- 사용자에게 노출되는 도움말, 안내 및 수정 방법
선택한 언어에서 일부 문구만 영어로 남는 혼합 번역이 발생하지 않도록 해야 합니다.
번역하지 않을 대상
실제 게임 데이터와 식별자는 원문을 그대로 유지해야 합니다. 주변 설명 문장은 번역할 수 있지만 다음 값 자체를 번역하거나 바꾸면 안 됩니다.
- 사용자가 불러온 TXT 및 JSON의 실제 내용
- 실제 파일명, 칼럼명, 셀 값과 JSON 속성명
- 코드, 참조 키, ID, 함수명과 식별자
calc, itemtype, gem 등 게임에서 사용하는 고유 용어
- 진단 메시지 안에 인용된 사용자의 원본 입력값
- 경로, 줄 번호, 수치와 코드 조각
예를 들어 설명 문장은 번역하더라도 skills.txt, Save Bits, itemtype, calc 같은 실제 이름은 그대로 표시해야 합니다.
구현 원칙
- 완성된 영문 문장을 다시 분석하거나 문자열 치환 방식으로 번역하지 않습니다.
- 모든 사용자 표시 문구에 안정적인 메시지 키와 매개변수를 사용합니다.
- 파일명, 칼럼명, 셀 값 같은 원문 데이터는 번역 문자열의 매개변수로 전달하여 그대로 보존합니다.
- Legacy Lint와 Vector-LSP가 동일한 용어 보존 규칙을 사용해야 합니다.
- Vector-LSP가 이미 만들어 둔 진단도 언어 변경 후 새 언어로 표시되도록 재요청하거나 표시 계층에서 안전하게 갱신해야 합니다.
- 번역 파일에 누락된 메시지 키, 잘못된 매개변수 또는 사용되지 않는 키가 있는지 자동으로 검사합니다.
enUS를 기준 언어이자 안전한 fallback으로 유지하되, 정식 지원 로케일은 누락된 번역 없이 배포합니다.
완료 조건
- Settings에서 13개 언어를 드롭다운으로 선택할 수 있습니다.
- 기본값은
enUS입니다.
- 언어 선택 즉시 사용자 UI 전체에 적용되고 다음 실행에도 유지됩니다.
- 메뉴와 설정뿐 아니라 Legacy Lint 및 Vector-LSP의 진단 로그와 호버까지 번역됩니다.
- 선택한 언어에서 번역 가능한 사용자 문구가 영어로 섞여 나오지 않습니다.
- 실제 TXT/JSON 데이터, 파일명, 칼럼명, 셀 값 및 게임 고유 용어는 변형되지 않습니다.
- 모든 지원 언어의 메시지 키와 매개변수 완전성을 검사하는 자동 테스트가 있습니다.
- 언어 변경이 편집 내용, 진단 판정, 파일 저장 형식 또는 LSP 동작 자체에는 영향을 주지 않습니다.
배경
관련 사용자 요청: #67
#67에서 중국어 지원 요청이 있었으며, 메뉴 이름과 린트 로그를 언어 설정에 따라 바꾸는 기능이 향후 작업으로 언급되었습니다. 이 이슈에서는 해당 요청을 포함해 TXTeditor에서 사용자에게 표시하는 문구 전반의 다국어 지원을 추적합니다.
지원할 언어
다음 로케일을 지원합니다.
enUS— English (US)zhTW— 繁體中文deDE— DeutschesES— EspañolfrFR— FrançaisitIT— ItalianokoKR— 한국어plPL— PolskiesMX— Español (México)jaJP— 日本語ptBR— Português (Brasil)ruRU— РусскийzhCN— 简体中文기본 언어는 현재와 동일하게
enUS로 유지합니다.언어 설정 UI
번역 대상
TXTeditor 또는 진단기가 자체적으로 만들어 사용자에게 표시하는 문구는 선택한 언어로 완전하게 번역합니다.
선택한 언어에서 일부 문구만 영어로 남는 혼합 번역이 발생하지 않도록 해야 합니다.
번역하지 않을 대상
실제 게임 데이터와 식별자는 원문을 그대로 유지해야 합니다. 주변 설명 문장은 번역할 수 있지만 다음 값 자체를 번역하거나 바꾸면 안 됩니다.
calc,itemtype,gem등 게임에서 사용하는 고유 용어예를 들어 설명 문장은 번역하더라도
skills.txt,Save Bits,itemtype,calc같은 실제 이름은 그대로 표시해야 합니다.구현 원칙
enUS를 기준 언어이자 안전한 fallback으로 유지하되, 정식 지원 로케일은 누락된 번역 없이 배포합니다.완료 조건
enUS입니다.