본문으로 건너뛰기
전체 도구 요금제 블로그

대화 및 음성 메시지

문서

오디오·영상

로그인

언어

현지화 파일 번역기

모든 키와 플레이스홀더를 그대로 유지하는 앱 현지화 파일 번역

JSON, PO, strings.xml, .strings, .xcstrings, XLIFF 파일을 업로드하고 언어를 고르면, 같은 형식의 번역된 파일을 받아 바로 프로젝트에 넣을 수 있습니다. 키, 주석, 순서, 서식은 원본 그대로 유지되고, {name}, {{count}}, %1$s 같은 플레이스홀더는 모든 문자열에서 하나씩 검사합니다. 첫 부분은 회원가입 없이 무료이며, 최대 20개 파일과 5,000개 문자열까지 포함한 전체 작업은 1회 결제 $5입니다. 구독은 없습니다. AI 챗봇은 문자열 열두어 개라면 충분하지만, 키가 수천 개인 파일은 중간에 끊기거나 키 이름이 바뀌거나 플레이스홀더가 변형되어 돌아오기 쉽습니다.

문자열 파일 번역

어조
용어집 및 유지할 이름 (선택)

브랜드명과 제품명을 쉼표로 구분해 입력하세요. 모든 번역에서 하나하나 확인합니다.

한 줄에 용어 하나씩: 용어 = 번역

회원가입 없이 이용하세요. 문자열 300개까지 전체 무료. 더 길면 첫 문자열 무료, 작업 내 모든 파일은 $5, 1회 결제.

계속하면 이용약관 및 개인정보처리방침 내용에 동의하는 것으로 간주돼요.

  • 문자열 300개 이하는 전체 무료, 더 큰 작업은 첫 부분 무료, 회원가입 없이 이용
  • 전체 작업 $5, 1회 결제: 최대 20개 파일, 5,000개 문자열
  • 키, 중첩 구조, 주석, 순서는 그대로 두고 값만 번역
  • 모든 문자열의 플레이스홀더, ICU 복수형, 인라인 태그 검사
  • 대상 언어에 맞는 복수형 작성 (PO, Android, Xcode)
  • 41개 언어, 존댓말·반말 선택, 용어집과 유지할 이름 지정
데모 열기

샘플 PDF 보기 샘플 결과

85개 문자열 · 키 변경 없음

{

"home.greeting": "Good morning, {name}Buenos días, {name}",

"home.nearby": "{count, plural, =0 {No trails near you yet} one {# trail near you} other {# trails near you}}{count, plural, =0 {Aún no hay rutas cerca de ti} one {# ruta cerca de ti} other {# rutas cerca de ti}}",

"trail.offline_done": "<b>{name}</b> is saved on this phone. You can use the map without a signal.<b>{name}</b> está guardado en este teléfono. Puedes usar el mapa sin señal.",

"trail.share_text": "I just finished {trail} with Trailbook! {km} km and {meters} m up. 🥾¡Acabo de terminar {trail} con Trailbook! {km} km y {meters} m de subida. 🥾",

"saved.empty": "You have not saved any trails yet.\nTap the heart on a trail to keep it here.Aún no has guardado ninguna ruta.\nToca el corazón en una ruta para guardarla aquí."

}

노란색: 자리표시자와 ICU 복수형 구문을 모든 문자열에서 검사합니다. 청록색: 태그, 이스케이프, 이모지는 작성된 그대로 유지됩니다.

키도, 자리표시자도 그대로. 언어만 새롭게.

값만 바뀝니다. 파일은 같은 구조와 순서로 es.json이라는 이름으로 돌아오며, 자리표시자가 빠진 문자열은 빌드에 반영되기 전에 다시 번역합니다.

이 페이지를 위해 만든 데모 앱입니다. 스페인어 문자열은 85개 문자열 파일에서 나온 도구의 실제 결과물입니다.

결과물

파일은 같은 형식으로, 각 플랫폼이 요구하는 이름과 위치에 맞춰 돌려드립니다. en.json은 es.json이 되고, strings.xml은 values-es 폴더에, Localizable.strings는 es.lproj에 들어갑니다. 여러 파일은 하나의 ZIP으로 함께 다운로드됩니다. 다운로드하기 전에 번역된 모든 문자열이 원문과 나란히 화면에 표시되며, 원하는 문자열은 직접 수정할 수 있습니다.

  • JSON과 ARB: 중첩 키, 배열, 키 순서, 들여쓰기, 공백까지 원본 파일 그대로입니다. {count, plural, one {# item} other {# items}} 같은 ICU 메시지도 구조가 유지됩니다. ARB에서는 "@" 메타데이터가 유지되고 @@locale이 설정됩니다.
  • PO와 POT: msgid와 msgctxt는 절대 바뀌지 않습니다. 비어 있거나 fuzzy인 항목은 번역하고, 이미 번역된 항목은 그대로 둡니다. 복수형 항목에는 대상 언어에 필요한 만큼 msgstr[n]이 만들어지고, 헤더에는 Language와 Plural-Forms가 들어갑니다.
  • Android strings.xml: <string>, <string-array>, <plurals>를 지원하며, translatable="false"는 건너뜁니다. 작은따옴표와 큰따옴표는 Android 규칙에 맞게 이스케이프하고, <xliff:g> 안의 내용은 번역하지 않습니다.
  • iOS와 macOS: .strings 파일은 주석과 인코딩(주로 UTF-16)을 그대로 유지합니다. .xcstrings String Catalog에는 복수형 변형을 포함한 새 언어 현지화가 추가되고, 이미 번역된 문자열은 그대로 유지됩니다.
  • XLIFF 1.2 및 2.0: 번역되지 않은 각 <source> 뒤에 <target>을 추가하고, <g>, <x/>, <ph>, <pc> 같은 인라인 코드는 그대로 유지하며, 파일에 대상 언어를 설정합니다.

AI 챗봇으로 문자열 파일을 번역할 때와 이 도구를 쓸 때

AI 챗봇은 짧은 UI 문구를 잘 번역하고, 채팅창에 붙여 넣은 열두어 개 문자열은 대개 문제없이 돌아옵니다. 하지만 실제 현지화 파일은 길이와 문법이 문제입니다. 수천 개의 키, 플레이스홀더, 복수형 규칙, 이스케이프 처리는 한 글자만 틀려도 컴파일러나 라이브러리가 거부합니다.

상황 AI 챗봇 이 도구
버튼 문구 10개 대체로 잘 번역함 번역해서 파일로 돌려줌
키가 3,000개인 파일 답변이 파일만큼 길어야 해서 중간에 끊기기 쉬움 최대 60개씩 묶어 모든 문자열을 번역하며, 작업당 최대 5,000개 문자열 처리
키와 중첩 구조 파일 전체를 새로 쓰기 때문에 키가 번역되거나, 이름이 바뀌거나, 누락될 수 있음 키는 번역 대상으로 보내지 않고, 파일은 원본을 바탕으로 다시 만듦
{name}, %1$s, :attribute 같은 플레이스홀더 대개 유지하지만 확인하는 절차는 없음 모든 문자열을 검사하고, 플레이스홀더가 빠진 문자열은 다시 번역하며, 그래도 안 되면 원문 그대로 두고 목록으로 알려 줌
러시아어, 폴란드어, 아랍어의 복수형 영어의 두 가지 형태를 그대로 복사하는 경우가 많음 대상 언어에 필요한 모든 복수형을 작성하고, 형태마다 예시 숫자를 함께 제공
Android 문자열의 작은따옴표 이스케이프되지 않은 작은따옴표를 남겨 빌드가 깨질 수 있음 작은따옴표와 큰따옴표를 Android 규칙에 맞게 이스케이프

현지화 파일 번역 방법

  1. 1

    파일을 업로드하고 언어 선택

    같은 프로젝트의 파일을 하나 이상 올려 주세요. JSON, ARB, PO 또는 POT, strings.xml, .strings, .xcstrings, XLIFF를 지원합니다. 대상 언어와 말투를 고르고, 그대로 유지할 제품명을 입력하세요.

  2. 2

    첫 부분 무료로 확인

    첫 문자열들이 키와 원문 옆에 나란히 화면에 표시됩니다. 원하는 곳은 바로 수정할 수 있습니다. 이 단계에는 계정이 필요 없습니다.

  3. 3

    전체 잠금 해제 후 다운로드

    첫 부분이 마음에 드시나요? $5로 전체 작업을 잠금 해제하고 번역된 파일을 다운로드하세요. 확인이 필요한 부분이 있으면 경고 목록도 함께 제공됩니다.

긴 문자열 파일이 범용 AI 챗봇에서 막히는 이유

현지화 파일은 텍스트인 동시에 코드입니다. 챗봇에서 번역하려면 키, 괄호, 이스케이프까지 파일 전체를 다시 써야 하는데, 문자열이 수천 개인 파일은 한 번의 답변으로 담기에는 너무 깁니다. 그래서 중간에 끊기거나 계속하라고 요청하게 되고, 조각을 직접 이어 붙여야 합니다.

두 번째 문제는 문법입니다. 실수로 번역된 키, {cuenta}로 바뀐 {count}, 달러 기호가 사라진 %1$s, strings.xml의 이스케이프되지 않은 작은따옴표처럼, 긴 답변 속의 작은 변화 하나가 빌드를 깨뜨리거나 사용자에게 플레이스홀더가 그대로 노출되게 만들 수 있습니다.

이 도구는 모델에게 파일을 다시 쓰게 하지 않습니다. 파일을 문자열 단위로 읽어, 키와 개발자 주석을 문맥으로 붙여 텍스트만 최대 60개씩 묶어 보내고, 문자열마다 답변을 하나씩 받습니다. 인라인 태그는 먼저 짧은 표지로 바꿉니다. 모든 답변은 검사합니다. 플레이스홀더, \n 같은 이스케이프, 표지, 지정하신 이름, 모든 복수형이 원문과 같은지 확인합니다. 통과하지 못한 문자열은 다시 요청하고, 두 번 실패하면 원문을 그대로 두고 해당 문자열을 목록으로 알려 드립니다. 파일은 마지막에 원본을 바탕으로 다시 만들어집니다.

이런 파일을 번역합니다

  • React, Vue, Angular, Next.js 앱: i18next, vue-i18n, react-intl, ngx-translate JSON 파일
  • Flutter 앱: .arb 파일, @metadata 설명을 문맥으로 활용
  • WordPress 플러그인과 테마, Django 및 기타 gettext 프로젝트: .pot 템플릿과 .po 파일
  • Android 앱: 문자열 배열과 복수형이 포함된 res/values/strings.xml
  • iOS 및 macOS 앱: Localizable.strings와 String Catalog(.xcstrings)
  • 번역 플랫폼이나 Xcode에서 XLIFF로 내보낸 파일

지원하지 않는 기능

YAML, .properties, .resx, .stringsdict 파일은 아직 읽지 못합니다. 원본 파일에 없는 i18next 복수형 키(key_one, key_few)를 새로 추가하지도 않으며, 가지고 계신 키만 번역합니다. .xcstrings 파일에서 치환이나 기기별 변형을 사용하는 문자열은 그대로 둡니다.

이미 있는 번역은 덮어쓰지 않습니다. 채워진 PO 항목, 번역 완료로 표시된 XLIFF 타깃, 해당 언어로 작성된 String Catalog 항목은 그대로 유지됩니다. 1회 결제로 최대 20개 파일, 5,000개 문자열까지 처리할 수 있으며, 무제한 플랜은 작업당 최대 15,000개 문자열까지 처리합니다.

구조 검사를 거치는 기계 번역입니다. 새 언어의 첫 버전을 빠르게 내놓거나 프로젝트의 번역을 최신 상태로 유지하는 데 적합합니다. 스토어 설명, 법적 문구, 브랜드 어조가 중요한 텍스트는 원어민의 검수를 받으세요.

좋은 결과를 얻으려면

문맥에 따라 "Save"는 '저장'이 되기도 하고 '절약'이 되기도 합니다. settings.save_button 같은 키와 파일 속 주석(PO의 #., ARB의 @key 설명, .strings의 /* 주석 */)은 각 문자열과 함께 전달되므로, 의미가 분명한 키와 간단한 주석이 있으면 번역 품질이 더 좋아집니다.

앱 이름과 제품 이름은 "번역 제외"에 입력하고, 존댓말과 반말이 모두 있는 언어는 어느 쪽으로 번역할지 선택하세요. 먼저 무료 문자열로 테스트해 보고, 전체 잠금 해제 후에는 경고 목록을 확인하세요. 각 항목에 키, 문제점, 모델이 반환한 내용이 표시됩니다.

언어·상황별

요금

소규모 작업, 첫 부분 무료

무료

300개 이하의 문자열 작업은 다운로드를 포함해 전체 무료입니다. 결과는 화면에 바로 표시되며 회원가입은 필요 없습니다. 하루 1회까지 이용할 수 있고, 무료 계정이 있으면 하루 3회까지 가능합니다.

전체 작업

$5

1회 결제로 최대 20개 파일, 5,000개 문자열까지. 구독 없음, 만료 없음.

무제한 플랜

주 $19

사이트의 모든 도구를, 작업당 최대 15,000개 문자열까지 이용할 수 있습니다.

자주 묻는 질문

ChatGPT로 JSON 현지화 파일을 번역할 수 있나요?

작은 파일이라면 대체로 가능합니다. 하지만 키가 수천 개인 파일은 한 번의 답변으로 돌려줘야 해서 AI 챗봇이 중간에 끊기기 쉽고, 모든 키와 플레이스홀더가 그대로 남았는지 확인해 주는 곳도 없습니다. 이 도구는 값을 블록 단위로 번역하고, 모든 플레이스홀더를 검사하며, 고객님의 원본 파일을 바탕으로 파일을 다시 만듭니다.

어떤 형식을 지원하나요?

JSON(i18next, vue-i18n, react-intl, ngx-translate 등), Flutter ARB, gettext PO 및 POT, Android strings.xml, iOS와 macOS의 .strings 및 .xcstrings, XLIFF 1.2와 2.0을 지원합니다. 파일당 최대 10 MB, 한 작업에 최대 20개 파일까지 올릴 수 있습니다.

키와 플레이스홀더는 그대로 유지되나요?

키는 번역을 위해 전송되지 않습니다. {name}, {{count}}, %s, %1$d, %@, :attribute, %{name} 같은 플레이스홀더와 \n 같은 이스케이프, 인라인 태그, 이모지는 모든 문자열에서 검사합니다. 하나라도 사라진 문자열은 다시 번역하며, 그래도 실패하면 원문을 그대로 두고 경고 목록에 표시합니다.

복수형은 어떻게 처리하나요?

ICU 메시지는 구조를 유지한 채 대상 언어에서 쓰는 복수형 범주가 적용됩니다. msgid_plural이 있는 PO 항목은 대상 언어에 필요한 만큼 msgstr[n] 형태가 만들어지고, 헤더에는 그에 맞는 Plural-Forms가 들어갑니다. Android <plurals>와 Xcode 복수형 변형도 대상 언어의 범주로 작성됩니다. 예를 들어 러시아어는 one, few, many, other를 사용합니다.

이미 번역된 문자열은 어떻게 되나요?

그대로 유지됩니다. 비어 있거나 fuzzy 상태인 PO 항목, 완성된 타깃이 없는 XLIFF 단위, 해당 언어가 없는 String Catalog 항목만 번역합니다. JSON, .strings, strings.xml은 모든 값을 원문으로 간주합니다.

어떤 언어로 번역할 수 있나요?

스페인어, 프랑스어, 독일어, 이탈리아어, 포르투갈어(브라질·포르투갈), 네덜란드어, 폴란드어, 러시아어, 우크라이나어, 터키어, 아랍어, 히브리어, 힌디어, 인도네시아어, 베트남어, 태국어, 일본어, 한국어, 중국어(간체·번체) 등 41개 언어를 지원합니다.

무료인가요?

모든 작업의 첫 문자열 부분은 회원가입 없이 무료로 번역되어 화면에 표시됩니다. 다운로드를 포함한 전체는 1회 결제 $5입니다. 주 $19의 무제한 플랜은 사이트의 모든 도구를 이용할 수 있습니다. 작은 작업은 예외로, 문자열 300개 이하의 작업은 다운로드까지 전체가 무료입니다.

내 파일은 안전한가요?

작업은 본인만 열 수 있습니다. 문자열은 번역 목적으로만 AI 모델 제공업체에 전송되며, 고객님의 데이터를 학습에 사용하지 않는 경로를 이용합니다. 회원가입 없이 업로드한 작업은 7일 후 삭제되며, 어떤 작업이든 언제든지 직접 삭제하실 수 있습니다.

2026년 10월 23일 업데이트 · APPFACT STUDIO LTD

이런 작업도 할 수 있어요

어떤 페이지가 도움이 되는지 파악하기 위해 분석 쿠키를 사용합니다. 괜찮으신가요?