initial commit

This commit is contained in:
nyne
2024-09-29 16:17:03 +08:00
commit f08c5cccb9
196 changed files with 16761 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
import 'dart:convert';
import 'package:flutter/services.dart';
import '../foundation/app.dart';
extension AppTranslation on String {
String _translate() {
var locale = App.locale;
var key = "${locale.languageCode}_${locale.countryCode}";
if (locale.languageCode == "en") {
key = "en_US";
}
return (translations[key]?[this]) ?? this;
}
String get tl => _translate();
String get tlEN => translations["en_US"]![this] ?? this;
String tlParams(Map<String, Object> values) {
var res = _translate();
for (var entry in values.entries) {
res = res.replaceFirst("@${entry.key}", entry.value.toString());
}
return res;
}
static late final Map<String, Map<String, String>> translations;
static Future<void> init() async{
var data = await rootBundle.load("assets/translation.json");
var json = jsonDecode(utf8.decode(data.buffer.asUint8List()));
translations = { for (var e in json.entries) e.key : Map<String, String>.from(e.value) };
}
}
extension ListTranslation on List<String> {
List<String> _translate() {
return List.generate(length, (index) => this[index].tl);
}
List<String> get tl => _translate();
}