updateJson function
Updates translation file for a specific language
Implementation
Future<void> updateJson(
String lang,
Map<String, String> keys,
String sourceLang,
) async {
final outputPath = 'assets/translations/$lang.json';
final oldJson = loadJson(outputPath);
final newJson = <String, String>{};
print('🌐 Translating to [$lang]...');
for (final entry in keys.entries) {
if (oldJson.containsKey(entry.key)) {
newJson[entry.key] = oldJson[entry.key]; // keep existing
} else {
try {
final translation = await translator.translate(
entry.value,
from: sourceLang,
to: lang,
);
newJson[entry.key] = translation.text;
print(' ${entry.key} => ${translation.text}');
} catch (_) {
newJson[entry.key] = entry.key; // fallback if translation fails
}
}
}
final jsonContent = JsonEncoder.withIndent(' ').convert(newJson);
writeFileSafely(outputPath, jsonContent);
print('✅ $lang.json updated');
}