OTA(Over-the-Air) 업데이트는 App Store, Google Play 또는 기타 배포 플랫폼에서 새 릴리스를 요구하지 않고도 모바일 및 웹 애플리케이션에 번역 업데이트를 납품할 수 있는 유연한 방법을 제공합니다. 이 접근 방식은 지연과 수동 프로세스를 줄여 연속 현지화 및 애자일 개발 워크플로를 지원합니다.
Phrase Strings의 OTA 기능은 iOS, Android, React Native, Flutter, i18next 및 Rails 플랫폼과 통합됩니다. 텍스트 레이블에 대한 업데이트는 모바일 앱으로 즉시 푸시됩니다.
업데이트된 설정이 적용되려면 새로운 릴리스를 생성해야 하는 순서가 필요합니다. 릴리스에 포함된 모든 콘텐츠는 Phrase Strings에서 사용할 수 있어야 하며, 이는 애플리케이션으로 번역을 직접 스트리밍합니다. 콘텐츠가 없으면 번역이 납품되지 않습니다.
모바일 애플리케이션의 경우, OTA는 런타임에 Phrase Strings에서 번역을 검색하기 위해 관련 Software Development Kit (SDK)를 애플리케이션에 통합해야 합니다.
팁
배포, 릴리스 및 API 참조 세부 정보는 Developer Hub를 참조하십시오.
iOS, Android, React Native 또는 Flutter SDK를 구현하는 애플리케이션을 기기에서 처음 시작할 때 고유한 임의의 기기 식별자가 생성됩니다. 이 식별자는 특정 기간 동안 활성 사용자를 추적합니다. 이는 다른 형태나 수단의 추적에는 사용되지 않으며 사용자 또는 기기 정보를 포함하지 않습니다.
OTA 요청 수와 월간 활성 사용자(MAU) 수는 선택한 요금제에 따라 제한됩니다.
MAU는 번역이 요청된 고유 기기의 수입니다. 각 기기에는 임의의 ID가 할당됩니다. MAU는 지난 30일 동안 할당된 고유 ID 수를 기준으로 계산됩니다. Phrase 서버와의 모든 상호 작용은 요청으로 간주됩니다.
OTA 요청과 함께 전송된 데이터
SDK는 업데이트를 확인하기 위해 OTA 서비스와 통신하며 각 요청에 다음 세부 정보를 포함합니다.
-
기기 식별자 (예: "F3AFCB10-80A2-84CB-94C0-27F5EF58876D". 이 앱에 고유하므로 특정 기기를 추적할 수 없습니다.)
-
앱 버전 (예: "1.2.0")
-
번역 파일의 마지막 업데이트 (예: "1542187679")
-
SDK 버전 (예: "1.0.0")
-
로캘 (예: "de-DE")
-
파일 형식 (예: "Strings")
-
클라이언트 (예: "ios")
-
배포 ID (배포의 ID)
-
환경 시크릿 (개발 환경과 프로덕션 환경을 구분하기 위함)
SDK에서 사용하는 도메인:
EU datacenter
-
ota.eu.phrase.com
-
cdn.eu.phrase.com
-
ota.phraseapp.com
-
cdn.phraseapp.com
US datacenter
-
ota.us.phrase.com
-
cdn.us.phrase.com
Phrase OTA SDK는 OTA API를 사용할 수 없는 경우에도 앱이 정상적으로 작동하도록 설계되었습니다. 이러한 경우 SDK는 기기에 저장된 마지막으로 성공적으로 가져온 Strings로 대체하거나 앱 패키지에 포함된 번들 Strings를 사용합니다. 이를 통해 최종 사용자에게 오류가 발생하거나 Strings가 누락되는 것을 방지합니다. 안정적인 대체 기능을 보장하려면 앱을 릴리스할 때마다 번들 Strings를 최신 상태로 업데이트해야 합니다.
배포는 특정 플랫폼이나 프로젝트에 대해 OTA 업데이트가 전달되는 방식과 위치를 정의하는 구성된 설정입니다.
대상 플랫폼은 배포 내에서 정의됩니다:
-
iOS
-
Android
-
Flutter
-
i18next
-
Rails
여러 배포가 가능하지만, 이상적으로는 프로젝트당 하나의 배포가 있는 것이 좋습니다. iOS 및 Android용 배포를 사용하는 경우, 두 형식에 대한 자리 표시자가 자동으로 변환됩니다.
권한
OTA 배포 및 릴리스 관리는 프로젝트 할당 범위 내에서 이루어집니다. 사용자는 자신이 할당된 프로젝트에서만 이를 관리합니다.
소유자, 관리자, 프로젝트 관리자, 개발자 및 디자이너 역할은 기본적으로 OTA 배포 및 릴리스에 대한 전체 액세스 권한을 가집니다. 번역가 역할은 액세스 권한이 없습니다.
소유자와 관리자는 모든 프로젝트에 걸쳐 액세스 권한을 가집니다.
사용자는 배포를 생성하기 전에 계정 수준의 권한이 필요합니다. 새 배포는 사용자가 액세스할 수 있는 프로젝트에만 연결됩니다.
더 세부적인 제어를 위해 Enterprise 고객은 지원 Team에 사용자 지정 역할에 대해 문의할 수 있습니다.
대체 언어
배포가 연결된 프로젝트의 언어 설정에서 대체 언어가 설정된 경우, 요청된 언어가 존재하지만 키가 번역되지 않았다면 선택한 언어의 Strings가 표시됩니다.
국가별 언어(예: en-GB)가 사용되지만 릴리스에 포함되지 않은 경우, 프로젝트에 해당 언어의 표준 버전(예: en)이 존재하면 시스템이 이를 대체 언어로 사용할 수 있습니다. 요청된 언어를 전혀 찾을 수 없는 경우, 프로젝트의 기본 로캘이 대신 제공될 수 있습니다.
대체 언어는 연결된 키에서 작동하지 않습니다.
배포 생성
배포를 생성하려면 다음 단계를 따르십시오:
-
페이지의 상자에서 구성 또는 이미 구성이 존재하는 경우 구성 개수를 클릭하십시오.
페이지가 열리고 기존 구성이 표시됩니다.
-
새 배포를 클릭합니다. 창이 열립니다.
-
일반 탭에서 , 배포와 연결된 , 필요한 및 필요한 을 제공합니다.
-
Android 배포의 경우 Android 탭을 클릭하여 필요한 경우 HTML 태그를 포함한 모든 번역을 CDATA로 묶는 형식 옵션을 선택합니다.
-
배포와 연결할 프로젝트를 선택하면 일정 탭을 사용할 수 있게 됩니다. 필요한 경우 이 탭을 사용하여 배포에서 OTA 예약 릴리스를 설정<2>합니다.
-
-
대체 언어 탭에서 필요에 따라 배포별 대체 설정을 선택합니다. 대체 옵션은 목록에 표시된 순서대로 우선순위가 지정됩니다.
-
선택적으로 번역 탭을 클릭하여 최신 검토됨 번역 버전을 사용하는 옵션을 선택합니다. 고급 검토 워크플로를 사용할 때만 이 옵션을 활성화하십시오.
-
저장을 클릭합니다.
배포 세부 정보가 SDK에 필요한 ID와 함께 표시됩니다. 페이지에서 배포를 클릭하여 세부 정보를 다시 표시할 수 있습니다.
번역을 업데이트하려면 배포 내에서 새 릴리스를 생성하십시오. 프로젝트의 현재 상태가 내보내지고 연결된 클라이언트에서 사용할 수 있게 됩니다.
릴리스를 생성하려면 다음 단계를 따르십시오:
-
OTA 페이지에서 필요한 배포 옆의 릴리스 추가를 클릭합니다.
창이 열립니다.
-
, 필요한 , , 및 을 제공합니다.
아직 배포의 언어 목록에 추가되지 않은 로캘은 선택되지 않은 상태로 표시되며 선택할 수 없습니다. 향후 릴리스에서 선택할 수 있도록 배포에 필요한 언어를 추가하십시오.
릴리스 생성 시 로캘을 수동으로 선택하지 않으면 배포에 구성된 모든 로캘이 기본적으로 릴리스에 포함됩니다.
필요한 경우 태그를 입력하여 특정 태그가 있는 키만 릴리스에 포함하십시오. 릴리스에 태그 필터를 추가하면 해당 태그가 있는 키만 포함됩니다. 태그가 없는 키는 릴리스에서 완전히 제외되며, 연결된 앱은 해당 키에 대해 로컬 코드베이스에 번들로 제공된 정적 번역 파일로 대체됩니다. 태그 필터링은 분기와 독립적으로 작동합니다. 분기가 활성화된 경우 분기와 관련 태그를 선택하고, 분기가 활성화되지 않은 경우 관련 태그만 선택하십시오.
-
저장을 클릭합니다.
릴리스가 배포 세부 정보 페이지 하단의 목록에 추가됩니다.
배포 릴리스를 위한 반복 일정을 설정하려면 다음 단계를 따르십시오:
-
페이지에서 필요한 배포 옆에 있는 톱니바퀴
아이콘을 클릭하십시오.
창이 표시됩니다.
-
릴리스 예약 탭을 선택하고 를 클릭하십시오.
릴리스 예약 옵션이 표시됩니다.
참고
예약 옵션은 새 배포 생성 시에도 사용할 수 있습니다.
-
드롭다운에서 사용 가능한 옵션 중 하나를 선택하여 릴리스 빈도를 선택하십시오:
-
-
예약된 릴리스에 원하는 요일을 선택하십시오.
-
-
시간과 관련 를 입력하십시오.
-
필요한 경우 예약된 릴리스에 대해 , 및 를 선택하십시오.
-
필드는 프로젝트에서 분기가 활성화된 경우에만 표시됩니다. 분기를 선택하면 로케일 및 언어 목록이 업데이트됩니다.
-
-
선택적으로 및 필드에 애플리케이션 버전을 지정하십시오.
앱의 모든 버전에 릴리스 일정을 적용하려면 비워 두십시오.
-
저장을 클릭합니다.
배포가 릴리스 일정 정보로 업데이트됩니다.
일정을 사용 안 함으로 설정하면 배포의 자동 릴리스가 중지되지만 구성된 설정은 저장됩니다.
참고
Strings UI에는 OTA를 일시 중지하거나 일시적으로 사용 안 함으로 설정하는 옵션이 없습니다. 앱이 번역을 가져오지 못하게 하려면 앱의 OTA 구성에서 배포 ID를 제거하십시오. OTA를 재개하려면 ID를 복원하십시오. 최후의 수단으로 배포를 삭제하고 새 배포를 생성하십시오.
적절한 모바일 SDK 또는 웹 라이브러리를 통합하면 클릭 한 번으로 번역을 업데이트할 수 있으며, 사용량을 측정할 수 있는 지표도 제공됩니다. 모바일 SDK 및 웹 라이브러리 보고서는 활성 앱 사용자와 해당 앱 언어에 대한 유용한 통찰력을 제공합니다. 이 보고서 세트는 각 배포에 대해 제공되며 데이터는 하루에 두 번 새로 고쳐집니다.
활성 사용자 수, 전체 요청, 언어별 요청, 플랫폼별 요청 및 제공되지 않은 기기 언어에 대한 보고서가 제공됩니다.
각 배포에 대한 보고서는 페이지의 아이콘을 통해 액세스할 수 있습니다.
이 보고서에 표시된 활성 사용자 수는 고정된 달력이나 청구 주기 기간이 아닌 현재 날짜를 기준으로 하는 30일 롤링 윈도우를 반영합니다.
OTA SDK 통합을 위한 기술 문서는 각 프로젝트 리포지토리의 README 파일에서 확인할 수 있습니다.