compareJsonKeys method

void compareJsonKeys(
  1. 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(', ')}');
    }
  }
}