1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import 'package:flutter/material.dart';
- enum Language {
- english,
- chinese,
- italian,
- french,
- }
- String stringFromLanguageName(Language language) {
- switch (language) {
- case Language.english:
- return "en";
- case Language.chinese:
- return "ch";
- case Language.italian:
- return "it";
- case Language.french:
- return "fr";
- }
- }
- Language languageFromString(String name) {
- Language language = Language.english;
- if (name == "ch") {
- language = Language.chinese;
- } else if (name == "it") {
- language = Language.italian;
- } else if (name == "fr") {
- language = Language.french;
- }
- return language;
- }
- Locale localeFromLanguageName(Language language) {
- switch (language) {
- case Language.english:
- return const Locale('en');
- case Language.chinese:
- return const Locale('zh', 'CN');
- case Language.italian:
- return const Locale('it', 'IT');
- case Language.french:
- return const Locale('fr', 'CA');
- }
- }
- class AppLanguage {
- Locale locale;
- //Default Constructor
- AppLanguage({required this.locale});
- factory AppLanguage.fromLanguage({required Language language}) {
- return AppLanguage(locale: localeFromLanguageName(language));
- }
- factory AppLanguage.fromName({required String name}) {
- return AppLanguage.fromLanguage(language: languageFromString(name));
- }
- }
|