Language & Localization

Supported Languages in OneSignal Push Notifications

The OneSignal SDK will automatically detect the language set on the device or browser settings and it also has a setLanguage method so you can set the language as desired. You can use this data to create Segments or localize Push Notification Messages.

Message Localization is limited to push notifications only at this time. To target emails and in-app messages by language, you must create Segments for the language to target each one individually.

Creating Notifications in Multiple Languages

The OneSignal dashboard and API makes "English" the default language, but use any language you need in this field. Think of "English" as Default. For example if you enter a Spanish message into the "Any/English" field, then all users will get the notification in Spanish.

To send a message in multiple languages, select Add Languages.

OneSignal will show how many subscribers have each language.

Select the languages you want to use in the push. Any languages you do not select will get the "Any/English" message.

Image showing modal to select languages

You must provide the translation for each message you want to include.

FAQ

How can I change the default language to not use English?

"Any/English" (or "en" with the API) is the Default language. To send a notification without English, you can put your desired language in the English field and all devices will get the language you set.

For example, if you want all notifications to have a Spanish language, just put the Spanish message in the English field or "en" on the API. All users will get the Spanish message.

Does OneSignal support RTL?

Support for RTL is handled by the Operating System level so it should be supported depending on the language and the user's phone settings.

What happens if I include a language in API "contents" but not in "headings"?

The API "headings" and "contents" properties both allow multiple language codes to be set. If a device is set to a language that is not present in the "contents" property, then "Any/English" will be used.

If the language code set in "contents" is not present in "headings", then the "title" aka "heading" will not display. For example, if the device language is "de" and you send the notification with "contents" = "en" and "ru" then the device will get the "contents" and "headings" in "en" which is "Any/English"

If the device is in "de" and you send the notification with "contents" = "en", "ru" and "de" but "headings" = "en" then the "headings" for that notification will not show to any device in "de" and "ru".

If the device is in "de" and you send the notification with "contents" AND "headings" = "en", "ru" then the "headings" will show in the notification.

How do I use a different language than the device settings?

If you do not see the language you want to support on our list or you allow users to set their own language, then you will need to differentiate the users and target separately.

One option is to tag users with the language, then create segments by each tag. Then send notifications separately by adding the language to the "en" or English field.

If you track this data in your CRM or Database, you can target via our API as well. See Internal Database, DMP, & CRM.

What languages are supported?

The following are languages supported by OneSignal:

LanguageLanguage Code
Englishen
Arabicar
Azerbaijaniaz
Bosnianbs
Catalanca
Chinese (Simplified)zh-Hans
Chinese (Traditional)zh-Hant
Croatianhr
Czechcs
Danishda
Dutchnl
Estonianet
Finnishfi
Frenchfr
Georgianka
Bulgarianbg
Germande
Greekel
Hindihi
Hebrewhe
Hungarianhu
Indonesianid
Italianit
Japaneseja
Koreanko
Latvianlv
Lithuanianlt
Malayms
Norwegiannb
Persianfa
Polishpl
Portuguesept
Punjabipa
Romanianro
Russianru
Serbiansr
Slovaksk
Spanishes
Swedishsv
Thaith
Turkishtr
Ukrainianuk
Vietnamesevi