Polyglot
앱 및 사이트 문자열을 43개 언어로 번역하고, 자체 모델로 번역한 후 문자열 단위로 검증합니다.
- Linux or macOS
- Python 3.9+
- Local LLM
- 6 file formats

기능 소개
Polyglot은 앱과 사이트에 이미 있는 영어 문자열을 최대 42개 언어로 번역하여, 각 플랫폼이 기대하는 파일과 폴더 구조에 맞춰 저장합니다. 이때 직접 실행하는 모델을 사용합니다. 모든 문자열은 검증을 거칩니다: 유지해야 할 플레이스홀더, 태그 또는 이름이 누락되거나 해당 언어의 문자 체계로 작성되지 않은 경우 재요청하며, 여전히 실패하는 문자열은 깨진 상태로 배포하지 않고 제외하고 보고합니다.
- 사용하는 형식. JSON 메시지 파일(i18next, vue-i18n, next-intl, react-intl), Flutter ARB, Android strings.xml, Apple .strings, gettext .po 및 Markdown 문서로 작성되며, values-de, de.lproj, app_de.arb 또는 locale/de에 저장됩니다.
- 문자열별 검증. %1$s, {name}, {{count}}, HTML 태그, 줄 바꿈, URL 및 유지해야 할 이름은 정확히 그대로 돌아와야 합니다. 올바른 문자 체계를 사용해야 하며, 빈 답변이나 과도한 답변이 없어야 하고, 영어로 남겨진 부분이 없어야 합니다.
- 실제 복수형 처리. 러시아어는 one, few, many, other를, 아랍어는 6가지 형태를, 일본어는 단일 형태를 사용합니다: Android 복수형과 ICU 메시지는 각 언어의 자체 규칙을 따릅니다.
- 변경된 부분만. 모든 올바른 번역은 기억되므로, 영어 문자열 하나를 수정하면 전체 파일이 아닌 해당 문자열 하나만 전송됩니다.
- 톤과 용어. 제품 설명, 톤, 번역하지 않을 이름, 용어집이 모든 요청에 포함되며, 주석은 참고 사항으로 함께 전달됩니다.
- 모델과 머신은 직접. vLLM, llama.cpp, Ollama 또는 LM Studio 같은 OpenAI-compatible 서버나, 선택에 따라 호스팅된 API를 사용합니다. 단어당 과금 방식이 아닙니다.
실제 모델로 테스트 완료
- 실제 모델, 6가지 형식, 5개 언어: JSON, Flutter ARB, Android, Apple .strings, gettext 및 Markdown 형식의 70개 문자열 예제 앱을 독일어, 러시아어, 일본어, 아랍어 및 스페인어로 번역합니다. 자체 서버에서 vLLM으로 제공되는 오픈 Qwen 모델(Qwen3.8-Flash-Next, 4비트 양자화)을 사용하며, 바쁜 공유 서버에서 7.5분 만에 350개 문자열 중 346개가 입력 검사를 통과했습니다.
- 통과하지 못한 4개는 모델의 실수가 아니라 검증 로직의 오류였습니다: 독일어 외래어, 이메일 주소, 일본어 복수형 메시지. 검증 로직을 수정했고, 다음 실행에서는 해당 4개 문자열만 전송하여 45초 만에 350개 모두 작성했습니다.
- 복수형 정확히 처리: 러시아어는 one, few, many, other, 아랍어는 6가지 형태, 일본어는 단일 형태를 처음부터 올바르게 처리했습니다.
- 42개 언어 전체: 예제의 웹 문자열 22개를 Polyglot이 아는 모든 언어로 번역했습니다. 암하라어부터 번체 중국어까지, 15분 만에 924개 문자열 중 924개를 작성했습니다.
- 검사로는 볼 수 없는 부분: 크메르어에서 "You are offline"이 "you are online"으로 돌아왔습니다. 완벽한 크메르어 문장이었기에 통과했습니다. 그래서 문서에서는 가장 중요한 문자열에 대해 원어민 검수를 요청합니다.
구성품
번역기
모델에 배치 전송, 검사, 문제점 명시 후 재시도, 번역 메모리, 언어별 병렬 처리.
6가지 형식
각 플랫폼의 이스케이프, 폴더 및 복수형 규칙을 유지하는 리더와 라이터.
검사 도구
단독 사용 가능: 이미 보유한 번역본을 영어 원본과 대조하여 검사합니다.
예제 앱
직접 사용 전에 시도해 볼 수 있도록, 설정이 포함된 6가지 형식의 작은 앱 하나.
요구 사항
- Python 3.9 이상을 지원하는 Linux 또는 macOS; pip로 설치할 항목이 없습니다.
- 다국어 지시 모델이 포함된 OpenAI-compatible 모델 서버; 저희는 오픈 Qwen 모델(Qwen3.8-Flash-Next, 4비트 양자화)을 사용합니다.
참고 사항
- 검사 도구는 앱이 깨지는 원인을 잡아내며, 잘못된 의미까지 잡지는 못합니다: 스토어 상품 상세 페이지, 결제 장벽 및 법적 문구는 원어민이 검토하도록 하세요.
- gettext 복수형 항목은 이 버전에서 영어로 유지됩니다.
- 속도는 모델의 성능에 달려 있습니다.
- 검사 도구는 무료 오픈소스입니다: GitHub의 translation-checks. 키트는 번역기, 6가지 형식, 복수형, 메모리 및 1년간의 업데이트를 추가합니다.
현장 노트에서
자주 묻는 질문
어떤 언어를 지원하나요?
영어에서 번역하며, 아랍어, 암하라어, 불가리아어, 체코어, 독일어, 그리스어, 스페인어, 페르시아어, 핀란드어, 필리핀어, 프랑스어, 스코틀랜드 게일어, 히브리어, 아이티 크레올어, 헝가리어, 아르메니아어, 인도네시아어, 이탈리아어, 일본어, 크메르어, 칸나다어, 한국어, 마케도니아어, 말레이어, 네덜란드어, 노르웨이어, 오로모어, 펀자브어, 폴란드어, 포르투갈어(브라질), 루마니아어, 러시아어, 슬로바키아어, 슬로베니아어, 세르비아어, 스웨덴어, 태국어, 터키어, 우크라이나어, 베트남어, 간체 중국어 및 번체 중국어를 지원합니다.
GPU가 필요한가요?
Polyglot 자체는 필요 없으며, 모델 서버가 결정합니다. 작은 모델은 CPU에서 느리게 실행됩니다. GPU가 있으면 여러 언어의 대용량 파일을 몇 분 만에 처리할 수 있습니다.
모델이 잘못 처리한 문자열은 어떻게 되나요?
문제를 명시하여 해당 문자열만 다시 요청합니다. 그래도 실패하면 파일에서 제외되므로, 앱에는 해당 문자열의 영어 원문이 표시되고 실행 로그에는 실패 사유와 함께 기록됩니다. 깨진 상태로 저장되지는 않습니다.
호스팅된 API를 사용할 수 있나요?
네, OpenAI-compatible 채팅 엔드포인트를 제공하는 서비스라면 가능합니다. 기본 URL과 모델 이름을 polyglot.json에 입력하고, 키는 파일에 저장하세요.
업데이트됨: