Я развиваю мобильные приложения с Xamarin в течение шести месяцев, а Xamarin Forms - единственный способ, которым я это сделал. Два дня назад я наткнулся на статью, в которой мне предлагалось использовать строки регресса через xml вместо их жесткого кодирования. Я исследовал его для андроида, и общая идея побудила меня использовать регрессные строки.Xamarin Forms: строки ресурсов
Мой вопрос:
Я создал абстрактный класс BaseLang в портативной библиотеке, которая выглядит примерно так:
public abstract class BaseLang
{
public abstract string Text { get; }
}
И для каждого языка я создать,
public class EngLang : BaseLang
{
public override string Text { get { return "Welcome"; } }
}
И Я объявляю свой класс EngLang статической переменной в первый раз, когда приложение построено и использует с ним мои строки. Мой реальный вопрос: это нормально или я должен использовать строки ресурсов и использовать инъекцию зависимостей, чтобы называть их?
Android и iOS имеют разные «родные» способы обработки строковой локализации. Но с помощью Xamarin Forms вы можете использовать файлы RESX (это совершенно другой механизм). Подробнее см. Https://developer.xamarin.com/guides/xamarin-forms/localization/. Я лично использовал строки RESX с iOS, Android и Windows RT (для этого потребовалась дополнительная работа). Я считаю, что он будет работать со всеми другими платформами Xamarin Forms. – dylansturg
В чем преимущество использования его вместо классов? –
Я считаю, что RESX, как правило, быстрее и проще (для разработчиков), чем использование набора пользовательских классов. Для начала система будет в основном обрабатывать выбор соответствующего файла (с языком) на основе пользовательского устройства. Во-вторых, писать пользовательские классы и собственный шаблон локатора (выбор класса, который подходит для текущего пользователя) - это много накладных расходов (написание кода). RESX по существу компилируется в эти классы, которые вы пишете. Visual Studio делает редактирование RESX очень простым. У Microsoft также есть технологии, которые создают RESX, чтобы упростить добавление языковых переводов - MAT. – dylansturg