Add language resource to App.axml
:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceInclude Source="avares://MyAssembly/Assets/Languages/Lang.ENG.xaml"></ResourceInclude>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Add language selection command to view model:
public ReactiveCommand<string, Unit> LangSelection { get; }
LangSelection = ReactiveCommand.Create((string lang) =>
{
Application.Current?.Resources.MergedDictionaries!.Replace(Application.Current.Resources.MergedDictionaries[0], new ResourceInclude
{
Source = lang switch
{
"TC" => new Uri("avares://MyAssembly/Assets/Languages/Lang.TC.xaml"),
"SC" => new Uri("avares://MyAssembly/Assets/Languages/Lang.SC.xaml"),
"ENG" => new Uri("avares://MyAssembly/Assets/Languages/Lang.ENG.xaml"),
_ => new Uri("avares://MyAssembly/Assets/Languages/Lang.ENG.xaml"),
}
});
});