- 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.
71 lines
1.8 KiB
Dart
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}';
|
|
}
|
|
}
|