Skip to main content
AI agent network visualization

앱을 깨뜨리지 않고 .strings 파일 번역

키와 형식 지정자, 올바른 복수형 규칙을 유지하면서 Localizable.strings를 며칠이 아니라 몇 초 안에 번역해요.

번거롭고 오류가 잦은 Apple .strings 번역

Localizable.strings를 내보내 번역가에게 전달하거나 일반 도구에 붙여 넣으면 형식 지정자와 이스케이프 시퀀스가 깨지고 복수형 규칙도 망가질 수 있어요. 그러고 나면 앱이 일본어로 실행될 때 중단되는 이유를 몇 시간 동안 디버깅해야 해요.

%@, %d, %1$@ 같은 형식 지정자를 일반 도구가 번역하거나 순서를 바꾸거나 삭제

이스케이프 시퀀스(\n, \", \t)가 손상되거나 이중 이스케이프되어 문자열 분석 실패

.stringsdict 복수형 규칙에는 언어별 CLDR 범주가 필요하지만 대부분의 도구가 완전히 무시

번역가 주석과 문맥 힌트를 삭제해 오역 발생

원문(영어)
Base.lproj/Localizable.strings
/* Localizable.strings (English) */

"welcome_title" = "Welcome to MyApp";
"login_button" = "Sign In";
"greeting" = "Hello, %@!";
"items_count" = "%d items in your cart";
"transfer" = "Send %1$@ to %2$@";
번역문(일본어)
ja.lproj/Localizable.strings
/* Localizable.strings (Japanese) */

"welcome_title" = "MyAppへようこそ";
"login_button" = "サインイン";
"greeting" = "%@さん、こんにちは!";
"items_count" = "カートに%d個のアイテム";
"transfer" = "%2$@に%1$@を送信";

i18n Agent가 유지하는 요소

형식 지정자

위치 지정(%1$@) 및 형식별(%d, %f, %@) 지정자를 감지하고 변경 없이 유지

이스케이프 시퀀스

줄바꿈(\n), 탭(\t), 따옴표(\"), Unicode 이스케이프를 올바르게 유지

.stringsdict 복수형

대상 언어마다 CLDR 복수형 범주(zero, one, two, few, many, other)를 올바르게 설정

주석 및 문맥

번역 문맥을 유지하도록 번역가 주석과 개발자 메모 보존

모든 Apple 플랫폼 지원

SwiftUI
UIKit / AppKit
Xcode String Catalog
macOS 앱
watchOS / tvOS
Swift 패키지

iOS 현지화를 위한 오픈 소스 도구

i18n Agent for Xcode

Xcode에 클릭 한 번으로 현지화 기능을 추가하는 macOS 메뉴 막대 앱이에요. 현재 프로젝트를 자동으로 감지하고 .strings, .xcstrings, .stringsdict 파일을 번역해 올바른 .lproj 디렉터리에 작성해요. 기존 번역을 번역 메모리로 등록해 프로젝트 전체에서 일관된 결과를 얻을 수도 있어요.

AppleScript로 현재 Xcode 프로젝트 자동 감지
Pull: 파일을 번역해 올바른 .lproj 디렉터리에 작성
Push: 기존 번역을 번역 메모리로 업로드
메뉴 막대에 상주하며 .strings, .xcstrings, .stringsdict 지원
GitHub에서 보기

LocaleChain

iOS에는 알려진 공백이 있어요. pt-BR 같은 지역 로케일이 없으면 pt-PT 같은 관련 로케일을 시도하지 않고 바로 영어로 넘어가요. LocaleChain은 설정 가능한 폴백 체인으로 이 문제를 해결하는 Swift 패키지예요. 설정은 한 줄이면 되고 기존 코드는 바꿀 필요가 없어요.

한 줄 설정: LocaleChain.configure()
기존 NSLocalizedString, SwiftUI Text, .stringsdict를 변경하지 않고 사용
포르투갈어, 스페인어, 프랑스어, 독일어 등의 폴백 체인 내장
Swift Package Manager로 설치, MIT 라이선스
GitHub에서 보기

이용 방법

How i18n Agent works: Install, Translate, Done
1
2
3
terminal
$translate_filesrc/messages/en.json
 --target["de", "ja", "es"]
Done.3 languages, 142 keys translated.

수동으로 복사해 붙여 넣거나 문자열을 추출할 필요 없이 번역된 파일만 받아보세요.

지금 i18n Agent 사용해 보기

번역 파일을 여기에 드롭

JSON, YAML, PO, XML, CSV, Markdown, Properties

또는 클릭하여 파일 선택

대상 언어

가입 불필요즉시 견적

자주 묻는 질문

개발자인가요?

CLI 도구를 설치하고 2분 안에 첫 파일을 번역해 보세요.

CLI 도구 설치

기업 팀인가요?

아직 TMS 계약에 묶여 있나요? 이전 방법을 함께 알아봐요.