Chinese is the one exception to the usual Language tag rule. For every other language the Pushwoosh SDK sets the Language tag to a lowercase two-letter ISO-639-1 code (en, de, pt…). For Chinese it sends a script- or region-qualified tag so Simplified and Traditional can be told apart — and the exact value differs by platform.
What each SDK actually sends
- iOS: language code plus script code, i.e.
zh-Hansfor Simplified Chinese andzh-Hantfor Traditional Chinese. - Android: the device's full BCP-47 language tag for any
zhlocale. Depending on the device that iszh-Hans-CN,zh-Hant-TW,zh-CN,zh-TW,zh-HKand similar — not a barezh-Hans/zh-Hant.
(The Hans / Hant parts are ISO 15924 script subtags within BCP 47, not ISO 639 language codes.)
Why this matters
Language matching for multi-language content is an exact string match on the device's Language tag value, with a fallback chain of device language → default → en. So content keyed only on zh-Hant and zh-Hans will reach iOS users but fall back to the default localisation for most Android users.
Recommendations
- Before building a campaign, check which values your own audience actually reports. Open Tags statistics for the Language tag to see the real distribution in your project.
- Add a content variant for every Chinese value present in your base — typically
zh-Hansandzh-Hantplus the region/script-qualified Android variants you see. - Always provide a
defaultlocalisation so anything unmatched still receives sensible content. - If you set the Language tag yourself via the API instead of letting the SDK do it, pick one convention and apply it consistently across platforms.
Comments
0 comments
Please sign in to leave a comment.