61 lines
1.3 KiB
Dart
Raw Normal View History

2022-01-28 21:03:03 +05:30
import 'package:flutter/material.dart';
2022-01-28 22:08:57 +05:30
enum AppLanguage {
2022-01-28 21:03:03 +05:30
english,
chinese,
italian,
french,
}
String stringFromLanguage(AppLanguage language) {
2022-01-28 21:03:03 +05:30
switch (language) {
2022-01-28 22:08:57 +05:30
case AppLanguage.english:
2022-01-28 21:03:03 +05:30
return "en";
2022-01-28 22:08:57 +05:30
case AppLanguage.chinese:
2022-01-28 21:03:03 +05:30
return "ch";
2022-01-28 22:08:57 +05:30
case AppLanguage.italian:
2022-01-28 21:03:03 +05:30
return "it";
2022-01-28 22:08:57 +05:30
case AppLanguage.french:
2022-01-28 21:03:03 +05:30
return "fr";
}
}
2022-01-28 22:08:57 +05:30
AppLanguage languageFromString(String name) {
AppLanguage language = AppLanguage.english;
2022-01-28 21:03:03 +05:30
if (name == "ch") {
2022-01-28 22:08:57 +05:30
language = AppLanguage.chinese;
2022-01-28 21:03:03 +05:30
} else if (name == "it") {
2022-01-28 22:08:57 +05:30
language = AppLanguage.italian;
2022-01-28 21:03:03 +05:30
} else if (name == "fr") {
2022-01-28 22:08:57 +05:30
language = AppLanguage.french;
2022-01-28 21:03:03 +05:30
}
return language;
}
2022-01-28 22:08:57 +05:30
Locale localeFromLanguageName(AppLanguage language) {
2022-01-28 21:03:03 +05:30
switch (language) {
2022-01-28 22:08:57 +05:30
case AppLanguage.english:
2022-01-28 21:03:03 +05:30
return const Locale('en');
2022-01-28 22:08:57 +05:30
case AppLanguage.chinese:
2022-01-28 21:03:03 +05:30
return const Locale('zh', 'CN');
2022-01-28 22:08:57 +05:30
case AppLanguage.italian:
2022-01-28 21:03:03 +05:30
return const Locale('it', 'IT');
2022-01-28 22:08:57 +05:30
case AppLanguage.french:
2022-01-28 21:03:03 +05:30
return const Locale('fr', 'CA');
}
}
AppLanguage languageFromLocale(Locale locale) {
switch (locale.languageCode) {
case "zh":
return AppLanguage.chinese;
case "it":
return AppLanguage.italian;
case "fr":
return AppLanguage.french;
default:
return AppLanguage.english;
}
}