Localization on WP8.1
As far as I understood - and for whatever reason MSDN is quite silent about this - in the switch between WP8 and WP8.1, the localization API of Windows RT changed. After fighting with it (again) today for a while, I decided to put this here for good.
In WPF, you have to rely on the
<TextBox x:Uid="UriTextBox" x:Name="UriTextBox" Grid.Row="1" Text=""></TextBox>
In your Resource File
That's the trick. In your resource files, you now need to relate to the Uid + the name of the field that you want to fillup. In our case
In your C# Code
From your C# code, you now get the different localized strings via the ResourceLoader:
ResourceLoader resourceLoader = ResourceLoader.GetForCurrentView("Resources"); resourceLoader.GetString("UnableToConnect");
If you... per chance... don't use the correct property in your resx File, you will get that kind of super useful errors:
In this case for instance, I tried to set the text of a button via
buttonUid.Label instead of
buttonUid.Content. Yep, you have to pay close attention to the type of the objects you are using. A Bottom Bar Button (in WP8.1) needs a
buttonUid.Label, a normal XAML Button a
buttonUid.Content. Really practical...