유사 언어(pseudolocale)는 앱을 번역할 때 UI, 레이아웃 및 기타 번역 관련 문제를 일으키는 언어의 특성을 시뮬레이션하기 위해 설계된 언어입니다. 유사 언어는 현지화가 가능한 모든 메시지를 영어로 읽을 수 있도록 하는 즉각적인 자동 번역에 의해 생성됩니다. 현지화로 위장되지 않은 텍스트는 소스 코드에서 번역이 불가능한 메시지를 가리킵니다.
유사 언어는 나중에 번역할 메시지를 소스 저장소에 커밋하기 전에 UI 텍스트와 레이아웃을 조정할 수 있으므로 시간과 비용을 절약해줍니다. 잠재적인 번역 문제의 목록은 현지화 문제 발견 섹션을 참고하세요.
Android의 유사 언어 이름은 표준 언어 이름 지정 규칙을 따르며 언어 ID는 BCP 47 규격 프로그래밍 언어로 파싱될 수 있습니다. 이러한 의미에서 유사 언어는 프랑스어, 중국어, 러시아어 등 다른 언어와 비슷합니다.
Android 플랫폼은 왼쪽에서 오른쪽으로 쓰는 언어(LTR)와 오른쪽에서 왼쪽으로 쓰는 언어(RTL)를 표현하는 다음 두 가지 유사 언어를 제공합니다.
영어(XA): 기본 영어 UI 텍스트에 라틴 악센트를 추가하고, 악센트가 없는 텍스트를 추가하여 원본 텍스트를 확장하며, 각 메시지 단위를 대괄호로 묶어서 확장된 텍스트에서 잠재적인 문제를 노출합니다. 잠재적인 문제는 한 문장을 여러 개의 대괄호로 묶어 여러 부분으로 나누어 표시하는 것과 같이 레이아웃이 손상되고 메시지 문법이 잘못 구성되는 것입니다. 그림 1은 영어(XA) 유사 언어를 보여줍니다.
AR(XB): 왼쪽에서 오른쪽으로 쓰는 원본 메시지의 텍스트 방향을 오른쪽에서 왼쪽으로 설정하며 이 방향은 원본 메시지의 문자 순서를 반대로 바꿉니다. 그림 2는 AR(XB) 유사 언어를 보여줍니다.
유사 언어는 RTL 언어를 쓰거나 말하지 않아도 앱의 RTL 버전을 만들 수 있도록 도와줍니다.
유사 언어 사용 설정
유사 언어는 일반적으로 개발자 지향 빌드에 추가됩니다. 기기에서 유사 언어를 선택하면 설정 앱 및 빠른 설정 패널과 같은 모든 시스템 앱을 포함하여 유사 언어를 지원하는 모든 앱에서 선택된 유사 언어의 특성을 사용합니다.
Android 유사 언어를 사용하려면 기기에서 Android 4.3 (API 수준 18) 이상을 실행하고 개발자 옵션을 사용 설정해야 합니다. 개발자 옵션을 사용 설정한 후에는 기기를 재부팅해야 합니다.
다음 절차는 유사 언어를 사용 설정하는 방법에 관해 설명합니다.
Android 스튜디오에서
build.gradle
파일에 다음 구성을 추가하여 특정 앱에 유사 언어를 사용 설정합니다.Groovy
android { ... buildTypes { debug {
pseudoLocalesEnabled
true } } }Kotlin
android { ... buildTypes.getByName("debug") { isPseudoLocalesEnabled = true } }
-
설정 앱을 사용하여 유사 언어를 선택합니다. 이 단계는 다음과 같이 Android 버전에 따라 다릅니다.
Android 5.0(API 수준 21) 이상
- 기기에서 설정 앱을 열고 언어 및 입력 > 언어 환경설정을 탭합니다.
- 언어 환경설정 목록에서 탭을 드래그하여 유사 언어를 목록 맨 위로 이동하여 활성 언어로 만듭니다. 그림 3을 참고하세요.
Android 4.4.4(API 수준 19) 이하
- 기기에서 설정 앱을 열고 언어 및 입력 > 언어 환경설정 > 언어 추가를 탭합니다.
- 유사 언어를 탭하여 언어 환경설정 목록에 추가합니다.
- 언어 환경설정 목록에서 탭을 드래그하여 유사 언어를 목록 맨 위로 이동하여 활성 언어로 만듭니다. 그림 3을 참고하세요.
현지화 문제 발견
유사 언어를 사용하면 다음 영역에서 문제를 파악하여 UI의 잠재적인 현지화 문제를 더욱 빨리 효과적으로 발견할 수 있습니다.
- 번역에 전송할 수 없는 하드코딩된 문자열입니다. 이 문자열은 알아보기 쉽게 유사 언어에 악센트가 없는 텍스트로 표시됩니다.
- 텍스트 길이 때문에 UI가 손상될 수 있는 곳에 나타나는 텍스트 확장으로 인한 UI 레이아웃 문제입니다.
둘 이상의 대괄호로 분할된 하나의 메시지로 표시되는 문자열 연결입니다. 번역자가 각 부분이 서로 관련된 것을 모르고 독립적으로 번역해야 하므로 정확한 번역이 어려울 수 있습니다. 또한 문자열 연결은 여러 언어에서 각 부분의 순서 또는 문장 구조가 완전히 다를 수 있으므로 정확한 번역을 불가능하게 할 수 있습니다. 예를 들어, 일본어, 한국어, 타밀어 등 일부 언어는 동사를 문장 끝에 배치합니다. 따라서 문장이 연결된 경우 번역자는 필요에 따라 단어 순서를 변경할 수 없습니다.
한 텍스트 방향의 콘텐츠가 반대 텍스트 방향의 인라인 구문을 포함하여 문자열을 읽기 어렵게 만드는 경우와 같은 양방향(BIDI) 텍스트 문제입니다.
미러링되지 않는 요소와 같이 오른쪽에서 왼쪽(RTL)으로 쓰는 방향 문제입니다. 예를 들어, UI 요소가 왼쪽으로 이동하지 않았고 텍스트가 반대로 바뀌지 않고 왼쪽으로 이동하지 않았거나 'pseudolocales rule!'이 '!elur selacoloduesp'이어야 하는데 'eulr selacoloduesp!'로 바뀐 것과 같이 구두점을 잘못 배치한 경우입니다.