이 가이드는 OneSignal에서 사용자의 언어를 설정하고 푸시 알림, 이메일 및 In-app 메시지에서 사용자가 선호하는 언어로 메시지를 보내는 방법을 설명합니다.
사용자 언어 설정
OneSignal은 웹 또는 모바일 SDK를 사용하여 사용자가 처음 생성될 때 장치의 언어에서 language 속성을 자동으로 설정합니다.
ISO 639-1 2자 언어 코드를 사용하여 다음 방법으로 사용자의 언어를 수동으로 설정하거나 업데이트할 수도 있습니다:
- SDK의
setLanguage 메서드
- Create user 또는 Update user API의
language 필드
- CSV Importer의
language 열
다른 언어로 메시지 보내기
아래 탭을 사용하여 메시징 채널별 현지화 옵션을 확인하세요.
대시보드 전송
Messages > Push > New Message 또는 Templates에서 Add Languages를 클릭합니다. 다음 중 선택하세요:옵션 1: 체크박스
지원하는 언어를 선택합니다. 선택하지 않은 언어는 Any/English로 대체됩니다.옵션 2: 언어 콘텐츠 가져오기
제공된 템플릿을 사용하여 각 언어로 메시지 형식을 지정합니다.콘텐츠를 “Add Languages” 필드에 다시 복사하여 붙여넣습니다.콘텐츠를 미리 보기하여 다시 확인하고, 콘텐츠를 삽입하면 지정된 콘텐츠가 채워진 새 탭이 편집기에 나타납니다.옵션 3: Dynamic Content
지원하는 언어로 CSV 파일을 생성하고 업로드하는 Dynamic Content를 사용합니다.문제 해결
- 영어 필수: 기본값으로
en에 대한 행을 포함합니다.
- 올바른 헤더 사용:
language_code, title, subtitle, message
- 쉼표로 구분된 값: 적절한 CSV 형식을 확인합니다.
- 지원되지 않는 언어: UI 또는 템플릿에 나열되지 않은 경우 지원되지 않습니다. 차선책을 사용하고
support@onesignal.com에 문의하세요.
대시보드 편집기는 표준 HTML 필드를 사용합니다. %와 같은 특수 문자는 RTL 언어에서 표시 문제를 일으킬 수 있습니다. 이러한 문자 뒤에 RLM 마크를 추가하여 형식 문제를 해결하세요.
API 전송
contents 및 headings 필드는 여러 언어를 지원합니다: {
"contents": {
"en": "English content",
"fr": "French content"
},
"headings": {
"en": "English heading",
"fr": "French heading"
}
}
대시보드 전송
Messages > Email > New Message 또는 Templates에서 다음 중 선택하세요:옵션 1: Segment
- 각 언어에 대한 Segment를 생성합니다.
- 언어별 템플릿을 생성합니다.
- 각각을 해당 Segment로 보냅니다.
옵션 2: Liquid 구문
Liquid 구문 및 속성 또는 태그 대체를 사용하여 메시지에 조건문을 생성하고 사용자의 언어에 따라 적절한 콘텐츠를 렌더링합니다.{% assign language = subscription.language %}
{% if language == 'fr' %}
Bonjour {{ name }}!
{% elsif language == 'es' %}
Hola {{ name }}!
{% else %}
Hi {{ name }}!
{% endif %}
옵션 3: Dynamic Content
지원하는 언어로 CSV 파일을 생성하고 업로드하는 Dynamic Content를 사용합니다.
API 전송
Create message API를 사용하면 다음을 수행할 수 있습니다:
- 대시보드에서와 마찬가지로 언어 Segment 또는 필터를 타겟팅합니다.
custom_data, 속성 또는 태그 대체를 활용하여 Liquid 구문으로 메시지 템플릿을 생성합니다. 이러한 옵션에 대한 자세한 내용은 메시지 개인화를 참조하세요.
custom_data 대량 개인화 예제:{% assign eid = message.custom_data.users[subscription.external_id] %}
Hi {{ eid.first_name }}, you have {{ eid.points }} points. Your level is {{ eid.level }}.
{
"app_id": "YOUR_APP_ID",
"template_id": "YOUR_TEMPLATE_ID",
"include_aliases": {
"external_id": ["user123", "user456"]
},
"custom_data": {
"users": {
"user123": { "first_name": "John", "points": "150", "level": "Gold" },
"user456": { "first_name": "Sarah", "points": "200", "level": "Platinum" }
}
}
}
고객에게 표시되는 내용:
- “Hi John, you have 150 points. Your level is Gold.”
- “Hi Sarah, you have 200 points. Your level is Platinum.”
대시보드 - Segment
지원해야 하는 각 언어로 언어별 In-App 메시지를 보내려면:
- 각 언어에 대한 Segment를 생성합니다.
- 언어별 In-app 메시지를 생성합니다.
- 각각을 해당 Segment로 보냅니다.
태그 대체
Liquid 구문 및 태그 대체를 사용하여 메시지에 조건문을 생성하고 태그를 기반으로 적절한 콘텐츠를 렌더링합니다.In-app 메시지에는 태그 대체만 지원됩니다.
language : german
first_name : Jon
{% assign lang = language%}
{% if lang == "english" %}
Good day {{first_name}}!
{%- elsif lang == 'german' -%}
Guten Tag {{first_name}}!
{%- elsif lang == 'spanish' -%}
Buenos Dias {{first_name}}!
{%- elsif lang == 'french' -%}
Bonjour {{first_name}}!
{% else %}
Hello {{first_name}}!
{% endif %}
대시보드 전송
Messages > SMS > New Message 또는 Templates에서 다음 중 선택하세요:옵션 1: Segment
- 각 언어에 대한 Segment를 생성합니다.
- 언어별 템플릿을 생성합니다.
- 각각을 해당 Segment로 보냅니다.
옵션 2: Dynamic Content
지원하는 언어로 CSV 파일을 생성하고 업로드하는 Dynamic Content를 사용합니다.
API 전송
contents 및 headings 필드는 여러 언어를 지원합니다: {
"contents": {
"en": "English content",
"fr": "French content"
},
"headings": {
"en": "English heading",
"fr": "French heading"
}
}
지원되는 언어
언어 코드는 ISO 639-1 코드 2자 형식의 language 사용자 속성에 매핑됩니다. 다음 언어 코드를 지원합니다.
팝업 및 CSV 템플릿에 언어 코드가 포함되지 않은 경우 해당 언어는 지원되지 않습니다. 차선책 언어를 사용하고 support@onesignal.com으로 제품 요청을 보내는 것을 권장합니다.
| Language | Language Code |
|---|
| English | en |
| Arabic | ar |
| Azerbaijani | az |
| Bosnian | bs |
| Catalan | ca |
| Chinese (Simplified) | zh-Hans |
| Chinese (Traditional) | zh-Hant |
| Croatian | hr |
| Czech | cs |
| Danish | da |
| Dutch | nl |
| Estonian | et |
| Finnish | fi |
| French | fr |
| Georgian | ka |
| Bulgarian | bg |
| German | de |
| Greek | el |
| Hindi | hi |
| Hebrew | he |
| Hungarian | hu |
| Indonesian | id |
| Italian | it |
| Japanese | ja |
| Korean | ko |
| Latvian | lv |
| Lithuanian | lt |
| Malay | ms |
| Norwegian | nb |
| Persian | fa |
| Polish | pl |
| Portuguese | pt |
| Punjabi | pa |
| Romanian | ro |
| Russian | ru |
| Serbian | sr |
| Slovak | sk |
| Spanish | es |
| Swedish | sv |
| Thai | th |
| Turkish | tr |
| Ukrainian | uk |
| Vietnamese | vi |