在Xamarin表单指南(http://developer.xamarin.com/guides/cross-platform/xamarin-forms/localization/)上进行本地化,我们创建Resx并为每个平台构建自定义Localization类。 这部分非常简单明了。
我的问题是,我是否需要在应用程序中发送所有本地化文件,还是有一种方法,当用户在我的应用程序中更改语言时,我从服务器下载所需的Resx文件并应用更改?
答案 0 :(得分:1)
我想看一下这个例子:Xamarin Forms localization Xlf
在这里有一个进行翻译的课程
public static string Localize(string key)
{
try
{
var netLanguage = Locale();
ResourceManager temp = new ResourceManager("MyApp.Strings.AppResources", typeof(Translator).GetTypeInfo().Assembly);
string result = temp.GetString(key, new CultureInfo(netLanguage));
return result;
}
catch (Exception ex)
{
return null;
}
}
但是这里不是使用ResourceManager
来获取你的字符串,而是从Sqlite数据库中获取它,你可以根据应用程序的Locale在应用程序启动时下载相关的翻译。
在xaml中你会像这样使用这个类:
<ContentPage xmlns:local="clr-namespace:MyApp;assembly=MyApp">
<Label Text="{local:Translate MyFieldStrike}"/>
</ContentPage>
在回答原始问题时,我会说没有办法动态下载和加载资源文件,因为它们是嵌入式资源