BASE: Switch From EasyLocalization To GetX Localization.

This commit is contained in:
2025-12-04 16:56:39 +05:00
parent 157545f1c0
commit bf1d07a048
218 changed files with 2535 additions and 2313 deletions

View File

@@ -1,20 +1,37 @@
import 'dart:convert';
import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart' hide Trans;
import '../lang/app_en.dart';
import 'package:get/get.dart';
class LocalizationService extends Translations {
// Default locale
static const locale = Locale('en', 'US');
static Map<String, Map<String, String>> _keys = {};
static final locales = [const Locale('en')];
static const fallbackLocale = Locale('en', 'US');
static const supportedLocales = [
Locale('en', 'US'),
Locale('uz', 'UZ'),
Locale('ru', 'RU'),
];
// Keys and their translations
// Translations are separated maps in `lang` file
@override
Map<String, Map<String, String>> get keys => {'en_US': enUS};
Map<String, Map<String, String>> get keys => _keys;
// Gets locale from language, and updates the locale
void changeLocale(String lang) {
Get.updateLocale(Locale(lang));
// Load JSONs before starting the app
static Future<void> init() async {
_keys = {
"en_US": await _loadJson("assets/translations/en.json"),
"uz_UZ": await _loadJson("assets/translations/uz.json"),
"ru_RU": await _loadJson("assets/translations/ru.json"),
};
}
static Future<Map<String, String>> _loadJson(String path) async {
final data = await rootBundle.loadString(path);
return Map<String, String>.from(json.decode(data));
}
static void changeLocale(Locale locale) {
Get.updateLocale(locale);
}
}