compareJsonKeys method

void compareJsonKeys(
  1. String locale
)

Implementation

void compareJsonKeys(String locale) {
  final defaultFile = File('$folderPath/$defaultLocale.json');
  final targetFile = File('$folderPath/$locale.json');

  if (!defaultFile.existsSync() || !targetFile.existsSync()) {
    print('One or both files do not exist.');
    return;
  }
  try {
    print('$locale.json:');

    final defaultJson = jsonDecode(defaultFile.readAsStringSync()) as Map<String, dynamic>;
    final targetJson = jsonDecode(targetFile.readAsStringSync()) as Map<String, dynamic>;

    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(', ')}');
      }
    }
  } catch (error) {
    print('❌ Invalid JSON format');
  }
}