compareJsonKeys method
void
compareJsonKeys(
- String locale
)
Implementation
void compareJsonKeys(String locale) {
final defaultFile = File('$folderPath/$defaultLocale.json');
final targetFile = File('$folderPath/$locale.json');
print('$locale.json:');
if (!defaultFile.existsSync()) {
print('$defaultLocale.json does not exist.');
return;
}
if (!targetFile.existsSync()) {
print('$locale.json does not exist.');
return;
}
var defaultJson = <String, dynamic>{};
var targetJson = <String, dynamic>{};
try {
defaultJson = jsonDecode(defaultFile.readAsStringSync()) as Map<String, dynamic>;
targetJson = jsonDecode(targetFile.readAsStringSync()) as Map<String, dynamic>;
} catch (error) {
print('❌ Invalid JSON format');
}
final enKeys = defaultJson.keys.toSet();
final deKeys = targetJson.keys.toSet();
final missingKeys = enKeys.difference(deKeys);
final extraKeys = deKeys.difference(enKeys);
if (missingKeys.isEmpty && extraKeys.isEmpty) {
print('✅ All keys match!');
} else {
if (missingKeys.isNotEmpty) {
print('❌ Keys missing: ${missingKeys.join(', ')}');
}
if (extraKeys.isNotEmpty) {
print('❌ Extra keys: ${extraKeys.join(', ')}');
}
}
}