Skip to main content
This guide explains how to set a user’s language in OneSignal and send messages in their preferred language across push notifications, emails, and in-app messages.

Set user’s language

OneSignal automatically sets the language property from the device’s language when a user is first created using the web or mobile SDKs. You can also manually set or update the user’s language using the ISO 639-1 2-letter language code with:
  1. The SDK’s setLanguage method.
  2. The language field in the Create user or Update user APIs.
  3. The language column in the CSV Importer.
See Supported languages for a list of valid language codes.

Send messages in different languages

Use tabs below to view localization options by messaging channel.

Dashboard sending

From Messages > Push > New Message or Templates, click Add Languages. Choose from:

Option 1: Checkboxes

Select languages you support. Any language not selected will fall back to Any/English.

Using checkboxes to select the languages.

Option 2: Import language content

Use the provided template to format the message in each language.

Modal to copy and paste data from a spreadsheet.

Copy and paste the content back into the “Add Languages” field.

Modal with example data.

Preview content to double-check, insert content, and new tabs will appear in the editor with the designated content filled out.

Content preview.

Option 3: Dynamic Content

Use Dynamic Content which involves creating and uploading a CSV file with the languages you support.

Troubleshooting

  • English required: Include a row for en as default.
  • Use correct headers: language_code, title, subtitle, message
  • Comma-separated values: Ensure proper CSV formatting.
  • Unsupported language: If not listed in the UI or template, it’s not supported. Use the next best option and contact support@onesignal.com.
The dashboard editor uses a standard HTML field. Special characters like % may cause display issues in RTL languages. Add RLM marks after such characters to fix formatting problems.

API sending

The contents and headings fields support multiple languages:

Supported languages

Language code maps to the language user property in the ISO 639-1 code 2-letter format. We support the following language codes.
If the language code is not included in the pop-up and CSV template, then this language is not supported. We recommend using the next best language and sending us a product request to support@onesignal.com