From 7436784366e53fd3a0c0bf3057e52a6b911864b2 Mon Sep 17 00:00:00 2001 From: lxm <1274844347@qq.com> Date: Mon, 8 Dec 2025 16:53:41 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E5=95=86=E5=93=81=E6=A8=A1=E5=9D=97):?= =?UTF-8?q?=20=E5=B0=86goodstrade=E9=87=8D=E5=91=BD=E5=90=8D=E4=B8=BAgoods?= =?UTF-8?q?trans=E4=BB=A5=E7=BB=9F=E4=B8=80=E7=BF=BB=E8=AF=91=E5=95=86?= =?UTF-8?q?=E5=93=81=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构商品模块中的翻译商品相关代码,将goodstrade统一更名为goodstrans 更新路由、绑定、控制器、视图及多语言文件 修改相关页面中的引用和翻译键名 --- lib/core/translations/language/ar_sa.dart | 65 +++++++++---------- lib/core/translations/language/de_de.dart | 60 +++++++++-------- lib/core/translations/language/en_us.dart | 18 ++--- lib/core/translations/language/hi_in.dart | 64 +++++++++--------- lib/core/translations/language/it_it.dart | 61 +++++++++-------- lib/core/translations/language/ko_kr.dart | 60 +++++++++-------- lib/core/translations/language/pt_pt.dart | 61 +++++++++-------- lib/core/translations/language/ru_ru.dart | 62 ++++++++++-------- lib/core/translations/language/zh_cn.dart | 18 ++--- lib/core/translations/language/zh_hk.dart | 18 ++--- .../common/widgets/recharge_dialog.dart | 2 +- .../goods/bindings/goodstrade_binding.dart | 9 --- .../goods/bindings/goodstrans_binding.dart | 9 +++ ...roller.dart => goodstrans_controller.dart} | 4 +- lib/modules/goods/utils/goods_i18n.dart | 12 ++-- ...dstrade_view.dart => goodstrans_view.dart} | 13 ++-- lib/modules/goods/views/goodsvip_view.dart | 2 +- lib/modules/settings/views/settings_view.dart | 2 +- lib/routes/app_pages.dart | 10 +-- lib/routes/app_routes.dart | 2 +- 20 files changed, 294 insertions(+), 258 deletions(-) delete mode 100644 lib/modules/goods/bindings/goodstrade_binding.dart create mode 100644 lib/modules/goods/bindings/goodstrans_binding.dart rename lib/modules/goods/controllers/{goodstrade_controller.dart => goodstrans_controller.dart} (88%) rename lib/modules/goods/views/{goodstrade_view.dart => goodstrans_view.dart} (97%) diff --git a/lib/core/translations/language/ar_sa.dart b/lib/core/translations/language/ar_sa.dart index 305c3d04e..7b4f91430 100644 --- a/lib/core/translations/language/ar_sa.dart +++ b/lib/core/translations/language/ar_sa.dart @@ -1208,36 +1208,35 @@ const Map arSA = { 'Use in quiet environments; performance depends on microphone and network.', // Translation goods page (placeholders) - 'tradeHeaderDesc1': - 'Real-time simultaneous interpretation and text translation with low-latency voice.', - 'tradeHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', - 'translateZhEn': 'Chinese-English translation', - 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', - 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': - 'Terminology optimization and context preservation', - 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', - 'personalVocabularyMemory': 'Personal vocabulary memory', - 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', - 'colorHighContrast': 'High color contrast', - 'tradeDisclaimer': - 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transHeaderDesc1': + 'ترجمة متزامنة فورية وترجمة نصية مع بث صوتي منخفض التأخير.', + 'transHeaderDesc2': 'مناسب للسفر والأعمال والخطب والتدريس.', + 'translateZhEn': 'ترجمة صينية-إنجليزية', + 'lowLatencyVoiceBroadcast': 'بث صوتي منخفض التأخير', + 'multiLangTextTranslation': 'ترجمة نصية متعددة اللغات', + 'termOptimizationContextPreserve': 'تحسين المصطلحات والحفاظ على السياق', + 'lexiconTourBusinessLife': 'قواميس السفر/الأعمال/الحياة', + 'personalVocabularyMemory': 'ذاكرة المفردات الشخصية', + 'conversationSubtitleLargeText': 'عناوين المحادثة / وضع النص الكبير', + 'colorHighContrast': 'تباين ألوان عالٍ', + 'transDisclaimer': + 'تعتمد جودة الترجمة على الميكروفون وزمن الشبكة والضوضاء المحيطة.', // VIP goods page (placeholders) - 'benefitsOverview': 'Benefits overview', - 'higherQuota': 'Higher usage quota', - 'lowerUnitPrice': 'Lower unit price', - 'priorityService': 'Priority service', - 'exclusiveSupportChannel': 'Dedicated support channel', - 'fastResponse': 'Fast issue response', - 'eventsAndDiscounts': 'Events and discounts', - 'memberExclusiveEvents': 'Member-exclusive events', - 'longTermDiscountPlan': 'Long-term discount plan', - 'generalPrivileges': 'General privileges', - 'earlyAccessNewFeatures': 'Early access to new features', - 'crossDeviceSync': 'Cross-device sync', + 'benefitsOverview': 'نظرة عامة على المزايا', + 'higherQuota': 'حصة استخدام أعلى', + 'lowerUnitPrice': 'سعر أقل لكل وحدة', + 'priorityService': 'خدمة ذات أولوية', + 'exclusiveSupportChannel': 'قناة دعم مخصصة', + 'fastResponse': 'استجابة سريعة للمشكلات', + 'eventsAndDiscounts': 'فعاليات وخصومات', + 'memberExclusiveEvents': 'فعاليات حصرية للأعضاء', + 'longTermDiscountPlan': 'خطة خصم طويلة الأجل', + 'generalPrivileges': 'امتيازات عامة', + 'earlyAccessNewFeatures': 'وصول مبكر إلى الميزات الجديدة', + 'crossDeviceSync': 'مزامنة عبر الأجهزة', 'vipDisclaimer': - 'Actual benefits depend on the package details and may change with versions.', + 'تعتمد الفوائد الفعلية على تفاصيل الباقة وقد تتغير مع الإصدارات.', // Goods names by id 'ai_001_name': 'الذكاء الاصطناعي الأساسي 100', 'ai_002_name': 'الذكاء الاصطناعي الأساسي 500', @@ -1245,9 +1244,9 @@ const Map arSA = { 'meet_001_name': 'اجتماع أساسي 100', 'meet_002_name': 'اجتماع أساسي 500', 'meet_003_name': 'اجتماع أساسي 1000', - 'trade_001_name': 'ترجمة أساسية 100', - 'trade_002_name': 'ترجمة أساسية 500', - 'trade_003_name': 'ترجمة أساسية 1000', + 'trans_001_name': 'ترجمة أساسية 100', + 'trans_002_name': 'ترجمة أساسية 500', + 'trans_003_name': 'ترجمة أساسية 1000', // Goods descriptions by id 'ai_001_desc': 'يشمل 100 استخدام. الوصول إلى ميزات الذكاء الاصطناعي الأساسية.', @@ -1258,7 +1257,7 @@ const Map arSA = { 'meet_001_desc': 'يشمل 100 تسجيل/نسخ لاجتماعات.', 'meet_002_desc': 'يشمل 500 تسجيل/نسخ لاجتماعات.', 'meet_003_desc': 'يشمل 1000 تسجيل/نسخ لاجتماعات.', - 'trade_001_desc': 'يشمل 100 ترجمة (صوت/نص).', - 'trade_002_desc': 'يشمل 500 ترجمة (صوت/نص).', - 'trade_003_desc': 'يشمل 1000 ترجمة (صوت/نص).', + 'trans_001_desc': 'يشمل 100 ترجمة (صوت/نص).', + 'trans_002_desc': 'يشمل 500 ترجمة (صوت/نص).', + 'trans_003_desc': 'يشمل 1000 ترجمة (صوت/نص).', }; diff --git a/lib/core/translations/language/de_de.dart b/lib/core/translations/language/de_de.dart index dc0f1d699..c8beb4b1c 100644 --- a/lib/core/translations/language/de_de.dart +++ b/lib/core/translations/language/de_de.dart @@ -929,34 +929,42 @@ const Map deDE = { 'Use in quiet environments; performance depends on microphone and network.', // Translation goods page (placeholders) - 'tradeHeaderDesc1': - 'Real-time simultaneous interpretation and text translation with low-latency voice.', - 'tradeHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', - 'translateZhEn': 'Chinese-English translation', - 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', - 'multiLangTextTranslation': 'Multilingual text translation', + 'transHeaderDesc1': + 'Echtzeit-Simultandolmetschen und Textübersetzung mit Sprachwiedergabe bei niedriger Latenz.', + 'transHeaderDesc2': 'Geeignet für Reisen, Geschäft, Reden und Lehre.', + 'translateZhEn': 'Chinesisch-Englisch-Übersetzung', + 'lowLatencyVoiceBroadcast': 'Sprachübertragung mit niedriger Latenz', + 'multiLangTextTranslation': 'Mehrsprachige Textübersetzung', 'termOptimizationContextPreserve': - 'Terminology optimization and context preservation', - 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', - 'personalVocabularyMemory': 'Personal vocabulary memory', - 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', - 'colorHighContrast': 'High color contrast', - 'tradeDisclaimer': - 'Translation performance depends on microphone, network latency, and ambient noise.', + 'Terminologieoptimierung und Kontextwahrung', + 'lexiconTourBusinessLife': 'Lexika für Reise/Geschäft/Alltag', + 'personalVocabularyMemory': 'Persönlicher Wortschatzspeicher', + 'conversationSubtitleLargeText': 'Konversationsuntertitel / Großtext-Modus', + 'colorHighContrast': 'Hoher Farbkontrast', + 'transDisclaimer': + 'Die Übersetzungsleistung hängt von Mikrofon, Netzwerklatenz und Umgebungsgeräuschen ab.', + + 'trans_001_name': 'Übersetzung Basis 100', + 'trans_002_name': 'Übersetzung Basis 500', + 'trans_003_name': 'Übersetzung Basis 1000', + + 'trans_001_desc': 'Enthält 100 Übersetzungen (Stimme/Text).', + 'trans_002_desc': 'Enthält 500 Übersetzungen (Stimme/Text).', + 'trans_003_desc': 'Enthält 1000 Übersetzungen (Stimme/Text).', // VIP goods page (placeholders) - 'benefitsOverview': 'Benefits overview', - 'higherQuota': 'Higher usage quota', - 'lowerUnitPrice': 'Lower unit price', - 'priorityService': 'Priority service', - 'exclusiveSupportChannel': 'Dedicated support channel', - 'fastResponse': 'Fast issue response', - 'eventsAndDiscounts': 'Events and discounts', - 'memberExclusiveEvents': 'Member-exclusive events', - 'longTermDiscountPlan': 'Long-term discount plan', - 'generalPrivileges': 'General privileges', - 'earlyAccessNewFeatures': 'Early access to new features', - 'crossDeviceSync': 'Cross-device sync', + 'benefitsOverview': 'Übersicht der Vorteile', + 'higherQuota': 'Höheres Nutzungskontingent', + 'lowerUnitPrice': 'Niedrigerer Stückpreis', + 'priorityService': 'Priorisierter Service', + 'exclusiveSupportChannel': 'Dedizierter Supportkanal', + 'fastResponse': 'Schnelle Problemreaktion', + 'eventsAndDiscounts': 'Veranstaltungen und Rabatte', + 'memberExclusiveEvents': 'Exklusive Events für Mitglieder', + 'longTermDiscountPlan': 'Langfristiger Rabattplan', + 'generalPrivileges': 'Allgemeine Privilegien', + 'earlyAccessNewFeatures': 'Frühzeitiger Zugriff auf neue Funktionen', + 'crossDeviceSync': 'Geräteübergreifende Synchronisierung', 'vipDisclaimer': - 'Actual benefits depend on the package details and may change with versions.', + 'Die tatsächlichen Vorteile hängen von den Paketdetails ab und können sich mit Versionen ändern.', }; diff --git a/lib/core/translations/language/en_us.dart b/lib/core/translations/language/en_us.dart index b241b7ee6..40309df74 100644 --- a/lib/core/translations/language/en_us.dart +++ b/lib/core/translations/language/en_us.dart @@ -215,9 +215,9 @@ const Map enUS = { 'meet_001_name': 'Meeting Basic 100', 'meet_002_name': 'Meeting Basic 500', 'meet_003_name': 'Meeting Basic 1000', - 'trade_001_name': 'Translation Basic 100', - 'trade_002_name': 'Translation Basic 500', - 'trade_003_name': 'Translation Basic 1000', + 'trans_001_name': 'Translation Basic 100', + 'trans_002_name': 'Translation Basic 500', + 'trans_003_name': 'Translation Basic 1000', // 商品描述(按ID) 'ai_001_desc': 'Includes 100 uses. Access core AI features.', @@ -226,9 +226,9 @@ const Map enUS = { 'meet_001_desc': 'Includes 100 meeting recordings/transcriptions.', 'meet_002_desc': 'Includes 500 meeting recordings/transcriptions.', 'meet_003_desc': 'Includes 1000 meeting recordings/transcriptions.', - 'trade_001_desc': 'Includes 100 translations (voice/text).', - 'trade_002_desc': 'Includes 500 translations (voice/text).', - 'trade_003_desc': 'Includes 1000 translations (voice/text).', + 'trans_001_desc': 'Includes 100 translations (voice/text).', + 'trans_002_desc': 'Includes 500 translations (voice/text).', + 'trans_003_desc': 'Includes 1000 translations (voice/text).', // 商品页通用页脚 'appNameProvider': 'App: VoiTrans · Provided by: VoiTrans', @@ -252,9 +252,9 @@ const Map enUS = { 'Use in quiet environments; performance depends on microphone and network.', // 同传/翻译商品页描述 - 'tradeHeaderDesc1': + 'transHeaderDesc1': 'Real-time simultaneous interpretation and text translation with low-latency voice.', - 'tradeHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', + 'transHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', 'translateZhEn': 'Chinese-English translation', 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', 'multiLangTextTranslation': 'Multilingual text translation', @@ -264,7 +264,7 @@ const Map enUS = { 'personalVocabularyMemory': 'Personal vocabulary memory', 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', 'colorHighContrast': 'High color contrast', - 'tradeDisclaimer': + 'transDisclaimer': 'Translation performance depends on microphone, network latency, and ambient noise.', // AI 商品页描述 diff --git a/lib/core/translations/language/hi_in.dart b/lib/core/translations/language/hi_in.dart index 7bd8c16df..3e7084f5e 100644 --- a/lib/core/translations/language/hi_in.dart +++ b/lib/core/translations/language/hi_in.dart @@ -897,36 +897,36 @@ const Map hiIN = { 'Use in quiet environments; performance depends on microphone and network.', // Translation goods page (placeholders) - 'tradeHeaderDesc1': - 'Real-time simultaneous interpretation and text translation with low-latency voice.', - 'tradeHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', - 'translateZhEn': 'Chinese-English translation', - 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', - 'multiLangTextTranslation': 'Multilingual text translation', + 'transHeaderDesc1': + 'रीयल-टाइम समकालीन व्याख्या और पाठ अनुवाद, कम विलंबता वॉइस प्रसारण के साथ।', + 'transHeaderDesc2': 'यात्रा, व्यवसाय, भाषण और शिक्षण के लिए उपयुक्त।', + 'translateZhEn': 'चीनी-अंग्रेज़ी अनुवाद', + 'lowLatencyVoiceBroadcast': 'कम विलंबता वॉइस प्रसारण', + 'multiLangTextTranslation': 'बहुभाषी पाठ अनुवाद', 'termOptimizationContextPreserve': - 'Terminology optimization and context preservation', - 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', - 'personalVocabularyMemory': 'Personal vocabulary memory', - 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', - 'colorHighContrast': 'High color contrast', - 'tradeDisclaimer': - 'Translation performance depends on microphone, network latency, and ambient noise.', + 'पारिभाषिक शब्दों का अनुकूलन और संदर्भ बनाए रखना', + 'lexiconTourBusinessLife': 'यात्रा/व्यवसाय/जीवन शब्दकोश', + 'personalVocabularyMemory': 'व्यक्तिगत शब्दावली स्मृति', + 'conversationSubtitleLargeText': 'वार्तालाप उपशीर्षक / बड़े-टेक्स्ट मोड', + 'colorHighContrast': 'उच्च रंग-विपरीत', + 'transDisclaimer': + 'अनुवाद की गुणवत्ता माइक्रोफोन, नेटवर्क विलंबता और परिवेशी शोर पर निर्भर करती है।', // VIP goods page (placeholders) - 'benefitsOverview': 'Benefits overview', - 'higherQuota': 'Higher usage quota', - 'lowerUnitPrice': 'Lower unit price', - 'priorityService': 'Priority service', - 'exclusiveSupportChannel': 'Dedicated support channel', - 'fastResponse': 'Fast issue response', - 'eventsAndDiscounts': 'Events and discounts', - 'memberExclusiveEvents': 'Member-exclusive events', - 'longTermDiscountPlan': 'Long-term discount plan', - 'generalPrivileges': 'General privileges', - 'earlyAccessNewFeatures': 'Early access to new features', - 'crossDeviceSync': 'Cross-device sync', + 'benefitsOverview': 'लाभों का अवलोकन', + 'higherQuota': 'उच्च उपयोग कोटा', + 'lowerUnitPrice': 'कम इकाई मूल्य', + 'priorityService': 'प्राथमिकता सेवा', + 'exclusiveSupportChannel': 'समर्पित सहायता चैनल', + 'fastResponse': 'समस्याओं पर तेज़ प्रतिक्रिया', + 'eventsAndDiscounts': 'इवेंट और छूट', + 'memberExclusiveEvents': 'सदस्य-विशेष इवेंट', + 'longTermDiscountPlan': 'दीर्घकालीन छूट योजना', + 'generalPrivileges': 'सामान्य विशेषाधिकार', + 'earlyAccessNewFeatures': 'नई सुविधाओं का प्रारंभिक उपयोग', + 'crossDeviceSync': 'क्रॉस-डिवाइस सिंक', 'vipDisclaimer': - 'Actual benefits depend on the package details and may change with versions.', + 'वास्तविक लाभ पैकेज विवरण पर निर्भर करते हैं और संस्करणों के साथ बदल सकते हैं।', // Goods names by id 'ai_001_name': 'एआई बेसिक 100', 'ai_002_name': 'एआई बेसिक 500', @@ -934,9 +934,9 @@ const Map hiIN = { 'meet_001_name': 'मीटिंग बेसिक 100', 'meet_002_name': 'मीटिंग बेसिक 500', 'meet_003_name': 'मीटिंग बेसिक 1000', - 'trade_001_name': 'अनुवाद बेसिक 100', - 'trade_002_name': 'अनुवाद बेसिक 500', - 'trade_003_name': 'अनुवाद बेसिक 1000', + 'trans_001_name': 'अनुवाद बेसिक 100', + 'trans_002_name': 'अनुवाद बेसिक 500', + 'trans_003_name': 'अनुवाद बेसिक 1000', // Goods descriptions by id 'ai_001_desc': '100 उपयोग शामिल। मुख्य AI सुविधाओं की पहुँच।', 'ai_002_desc': '500 उपयोग शामिल। मुख्य AI सुविधाओं की पहुँच।', @@ -944,7 +944,7 @@ const Map hiIN = { 'meet_001_desc': '100 बैठक रिकॉर्डिंग/ट्रांसक्रिप्शन शामिल।', 'meet_002_desc': '500 बैठक रिकॉर्डिंग/ट्रांसक्रिप्शन शामिल।', 'meet_003_desc': '1000 बैठक रिकॉर्डिंग/ट्रांसक्रिप्शन शामिल।', - 'trade_001_desc': '100 अनुवाद (वॉयस/टेक्स्ट) शामिल।', - 'trade_002_desc': '500 अनुवाद (वॉयस/टेक्स्ट) शामिल।', - 'trade_003_desc': '1000 अनुवाद (वॉयस/टेक्स्ट) शामिल।', + 'trans_001_desc': '100 अनुवाद (वॉयस/टेक्स्ट) शामिल।', + 'trans_002_desc': '500 अनुवाद (वॉयस/टेक्स्ट) शामिल।', + 'trans_003_desc': '1000 अनुवाद (वॉयस/टेक्स्ट) शामिल।', }; diff --git a/lib/core/translations/language/it_it.dart b/lib/core/translations/language/it_it.dart index 6ad878537..f28849a72 100644 --- a/lib/core/translations/language/it_it.dart +++ b/lib/core/translations/language/it_it.dart @@ -916,34 +916,43 @@ const Map itIT = { 'Use in quiet environments; performance depends on microphone and network.', // Translation goods page (placeholders) - 'tradeHeaderDesc1': - 'Real-time simultaneous interpretation and text translation with low-latency voice.', - 'tradeHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', - 'translateZhEn': 'Chinese-English translation', - 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', - 'multiLangTextTranslation': 'Multilingual text translation', + 'transHeaderDesc1': + 'Interpretazione simultanea e traduzione di testo in tempo reale, con voce a bassa latenza.', + 'transHeaderDesc2': 'Adatto a viaggi, affari, discorsi e insegnamento.', + 'translateZhEn': 'Traduzione Cinese-Inglese', + 'lowLatencyVoiceBroadcast': 'Trasmissione vocale a bassa latenza', + 'multiLangTextTranslation': 'Traduzione di testo multilingue', 'termOptimizationContextPreserve': - 'Terminology optimization and context preservation', - 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', - 'personalVocabularyMemory': 'Personal vocabulary memory', - 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', - 'colorHighContrast': 'High color contrast', - 'tradeDisclaimer': - 'Translation performance depends on microphone, network latency, and ambient noise.', + 'Ottimizzazione della terminologia e mantenimento del contesto', + 'lexiconTourBusinessLife': 'Lessici per viaggio/affari/vita quotidiana', + 'personalVocabularyMemory': 'Memoria del vocabolario personale', + 'conversationSubtitleLargeText': + 'Sottotitoli conversazione / modalità testo grande', + 'colorHighContrast': 'Elevato contrasto dei colori', + 'transDisclaimer': + 'Le prestazioni della traduzione dipendono dal microfono, dalla latenza di rete e dal rumore ambientale.', + + 'trans_001_name': 'Traduzione Base 100', + 'trans_002_name': 'Traduzione Base 500', + 'trans_003_name': 'Traduzione Base 1000', + + 'trans_001_desc': 'Include 100 traduzioni (voce/testo).', + 'trans_002_desc': 'Include 500 traduzioni (voce/testo).', + 'trans_003_desc': 'Include 1000 traduzioni (voce/testo).', // VIP goods page (placeholders) - 'benefitsOverview': 'Benefits overview', - 'higherQuota': 'Higher usage quota', - 'lowerUnitPrice': 'Lower unit price', - 'priorityService': 'Priority service', - 'exclusiveSupportChannel': 'Dedicated support channel', - 'fastResponse': 'Fast issue response', - 'eventsAndDiscounts': 'Events and discounts', - 'memberExclusiveEvents': 'Member-exclusive events', - 'longTermDiscountPlan': 'Long-term discount plan', - 'generalPrivileges': 'General privileges', - 'earlyAccessNewFeatures': 'Early access to new features', - 'crossDeviceSync': 'Cross-device sync', + 'benefitsOverview': 'Panoramica dei vantaggi', + 'higherQuota': 'Quota di utilizzo più alta', + 'lowerUnitPrice': 'Prezzo unitario più basso', + 'priorityService': 'Servizio prioritario', + 'exclusiveSupportChannel': 'Canale di supporto dedicato', + 'fastResponse': 'Risposta rapida ai problemi', + 'eventsAndDiscounts': 'Eventi e sconti', + 'memberExclusiveEvents': 'Eventi esclusivi per i membri', + 'longTermDiscountPlan': 'Piano di sconti a lungo termine', + 'generalPrivileges': 'Privilegi generali', + 'earlyAccessNewFeatures': 'Accesso anticipato alle nuove funzionalità', + 'crossDeviceSync': 'Sincronizzazione tra dispositivi', 'vipDisclaimer': - 'Actual benefits depend on the package details and may change with versions.', + 'I benefici effettivi dipendono dai dettagli del pacchetto e possono cambiare con le versioni.', }; diff --git a/lib/core/translations/language/ko_kr.dart b/lib/core/translations/language/ko_kr.dart index 27f5922c8..24b74e0c3 100644 --- a/lib/core/translations/language/ko_kr.dart +++ b/lib/core/translations/language/ko_kr.dart @@ -833,34 +833,38 @@ const Map koKR = { 'Use in quiet environments; performance depends on microphone and network.', // Translation goods page (placeholders) - 'tradeHeaderDesc1': - 'Real-time simultaneous interpretation and text translation with low-latency voice.', - 'tradeHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', - 'translateZhEn': 'Chinese-English translation', - 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', - 'multiLangTextTranslation': 'Multilingual text translation', - 'termOptimizationContextPreserve': - 'Terminology optimization and context preservation', - 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', - 'personalVocabularyMemory': 'Personal vocabulary memory', - 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', - 'colorHighContrast': 'High color contrast', - 'tradeDisclaimer': - 'Translation performance depends on microphone, network latency, and ambient noise.', + 'transHeaderDesc1': '실시간 동시통역과 텍스트 번역, 저지연 음성 방송.', + 'transHeaderDesc2': '여행, 비즈니스, 연설, 교육에 적합합니다.', + 'translateZhEn': '중-영 번역', + 'lowLatencyVoiceBroadcast': '저지연 음성 방송', + 'multiLangTextTranslation': '다국어 텍스트 번역', + 'termOptimizationContextPreserve': '용어 최적화 및 문맥 유지', + 'lexiconTourBusinessLife': '여행/비즈니스/일상 용어집', + 'personalVocabularyMemory': '개인 어휘 메모리', + 'conversationSubtitleLargeText': '대화 자막 / 큰 글자 모드', + 'colorHighContrast': '높은 색 대비', + 'transDisclaimer': '번역 품질은 마이크, 네트워크 지연 및 주변 소음에 따라 달라집니다.', + + 'trans_001_name': '번역 기본 100', + 'trans_002_name': '번역 기본 500', + 'trans_003_name': '번역 기본 1000', + + 'trans_001_desc': '번역 100회 포함(음성/텍스트).', + 'trans_002_desc': '번역 500회 포함(음성/텍스트).', + 'trans_003_desc': '번역 1000회 포함(음성/텍스트).', // VIP goods page (placeholders) - 'benefitsOverview': 'Benefits overview', - 'higherQuota': 'Higher usage quota', - 'lowerUnitPrice': 'Lower unit price', - 'priorityService': 'Priority service', - 'exclusiveSupportChannel': 'Dedicated support channel', - 'fastResponse': 'Fast issue response', - 'eventsAndDiscounts': 'Events and discounts', - 'memberExclusiveEvents': 'Member-exclusive events', - 'longTermDiscountPlan': 'Long-term discount plan', - 'generalPrivileges': 'General privileges', - 'earlyAccessNewFeatures': 'Early access to new features', - 'crossDeviceSync': 'Cross-device sync', - 'vipDisclaimer': - 'Actual benefits depend on the package details and may change with versions.', + 'benefitsOverview': '혜택 개요', + 'higherQuota': '더 높은 사용 한도', + 'lowerUnitPrice': '더 낮은 단가', + 'priorityService': '우선 서비스', + 'exclusiveSupportChannel': '전용 지원 채널', + 'fastResponse': '문제 신속 대응', + 'eventsAndDiscounts': '이벤트 및 할인', + 'memberExclusiveEvents': '회원 전용 이벤트', + 'longTermDiscountPlan': '장기 할인 계획', + 'generalPrivileges': '일반 특권', + 'earlyAccessNewFeatures': '신기능 사전 이용', + 'crossDeviceSync': '디바이스 간 동기화', + 'vipDisclaimer': '실제 혜택은 패키지 세부사항에 따라 달라지며 버전에 따라 변경될 수 있습니다.', }; diff --git a/lib/core/translations/language/pt_pt.dart b/lib/core/translations/language/pt_pt.dart index 2c9792ce0..0b8a4d31f 100644 --- a/lib/core/translations/language/pt_pt.dart +++ b/lib/core/translations/language/pt_pt.dart @@ -190,6 +190,14 @@ const Map ptPT = { "usageStatsInfo": "Visualize as estatísticas de uso da sua aplicação", "scene": "Cenário", + 'trans_001_name': 'Tradução Básica 100', + 'trans_002_name': 'Tradução Básica 500', + 'trans_003_name': 'Tradução Básica 1000', + + 'trans_001_desc': 'Inclui 100 traduções (voz/texto).', + 'trans_002_desc': 'Inclui 500 traduções (voz/texto).', + 'trans_003_desc': 'Inclui 1000 traduções (voz/texto).', + // 商务会议助手页 "startMeeting": "Iniciar Reunião", 'edit': 'Editar', @@ -910,34 +918,35 @@ const Map ptPT = { 'Use in quiet environments; performance depends on microphone and network.', // Translation goods page (placeholders) - 'tradeHeaderDesc1': - 'Real-time simultaneous interpretation and text translation with low-latency voice.', - 'tradeHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', - 'translateZhEn': 'Chinese-English translation', - 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', - 'multiLangTextTranslation': 'Multilingual text translation', + 'transHeaderDesc1': + 'Interpretação simultânea e tradução de texto em tempo real, com voz de baixa latência.', + 'transHeaderDesc2': 'Adequado para viagens, negócios, palestras e ensino.', + 'translateZhEn': 'Tradução Chinês-Inglês', + 'lowLatencyVoiceBroadcast': 'Transmissão de voz de baixa latência', + 'multiLangTextTranslation': 'Tradução de texto multilingue', 'termOptimizationContextPreserve': - 'Terminology optimization and context preservation', - 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', - 'personalVocabularyMemory': 'Personal vocabulary memory', - 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', - 'colorHighContrast': 'High color contrast', - 'tradeDisclaimer': - 'Translation performance depends on microphone, network latency, and ambient noise.', + 'Otimização de terminologia e preservação de contexto', + 'lexiconTourBusinessLife': 'Léxicos de viagem/negócios/vida', + 'personalVocabularyMemory': 'Memória de vocabulário pessoal', + 'conversationSubtitleLargeText': + 'Legendagem de conversas / modo de texto grande', + 'colorHighContrast': 'Alto contraste de cor', + 'transDisclaimer': + 'O desempenho da tradução depende do microfone, da latência da rede e do ruído ambiente.', // VIP goods page (placeholders) - 'benefitsOverview': 'Benefits overview', - 'higherQuota': 'Higher usage quota', - 'lowerUnitPrice': 'Lower unit price', - 'priorityService': 'Priority service', - 'exclusiveSupportChannel': 'Dedicated support channel', - 'fastResponse': 'Fast issue response', - 'eventsAndDiscounts': 'Events and discounts', - 'memberExclusiveEvents': 'Member-exclusive events', - 'longTermDiscountPlan': 'Long-term discount plan', - 'generalPrivileges': 'General privileges', - 'earlyAccessNewFeatures': 'Early access to new features', - 'crossDeviceSync': 'Cross-device sync', + 'benefitsOverview': 'Visão geral de benefícios', + 'higherQuota': 'Maior quota de utilização', + 'lowerUnitPrice': 'Preço unitário inferior', + 'priorityService': 'Serviço prioritário', + 'exclusiveSupportChannel': 'Canal de suporte dedicado', + 'fastResponse': 'Resposta rápida a problemas', + 'eventsAndDiscounts': 'Eventos e descontos', + 'memberExclusiveEvents': 'Eventos exclusivos para membros', + 'longTermDiscountPlan': 'Plano de desconto a longo prazo', + 'generalPrivileges': 'Privilégios gerais', + 'earlyAccessNewFeatures': 'Acesso antecipado a novas funcionalidades', + 'crossDeviceSync': 'Sincronização entre dispositivos', 'vipDisclaimer': - 'Actual benefits depend on the package details and may change with versions.', + 'Os benefícios reais dependem dos detalhes do pacote e podem mudar entre versões.', }; diff --git a/lib/core/translations/language/ru_ru.dart b/lib/core/translations/language/ru_ru.dart index 86b6ff85f..a7fc40969 100644 --- a/lib/core/translations/language/ru_ru.dart +++ b/lib/core/translations/language/ru_ru.dart @@ -188,6 +188,14 @@ const Map ruRU = { "usageStatsInfo": "Просмотрите статистику использования вашего приложения", "scene": "Сценарий", + 'trans_001_name': 'Перевод Базовый 100', + 'trans_002_name': 'Перевод Базовый 500', + 'trans_003_name': 'Перевод Базовый 1000', + + 'trans_001_desc': 'Включает 100 переводов (голос/текст).', + 'trans_002_desc': 'Включает 500 переводов (голос/текст).', + 'trans_003_desc': 'Включает 1000 переводов (голос/текст).', + // 商务会议助手页 "startMeeting": "Начать встречу", 'edit': 'Редактировать', @@ -903,34 +911,36 @@ const Map ruRU = { 'Use in quiet environments; performance depends on microphone and network.', // Translation goods page (placeholders) - 'tradeHeaderDesc1': - 'Real-time simultaneous interpretation and text translation with low-latency voice.', - 'tradeHeaderDesc2': 'Suitable for travel, business, speeches, and teaching.', - 'translateZhEn': 'Chinese-English translation', - 'lowLatencyVoiceBroadcast': 'Low-latency voice broadcast', - 'multiLangTextTranslation': 'Multilingual text translation', + 'transHeaderDesc1': + 'Синхронный перевод и перевод текста в реальном времени с низкой задержкой голосового озвучивания.', + 'transHeaderDesc2': + 'Подходит для путешествий, бизнеса, выступлений и обучения.', + 'translateZhEn': 'Китайско-английский перевод', + 'lowLatencyVoiceBroadcast': 'Голосовое вещание с низкой задержкой', + 'multiLangTextTranslation': 'Многоязычный перевод текста', 'termOptimizationContextPreserve': - 'Terminology optimization and context preservation', - 'lexiconTourBusinessLife': 'Travel/Business/Life lexicons', - 'personalVocabularyMemory': 'Personal vocabulary memory', - 'conversationSubtitleLargeText': 'Conversation subtitles / Large-text mode', - 'colorHighContrast': 'High color contrast', - 'tradeDisclaimer': - 'Translation performance depends on microphone, network latency, and ambient noise.', + 'Оптимизация терминологии и сохранение контекста', + 'lexiconTourBusinessLife': + 'Лексика для путешествий/бизнеса/повседневной жизни', + 'personalVocabularyMemory': 'Память персонального словаря', + 'conversationSubtitleLargeText': 'Субтитры беседы / режим крупных шрифтов', + 'colorHighContrast': 'Высокая контрастность цветов', + 'transDisclaimer': + 'Качество перевода зависит от микрофона, сетевой задержки и фонового шума.', // VIP goods page (placeholders) - 'benefitsOverview': 'Benefits overview', - 'higherQuota': 'Higher usage quota', - 'lowerUnitPrice': 'Lower unit price', - 'priorityService': 'Priority service', - 'exclusiveSupportChannel': 'Dedicated support channel', - 'fastResponse': 'Fast issue response', - 'eventsAndDiscounts': 'Events and discounts', - 'memberExclusiveEvents': 'Member-exclusive events', - 'longTermDiscountPlan': 'Long-term discount plan', - 'generalPrivileges': 'General privileges', - 'earlyAccessNewFeatures': 'Early access to new features', - 'crossDeviceSync': 'Cross-device sync', + 'benefitsOverview': 'Обзор преимуществ', + 'higherQuota': 'Более высокая квота использования', + 'lowerUnitPrice': 'Низкая цена за единицу', + 'priorityService': 'Приоритетное обслуживание', + 'exclusiveSupportChannel': 'Выделенный канал поддержки', + 'fastResponse': 'Быстрый отклик на проблемы', + 'eventsAndDiscounts': 'События и скидки', + 'memberExclusiveEvents': 'Эксклюзивные мероприятия для участников', + 'longTermDiscountPlan': 'Долгосрочный план скидок', + 'generalPrivileges': 'Общие привилегии', + 'earlyAccessNewFeatures': 'Ранний доступ к новым функциям', + 'crossDeviceSync': 'Синхронизация между устройствами', 'vipDisclaimer': - 'Actual benefits depend on the package details and may change with versions.', + 'Фактические преимущества зависят от деталей пакета и могут меняться с версиями.', }; diff --git a/lib/core/translations/language/zh_cn.dart b/lib/core/translations/language/zh_cn.dart index a0204ca8f..e41b28528 100644 --- a/lib/core/translations/language/zh_cn.dart +++ b/lib/core/translations/language/zh_cn.dart @@ -209,9 +209,9 @@ const Map zhCN = { 'meet_001_name': '会议基础 100 次', 'meet_002_name': '会议基础 500 次', 'meet_003_name': '会议基础 1000 次', - 'trade_001_name': '翻译基础 100 次', - 'trade_002_name': '翻译基础 500 次', - 'trade_003_name': '翻译基础 1000 次', + 'trans_001_name': '翻译基础 100 次', + 'trans_002_name': '翻译基础 500 次', + 'trans_003_name': '翻译基础 1000 次', // 商品描述(按ID) 'ai_001_desc': '含 100 次使用,覆盖核心 AI 功能', @@ -220,9 +220,9 @@ const Map zhCN = { 'meet_001_desc': '含 100 次会议录音/转写', 'meet_002_desc': '含 500 次会议录音/转写', 'meet_003_desc': '含 1000 次会议录音/转写', - 'trade_001_desc': '含 100 次翻译(语音/文本)', - 'trade_002_desc': '含 500 次翻译(语音/文本)', - 'trade_003_desc': '含 1000 次翻译(语音/文本)', + 'trans_001_desc': '含 100 次翻译(语音/文本)', + 'trans_002_desc': '含 500 次翻译(语音/文本)', + 'trans_003_desc': '含 1000 次翻译(语音/文本)', // 商品页通用页脚 'appNameProvider': '应用名称:VoiTrans · 服务提供:VoiTrans', @@ -243,8 +243,8 @@ const Map zhCN = { 'meetingDisclaimer': '建议在安静环境使用,效果受麦克风与网络影响,具体以实际表现为准。', // 同传/翻译商品页描述 - 'tradeHeaderDesc1': '多语种实时同传与文本翻译,低延时语音播报。', - 'tradeHeaderDesc2': '适用于出行、商务、演讲与教学等场景。', + 'transHeaderDesc1': '多语种实时同传与文本翻译,低延时语音播报。', + 'transHeaderDesc2': '适用于出行、商务、演讲与教学等场景。', 'translateZhEn': '中英互译', 'lowLatencyVoiceBroadcast': '低延时语音播报', 'multiLangTextTranslation': '多语种文本翻译', @@ -253,7 +253,7 @@ const Map zhCN = { 'personalVocabularyMemory': '专属词汇记忆', 'conversationSubtitleLargeText': '对话字幕/大字模式', 'colorHighContrast': '颜色高对比度', - 'tradeDisclaimer': '翻译效果受麦克风、网络时延与环境噪声影响,具体以实际表现为准。', + 'transDisclaimer': '翻译效果受麦克风、网络时延与环境噪声影响,具体以实际表现为准。', // AI 商品页描述 'aiHeaderDesc1': '更长对话额度、更多工具调用、更强上下文长度支持。', diff --git a/lib/core/translations/language/zh_hk.dart b/lib/core/translations/language/zh_hk.dart index c1664eba1..5bde904e6 100644 --- a/lib/core/translations/language/zh_hk.dart +++ b/lib/core/translations/language/zh_hk.dart @@ -185,9 +185,9 @@ const Map zhHK = { 'meet_001_name': '會議基礎 100 次', 'meet_002_name': '會議基礎 500 次', 'meet_003_name': '會議基礎 1000 次', - 'trade_001_name': '翻譯基礎 100 次', - 'trade_002_name': '翻譯基礎 500 次', - 'trade_003_name': '翻譯基礎 1000 次', + 'trans_001_name': '翻譯基礎 100 次', + 'trans_002_name': '翻譯基礎 500 次', + 'trans_003_name': '翻譯基礎 1000 次', // 商品描述(按ID) 'ai_001_desc': '含 100 次使用,涵蓋核心 AI 功能', @@ -196,9 +196,9 @@ const Map zhHK = { 'meet_001_desc': '含 100 次會議錄音/轉寫', 'meet_002_desc': '含 500 次會議錄音/轉寫', 'meet_003_desc': '含 1000 次會議錄音/轉寫', - 'trade_001_desc': '含 100 次翻譯(語音/文本)', - 'trade_002_desc': '含 500 次翻譯(語音/文本)', - 'trade_003_desc': '含 1000 次翻譯(語音/文本)', + 'trans_001_desc': '含 100 次翻譯(語音/文本)', + 'trans_002_desc': '含 500 次翻譯(語音/文本)', + 'trans_003_desc': '含 1000 次翻譯(語音/文本)', // 商務會議助手頁 "startMeeting": "開始會議", @@ -854,8 +854,8 @@ const Map zhHK = { 'meetingDisclaimer': '建議在安靜環境使用,效果受麥克風與網絡影響,具體以實際表現為準。', // Translation goods page (placeholders) - 'tradeHeaderDesc1': '多語種實時同傳與文本翻譯,低延時語音播報。', - 'tradeHeaderDesc2': '適用於出行、商務、演講與教學等場景。', + 'transHeaderDesc1': '多語種實時同傳與文本翻譯,低延時語音播報。', + 'transHeaderDesc2': '適用於出行、商務、演講與教學等場景。', 'translateZhEn': '中英互譯', 'lowLatencyVoiceBroadcast': '低延時語音播報', 'multiLangTextTranslation': '多語種文本翻譯', @@ -864,7 +864,7 @@ const Map zhHK = { 'personalVocabularyMemory': '專屬詞彙記憶', 'conversationSubtitleLargeText': '對話字幕/大字模式', 'colorHighContrast': '顏色高對比度', - 'tradeDisclaimer': '翻譯效果受麥克風、網絡時延與環境噪聲影響,具體以實際表現為準。', + 'transDisclaimer': '翻譯效果受麥克風、網絡時延與環境噪聲影響,具體以實際表現為準。', // AI 商品頁描述(佔位) 'aiHeaderDesc1': '更長對話額度、更多工具調用、更強上下文長度支持。', diff --git a/lib/modules/common/widgets/recharge_dialog.dart b/lib/modules/common/widgets/recharge_dialog.dart index be622f53d..1dd6562b4 100644 --- a/lib/modules/common/widgets/recharge_dialog.dart +++ b/lib/modules/common/widgets/recharge_dialog.dart @@ -40,7 +40,7 @@ void showRechargeDialog(String type) { if (type == 'agent') { Get.toNamed(Routes.goodsvip); } else if (type == 'translation') { - Get.toNamed(Routes.goodstrade); + Get.toNamed(Routes.goodstrans); } else if (type == 'meeting') { Get.toNamed(Routes.goodsmeet); } diff --git a/lib/modules/goods/bindings/goodstrade_binding.dart b/lib/modules/goods/bindings/goodstrade_binding.dart deleted file mode 100644 index 70f119608..000000000 --- a/lib/modules/goods/bindings/goodstrade_binding.dart +++ /dev/null @@ -1,9 +0,0 @@ -import 'package:get/get.dart'; -import '../controllers/goodstrade_controller.dart'; - -class GoodstradeBinding extends Bindings { - @override - void dependencies() { - Get.lazyPut(() => GoodstradeController()); - } -} \ No newline at end of file diff --git a/lib/modules/goods/bindings/goodstrans_binding.dart b/lib/modules/goods/bindings/goodstrans_binding.dart new file mode 100644 index 000000000..696eaeb7e --- /dev/null +++ b/lib/modules/goods/bindings/goodstrans_binding.dart @@ -0,0 +1,9 @@ +import 'package:get/get.dart'; +import '../controllers/goodstrans_controller.dart'; + +class GoodstransBinding extends Bindings { + @override + void dependencies() { + Get.lazyPut(() => GoodstransController()); + } +} diff --git a/lib/modules/goods/controllers/goodstrade_controller.dart b/lib/modules/goods/controllers/goodstrans_controller.dart similarity index 88% rename from lib/modules/goods/controllers/goodstrade_controller.dart rename to lib/modules/goods/controllers/goodstrans_controller.dart index d0a218c5b..fabab8ae5 100644 --- a/lib/modules/goods/controllers/goodstrade_controller.dart +++ b/lib/modules/goods/controllers/goodstrans_controller.dart @@ -4,7 +4,7 @@ import '../../../data/models/goods.dart'; import '../../../data/services/network/api.dart'; import 'goods_base_controller.dart'; -class GoodstradeController extends GoodsBaseController { +class GoodstransController extends GoodsBaseController { @override Future> fetchProducts() async { final resp = await Api.getGoods({'usagetype': UsageType.Translation.toInt}); @@ -25,6 +25,4 @@ class GoodstradeController extends GoodsBaseController { } return []; } - - // Future purchase(DBGoods item) async => super.purchase(item); } diff --git a/lib/modules/goods/utils/goods_i18n.dart b/lib/modules/goods/utils/goods_i18n.dart index bb7274c55..7900ce242 100644 --- a/lib/modules/goods/utils/goods_i18n.dart +++ b/lib/modules/goods/utils/goods_i18n.dart @@ -29,11 +29,11 @@ String localizedGoodsName(DBGoods item) { case 'meet_003': return 'meet_003_name'.tr; case 'trade_001': - return 'trade_001_name'.tr; + return 'trans_001_name'.tr; case 'trade_002': - return 'trade_002_name'.tr; + return 'trans_002_name'.tr; case 'trade_003': - return 'trade_003_name'.tr; + return 'trans_003_name'.tr; default: final name = item.name.trim(); return name.isNotEmpty ? name : 'unknown'.tr; @@ -57,11 +57,11 @@ String localizedGoodsDesc(DBGoods item) { case 'meet_003': return 'meet_003_desc'.tr; case 'trade_001': - return 'trade_001_desc'.tr; + return 'trans_001_desc'.tr; case 'trade_002': - return 'trade_002_desc'.tr; + return 'trans_002_desc'.tr; case 'trade_003': - return 'trade_003_desc'.tr; + return 'trans_003_desc'.tr; default: return ''; } diff --git a/lib/modules/goods/views/goodstrade_view.dart b/lib/modules/goods/views/goodstrans_view.dart similarity index 97% rename from lib/modules/goods/views/goodstrade_view.dart rename to lib/modules/goods/views/goodstrans_view.dart index b361b9243..bbc41ee1c 100644 --- a/lib/modules/goods/views/goodstrade_view.dart +++ b/lib/modules/goods/views/goodstrans_view.dart @@ -3,11 +3,11 @@ import 'package:get/get.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import '../../../data/models/goods.dart'; import '../../../data/models/user_Info.dart'; -import '../controllers/goodstrade_controller.dart'; +import '../controllers/goodstrans_controller.dart'; import '../utils/goods_i18n.dart'; -class GoodstradeView extends GetView { - const GoodstradeView({super.key}); +class GoodstransView extends GetView { + const GoodstransView({super.key}); @override Widget build(BuildContext context) { @@ -29,7 +29,6 @@ class GoodstradeView extends GetView { centerTitle: true, ), body: Obx(() { - // 访问刷新信号以建立依赖关系:用户信息变化时触发重建 final _ = User.refreshTick.value; if (controller.loading.value) { return const Center(child: CircularProgressIndicator()); @@ -109,7 +108,7 @@ class GoodstradeView extends GetView { ), SizedBox(height: 6.h), Text( - 'tradeHeaderDesc1'.tr, + 'transHeaderDesc1'.tr, style: TextStyle( fontSize: 12.sp, color: isDarkMode ? Colors.white70 : Colors.grey[700], @@ -117,7 +116,7 @@ class GoodstradeView extends GetView { ), SizedBox(height: 4.h), Text( - 'tradeHeaderDesc2'.tr, + 'transHeaderDesc2'.tr, style: TextStyle( fontSize: 12.sp, color: isDarkMode ? Colors.white70 : Colors.grey[700], @@ -351,7 +350,7 @@ class GoodstradeView extends GetView { ), SizedBox(height: 12.h), Text( - 'tradeDisclaimer'.tr, + 'transDisclaimer'.tr, style: TextStyle(fontSize: 12.sp, color: subColor), ), ], diff --git a/lib/modules/goods/views/goodsvip_view.dart b/lib/modules/goods/views/goodsvip_view.dart index 3efa834d5..c35ad014e 100644 --- a/lib/modules/goods/views/goodsvip_view.dart +++ b/lib/modules/goods/views/goodsvip_view.dart @@ -892,7 +892,7 @@ class GoodsvipView extends GetView { isDarkMode, icon: Icons.translate, title: 'simultaneousTranslation'.tr, - lines: ['tradeHeaderDesc1'.tr, 'tradeHeaderDesc2'.tr], + lines: ['transHeaderDesc1'.tr, 'transHeaderDesc2'.tr], colorSeed: Colors.indigo, ), ], diff --git a/lib/modules/settings/views/settings_view.dart b/lib/modules/settings/views/settings_view.dart index 36db557fd..d9181ac8f 100644 --- a/lib/modules/settings/views/settings_view.dart +++ b/lib/modules/settings/views/settings_view.dart @@ -277,7 +277,7 @@ class SettingsView extends GetView { iconColor: isDarkMode ? Colors.indigo[300]! : Colors.indigo[600]!, textColor: isDarkMode ? Colors.white : Colors.black87, - onTap: () => Get.toNamed(Routes.goodstrade), + onTap: () => Get.toNamed(Routes.goodstrans), ), _buildCategoryItem( icon: Icons.people, diff --git a/lib/routes/app_pages.dart b/lib/routes/app_pages.dart index 81f7dd385..569511599 100644 --- a/lib/routes/app_pages.dart +++ b/lib/routes/app_pages.dart @@ -74,8 +74,8 @@ import '../modules/picture_translation/views/picture_translation_view.dart'; import '../modules/picture_translation/bindings/picture_translation_binding.dart'; import '../modules/goods/bindings/goodsvip_binding.dart'; import '../modules/goods/views/goodsvip_view.dart'; -import '../modules/goods/bindings/goodstrade_binding.dart'; -import '../modules/goods/views/goodstrade_view.dart'; +import '../modules/goods/bindings/goodstrans_binding.dart'; +import '../modules/goods/views/goodstrans_view.dart'; import '../modules/goods/bindings/goodsmeet_binding.dart'; import '../modules/goods/views/goodsmeet_view.dart'; import '../modules/goods/bindings/goodsai_binding.dart'; @@ -348,9 +348,9 @@ abstract class AppPages { transitionDuration: Duration(milliseconds: 250), ), GetPage( - name: Routes.goodstrade, - page: () => const GoodstradeView(), - binding: GoodstradeBinding(), + name: Routes.goodstrans, + page: () => const GoodstransView(), + binding: GoodstransBinding(), transition: Transition.rightToLeft, transitionDuration: Duration(milliseconds: 250), ), diff --git a/lib/routes/app_routes.dart b/lib/routes/app_routes.dart index 22253b289..dca714c61 100644 --- a/lib/routes/app_routes.dart +++ b/lib/routes/app_routes.dart @@ -74,7 +74,7 @@ abstract class Routes { //商品购买页面 static const goodsvip = '/goodsvip'; //vip商品页面 - static const goodstrade = '/goodstrade'; //翻译商品页面 + static const goodstrans = '/goodstrans'; //翻译商品页面 static const goodsmeet = '/goodsmeet'; //会议商品页面 static const goodsai = '/goodsai'; //ai商品页面 }