1 回答
TA贡献1891条经验 获得超3个赞
如果您使用的是 Xamarin Forms,则可以在您的核心项目中创建 resx 文件,例如 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>
然后创建一个类,名称类似于从 MvxViewModel 扩展的 BaseViewModel,并在其中引用本地化字符串的索引:
public class BaseViewModel : MvxViewModel
{
public BaseViewModel()
{
}
public string this[string index] => AppResources.ResourceManager.GetString(index);
}
现在从该 BaseViewModel 扩展所有视图模型。然后在来自 xamarin 表单的 xaml 文件中,当您创建一个内容页面时,将其设为 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 Sample 项目以查看有多少东西(如本地化字符串)有效;)
- 1 回答
- 0 关注
- 70 浏览
添加回答
举报