#flutter #flutter-dependencies
#flutter #flutter-зависимости
Вопрос:
Я использую easy_localization в своем приложении, и все работает нормально. Однако один из пакетов, от которого зависит мое приложение (внутренний пакет), также имеет переводы, и я хотел бы использовать easy_translation в этом пакете. Как я могу настроить свое основное приложение и пакет, чтобы у них обоих были свои собственные переводы?
Вот конфигурация моего основного приложения:
EasyLocalization(
supportedLocales: AppConfig.SUPPORTED_LANG.split(',').map((e) => Locale.fromSubtags(languageCode: e)).toList(),
path: 'lib/resources/assets/translations',
useOnlyLangCode: true,
assetLoader: CodegenLoader(),
startLocale: Locale(Intl.getCurrentLocale()),
fallbackLocale: Locale.fromSubtags(languageCode: AppConfig.DEFAULT_LANG),
child: MyApp(),
),
Все переводы моего основного приложения находятся внутри класса CodegenLoader. Я хотел бы сделать то же самое для своего пакета.
С уважением
Комментарии:
1. вы как-то решили это?
2. Я не использовал этот пакет. Просто простая LocalizationsDelegate с intl.
3. Да, я, вероятно, сделаю то же самое в будущем. На данный момент у меня есть хитрый обходной путь. Я опубликую это как ответ, поскольку это может кому-то помочь.
Ответ №1:
Прямо сейчас я думаю, что это невозможно. Но есть обходной путь, который может помочь некоторым людям:
- Добавьте
easy_localization
вpubspec.yaml
свой пакет - Используйте функцию tr(), как обычно, внутри кода пакета
- Добавьте ключи перевода, которые вы используете в пакете, в файл перевода вашего основного приложения
- Пример: если вы используете ключ перевода
welcome
в своем пакете, добавьте его"welcome": "Welcome to the App!"
вen.json
ваше основное приложение
- Пример: если вы используете ключ перевода
Конечно, это халтура, и она не работает, если основное приложение не использует easy_localization
но, возможно, это до тех пор, пока не будет найдено лучшее решение.