Browse Source

上传性别语言配置

newdev_shunjiawei
liwei1dao 6 months ago
parent
commit
2701c13cfb
  1. 4
      lib/core/translations/language/ar_sa.dart
  2. 4
      lib/core/translations/language/bg_bg.dart
  3. 4
      lib/core/translations/language/cs_cz.dart
  4. 4
      lib/core/translations/language/da_dk.dart
  5. 4
      lib/core/translations/language/de_de.dart
  6. 4
      lib/core/translations/language/el_gr.dart
  7. 4
      lib/core/translations/language/en_us.dart
  8. 4
      lib/core/translations/language/es_es.dart
  9. 4
      lib/core/translations/language/et_ee.dart
  10. 4
      lib/core/translations/language/fa_ir.dart
  11. 4
      lib/core/translations/language/fi_fi.dart
  12. 4
      lib/core/translations/language/fr_fr.dart
  13. 4
      lib/core/translations/language/hi_in.dart
  14. 4
      lib/core/translations/language/hr_hr.dart
  15. 4
      lib/core/translations/language/hu_hu.dart
  16. 4
      lib/core/translations/language/id_id.dart
  17. 4
      lib/core/translations/language/is_is.dart
  18. 4
      lib/core/translations/language/it_it.dart
  19. 4
      lib/core/translations/language/ja_jp.dart
  20. 4
      lib/core/translations/language/ko_kr.dart
  21. 4
      lib/core/translations/language/lt_lt.dart
  22. 4
      lib/core/translations/language/lv_lv.dart
  23. 4
      lib/core/translations/language/ms_my.dart
  24. 4
      lib/core/translations/language/nb_no.dart
  25. 4
      lib/core/translations/language/nl_nl.dart
  26. 4
      lib/core/translations/language/pl_pl.dart
  27. 4
      lib/core/translations/language/pt_pt.dart
  28. 4
      lib/core/translations/language/ro_ro.dart
  29. 4
      lib/core/translations/language/ru_ru.dart
  30. 4
      lib/core/translations/language/sk_sk.dart
  31. 4
      lib/core/translations/language/sl_si.dart
  32. 4
      lib/core/translations/language/sr_rs.dart
  33. 4
      lib/core/translations/language/sv_se.dart
  34. 4
      lib/core/translations/language/th_th.dart
  35. 4
      lib/core/translations/language/tl_ph.dart
  36. 4
      lib/core/translations/language/tr_tr.dart
  37. 4
      lib/core/translations/language/uk_ua.dart
  38. 4
      lib/core/translations/language/vi_vn.dart
  39. 4
      lib/core/translations/language/zh_cn.dart
  40. 4
      lib/core/translations/language/zh_hk.dart
  41. 4
      lib/core/translations/language/zh_tw.dart
  42. 6
      lib/data/models/user_Info.dart
  43. 75
      lib/data/services/language_manager.dart
  44. 13
      lib/modules/profile/controllers/profile_controller.dart
  45. 142
      lib/modules/profile/views/profile_view.dart

4
lib/core/translations/language/ar_sa.dart

@ -1141,6 +1141,10 @@ const Map<String, String> arSA = {
"about": "حول",
"enterNickname": "يرجى إدخال لقب",
"notSet": "غير محدد",
"gender": "الجنس",
"male": "ذكر",
"female": "أنثى",
"selectGender": "اختر الجنس",
"accountSetting": "إعدادات الحساب",
"logout": "تسجيل الخروج",
"logoutTips": "هل أنت متأكد من أنك تريد تسجيل الخروج من الحساب الحالي؟",

4
lib/core/translations/language/bg_bg.dart

@ -1173,6 +1173,10 @@ const Map<String, String> bgBG = {
"about": "За",
"enterNickname": "Моля въведете прякор",
"notSet": "Не е зададено",
"gender": "Пол",
"male": "Мъж",
"female": "Жена",
"selectGender": "Изберете пол",
"accountSetting": "Настройки на акаунта",
"logout": "Излизане",
"logoutTips": "Сигурни ли сте, че искате да излезете от текущия акаунт?",

4
lib/core/translations/language/cs_cz.dart

@ -1156,6 +1156,10 @@ const Map<String, String> csCZ = {
"about": "O aplikaci",
"enterNickname": "Zadejte prosím přezdívku",
"notSet": "Nenastaveno",
"gender": "Pohlaví",
"male": "Muž",
"female": "Žena",
"selectGender": "Vyberte pohlaví",
"accountSetting": "Nastavení účtu",
"logout": "Odhlásit se",
"logoutTips": "Opravdu se chcete odhlásit z aktuálního účtu?",

4
lib/core/translations/language/da_dk.dart

@ -1160,6 +1160,10 @@ const Map<String, String> daDK = {
"about": "Om",
"enterNickname": "Indtast venligst kaldenavn",
"notSet": "Ikke indstillet",
"gender": "Køn",
"male": "Mand",
"female": "Kvinde",
"selectGender": "Vælg køn",
"accountSetting": "Kontoindstillinger",
"logout": "Log ud",
"logoutTips": "Er du sikker på, at du vil logge ud af den nuværende konto?",

4
lib/core/translations/language/de_de.dart

@ -1181,6 +1181,10 @@ const Map<String, String> deDE = {
"about": "Über",
"enterNickname": "Bitte geben Sie Ihren Spitznamen ein",
"notSet": "Nicht festgelegt",
"gender": "Geschlecht",
"male": "Männlich",
"female": "Weiblich",
"selectGender": "Geschlecht wählen",
"accountSetting": "Kontoeinstellungen",
"logout": "Abmelden",
"logoutTips":

4
lib/core/translations/language/el_gr.dart

@ -1184,6 +1184,10 @@ const Map<String, String> elGR = {
"about": "Σχετικά",
"enterNickname": "Εισάγετε ψευδώνυμο",
"notSet": "Δεν έχει οριστεί",
"gender": "Φύλο",
"male": "Άνδρας",
"female": "Γυναίκα",
"selectGender": "Επιλέξτε φύλο",
"accountSetting": "Ρυθμίσεις λογαριασμού",
"logout": "Αποσύνδεση",
"logoutTips":

4
lib/core/translations/language/en_us.dart

@ -1159,6 +1159,10 @@ const Map<String, String> enUS = {
"about": "About",
"enterNickname": "Please enter your nickname",
"notSet": "Not Set",
"gender": "Gender",
"male": "Male",
"female": "Female",
"selectGender": "Select Gender",
"accountSetting": "Account Setting",
"logout": "Log Out",
"logoutTips": "Are you sure you want to log out of the current account?",

4
lib/core/translations/language/es_es.dart

@ -1180,6 +1180,10 @@ const Map<String, String> esES = {
"about": "Acerca de",
"enterNickname": "Ingresa apodo",
"notSet": "No establecido",
"gender": "Género",
"male": "Masculino",
"female": "Femenino",
"selectGender": "Seleccionar género",
"accountSetting": "Configuración de cuenta",
"logout": "Cerrar sesión",
"logoutTips":

4
lib/core/translations/language/et_ee.dart

@ -1160,6 +1160,10 @@ const Map<String, String> etEE = {
"about": "Kohta",
"enterNickname": "Sisesta hüüdnimi",
"notSet": "Pole määratud",
"gender": "Sugu",
"male": "Mees",
"female": "Naine",
"selectGender": "Valige sugu",
"accountSetting": "Konto seaded",
"logout": "Logi välja",
"logoutTips": "Kas oled kindel, et tahad praegusest kontost välja logida?",

4
lib/core/translations/language/fa_ir.dart

@ -1144,6 +1144,10 @@ const Map<String, String> faIR = {
"about": "درباره",
"enterNickname": "لطفاً نام مستعار خود را وارد کنید",
"notSet": "تنظیم نشده",
"gender": "جنسیت",
"male": "مرد",
"female": "زن",
"selectGender": "جنسیت را انتخاب کنید",
"accountSetting": "تنظیمات حساب",
"logout": "خروج از حساب",
"logoutTips": "آیا مطمئن هستید که می‌خواهید از حساب فعلی خارج شوید؟",

4
lib/core/translations/language/fi_fi.dart

@ -1158,6 +1158,10 @@ const Map<String, String> fiFI = {
"about": "Tietoja",
"enterNickname": "Anna lempinimi",
"notSet": "Ei asetettu",
"gender": "Sukupuoli",
"male": "Mies",
"female": "Nainen",
"selectGender": "Valitse sukupuoli",
"accountSetting": "Tilin asetukset",
"logout": "Kirjaudu ulos",
"logoutTips": "Oletko varma, että haluat kirjautua ulos nykyisestä tilistä?",

4
lib/core/translations/language/fr_fr.dart

@ -1189,6 +1189,10 @@ const Map<String, String> frFR = {
"about": "À propos",
"enterNickname": "Veuillez saisir votre pseudo",
"notSet": "Non défini",
"gender": "Genre",
"male": "Homme",
"female": "Femme",
"selectGender": "Sélectionner le genre",
"accountSetting": "Paramètres du compte",
"logout": "Se déconnecter",
"logoutTips": "Êtes-vous sûr de vouloir vous déconnecter du compte actuel ?",

4
lib/core/translations/language/hi_in.dart

@ -1159,6 +1159,10 @@ const Map<String, String> hiIN = {
"about": "के बारे में",
"enterNickname": "कृपया एक उपनाम दर्ज करें",
"notSet": "सेट नहीं है",
"gender": "लिंग",
"male": "पुरुष",
"female": "महिला",
"selectGender": "लिंग चुनें",
"accountSetting": "खाता सेटिंग",
"logout": "लॉग आउट करें",
"logoutTips": "क्या आप वाकई वर्तमान खाते से लॉग आउट करना चाहते हैं?",

4
lib/core/translations/language/hr_hr.dart

@ -1169,6 +1169,10 @@ const Map<String, String> hrHR = {
"about": "O nama",
"enterNickname": "Unesite nadimak",
"notSet": "Nije postavljeno",
"gender": "Spol",
"male": "Muški",
"female": "Ženski",
"selectGender": "Odaberite spol",
"accountSetting": "Postavke računa",
"logout": "Odjavi se",
"logoutTips": "Jeste li sigurni da se želite odjaviti s trenutnog računa?",

4
lib/core/translations/language/hu_hu.dart

@ -1172,6 +1172,10 @@ const Map<String, String> huHU = {
"about": "Névjegy",
"enterNickname": "Kérjük, adjon meg egy becenevet",
"notSet": "Nincs beállítva",
"gender": "Nem",
"male": "Férfi",
"female": "Nő",
"selectGender": "Nem kiválasztása",
"accountSetting": "Fiókbeállítások",
"logout": "Kijelentkezés",
"logoutTips": "Biztosan ki szeretne jelentkezni a jelenlegi fiókból?",

4
lib/core/translations/language/id_id.dart

@ -1159,6 +1159,10 @@ const Map<String, String> idID = {
"about": "Tentang",
"enterNickname": "Silakan masukkan nama panggilan",
"notSet": "Tidak Diatur",
"gender": "Jenis Kelamin",
"male": "Laki-laki",
"female": "Perempuan",
"selectGender": "Pilih jenis kelamin",
"accountSetting": "Pengaturan Akun",
"logout": "Keluar",
"logoutTips": "Apakah Anda yakin ingin keluar dari akun saat ini?",

4
lib/core/translations/language/is_is.dart

@ -1159,6 +1159,10 @@ const Map<String, String> isIS = {
"about": "Um",
"enterNickname": "Vinsamlegast sláðu inn gælunafn",
"notSet": "Óstillt",
"gender": "Kyn",
"male": "Karl",
"female": "Kona",
"selectGender": "Veldu kyn",
"accountSetting": "Reikningsstillingar",
"logout": "Útskráning",
"logoutTips": "Ertu viss um að þú viljir skrá þig út af núverandi reikningi?",

4
lib/core/translations/language/it_it.dart

@ -1181,6 +1181,10 @@ const Map<String, String> itIT = {
"about": "Informazioni",
"enterNickname": "Inserisci un nickname",
"notSet": "Non impostato",
"gender": "Genere",
"male": "Maschio",
"female": "Femmina",
"selectGender": "Seleziona genere",
"accountSetting": "Impostazioni account",
"logout": "Esci",
"logoutTips": "Sei sicuro di voler uscire dall'account corrente?",

4
lib/core/translations/language/ja_jp.dart

@ -1079,6 +1079,10 @@ const Map<String, String> jaJP = {
"about": "について",
"enterNickname": "ニックネームを入力してください",
"notSet": "未設定",
"gender": "性別",
"male": "男性",
"female": "女性",
"selectGender": "性別を選択",
"accountSetting": "アカウント設定",
"logout": "ログアウト",
"logoutTips": "現在のアカウントからログアウトしてもよろしいですか?",

4
lib/core/translations/language/ko_kr.dart

@ -1076,6 +1076,10 @@ const Map<String, String> koKR = {
"about": "정보",
"enterNickname": "닉네임을 입력하세요",
"notSet": "설정되지 않음",
"gender": "성별",
"male": "남성",
"female": "여성",
"selectGender": "성별 선택",
"accountSetting": "계정 설정",
"logout": "로그아웃",
"logoutTips": "현재 계정에서 로그아웃하시겠습니까?",

4
lib/core/translations/language/lt_lt.dart

@ -1169,6 +1169,10 @@ const Map<String, String> ltLT = {
"about": "Apie",
"enterNickname": "Įveskite slapyvardį",
"notSet": "Nenustatyta",
"gender": "Lytis",
"male": "Vyras",
"female": "Moteris",
"selectGender": "Pasirinkite lytį",
"accountSetting": "Paskyros nustatymai",
"logout": "Atsijungti",
"logoutTips": "Ar tikrai norite atsijungti nuo dabartinės paskyros?",

4
lib/core/translations/language/lv_lv.dart

@ -1174,6 +1174,10 @@ const Map<String, String> lvLV = {
"about": "Par",
"enterNickname": "Lūdzu, ievadiet segvārdu",
"notSet": "Nav iestatīts",
"gender": "Dzimums",
"male": "Vīrietis",
"female": "Sieviete",
"selectGender": "Izvēlieties dzimumu",
"accountSetting": "Konta iestatījumi",
"logout": "Izrakstīties",
"logoutTips":

4
lib/core/translations/language/ms_my.dart

@ -1158,6 +1158,10 @@ const Map<String, String> msMY = {
"about": "Mengenai",
"enterNickname": "Sila masukkan nama samaran",
"notSet": "Tidak Ditetapkan",
"gender": "Jantina",
"male": "Lelaki",
"female": "Perempuan",
"selectGender": "Pilih jantina",
"accountSetting": "Tetapan Akaun",
"logout": "Log Keluar",
"logoutTips": "Adakah anda pasti mahu log keluar dari akaun semasa?",

4
lib/core/translations/language/nb_no.dart

@ -1166,6 +1166,10 @@ const Map<String, String> nbNO = {
"about": "Om",
"enterNickname": "Vennligst skriv inn et kallenavn",
"notSet": "Ikke angitt",
"gender": "Kjønn",
"male": "Mann",
"female": "Kvinne",
"selectGender": "Velg kjønn",
"accountSetting": "Kontoinnstillinger",
"logout": "Logg ut",
"logoutTips": "Er du sikker på at du vil logge ut av den nåværende kontoen?",

4
lib/core/translations/language/nl_nl.dart

@ -1046,6 +1046,10 @@ const Map<String, String> nlNL = {
"about": "Over",
"enterNickname": "Voer een bijnaam in",
"notSet": "Niet ingesteld",
"gender": "Geslacht",
"male": "Man",
"female": "Vrouw",
"selectGender": "Selecteer geslacht",
"accountSetting": "Accountinstellingen",
"logout": "Uitloggen",
"logoutTips": "Weet u zeker dat u wilt uitloggen bij het huidige account?",

4
lib/core/translations/language/pl_pl.dart

@ -1175,6 +1175,10 @@ const Map<String, String> plPL = {
"about": "O nas",
"enterNickname": "Wprowadź pseudonim",
"notSet": "Nie ustawiono",
"gender": "Płeć",
"male": "Mężczyzna",
"female": "Kobieta",
"selectGender": "Wybierz płeć",
"accountSetting": "Ustawienia konta",
"logout": "Wyloguj się",
"logoutTips": "Czy na pewno chcesz wylogować się z obecnego konta?",

4
lib/core/translations/language/pt_pt.dart

@ -1186,6 +1186,10 @@ const Map<String, String> ptPT = {
"about": "Sobre",
"enterNickname": "Introduza uma alcunha",
"notSet": "Não Definido",
"gender": "Gênero",
"male": "Masculino",
"female": "Feminino",
"selectGender": "Selecionar gênero",
"accountSetting": "Definições da Conta",
"logout": "Terminar Sessão",
"logoutTips": "Tem a certeza que quer terminar a sessão da conta atual?",

4
lib/core/translations/language/ro_ro.dart

@ -1173,6 +1173,10 @@ const Map<String, String> roRO = {
"about": "Despre",
"enterNickname": "Introduceți un pseudonim",
"notSet": "Nesetat",
"gender": "Gen",
"male": "Masculin",
"female": "Feminin",
"selectGender": "Selectați genul",
"accountSetting": "Setări cont",
"logout": "Deconectare",
"logoutTips":

4
lib/core/translations/language/ru_ru.dart

@ -1167,6 +1167,10 @@ const Map<String, String> ruRU = {
"about": "О нас",
"enterNickname": "Пожалуйста, введите псевдоним",
"notSet": "Не установлено",
"gender": "Пол",
"male": "Мужской",
"female": "Женский",
"selectGender": "Выберите пол",
"accountSetting": "Настройки аккаунта",
"logout": "Выйти",
"logoutTips": "Вы уверены, что хотите выйти из текущего аккаунта?",

4
lib/core/translations/language/sk_sk.dart

@ -1160,6 +1160,10 @@ const Map<String, String> skSK = {
"about": "O nás",
"enterNickname": "Zadajte prezývku",
"notSet": "Nenastavené",
"gender": "Pohlavie",
"male": "Muž",
"female": "Žena",
"selectGender": "Vyberte pohlavie",
"accountSetting": "Nastavenia účtu",
"logout": "Odhlásiť sa",
"logoutTips": "Ste si istí, že sa chcete odhlásiť z aktuálneho účtu?",

4
lib/core/translations/language/sl_si.dart

@ -1168,6 +1168,10 @@ const Map<String, String> slSI = {
"about": "O nas",
"enterNickname": "Vnesite vzdevek",
"notSet": "Ni nastavljeno",
"gender": "Spol",
"male": "Moški",
"female": "Ženska",
"selectGender": "Izberite spol",
"accountSetting": "Nastavitve računa",
"logout": "Odjava",
"logoutTips":

4
lib/core/translations/language/sr_rs.dart

@ -1161,6 +1161,10 @@ const Map<String, String> srRS = {
"about": "O nama",
"enterNickname": "Unesite nadimak",
"notSet": "Nije podešeno",
"gender": "Пол",
"male": "Мушки",
"female": "Женски",
"selectGender": "Изаберите пол",
"accountSetting": "Podešavanja naloga",
"logout": "Odjavi se",
"logoutTips":

4
lib/core/translations/language/sv_se.dart

@ -1167,6 +1167,10 @@ const Map<String, String> svSE = {
"about": "Om",
"enterNickname": "Ange ett smeknamn",
"notSet": "Inte inställt",
"gender": "Kön",
"male": "Man",
"female": "Kvinna",
"selectGender": "Välj kön",
"accountSetting": "Kontoinställningar",
"logout": "Logga ut",
"logoutTips":

4
lib/core/translations/language/th_th.dart

@ -1138,6 +1138,10 @@ const Map<String, String> thTH = {
"about": "เกี่ยวกับ",
"enterNickname": "กรุณาใส่ชื่อเล่น",
"notSet": "ยังไม่ได้ตั้งค่า",
"gender": "เพศ",
"male": "ชาย",
"female": "หญิง",
"selectGender": "เลือกเพศ",
"accountSetting": "การตั้งค่าบัญชี",
"logout": "ออกจากระบบ",
"logoutTips": "คุณแน่ใจหรือไม่ว่าต้องการออกจากระบบบัญชีปัจจุบัน",

4
lib/core/translations/language/tl_ph.dart

@ -1187,6 +1187,10 @@ const Map<String, String> tlPH = {
"about": "Tungkol sa",
"enterNickname": "Pakilagay ang palayaw",
"notSet": "Hindi Naitakda",
"gender": "Kasarian",
"male": "Lalaki",
"female": "Babae",
"selectGender": "Pumili ng kasarian",
"accountSetting": "Setting ng Account",
"logout": "Mag-logout",
"logoutTips":

4
lib/core/translations/language/tr_tr.dart

@ -1161,6 +1161,10 @@ const Map<String, String> trTR = {
"about": "Hakkında",
"enterNickname": "Lütfen bir takma ad girin",
"notSet": "Ayarlanmadı",
"gender": "Cinsiyet",
"male": "Erkek",
"female": "Kadın",
"selectGender": "Cinsiyet seçin",
"accountSetting": "Hesap Ayarları",
"logout": "Çıkış Yap",
"logoutTips": "Mevcut hesaptan çıkmak istediğinizden emin misiniz?",

4
lib/core/translations/language/uk_ua.dart

@ -1169,6 +1169,10 @@ const Map<String, String> ukUA = {
"about": "Про нас",
"enterNickname": "Будь ласка, введіть псевдонім",
"notSet": "Не встановлено",
"gender": "Стать",
"male": "Чоловіча",
"female": "Жіноча",
"selectGender": "Оберіть стать",
"accountSetting": "Налаштування облікового запису",
"logout": "Вийти",
"logoutTips": "Ви впевнені, що хочете вийти з поточного облікового запису?",

4
lib/core/translations/language/vi_vn.dart

@ -1149,6 +1149,10 @@ const Map<String, String> viVN = {
"about": "Về chúng tôi",
"enterNickname": "Vui lòng nhập biệt danh",
"notSet": "Chưa đặt",
"gender": "Giới tính",
"male": "Nam",
"female": "Nữ",
"selectGender": "Chọn giới tính",
"accountSetting": "Cài đặt tài khoản",
"logout": "Đăng xuất",
"logoutTips":

4
lib/core/translations/language/zh_cn.dart

@ -1068,6 +1068,10 @@ const Map<String, String> zhCN = {
"about": "关于",
"enterNickname": "请输入昵称",
"notSet": "未设置",
"gender": "性别",
"male": "男",
"female": "女",
"selectGender": "选择性别",
"accountSetting": "账号设置",
"logout": "退出登录",
"logoutTips": "确定要退出当前账号吗?",

4
lib/core/translations/language/zh_hk.dart

@ -1069,6 +1069,10 @@ const Map<String, String> zhHK = {
"about": "關於",
"enterNickname": "請輸入暱稱",
"notSet": "未設定",
"gender": "性別",
"male": "男",
"female": "女",
"selectGender": "選擇性別",
"accountSetting": "帳號設定",
"logout": "登出",
"logoutTips": "確定要登出目前帳號嗎?",

4
lib/core/translations/language/zh_tw.dart

@ -1069,6 +1069,10 @@ const Map<String, String> zhTW = {
"about": "關於",
"enterNickname": "請輸入暱稱",
"notSet": "未設定",
"gender": "性別",
"male": "男",
"female": "女",
"selectGender": "選擇性別",
"accountSetting": "帳號設定",
"logout": "登出",
"logoutTips": "確定要登出目前帳號嗎?",

6
lib/data/models/user_Info.dart

@ -52,6 +52,7 @@ class User {
int tradetotalintegral = 0; // 翻译总积分
int meetintegral = 0; // 会议积分
int meettotalintegral = 0; // 会议总积分
int gender = 0; // 性别: 0=未设置, 1=男, 2=女
List<UserDevice> devices;
@ -74,6 +75,7 @@ class User {
required this.tradetotalintegral,
required this.meetintegral,
required this.meettotalintegral,
required this.gender,
required this.devices,
});
@ -102,6 +104,7 @@ class User {
tradetotalintegral: (userData?['tradetotalintegral'] as int?) ?? 0,
meetintegral: (userData?['meetintegral'] as int?) ?? 0,
meettotalintegral: (userData?['meettotalintegral'] as int?) ?? 0,
gender: (userData?['gender'] as int?) ?? 0,
devices: devicesData
?.map((e) => UserDevice.fromJson(e as Map<String, dynamic>))
.toList() ??
@ -137,6 +140,7 @@ class User {
tradetotalintegral: (userData?['tradetotalintegral'] as int?) ?? 0,
meetintegral: (userData?['meetintegral'] as int?) ?? 0,
meettotalintegral: (userData?['meettotalintegral'] as int?) ?? 0,
gender: (userData?['gender'] as int?) ?? 0,
devices: devicesData != null
? (devicesData)
.map((e) => UserDevice.fromJson(e as Map<String, dynamic>))
@ -169,6 +173,7 @@ class User {
user['tradetotalintegral'] as int? ?? tradetotalintegral;
meetintegral = user['meetintegral'] as int? ?? meetintegral;
meettotalintegral = user['meettotalintegral'] as int? ?? meettotalintegral;
gender = user['gender'] as int? ?? gender;
// 触发全局刷新信号,驱动依赖UI重建
refreshTick.value++;
@ -194,6 +199,7 @@ class User {
'tradetotalintegral': tradetotalintegral,
'meetintegral': meetintegral,
'meettotalintegral': meettotalintegral,
'gender': gender,
'devices': devices.map((device) => device.toJson()).toList(),
},
};

75
lib/data/services/language_manager.dart

@ -1,5 +1,6 @@
import 'package:get/get.dart';
import '../../core/utils/logger.dart';
import '../models/user_Info.dart';
import '../services/speech_factory.dart';
import 'language_configs/azure_language_config.dart';
import 'language_configs/google_language_config.dart';
@ -22,9 +23,12 @@ class LanguageInfo {
/// Azure ASR 语言代码,如 'zh-CN', 'en-US'
final String asrCode;
/// Azure TTS 语音名称
/// Azure TTS 语音名称(女声)
final String ttsVoiceName;
/// Azure TTS 语音名称(男声)
final String ttsVoiceNameMale;
/// 备注信息
final String? note;
@ -34,6 +38,7 @@ class LanguageInfo {
required this.englishName,
required this.asrCode,
required this.ttsVoiceName,
required this.ttsVoiceNameMale,
this.note,
});
}
@ -75,6 +80,7 @@ class LanguageManager extends GetxService {
englishName: 'Chinese (simplified)',
asrCode: 'zh-CN',
ttsVoiceName: 'zh-CN-XiaoxiaoNeural',
ttsVoiceNameMale: 'zh-CN-YunxiNeural',
);
_addLanguage(
@ -83,6 +89,7 @@ class LanguageManager extends GetxService {
englishName: 'Chinese (traditional)',
asrCode: 'zh-TW',
ttsVoiceName: 'zh-TW-HsiaoChenNeural',
ttsVoiceNameMale: 'zh-TW-YunJheNeural',
);
_addLanguage(
@ -91,6 +98,7 @@ class LanguageManager extends GetxService {
englishName: 'Chinese (Hongkong traditional)',
asrCode: 'zh-HK',
ttsVoiceName: 'zh-HK-HiuMaanNeural',
ttsVoiceNameMale: 'zh-HK-WanLungNeural',
);
// 英语相关
@ -100,6 +108,7 @@ class LanguageManager extends GetxService {
englishName: 'English',
asrCode: 'en-US',
ttsVoiceName: 'en-US-AriaNeural',
ttsVoiceNameMale: 'en-US-GuyNeural',
);
// 日语相关
@ -109,6 +118,7 @@ class LanguageManager extends GetxService {
englishName: 'Japanese',
asrCode: 'ja-JP',
ttsVoiceName: 'ja-JP-NanamiNeural',
ttsVoiceNameMale: 'ja-JP-KeitaNeural',
);
// 韩语相关
@ -118,6 +128,7 @@ class LanguageManager extends GetxService {
englishName: 'Korean',
asrCode: 'ko-KR',
ttsVoiceName: 'ko-KR-SunHiNeural',
ttsVoiceNameMale: 'ko-KR-InJoonNeural',
);
// 欧洲语言
@ -127,6 +138,7 @@ class LanguageManager extends GetxService {
englishName: 'French',
asrCode: 'fr-FR',
ttsVoiceName: 'fr-FR-DeniseNeural',
ttsVoiceNameMale: 'fr-FR-HenriNeural',
);
_addLanguage(
@ -135,6 +147,7 @@ class LanguageManager extends GetxService {
englishName: 'Spanish',
asrCode: 'es-ES',
ttsVoiceName: 'es-ES-ElviraNeural',
ttsVoiceNameMale: 'es-ES-AlvaroNeural',
);
_addLanguage(
@ -143,6 +156,7 @@ class LanguageManager extends GetxService {
englishName: 'Portuguese',
asrCode: 'pt-BR',
ttsVoiceName: 'pt-BR-FranciscaNeural',
ttsVoiceNameMale: 'pt-BR-AntonioNeural',
);
_addLanguage(
@ -151,6 +165,7 @@ class LanguageManager extends GetxService {
englishName: 'Italian',
asrCode: 'it-IT',
ttsVoiceName: 'it-IT-ElsaNeural',
ttsVoiceNameMale: 'it-IT-DiegoNeural',
);
_addLanguage(
@ -159,6 +174,7 @@ class LanguageManager extends GetxService {
englishName: 'German',
asrCode: 'de-DE',
ttsVoiceName: 'de-DE-KatjaNeural',
ttsVoiceNameMale: 'de-DE-ConradNeural',
);
_addLanguage(
@ -167,6 +183,7 @@ class LanguageManager extends GetxService {
englishName: 'Russian',
asrCode: 'ru-RU',
ttsVoiceName: 'ru-RU-SvetlanaNeural',
ttsVoiceNameMale: 'ru-RU-DmitryNeural',
);
_addLanguage(
@ -175,6 +192,7 @@ class LanguageManager extends GetxService {
englishName: 'Polish',
asrCode: 'pl-PL',
ttsVoiceName: 'pl-PL-AgnieszkaNeural',
ttsVoiceNameMale: 'pl-PL-MarekNeural',
);
_addLanguage(
@ -183,6 +201,7 @@ class LanguageManager extends GetxService {
englishName: 'Dutch',
asrCode: 'nl-NL',
ttsVoiceName: 'nl-NL-ColetteNeural',
ttsVoiceNameMale: 'nl-NL-MaartenNeural',
);
_addLanguage(
@ -191,6 +210,7 @@ class LanguageManager extends GetxService {
englishName: 'Swedish',
asrCode: 'sv-SE',
ttsVoiceName: 'sv-SE-SofieNeural',
ttsVoiceNameMale: 'sv-SE-MattiasNeural',
);
_addLanguage(
@ -199,6 +219,7 @@ class LanguageManager extends GetxService {
englishName: 'Czech',
asrCode: 'cs-CZ',
ttsVoiceName: 'cs-CZ-VlastaNeural',
ttsVoiceNameMale: 'cs-CZ-AntoninNeural',
);
_addLanguage(
@ -207,6 +228,7 @@ class LanguageManager extends GetxService {
englishName: 'Modern Greek',
asrCode: 'el-GR',
ttsVoiceName: 'el-GR-AthinaNeural',
ttsVoiceNameMale: 'el-GR-NestorasNeural',
);
_addLanguage(
@ -215,6 +237,7 @@ class LanguageManager extends GetxService {
englishName: 'Romanian',
asrCode: 'ro-RO',
ttsVoiceName: 'ro-RO-AlinaNeural',
ttsVoiceNameMale: 'ro-RO-EmilNeural',
);
_addLanguage(
@ -223,6 +246,7 @@ class LanguageManager extends GetxService {
englishName: 'Hungarian',
asrCode: 'hu-HU',
ttsVoiceName: 'hu-HU-NoemiNeural',
ttsVoiceNameMale: 'hu-HU-TamasNeural',
);
_addLanguage(
@ -231,6 +255,7 @@ class LanguageManager extends GetxService {
englishName: 'Ukrainian',
asrCode: 'uk-UA',
ttsVoiceName: 'uk-UA-PolinaNeural',
ttsVoiceNameMale: 'uk-UA-OstapNeural',
);
_addLanguage(
@ -239,6 +264,7 @@ class LanguageManager extends GetxService {
englishName: 'Danish',
asrCode: 'da-DK',
ttsVoiceName: 'da-DK-ChristelNeural',
ttsVoiceNameMale: 'da-DK-JeppeNeural',
);
_addLanguage(
@ -247,6 +273,7 @@ class LanguageManager extends GetxService {
englishName: 'Finnish',
asrCode: 'fi-FI',
ttsVoiceName: 'fi-FI-NooraNeural',
ttsVoiceNameMale: 'fi-FI-HarriNeural',
);
_addLanguage(
@ -255,6 +282,7 @@ class LanguageManager extends GetxService {
englishName: 'Norwegian',
asrCode: 'nb-NO',
ttsVoiceName: 'nb-NO-IselinNeural',
ttsVoiceNameMale: 'nb-NO-FinnNeural',
);
_addLanguage(
@ -263,6 +291,7 @@ class LanguageManager extends GetxService {
englishName: 'Croatian',
asrCode: 'hr-HR',
ttsVoiceName: 'hr-HR-GabrijelaNeural',
ttsVoiceNameMale: 'hr-HR-SreckoNeural',
);
_addLanguage(
@ -271,6 +300,7 @@ class LanguageManager extends GetxService {
englishName: 'Catalan',
asrCode: 'ca-ES',
ttsVoiceName: 'ca-ES-JoanaNeural',
ttsVoiceNameMale: 'ca-ES-EnricNeural',
);
// 亚洲语言
@ -280,6 +310,7 @@ class LanguageManager extends GetxService {
englishName: 'Arabic',
asrCode: 'ar-EG',
ttsVoiceName: 'ar-EG-SalmaNeural',
ttsVoiceNameMale: 'ar-EG-ShakirNeural',
);
_addLanguage(
@ -288,6 +319,7 @@ class LanguageManager extends GetxService {
englishName: 'Thai',
asrCode: 'th-TH',
ttsVoiceName: 'th-TH-PremwadeeNeural',
ttsVoiceNameMale: 'th-TH-NiwatNeural',
);
_addLanguage(
@ -296,6 +328,7 @@ class LanguageManager extends GetxService {
englishName: 'Vietnamese',
asrCode: 'vi-VN',
ttsVoiceName: 'vi-VN-HoaiMyNeural',
ttsVoiceNameMale: 'vi-VN-NamMinhNeural',
);
_addLanguage(
@ -304,6 +337,7 @@ class LanguageManager extends GetxService {
englishName: 'Indonesian',
asrCode: 'id-ID',
ttsVoiceName: 'id-ID-GadisNeural',
ttsVoiceNameMale: 'id-ID-ArdiNeural',
);
_addLanguage(
@ -312,6 +346,7 @@ class LanguageManager extends GetxService {
englishName: 'Hindi',
asrCode: 'hi-IN',
ttsVoiceName: 'hi-IN-SwaraNeural',
ttsVoiceNameMale: 'hi-IN-MadhurNeural',
);
_addLanguage(
@ -319,7 +354,8 @@ class LanguageManager extends GetxService {
chineseName: '土耳其语',
englishName: 'Turkish',
asrCode: 'tr-TR',
ttsVoiceName: 'tr-TR-SedaNeural',
ttsVoiceName: 'tr-TR-EmelNeural',
ttsVoiceNameMale: 'tr-TR-AhmetNeural',
);
_addLanguage(
@ -328,6 +364,7 @@ class LanguageManager extends GetxService {
englishName: 'Malay',
asrCode: 'ms-MY',
ttsVoiceName: 'ms-MY-YasminNeural',
ttsVoiceNameMale: 'ms-MY-OsmanNeural',
);
_addLanguage(
@ -336,6 +373,7 @@ class LanguageManager extends GetxService {
englishName: 'Bengali',
asrCode: 'bn-IN',
ttsVoiceName: 'bn-IN-TanishaaNeural',
ttsVoiceNameMale: 'bn-IN-BashkarNeural',
);
_addLanguage(
@ -344,6 +382,7 @@ class LanguageManager extends GetxService {
englishName: 'Tamil',
asrCode: 'ta-IN',
ttsVoiceName: 'ta-IN-PallaviNeural',
ttsVoiceNameMale: 'ta-IN-ValluvarNeural',
);
_addLanguage(
@ -352,6 +391,7 @@ class LanguageManager extends GetxService {
englishName: 'Telugu',
asrCode: 'te-IN',
ttsVoiceName: 'te-IN-ShrutiNeural',
ttsVoiceNameMale: 'te-IN-MohanNeural',
);
_addLanguage(
@ -360,6 +400,7 @@ class LanguageManager extends GetxService {
englishName: 'Marathi',
asrCode: 'mr-IN',
ttsVoiceName: 'mr-IN-AarohiNeural',
ttsVoiceNameMale: 'mr-IN-ManoharNeural',
);
_addLanguage(
@ -368,6 +409,7 @@ class LanguageManager extends GetxService {
englishName: 'Urdu',
asrCode: 'ur-IN',
ttsVoiceName: 'ur-IN-GulNeural',
ttsVoiceNameMale: 'ur-IN-SalmanNeural',
);
_addLanguage(
@ -376,6 +418,7 @@ class LanguageManager extends GetxService {
englishName: 'Persian',
asrCode: 'fa-IR',
ttsVoiceName: 'fa-IR-DilaraNeural',
ttsVoiceNameMale: 'fa-IR-FaridNeural',
);
// 非洲语言
@ -385,6 +428,7 @@ class LanguageManager extends GetxService {
englishName: 'Swahili',
asrCode: 'sw-KE',
ttsVoiceName: 'sw-KE-ZuriNeural',
ttsVoiceNameMale: 'sw-KE-RafikiNeural',
);
Logger.info('语言管理器初始化完成,共加载 ${_languageMap.length} 种语言');
@ -397,6 +441,7 @@ class LanguageManager extends GetxService {
required String englishName,
required String asrCode,
required String ttsVoiceName,
required String ttsVoiceNameMale,
String? note,
}) {
final languageInfo = LanguageInfo(
@ -405,6 +450,7 @@ class LanguageManager extends GetxService {
englishName: englishName,
asrCode: asrCode,
ttsVoiceName: ttsVoiceName,
ttsVoiceNameMale: ttsVoiceNameMale,
note: note,
);
@ -488,17 +534,28 @@ class LanguageManager extends GetxService {
return languageInfo?.shortCode;
}
/// 根据 ASR 代码获取 TTS 语音名称
/// 根据用户性别获取对应的 TTS 语音名称
/// gender: 0=未设置(默认女声), 1=男, 2=女
String? _getVoiceByGender(LanguageInfo? info) {
if (info == null) return null;
try {
final gender = User.instance.gender;
return gender == 1 ? info.ttsVoiceNameMale : info.ttsVoiceName;
} catch (_) {
return info.ttsVoiceName;
}
}
/// 根据 ASR 代码获取 TTS 语音名称(根据用户性别自动选择)
String? getTtsVoiceNameByAsrCode(String asrCode) {
final languageInfo = _languageMap[asrCode];
return languageInfo?.ttsVoiceName;
return _getVoiceByGender(_languageMap[asrCode]);
}
/// 根据中文名称获取 TTS 语音名称
/// 根据中文名称获取 TTS 语音名称(根据用户性别自动选择)
String? getTtsVoiceNameByChineseName(String chineseName) {
final asrCode = _chineseNameToAsrCodeMap[chineseName];
if (asrCode == null) return null;
return _languageMap[asrCode]?.ttsVoiceName;
return _getVoiceByGender(_languageMap[asrCode]);
}
/// 根据短代码获取中文名称
@ -515,11 +572,11 @@ class LanguageManager extends GetxService {
return _languageMap[asrCode]?.englishName;
}
/// 根据短代码获取 TTS 语音名称
/// 根据短代码获取 TTS 语音名称(根据用户性别自动选择)
String? getTtsVoiceNameByShortCode(String shortCode) {
final asrCode = _shortCodeToAsrCodeMap[shortCode];
if (asrCode == null) return null;
return _languageMap[asrCode]?.ttsVoiceName;
return _getVoiceByGender(_languageMap[asrCode]);
}
/// 获取中文名称到 ASR 代码的映射

13
lib/modules/profile/controllers/profile_controller.dart

@ -210,6 +210,7 @@ class ProfileController extends GetxController {
// 添加基本用户信息
formData.fields.add(MapEntry('language', currentLanguage.value));
formData.fields.add(MapEntry('name', userInfo.value.name));
formData.fields.add(MapEntry('gender', userInfo.value.gender.toString()));
// 如果有头像,添加到FormData
if (localAvatar.value.isNotEmpty) {
@ -438,6 +439,18 @@ class ProfileController extends GetxController {
}
}
// 更新性别
void updateGender(int gender) {
if (gender == userInfo.value.gender) return;
userInfo.update((user) {
if (user != null) {
user.gender = gender;
}
});
hasEdits.value = true;
Logger().d('性别已更新: $gender');
}
// 取消编辑昵称(内联编辑)
void cancelEditingNickname() {
isEditingNickname.value = false;

142
lib/modules/profile/views/profile_view.dart

@ -287,6 +287,13 @@ class EditProfileView extends GetView<ProfileController> {
: Colors.grey[200]),
// 昵称设置项
_buildNicknameSetting(context, isDarkMode, nameController),
Divider(
height: 1,
color: isDarkMode
? Colors.white.withOpacity(0.1)
: Colors.grey[200]),
// 性别设置项
_buildGenderSetting(context, isDarkMode),
],
),
),
@ -372,6 +379,141 @@ class EditProfileView extends GetView<ProfileController> {
);
}
// 构建性别设置项
Widget _buildGenderSetting(BuildContext context, bool isDarkMode) {
return InkWell(
onTap: () {
_showGenderPicker(context, isDarkMode);
},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 16.h),
child: Row(
children: [
Container(
width: 32.w,
height: 32.w,
decoration: BoxDecoration(
color: isDarkMode
? Colors.purple[900]!.withOpacity(0.3)
: Colors.purple[50]!,
borderRadius: BorderRadius.circular(16.r),
),
child: Icon(
Icons.wc_outlined,
size: 18.w,
color: isDarkMode ? Colors.purple[300]! : Colors.purple[600]!,
),
),
SizedBox(width: 12.w),
Expanded(
child: Text(
'gender'.tr,
style: TextStyle(
fontSize: 16.sp,
fontWeight: FontWeight.w500,
color: isDarkMode ? Colors.white : Colors.black87,
),
),
),
Row(
children: [
Obx(() {
final gender = controller.userInfo.value.gender;
String genderText;
if (gender == 1) {
genderText = 'male'.tr;
} else if (gender == 2) {
genderText = 'female'.tr;
} else {
genderText = 'notSet'.tr;
}
return Text(
genderText,
style: TextStyle(
fontSize: 14.sp,
color: isDarkMode ? Colors.white70 : Colors.grey[600],
),
);
}),
SizedBox(width: 8.w),
Container(
width: 32.w,
height: 32.w,
decoration: BoxDecoration(
color: isDarkMode
? Colors.white.withOpacity(0.05)
: Colors.grey[100],
borderRadius: BorderRadius.circular(16.r),
),
child: Icon(
Icons.chevron_right,
size: 16.w,
color: isDarkMode ? Colors.white70 : Colors.grey[500],
),
),
],
),
],
),
),
);
}
// 显示性别选择弹窗
void _showGenderPicker(BuildContext context, bool isDarkMode) {
Get.bottomSheet(
Container(
padding: EdgeInsets.symmetric(vertical: 16.h),
decoration: BoxDecoration(
color: isDarkMode ? const Color(0xFF1E1E1E) : Colors.white,
borderRadius: BorderRadius.vertical(top: Radius.circular(16.r)),
),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Padding(
padding: EdgeInsets.only(bottom: 8.h),
child: Text(
'selectGender'.tr,
style: TextStyle(
fontSize: 16.sp,
fontWeight: FontWeight.w600,
color: isDarkMode ? Colors.white : Colors.black87,
),
),
),
ListTile(
leading: Icon(Icons.male, color: Colors.blue),
title: Text('male'.tr,
style: TextStyle(
color: isDarkMode ? Colors.white : Colors.black87)),
trailing: Obx(() => controller.userInfo.value.gender == 1
? Icon(Icons.check, color: Colors.blue)
: const SizedBox.shrink()),
onTap: () {
controller.updateGender(1);
Get.back();
},
),
ListTile(
leading: Icon(Icons.female, color: Colors.pink),
title: Text('female'.tr,
style: TextStyle(
color: isDarkMode ? Colors.white : Colors.black87)),
trailing: Obx(() => controller.userInfo.value.gender == 2
? Icon(Icons.check, color: Colors.pink)
: const SizedBox.shrink()),
onTap: () {
controller.updateGender(2);
Get.back();
},
),
],
),
),
);
}
// 新增:构建昵称设置项(双模式内联编辑)
Widget _buildNicknameSetting(BuildContext context, bool isDarkMode,
TextEditingController nameController) {

Loading…
Cancel
Save