| 1 | import 'dart:convert'; |
| 2 | import 'dart:io'; |
| 3 | |
| 4 | import 'print_verbose_dummy.dart'; |
| 5 | import 'utils/translation/translation_constants.dart'; |
| 6 | import 'utils/translation/translation_utils.dart'; |
| 7 | |
| 8 | const changelogsFilePath = "./assets/new-ui/changelog/text"; |
| 9 | |
| 10 | void main() async { |
| 11 | final List<dynamic> defaultLangChangelog = |
| 12 | jsonDecode(await File("$changelogsFilePath/changelog_$defaultLang.json").readAsString()) |
| 13 | as List<dynamic>; |
| 14 | |
| 15 | int currentLang = 0; |
| 16 | for (final lang in langs) { |
| 17 | int currentItem = 0; |
| 18 | if (lang == defaultLang) continue; |
| 19 | List<Map<String, String>> out = []; |
| 20 | for (final item in defaultLangChangelog) { |
| 21 | final itemMap = item as Map<String, dynamic>; |
| 22 | |
| 23 | late final String newTitle; |
| 24 | late final String newDescription; |
| 25 | |
| 26 | if (itemMap.containsKey("title") && |
| 27 | itemMap["title"] is String && |
| 28 | (itemMap["title"]! as String).isNotEmpty) { |
| 29 | newTitle = await getTranslation((itemMap["title"]! as String), lang); |
| 30 | } else { |
| 31 | newTitle = ""; |
| 32 | } |
| 33 | |
| 34 | if (itemMap.containsKey("description") && |
| 35 | itemMap["description"] is String && |
| 36 | (itemMap["description"]! as String).isNotEmpty) { |
| 37 | newDescription = await getTranslation((itemMap["description"]! as String), lang); |
| 38 | } else { |
| 39 | newDescription = ""; |
| 40 | } |
| 41 | |
| 42 | out.add({ |
| 43 | if (itemMap["icon"] != null) "icon": itemMap["icon"] as String, |
| 44 | if (itemMap["title"] != null) "title": newTitle, |
| 45 | if (itemMap["description"] != null) "description": newDescription, |
| 46 | }); |
| 47 | |
| 48 | currentItem++; |
| 49 | print( |
| 50 | "\r$currentLang/${langs.length} langs done, $currentItem/${defaultLangChangelog.length} items done"); |
| 51 | } |
| 52 | currentLang++; |
| 53 | await File("$changelogsFilePath/changelog_$lang.json").writeAsString(jsonEncode(out)); |
| 54 | } |
| 55 | } |