IIf you are experiencing the oddity that the UWP version of your application can’t find the correct language version of your ‘resx’ files, then you have probably fallen into the same error I did.
The language management of UWP apps works differently to its Android and iOS counterparts.
Reade more about it at: https://docs.microsoft.com/en-us/windows/apps/design/globalizing/manage-language-and-region
How the UWP deals with multilingualism in brief
Two different lists are considered as the list of languages supported by the application. One is the list of languages supported by windows (language pack installed), and the other is the list of languages supported by the application (resx files created for them). The intersection of these can only be handled by the language switching code.
Where to define all of the supported languages by the app
Easily, without mainting it you can define them in only one line making a change in ‘
<Resources> <Resource Language="x-generate" /> </Resources>
The x-generate value will collect all of the available languages on compile time.
Otherwise, you will need to list all of them one by one:
<Resources> <Resource Language="EN-US" /> <Resource Language="JA-JP" /> <Resource Language="FR-FR" /> </Resources>
Perhaps, if the application is running on UWP platform, you should make an if statement for the runtime platform and filter out languages that are not supported by windows.
// Get all of the supported language by windows in BCP-47 language tag (i.e. "en-US") IReadOnlyList<string> userLanguages = Windows.System.UserProfile.GlobalizationPreferences.Languages;
3 thoughts on “Xamarin UWP: Use multilanguage resource files properly”