language.dart 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import 'package:flutter/material.dart';
  2. enum AppLanguage {
  3. english,
  4. chinese,
  5. italian,
  6. french,
  7. }
  8. String stringFromLanguage(AppLanguage language) {
  9. switch (language) {
  10. case AppLanguage.english:
  11. return "en";
  12. case AppLanguage.chinese:
  13. return "ch";
  14. case AppLanguage.italian:
  15. return "it";
  16. case AppLanguage.french:
  17. return "fr";
  18. }
  19. }
  20. AppLanguage languageFromString(String name) {
  21. AppLanguage language = AppLanguage.english;
  22. if (name == "ch") {
  23. language = AppLanguage.chinese;
  24. } else if (name == "it") {
  25. language = AppLanguage.italian;
  26. } else if (name == "fr") {
  27. language = AppLanguage.french;
  28. }
  29. return language;
  30. }
  31. Locale localeFromLanguageName(AppLanguage language) {
  32. switch (language) {
  33. case AppLanguage.english:
  34. return const Locale('en');
  35. case AppLanguage.chinese:
  36. return const Locale('zh', 'CN');
  37. case AppLanguage.italian:
  38. return const Locale('it', 'IT');
  39. case AppLanguage.french:
  40. return const Locale('fr', 'CA');
  41. }
  42. }
  43. AppLanguage languageFromLocale(Locale locale) {
  44. switch (locale.languageCode) {
  45. case "zh":
  46. return AppLanguage.chinese;
  47. case "it":
  48. return AppLanguage.italian;
  49. case "fr":
  50. return AppLanguage.french;
  51. default:
  52. return AppLanguage.english;
  53. }
  54. }