Vaibhav Surve 99902e743c Flutter application
- Created generated_plugin_registrant.cc and generated_plugin_registrant.h to manage plugin registration.
- Added generated_plugins.cmake for plugin configuration in CMake.
- Implemented CMakeLists.txt for the Windows runner, defining build settings and dependencies.
- Created Runner.rc for application resources including versioning and icons.
- Developed flutter_window.cpp and flutter_window.h to manage the Flutter window lifecycle.
- Implemented main.cpp as the entry point for the Windows application.
- Added resource.h for resource definitions.
- Included app icon in resources.
- Created runner.exe.manifest for application settings.
- Developed utils.cpp and utils.h for console management and command line argument handling.
- Implemented win32_window.cpp and win32_window.h for high DPI-aware window management.
2025-04-17 12:30:38 +05:30

71 lines
1.8 KiB
Dart

import 'package:marco/helpers/services/storage/local_storage.dart';
import 'package:marco/helpers/theme/theme_customizer.dart';
import 'package:flutter/material.dart';
class Language {
final Locale locale;
final bool supportRTL;
final String languageName;
static List<Language> languages = [
Language(Locale('en'), "English"),
Language(Locale('hi'), "हिंदी"),
Language(Locale('es'), "Español"),
Language(
Locale('ar'),
"عربي",
true,
),
Language(Locale('fr'), "Français"),
];
Language(this.locale, this.languageName, [this.supportRTL = false]);
static Future<bool> init() async {
ThemeCustomizer.instance.currentLanguage = await getLanguage();
return true;
}
static List<Locale> getLocales() {
return languages.map((e) => e.locale).toList();
}
static List<String> getLanguagesCodes() {
return languages.map((e) => e.locale.languageCode).toList();
}
static Future<Language> getLanguage() async {
Language? language;
String? langCode = LocalStorage.getLanguage();
if (langCode != null) {
language = findFromLocale(Locale(langCode));
}
return language ?? languages.first;
}
static Language getLanguageFromCode(String code) {
Language selectedLang = languages.first;
for (var language in languages) {
if (language.locale.languageCode == code) selectedLang = language;
}
return selectedLang;
}
static Language? findFromLocale(Locale locale) {
for (Language language in languages) {
if (language.locale.languageCode == locale.languageCode) return language;
}
return null;
}
Language clone() {
return Language(locale, languageName, supportRTL);
}
@override
String toString() {
return 'Language{locale: $locale, isRTL: $supportRTL, languageName: $languageName}';
}
}