generateTranslationKeys function
Future<void>
generateTranslationKeys(
)
Implementation
Future<void> generateTranslationKeys() async {
DartgenxConfig config = DartgenxConfig.load();
String? inputFilePath;
if (config.inputPath?.translationFile == null) {
inputFilePath = Input(
prompt:
'Enter the full path to the translations file.',
).interact();
} else {
inputFilePath = config.inputPath?.translationFile ?? "";
}
final inputFile = File(inputFilePath);
if (!inputFile.existsSync()) {
ConsoleLog.error('Input file not found: $inputFilePath');
return;
}
final content = await inputFile.readAsString();
final Map<String, dynamic> data = jsonDecode(content);
final buffer = StringBuffer();
buffer.writeln('class TranslationKeys {');
buffer.writeln(' TranslationKeys._();\n');
for (final key in data.keys) {
buffer.writeln(' static const String ${ProjectUtils.toCamelCase(key)} = "$key";');
}
buffer.writeln('}');
final outputFile = File(config.outputPath?.translationKeys ?? 'lib/localization/translation_keys.dart');
outputFile.createSync(recursive: true);
outputFile.writeAsStringSync(buffer.toString());
ConsoleLog.success('TranslationKeys generated at ${outputFile.path}');
}