Справочная информация:
Я определил «интернационализацию» в соответствии с официальным указанием .
. Я могу получить объект Localization
из любого метода сборки: вызов
final AppLocalizations appLocalizations = AppLocalizations.of(context);
, который определяется как
static AppLocalizations of(BuildContext context) {
return Localizations.of<AppLocalizations>(context, AppLocalizations);
}
Пока все хорошо, все в порядке.
Проблема:
Я хочу составить список локализованных элементов.
List<Data> setupDataList(AppLocalizations appLocalizations) {
final List<Data> dataList = <Data>[
Data(
code: Data.admitDate,
name: appLocalizations.labelAdmitDate(),
),
Data(
code: Data.patientName,
name: appLocalizations.labelPatientName(),
),
];
return dataList;
}
и в методе сборки я вызываю вышеуказанный метод для построения локализованного списка, как показано ниже.
Widget build(BuildContext context) {
final AppLocalizations appLocalizations = AppLocalizations.of(context);
///constructs the list here each time the build method gets called.
///I am doing this only because I can't get the AppLocalization object from the initState method
///using AppLocalizations.of(context).
///Is there any other way to improve this logic????
final List<Data> dataList = setupDataList(appLocalizations);
//...
//return Widget that uses DataList list object.
}
В любом случае можно получить объект AppLocalization без помощь «контекста» ???