Xamarin动态加载本地化文件

时间:2014-12-19 15:07:49

标签: c# xamarin.ios xamarin xamarin.android

在Xamarin表单指南(http://developer.xamarin.com/guides/cross-platform/xamarin-forms/localization/)上进行本地化,我们创建Resx并为每个平台构建自定义Localization类。 这部分非常简单明了。

我的问题是,我是否需要在应用程序中发送所有本地化文件,还是有一种方法,当用户在我的应用程序中更改语言时,我从服务器下载所需的Resx文件并应用更改?

1 个答案:

答案 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>

在回答原始问题时,我会说没有办法动态下载和加载资源文件,因为它们是嵌入式资源

相关问题