collect method
Collects and returns the value produced by this wizard step.
Implementation
@override
LocalizationConfig collect() {
LoggerService.blank();
LoggerService.info('Localization');
final enabled = PromptService.confirm(
'Enable localization?',
defaultValue: current?.enabled ?? false,
);
if (!enabled) {
return LocalizationConfig(
enabled: false,
arbDir: current?.arbDir ?? 'lib/l10n',
templateArb: current?.templateArb ?? 'app_en.arb',
outputDir: current?.outputDir ?? 'lib/gen/l10n',
outputFile: current?.outputFile ?? 'app_localizations.dart',
defaultLocale: current?.defaultLocale ?? 'en',
locales: current?.locales ?? const ['en'],
);
}
final arbDir = PromptService.ask(
'ARB directory',
defaultValue: current?.arbDir ?? 'lib/l10n',
);
final defaultLocale = PromptService.ask(
'Default locale',
defaultValue: current?.defaultLocale ?? 'en',
);
final templateArb = PromptService.ask(
'Template ARB file',
defaultValue: _resolveTemplateArb(
defaultLocale,
),
);
final outputDir = PromptService.ask(
'Generated output directory',
defaultValue: current?.outputDir ?? 'lib/gen/l10n',
);
final outputFile = PromptService.ask(
'Output localization file',
defaultValue: current?.outputFile ?? 'app_localizations.dart',
);
final localeInput = PromptService.ask(
'Supported locales',
defaultValue: current?.locales.join(',') ?? defaultLocale,
);
final locales = localeInput
.split(',')
.map((locale) => locale.trim())
.where((locale) => locale.isNotEmpty)
.toSet()
.toList();
return LocalizationConfig(
enabled: true,
arbDir: arbDir,
templateArb: templateArb,
outputDir: outputDir,
outputFile: outputFile,
defaultLocale: defaultLocale,
locales: locales,
);
}