dev
dart 55 lines 1.78 KB
Raw
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 }