xworkmate-app/lib/i18n/app_language.dart
2026-03-11 15:25:33 +08:00

42 lines
974 B
Dart

import 'package:flutter/material.dart';
enum AppLanguage { zh, en }
extension AppLanguageCopy on AppLanguage {
String get code => switch (this) {
AppLanguage.zh => 'zh',
AppLanguage.en => 'en',
};
String get compactLabel => switch (this) {
AppLanguage.zh => '',
AppLanguage.en => 'EN',
};
String get buttonLabel => switch (this) {
AppLanguage.zh => '中 / EN',
AppLanguage.en => 'EN / 中',
};
static AppLanguage fromJsonValue(String? value) {
return AppLanguage.values.firstWhere(
(item) => item.name == value,
orElse: () => AppLanguage.zh,
);
}
}
AppLanguage _activeAppLanguage = AppLanguage.zh;
AppLanguage get activeAppLanguage => _activeAppLanguage;
Locale get activeAppLocale => Locale(_activeAppLanguage.code);
void setActiveAppLanguage(AppLanguage language) {
_activeAppLanguage = language;
}
String appText(String zh, String en) {
return _activeAppLanguage == AppLanguage.zh ? zh : en;
}