Android 로컬라이제이션이 왜 번거로운가요?
수동으로 XML 편집
언어별로 strings.xml을 복사합니다. value-de 폴더를 잊으면 앱이 크래시합니다.
비싼 에이전시들
번역 서비스는 단어당 €0.15를 청구합니다. 500개의 문자열이 있는 앱은 언어당 €500+ 비용이 듭니다.
손상된 포매터
Google 번역은 %1$s와 %d를 망가뜨립니다. getString() 호출로 인해 앱이 크래시합니다.
작동 방식
3단계. 2분. 완료.
1
strings.xml 업로드
또는 JSON, ARB 파일. 형식을 인식합니다.
2
언어 선택
29개 언어. 독일어, 프랑스어, 일본어, 중국어...
3
다운로드
res/ 디렉토리에 사용할 values-de/, values-fr/, values-es/를 준비합니다.
지원되는 Android 포맷
네이티브 Android, React Native, Flutter — 하나의 도구에 모두
strings.xml
네이티브 Android
JSON i18n
React Native, Flutter
ARB
Flutter/Dart
XLIFF
산업 표준
전 → 후
자리 표시자, 복수형 및 HTML 태그는 그대로 유지됩니다.
이전 (values/strings.xml)
<!-- res/values/strings.xml -->
<resources>
<string name="app_name">My App</string>
<string name="welcome">Welcome, %1$s!</string>
<string name="items">%d items found</string>
<plurals name="songs">
<item quantity="one">%d song</item>
<item quantity="other">%d songs</item>
</plurals>
</resources>나중에 (values-ko/strings.xml)
<!-- res/values-de/strings.xml -->
<resources>
<string name="app_name">Meine App</string>
<string name="welcome">Willkommen, %1$s!</string>
<string name="items">%d Artikel gefunden</string>
<plurals name="songs">
<item quantity="one">%d Lied</item>
<item quantity="other">%d Lieder</item>
</plurals>
</resources>Android 개발자를 위해 구축됨
플레이스홀더 보호
androidPage.feat1Desc
모든 Android 형식
strings.xml, React Native용 JSON, Flutter용 ARB. 모든 것을 하나의 도구로.
2주 대신 2분
업로드 → 언어 선택 → values-de, values-fr, values-es를 다운로드.
Translation Memory = 90% 절약
이미 번역된 문자열은 재사용됩니다. 앱 업데이트 비용은 거의 들지 않습니다.
완전한 Android 구문 지원
%s, %d, %f 서식 지정자
%1$s 위치 인수
@string/참조
복수형(수량 문자열)
문자열 배열
CDATA 섹션
HTML 서식 태그
이스케이프 시퀀스 (\\n, \\t)
왜 구글 번역을 사용하지 않나요?
| shipglobal | Google Translate | DeepL | |
|---|---|---|---|
| %1$s이(가) 보호되었습니다 | |||
| XML 구조 | |||
| 복수 | |||
| 번역 메모리 |