2014-12-19 10 views
1

В руководстве Xamarin Forms Guides (http://developer.xamarin.com/guides/cross-platform/xamarin-forms/localization/) для локализации мы создаем Resx и создаем пользовательский класс локализации для каждой платформы. Эта часть довольно проста и понятна.Динамическая загрузка файлов локализации Xamarin

Мой вопрос: мне нужно отправить в приложение все локализованные файлы или есть способ, когда пользователь меняет языки в моем приложении, я загружаю требуемый файл Resx с сервера и применяю изменения?

ответ

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, на которую вы загрузите соответствующие переводы при запуске своего приложения в зависимости от локали вашего приложения.

В XAML вы бы использовать этот класс, как это:

<ContentPage xmlns:local="clr-namespace:MyApp;assembly=MyApp"> 
    <Label Text="{local:Translate MyFieldStrike}"/> 
</ContentPage> 

В ответе на ваш первоначальный вопрос, я бы сказал, не существует не способ динамически загружать и загрузить файл ресурсов, поскольку они являются вложенными ресурс

 Смежные вопросы

  • Нет связанных вопросов^_^