Если вы используете формы Xamarin, вы можете создать файлы resx в своем проекте Core, например AppResources.resx и AppResources.es.resx, и поместить в них простой текст, например:
в AppResources.resx
<data name="Hello" xml:space="preserve">
<value>Hello</value>
</data>
и в AppResources.es.resx
<data name="Hello" xml:space="preserve">
<value>Hola</value>
</data>
Затем вы создаете класс с именем что-то вроде BaseViewModel, который расширяется из MvxViewModel, и там вы ссылаетесь на индекс локализованной строки:
public class BaseViewModel : MvxViewModel
{
public BaseViewModel()
{
}
public string this[string index] => AppResources.ResourceManager.GetString(index);
}
А теперь расширьте все ваши модели представления из этой BaseViewModel.Затем в ваших файлах xaml из форм xamarin, когда вы создаете страницу содержимого, сделайте ее MvxContentPage, и вы можете прикрепить к ней модель представления с помощью x:TypeArguments
, там у вас есть ссылка на индекс AppResources, поэтому, если вы хотите использовать строку излокализованный resx, просто используйте обычную привязку форм xamarin и передайте имя строки в качестве индекса, например:
<Label
FontSize="Medium"
TextColor="Black"
Text="{Binding [Hello]}" />
Или используйте систему привязки mvx
<Label
FontSize="Medium"
TextColor="Black"
mvx:Bi.nd="Text [Hello]" />
Вы можете проверить Пример проекта Star Wars , чтобы увидеть, сколько вещей (например, строк локализации) работает;)