Changing app language in ios 13 does not change extension language

iOS 13 allows changing languages per App from settings and I am able to change and see the update instantly in my App. However, my app also has an app extension which shows local notifications as and when required.
Now when I change language for my App to Spanish from English while system settings are still in English, the notifications from my App extension are displayed in English while the App when opened from notification is displayed in Spanish. Extension is using below API to get localized notification content.

Code Block swift
NSString.localizedUserNotificationString(forKey: titleLocalizationKey, arguments: nil)

However, the notification is still displayed in English. When I change system language to Spanish, the notification is displayed in Spanish.

So, the App language settings are not applied to App extensions. This is very inconvenient because there is no explicit way to change language for App extensions and normal users do not know the difference between the App and its extensions. When they change the language of App, they would expect all the content related to App being displayed in selected language.

Is there any solution to this? Or is this a known issue?

Replies

This is very inconvenient because there is no explicit way to change language for App extensions and normal users do not know the difference between the App and its extensions.

This seems like a bug to me and I’d encourage you to file it as such. Please post your bug number, just for the record.

Share and Enjoy

Quinn “The Eskimo!” @ DTS @ Apple
let myEmail = "eskimo" + "1" + "@apple.com"

WWDC runs Mon, 22 Jun through to Fri, 26 Jun. During that time all of DTS will be busy with conference duties.
Thanks for confirming eskimo. I have submitted a feedback: ********
If you use your extension in another application whose language you have set to Spanish, does it also show your extension in Spanish? I would expect the localization used for an extension to match the localization of the app in which the extension is invoked, not the app that the extension is a part of.