Кроссплатформенные строковые ресурсы для Android и iOS (MonoTouch & MonoDroid)

Я занят кросс-платформенным мобильным приложением, использующим моно библиотеки Xamarin, и столкнулся со следующей ситуацией...

У меня есть куча строковых ресурсов в моем проекте monodroid (strings.xml), которые используются моими макетами и моим C# кодом.

Я хотел бы переместить эти строковые ресурсы в файл в общем проекте, чтобы их могли использовать как iOS, Android и Windows phone. Каков наилучший способ достичь этого?

* В настоящее время я использую файл Resource.resx, который содержит строки не-пользовательского интерфейса. А потом у меня есть файл strings.xml в проекте android(monodroid) для обслуживания строк ресурсов пользовательского интерфейса.

Имейте в виду следующее:

  • Один и тот же файл должен использоваться всеми платформами.
  • Мне нужны макеты Android, чтобы использовать те же ресурсы. (который в настоящее время является файлом strings.xml)
  • Желательно, чтобы это был один файл.

Есть мнения?

2 ответа

Есть (по крайней мере) пара "стандартных" библиотек / инструментов, на которые вы можете посмотреть:

Оба из них с открытым исходным кодом - вы должны быть в состоянии сделать свои собственные инструменты времени разработки или времени выполнения из них.

Другой вариант - использовать генератор для генерации соответствующих ресурсов во время сборки. Для простоты я решил создать Resource Migrator, который я запускаю при каждой сборке.

По сути, я беру все в моих PCL *.resx файлы и генерировать ресурсы Android или iOS перед сборкой приложения. Это аналогичный подход к объединению / минимизации CSS/JS в веб-приложении во время сборки... он снижает издержки производительности во время выполнения.

Другие вопросы по тегам