import 'package:args/command_runner.dart'; import 'dart:convert'; import 'dart:io'; import 'package:path/path.dart'; class UntranslatedCommand extends Command { @override get name => "untranslated"; @override get description => "Generate Untranslated Messages for ChatGPT based Translation"; @override run() async { final cwd = Directory.current; final file = jsonDecode( File(join(cwd.path, 'untranslated_messages.json')).readAsStringSync(), ) as Map; final englishMessages = jsonDecode( File(join(cwd.path, 'lib', 'l10n', 'app_en.arb')).readAsStringSync(), ) as Map; final messagesWithValues = {}; for (final MapEntry(key: locale, value: messages) in file.entries) { messagesWithValues[locale] = Map.fromEntries( messages .map( (message) => MapEntry(message, englishMessages[message]), ) .toList() .cast>(), ); } stdout.writeln( "Prompt:\n" "Translate following to their appropriate locale for flutter arb translations files." " Put the respective new translations in a map of their corresponding locale.", ); stdout.writeln( const JsonEncoder.withIndent(' ').convert(messagesWithValues), ); } }