docs: 更新协议文档,删除废弃计划文档

- 更新 http-error-codes, user-points-chat-data-protocol
- 更新 divination-run-protocol, profile-protocol
- 删除废弃的后端和前端设计计划文档
This commit is contained in:
qzl
2026-04-08 17:23:02 +08:00
parent 49fc9a116f
commit e80a82bef4
57 changed files with 4117 additions and 2269 deletions
+73 -20
View File
@@ -52,7 +52,7 @@
"noRecordsSubtitle": "You have not saved any records",
"homeTab": "Home",
"profileTab": "Me",
"notify": "Notifications",
"notify": "Message Notifications",
"featurePending": "This feature is not connected yet",
"logout": "Logout",
"defaultUserName": "User",
@@ -69,11 +69,8 @@
"warningTitle": "Important Notice",
"warningBody": "All interpretations are AI-generated for entertainment only. Do not use them as professional advice for business, medical, or legal decisions.",
"scrollHint": "Scroll down to read all",
"understood": "I Understand",
"understood": "Got It",
"readAllFirst": "Please read all first",
"categoryCareer": "Career/Study",
"categoryLove": "Love/Marriage",
"categoryMoney": "Wealth/Investment",
"signBest": "Supremely Auspicious",
"signGood": "Auspicious",
"signNormal": "Cautionary",
@@ -84,7 +81,7 @@
"settingsSectionQuickAccess": "Primary Menu",
"settingsSectionAccount": "Account",
"settingsSectionPrivacy": "Privacy",
"settingsSectionNotification": "Notifications",
"settingsSectionNotification": "Notification Settings",
"settingsInterfaceLanguage": "Interface Language",
"settingsAiLanguage": "AI Response Language",
"settingsNotificationAllow": "Allow Notifications",
@@ -195,7 +192,7 @@
"privacyContent": "Dear user,\nWelcome to MeiYao Divination. We understand that your privacy is critically important, and we take the protection of your personal information seriously. This policy explains how we collect, use, store, and share your information, as well as how you can access and manage it.\n\n1. Information We Collect\nWe may collect information you actively provide, including account registration details, profile information, and divination-related inputs and results. We may also collect device information and log data automatically to support security, compatibility, and service improvement.\n\n2. How We Use Information\nWe use your information to provide and improve divination services, manage accounts, protect account security, send service notifications, and respond to feedback or support requests.\n\n3. Storage of Information\nInformation collected in China is generally stored on servers located within China. We only retain personal information for as long as needed to meet legal obligations and service purposes, after which it will be deleted or anonymized.\n\n4. Sharing of Information\nWe do not share personal information with third parties except when you give clear consent, when we work with service providers under proper safeguards, when required by law, or in connection with mergers, acquisitions, restructuring, or bankruptcy.\n\n5. Your Rights\nYou may request access to, correction of, or deletion of your personal information, and you may request account cancellation. Please note that cancelling an account may make related data unrecoverable.\n\n6. Protection of Minors\nIf you are under the age of 14, please use the service under the guidance of a parent or legal guardian and obtain their prior consent.\n\n7. Security of Personal Information\nWe use reasonable organizational and technical measures, including encryption, access control, auditing, and monitoring, to protect personal information from unauthorized access, disclosure, use, modification, damage, or loss.\n\n8. Policy Updates\nWe may update this privacy policy from time to time because of legal, business, or service changes. Material changes will be communicated in a prominent way.\n\n9. Contact Us\nIf you have questions or suggestions about this privacy policy, please contact us at xuyunlong@xunmee.com.\n\nXunmee Technology (Shenzhen) Co., Ltd.\nJune 1, 2025",
"termsContent": "Chapter 1 General\nWelcome to MeiYao Divination. The app is developed, operated, and maintained by Xunmee Technology (Shenzhen) Co., Ltd. By downloading, installing, registering, signing in, or otherwise using the app, you confirm that you have read, understood, and accepted these terms.\n\nChapter 2 Service Description\nMeiYao Divination provides AI-based divination interpretation services, including manual and automatic casting flows. Service interruption caused by maintenance, failure, force majeure, or other reasonable causes does not constitute a breach.\n\nChapter 3 User Accounts and Information Security\nUsers must have proper legal capacity, provide true and valid registration information, and keep account credentials secure. Necessary personal information may be collected and processed according to the privacy policy.\n\nChapter 4 Intellectual Property\nAll content of MeiYao Divination, including software, text, images, audio, video, charts, trademarks, and domains, is protected by law. Reverse engineering, decompilation, disassembly, or any attempt to obtain source code without written permission is strictly prohibited.\n\nChapter 5 User Conduct\nUsers may not publish unlawful content, infringe on the rights of others, disrupt normal service operation, or conduct unauthorized commercial activity. The app may warn, restrict, suspend, or ban accounts that violate these rules and may pursue legal liability.\n\nChapter 6 Liability and Disclaimer\nUsers are responsible for losses caused by their own violations of these terms. AI-generated divination results are for reference only and must not be treated as the sole basis for real-world decisions. Users assume the related risks.\n\nChapter 7 Dispute Resolution\nThese terms are governed by the laws of the People's Republic of China. Disputes should first be resolved through friendly consultation. If consultation fails, either party may bring the dispute to the competent court where Xunmee Technology is registered.\n\nChapter 8 Miscellaneous\nNotices may be delivered through contact information, system messages, internal messages, or announcements. If you need to contact Xunmee Technology, please email xuyunlong@xunmee.com.\n\nXunmee Technology (Shenzhen) Co., Ltd.\nJune 1, 2025",
"disclaimerContent": "Placeholder content for disclaimer.",
"toastLabelInfo": "Info",
"toastLabelInfo": "Tip",
"toastLabelSuccess": "Success",
"toastLabelWarning": "Warning",
"toastLabelError": "Error",
@@ -209,12 +206,12 @@
"errorDivinationPayloadRequired": "Missing divination payload. Please cast again.",
"divinationScreenTitle": "Cast Hexagram",
"divinationSelectMethod": "Select divination method",
"divinationManualMethod": "Manual",
"divinationAutoMethod": "Auto",
"divinationManualMethod": "Manual Casting",
"divinationAutoMethod": "Auto Casting",
"divinationQuestionTypePrompt": "Select question type",
"divinationQuestionInputPrompt": "Enter your question",
"divinationQuestionInputPrompt": "Please enter your question",
"divinationQuestionInputHint": "Describe your question in detail for more accurate reading",
"divinationStartButton": "Start Casting",
"divinationStartButton": "Start Divination",
"divinationCoinBalance": "Available coins: {balance}",
"@divinationCoinBalance": {
"placeholders": {
@@ -233,6 +230,37 @@
"divinationManualGuideStep1": "Left: Pattern side. Right: Inscription side. Prepare three identical coins or similar tokens.",
"divinationManualGuideStep2": "Hold the coins in both hands, think about your question, then toss them onto a table. Record how many inscription sides and pattern sides appear.",
"divinationManualGuideStep3": "Record each result by whether the inscription side or pattern side faces up. Repeat 6 times, recording from bottom to top.",
"autoGuideStep1Title": "Auto Casting",
"autoGuideStep1Body": "No coins needed. Simply shake your phone or tap the button to cast. Each shake automatically rotates three coins and shows the result.",
"autoGuideStep2Title": "Start Casting",
"autoGuideStep2Body": "Tap the \"Start Casting\" button or shake your phone. The coins will rotate automatically for 3 seconds.",
"autoGuideStep3Title": "Auto Recording",
"autoGuideStep3Body": "Each shake automatically records the corresponding yao position. Repeat 6 times to complete all six yao.",
"autoGuideStep4Title": "Analyze Hexagram",
"autoGuideStep4Body": "After 6 shakes, the \"Analyze Hexagram\" button will blink. Tap it to view the hexagram interpretation.",
"manualGuideStep1Title": "Manual Casting",
"manualGuideStep1Body": "Prepare three identical coins. Record one yao at a time, from bottom to top, until all six yao are complete.",
"manualGuideStep2Title": "Confirm Time",
"manualGuideStep2Body": "Check the casting time first. Tap \"Modify\" on the right if you need to adjust it.",
"manualGuideStep3Title": "Fill Six Yao in Order",
"manualGuideStep3Body": "Start from the first yao and select one row at a time. The next row stays locked until the current row is completed.",
"manualGuideStep4Title": "Start Analysis",
"manualGuideStep4Body": "After all six yao are filled, the \"Analyze Hexagram\" button will blink. Tap it to start interpretation.",
"yaoNameFirst": "First Yao",
"yaoNameSecond": "Second Yao",
"yaoNameThird": "Third Yao",
"yaoNameFourth": "Fourth Yao",
"yaoNameFifth": "Fifth Yao",
"yaoNameTop": "Top Yao",
"yaoYin": "Yin",
"yaoYang": "Yang",
"yaoYoungYin": "Young Yin",
"yaoYoungYang": "Young Yang",
"yaoOldYin": "Old Yin",
"yaoOldYang": "Old Yang",
"yaoMovingSuffix": "(moving)",
"autoCoinFaceZi": "Inscription",
"autoCoinFaceHua": "Pattern",
"divinationIAcknowledge": "I Understand",
"divinationClose": "Close",
"divinationModify": "Modify",
@@ -259,7 +287,7 @@
}
}
},
"divinationCostDialogConfirm": "Start",
"divinationCostDialogConfirm": "Confirm Analysis",
"toastContentCopied": "Content copied",
"toastContentCopiedWithTitle": "{title} copied",
"@toastContentCopiedWithTitle": {
@@ -278,18 +306,43 @@
"resultAnalysis": "Analysis",
"resultSuggestion": "Suggestion",
"resultDivinationInfo": "Divination Info",
"resultDivinationTime": "Time",
"resultDivinationTime": "Casting Time",
"resultDivinationMethod": "Method",
"resultQuestionType": "Type",
"resultQuestion": "Question",
"resultAutoMethod": "Auto",
"resultManualMethod": "Manual",
"resultAutoMethod": "Auto Casting",
"resultManualMethod": "Manual Casting",
"signTypeShangShang": "Supremely Auspicious",
"signTypeZhongShang": "Auspicious",
"signTypeZhongXia": "Cautionary",
"signTypeXiaXia": "Inauspicious",
"resultCopy": "Copy",
"resultWarning": "All interpretations are AI-generated for entertainment only. Do not use them as professional advice.",
"resultWarning": "All interpretations are AI-generated for entertainment only. Do not use them as professional advice for business, medical, or legal decisions.",
"followUpEntryHint": "You can ask one follow-up question for this reading",
"followUpEntryAction": "Ask Follow-up",
"followUpViewHistory": "View history",
"followUpScreenTitle": "Continue Follow-up",
"followUpEmpty": "No messages yet",
"followUpQuotaUsed": "Follow-up limit reached for this session",
"followUpInputHint": "Type your follow-up question",
"followUpHoldToSpeak": "Hold to speak",
"followUpRecording": "Release to send",
"followUpRecordingHint": "Slide up to cancel",
"followUpTranscribing": "Transcribing voice...",
"followUpGenerating": "Generating reply...",
"followUpStepWorker": "Analyzing divination and generating reply",
"followUpStepGeneric": "Processing: {stepName}",
"@followUpStepGeneric": {
"placeholders": {
"stepName": {
"type": "String"
}
}
},
"errorAudioUnsupportedFormat": "Unsupported audio format. Please use wav",
"errorAudioTooLarge": "Audio file too large. Please record a shorter clip",
"errorAudioEmpty": "No valid voice detected. Please try again",
"errorAsrUnavailable": "Voice transcription service is unavailable now",
"transitionPreparing": "Deriving...",
"transitionDeriving": "Analyzing...",
"transitionDone": "Complete\nTap to view",
@@ -323,7 +376,7 @@
"manualScreenTitle": "Manual Casting",
"manualSelectTime": "Select time",
"manualSpecifyYaoCombo": "Select coin combination",
"manualStartResolve": "Start Analysis",
"manualStartResolve": "Start Interpretation",
"manualSelectYaoTitle": "Select Yao",
"manualYaoInstruction": "Tap to view casting method and coin combination guide",
"manualYaoTipTitle": "Tip",
@@ -334,11 +387,11 @@
"autoCoinDivination": "Coin Casting",
"autoHexagramForming": "Forming Hexagram",
"autoShakeInstruction": "Tap to view auto casting method",
"autoStartShake": "Start",
"autoStartShake": "Start Casting",
"autoContinueShake": "Continue",
"autoFinishShake": "Finish",
"autoShaking": "Casting...",
"autoStartResolve": "Start Analysis",
"autoStartResolve": "Start Interpretation",
"autoShakeCountdown": "Stopping in {seconds}s",
"@autoShakeCountdown": {
"placeholders": {
@@ -368,7 +421,7 @@
"autoGuideTitle": "Auto Casting Tutorial",
"autoGuideInstruction": "Shake your phone or tap the button, cast 6 times to form a complete hexagram.",
"dateTab": "Date",
"timeTab": "Time",
"timeTab": "Time Picker",
"confirm": "Confirm",
"cancel": "Cancel",
"autoSelectTime": "Select Time",
+294 -18
View File
@@ -440,24 +440,6 @@ abstract class AppLocalizations {
/// **'请先阅读完整内容'**
String get readAllFirst;
/// No description provided for @categoryCareer.
///
/// In zh, this message translates to:
/// **'事业学业'**
String get categoryCareer;
/// No description provided for @categoryLove.
///
/// In zh, this message translates to:
/// **'情感婚姻'**
String get categoryLove;
/// No description provided for @categoryMoney.
///
/// In zh, this message translates to:
/// **'财富投资'**
String get categoryMoney;
/// No description provided for @signBest.
///
/// In zh, this message translates to:
@@ -1154,6 +1136,192 @@ abstract class AppLocalizations {
/// **'记录每次结果,按照「字面在上还是花面在上」记录。重复六次,从下往上记录。'**
String get divinationManualGuideStep3;
/// No description provided for @autoGuideStep1Title.
///
/// In zh, this message translates to:
/// **'自动起卦'**
String get autoGuideStep1Title;
/// No description provided for @autoGuideStep1Body.
///
/// In zh, this message translates to:
/// **'无需铜钱,摇动手机或点击按钮即可完成起卦。每次摇动后,三枚铜币将自动旋转并显示结果。'**
String get autoGuideStep1Body;
/// No description provided for @autoGuideStep2Title.
///
/// In zh, this message translates to:
/// **'开始摇卦'**
String get autoGuideStep2Title;
/// No description provided for @autoGuideStep2Body.
///
/// In zh, this message translates to:
/// **'点击「开始摇卦」按钮,或直接摇动手机。铜币将自动旋转3秒后停止。'**
String get autoGuideStep2Body;
/// No description provided for @autoGuideStep3Title.
///
/// In zh, this message translates to:
/// **'自动记录'**
String get autoGuideStep3Title;
/// No description provided for @autoGuideStep3Body.
///
/// In zh, this message translates to:
/// **'每摇一次,对应的爻位会自动记录。重复六次,即可完成全部六爻。'**
String get autoGuideStep3Body;
/// No description provided for @autoGuideStep4Title.
///
/// In zh, this message translates to:
/// **'分析卦象'**
String get autoGuideStep4Title;
/// No description provided for @autoGuideStep4Body.
///
/// In zh, this message translates to:
/// **'六次完成后,「分析卦象」按钮将闪烁提示。点击即可查看卦象解读。'**
String get autoGuideStep4Body;
/// No description provided for @manualGuideStep1Title.
///
/// In zh, this message translates to:
/// **'手动起卦'**
String get manualGuideStep1Title;
/// No description provided for @manualGuideStep1Body.
///
/// In zh, this message translates to:
/// **'准备三枚相同的钱币。每次记录一爻,按从下往上的顺序共记录六爻。'**
String get manualGuideStep1Body;
/// No description provided for @manualGuideStep2Title.
///
/// In zh, this message translates to:
/// **'确认时间'**
String get manualGuideStep2Title;
/// No description provided for @manualGuideStep2Body.
///
/// In zh, this message translates to:
/// **'先确认起卦时间。如需调整,点击右侧「修改」。'**
String get manualGuideStep2Body;
/// No description provided for @manualGuideStep3Title.
///
/// In zh, this message translates to:
/// **'依次录入六爻'**
String get manualGuideStep3Title;
/// No description provided for @manualGuideStep3Body.
///
/// In zh, this message translates to:
/// **'从初爻开始逐条选择,未完成前下一爻不可点。每条会弹出三枚钱币选择面板。'**
String get manualGuideStep3Body;
/// No description provided for @manualGuideStep4Title.
///
/// In zh, this message translates to:
/// **'开始分析'**
String get manualGuideStep4Title;
/// No description provided for @manualGuideStep4Body.
///
/// In zh, this message translates to:
/// **'六爻都填完后,下方「分析卦象」按钮会闪烁提示,点击即可解卦。'**
String get manualGuideStep4Body;
/// No description provided for @yaoNameFirst.
///
/// In zh, this message translates to:
/// **'初爻'**
String get yaoNameFirst;
/// No description provided for @yaoNameSecond.
///
/// In zh, this message translates to:
/// **'二爻'**
String get yaoNameSecond;
/// No description provided for @yaoNameThird.
///
/// In zh, this message translates to:
/// **'三爻'**
String get yaoNameThird;
/// No description provided for @yaoNameFourth.
///
/// In zh, this message translates to:
/// **'四爻'**
String get yaoNameFourth;
/// No description provided for @yaoNameFifth.
///
/// In zh, this message translates to:
/// **'五爻'**
String get yaoNameFifth;
/// No description provided for @yaoNameTop.
///
/// In zh, this message translates to:
/// **'上爻'**
String get yaoNameTop;
/// No description provided for @yaoYin.
///
/// In zh, this message translates to:
/// **'阴'**
String get yaoYin;
/// No description provided for @yaoYang.
///
/// In zh, this message translates to:
/// **'阳'**
String get yaoYang;
/// No description provided for @yaoYoungYin.
///
/// In zh, this message translates to:
/// **'少阴'**
String get yaoYoungYin;
/// No description provided for @yaoYoungYang.
///
/// In zh, this message translates to:
/// **'少阳'**
String get yaoYoungYang;
/// No description provided for @yaoOldYin.
///
/// In zh, this message translates to:
/// **'老阴'**
String get yaoOldYin;
/// No description provided for @yaoOldYang.
///
/// In zh, this message translates to:
/// **'老阳'**
String get yaoOldYang;
/// No description provided for @yaoMovingSuffix.
///
/// In zh, this message translates to:
/// **'(变)'**
String get yaoMovingSuffix;
/// No description provided for @autoCoinFaceZi.
///
/// In zh, this message translates to:
/// **'字'**
String get autoCoinFaceZi;
/// No description provided for @autoCoinFaceHua.
///
/// In zh, this message translates to:
/// **'花'**
String get autoCoinFaceHua;
/// No description provided for @divinationIAcknowledge.
///
/// In zh, this message translates to:
@@ -1394,6 +1562,114 @@ abstract class AppLocalizations {
/// **'卦象解读结果均由AI生成,仅供娱乐参考,切不可作为商业、医疗等专业领域的决策依据。理性看待卦象,自由掌握人生。'**
String get resultWarning;
/// No description provided for @followUpEntryHint.
///
/// In zh, this message translates to:
/// **'可针对本次解卦继续追问 1 次'**
String get followUpEntryHint;
/// No description provided for @followUpEntryAction.
///
/// In zh, this message translates to:
/// **'追问'**
String get followUpEntryAction;
/// No description provided for @followUpViewHistory.
///
/// In zh, this message translates to:
/// **'查看历史记录'**
String get followUpViewHistory;
/// No description provided for @followUpScreenTitle.
///
/// In zh, this message translates to:
/// **'继续追问'**
String get followUpScreenTitle;
/// No description provided for @followUpEmpty.
///
/// In zh, this message translates to:
/// **'暂无消息'**
String get followUpEmpty;
/// No description provided for @followUpQuotaUsed.
///
/// In zh, this message translates to:
/// **'本次会话追问次数已用完'**
String get followUpQuotaUsed;
/// No description provided for @followUpInputHint.
///
/// In zh, this message translates to:
/// **'输入你想继续追问的问题'**
String get followUpInputHint;
/// No description provided for @followUpHoldToSpeak.
///
/// In zh, this message translates to:
/// **'按住说话'**
String get followUpHoldToSpeak;
/// No description provided for @followUpRecording.
///
/// In zh, this message translates to:
/// **'松开发送'**
String get followUpRecording;
/// No description provided for @followUpRecordingHint.
///
/// In zh, this message translates to:
/// **'上滑取消'**
String get followUpRecordingHint;
/// No description provided for @followUpTranscribing.
///
/// In zh, this message translates to:
/// **'语音转文字中...'**
String get followUpTranscribing;
/// No description provided for @followUpGenerating.
///
/// In zh, this message translates to:
/// **'正在生成回复...'**
String get followUpGenerating;
/// No description provided for @followUpStepWorker.
///
/// In zh, this message translates to:
/// **'正在分析卦象并生成回复'**
String get followUpStepWorker;
/// No description provided for @followUpStepGeneric.
///
/// In zh, this message translates to:
/// **'正在处理:{stepName}'**
String followUpStepGeneric(String stepName);
/// No description provided for @errorAudioUnsupportedFormat.
///
/// In zh, this message translates to:
/// **'音频格式不支持,请使用 wav'**
String get errorAudioUnsupportedFormat;
/// No description provided for @errorAudioTooLarge.
///
/// In zh, this message translates to:
/// **'音频文件过大,请缩短录音时长'**
String get errorAudioTooLarge;
/// No description provided for @errorAudioEmpty.
///
/// In zh, this message translates to:
/// **'未检测到有效语音,请重试'**
String get errorAudioEmpty;
/// No description provided for @errorAsrUnavailable.
///
/// In zh, this message translates to:
/// **'语音识别服务暂不可用,请稍后重试'**
String get errorAsrUnavailable;
/// No description provided for @transitionPreparing.
///
/// In zh, this message translates to:
+178 -26
View File
@@ -128,7 +128,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get profileTab => 'Me';
@override
String get notify => 'Notifications';
String get notify => 'Message Notifications';
@override
String get featurePending => 'This feature is not connected yet';
@@ -184,20 +184,11 @@ class AppLocalizationsEn extends AppLocalizations {
String get scrollHint => 'Scroll down to read all';
@override
String get understood => 'I Understand';
String get understood => 'Got It';
@override
String get readAllFirst => 'Please read all first';
@override
String get categoryCareer => 'Career/Study';
@override
String get categoryLove => 'Love/Marriage';
@override
String get categoryMoney => 'Wealth/Investment';
@override
String get signBest => 'Supremely Auspicious';
@@ -229,7 +220,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get settingsSectionPrivacy => 'Privacy';
@override
String get settingsSectionNotification => 'Notifications';
String get settingsSectionNotification => 'Notification Settings';
@override
String get settingsInterfaceLanguage => 'Interface Language';
@@ -479,7 +470,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get disclaimerContent => 'Placeholder content for disclaimer.';
@override
String get toastLabelInfo => 'Info';
String get toastLabelInfo => 'Tip';
@override
String get toastLabelSuccess => 'Success';
@@ -525,23 +516,23 @@ class AppLocalizationsEn extends AppLocalizations {
String get divinationSelectMethod => 'Select divination method';
@override
String get divinationManualMethod => 'Manual';
String get divinationManualMethod => 'Manual Casting';
@override
String get divinationAutoMethod => 'Auto';
String get divinationAutoMethod => 'Auto Casting';
@override
String get divinationQuestionTypePrompt => 'Select question type';
@override
String get divinationQuestionInputPrompt => 'Enter your question';
String get divinationQuestionInputPrompt => 'Please enter your question';
@override
String get divinationQuestionInputHint =>
'Describe your question in detail for more accurate reading';
@override
String get divinationStartButton => 'Start Casting';
String get divinationStartButton => 'Start Divination';
@override
String divinationCoinBalance(int balance) {
@@ -585,6 +576,107 @@ class AppLocalizationsEn extends AppLocalizations {
String get divinationManualGuideStep3 =>
'Record each result by whether the inscription side or pattern side faces up. Repeat 6 times, recording from bottom to top.';
@override
String get autoGuideStep1Title => 'Auto Casting';
@override
String get autoGuideStep1Body =>
'No coins needed. Simply shake your phone or tap the button to cast. Each shake automatically rotates three coins and shows the result.';
@override
String get autoGuideStep2Title => 'Start Casting';
@override
String get autoGuideStep2Body =>
'Tap the \"Start Casting\" button or shake your phone. The coins will rotate automatically for 3 seconds.';
@override
String get autoGuideStep3Title => 'Auto Recording';
@override
String get autoGuideStep3Body =>
'Each shake automatically records the corresponding yao position. Repeat 6 times to complete all six yao.';
@override
String get autoGuideStep4Title => 'Analyze Hexagram';
@override
String get autoGuideStep4Body =>
'After 6 shakes, the \"Analyze Hexagram\" button will blink. Tap it to view the hexagram interpretation.';
@override
String get manualGuideStep1Title => 'Manual Casting';
@override
String get manualGuideStep1Body =>
'Prepare three identical coins. Record one yao at a time, from bottom to top, until all six yao are complete.';
@override
String get manualGuideStep2Title => 'Confirm Time';
@override
String get manualGuideStep2Body =>
'Check the casting time first. Tap \"Modify\" on the right if you need to adjust it.';
@override
String get manualGuideStep3Title => 'Fill Six Yao in Order';
@override
String get manualGuideStep3Body =>
'Start from the first yao and select one row at a time. The next row stays locked until the current row is completed.';
@override
String get manualGuideStep4Title => 'Start Analysis';
@override
String get manualGuideStep4Body =>
'After all six yao are filled, the \"Analyze Hexagram\" button will blink. Tap it to start interpretation.';
@override
String get yaoNameFirst => 'First Yao';
@override
String get yaoNameSecond => 'Second Yao';
@override
String get yaoNameThird => 'Third Yao';
@override
String get yaoNameFourth => 'Fourth Yao';
@override
String get yaoNameFifth => 'Fifth Yao';
@override
String get yaoNameTop => 'Top Yao';
@override
String get yaoYin => 'Yin';
@override
String get yaoYang => 'Yang';
@override
String get yaoYoungYin => 'Young Yin';
@override
String get yaoYoungYang => 'Young Yang';
@override
String get yaoOldYin => 'Old Yin';
@override
String get yaoOldYang => 'Old Yang';
@override
String get yaoMovingSuffix => '(moving)';
@override
String get autoCoinFaceZi => 'Inscription';
@override
String get autoCoinFaceHua => 'Pattern';
@override
String get divinationIAcknowledge => 'I Understand';
@@ -636,7 +728,7 @@ class AppLocalizationsEn extends AppLocalizations {
}
@override
String get divinationCostDialogConfirm => 'Start';
String get divinationCostDialogConfirm => 'Confirm Analysis';
@override
String get toastContentCopied => 'Content copied';
@@ -674,7 +766,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get resultDivinationInfo => 'Divination Info';
@override
String get resultDivinationTime => 'Time';
String get resultDivinationTime => 'Casting Time';
@override
String get resultDivinationMethod => 'Method';
@@ -686,10 +778,10 @@ class AppLocalizationsEn extends AppLocalizations {
String get resultQuestion => 'Question';
@override
String get resultAutoMethod => 'Auto';
String get resultAutoMethod => 'Auto Casting';
@override
String get resultManualMethod => 'Manual';
String get resultManualMethod => 'Manual Casting';
@override
String get signTypeShangShang => 'Supremely Auspicious';
@@ -708,7 +800,67 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get resultWarning =>
'All interpretations are AI-generated for entertainment only. Do not use them as professional advice.';
'All interpretations are AI-generated for entertainment only. Do not use them as professional advice for business, medical, or legal decisions.';
@override
String get followUpEntryHint =>
'You can ask one follow-up question for this reading';
@override
String get followUpEntryAction => 'Ask Follow-up';
@override
String get followUpViewHistory => 'View history';
@override
String get followUpScreenTitle => 'Continue Follow-up';
@override
String get followUpEmpty => 'No messages yet';
@override
String get followUpQuotaUsed => 'Follow-up limit reached for this session';
@override
String get followUpInputHint => 'Type your follow-up question';
@override
String get followUpHoldToSpeak => 'Hold to speak';
@override
String get followUpRecording => 'Release to send';
@override
String get followUpRecordingHint => 'Slide up to cancel';
@override
String get followUpTranscribing => 'Transcribing voice...';
@override
String get followUpGenerating => 'Generating reply...';
@override
String get followUpStepWorker => 'Analyzing divination and generating reply';
@override
String followUpStepGeneric(String stepName) {
return 'Processing: $stepName';
}
@override
String get errorAudioUnsupportedFormat =>
'Unsupported audio format. Please use wav';
@override
String get errorAudioTooLarge =>
'Audio file too large. Please record a shorter clip';
@override
String get errorAudioEmpty => 'No valid voice detected. Please try again';
@override
String get errorAsrUnavailable =>
'Voice transcription service is unavailable now';
@override
String get transitionPreparing => 'Deriving...';
@@ -818,7 +970,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get manualSpecifyYaoCombo => 'Select coin combination';
@override
String get manualStartResolve => 'Start Analysis';
String get manualStartResolve => 'Start Interpretation';
@override
String get manualSelectYaoTitle => 'Select Yao';
@@ -854,7 +1006,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get autoShakeInstruction => 'Tap to view auto casting method';
@override
String get autoStartShake => 'Start';
String get autoStartShake => 'Start Casting';
@override
String get autoContinueShake => 'Continue';
@@ -866,7 +1018,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get autoShaking => 'Casting...';
@override
String get autoStartResolve => 'Start Analysis';
String get autoStartResolve => 'Start Interpretation';
@override
String autoShakeCountdown(int seconds) {
@@ -900,7 +1052,7 @@ class AppLocalizationsEn extends AppLocalizations {
String get dateTab => 'Date';
@override
String get timeTab => 'Time';
String get timeTab => 'Time Picker';
@override
String get confirm => 'Confirm';
+149 -9
View File
@@ -187,15 +187,6 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get readAllFirst => '请先阅读完整内容';
@override
String get categoryCareer => '事业学业';
@override
String get categoryLove => '情感婚姻';
@override
String get categoryMoney => '财富投资';
@override
String get signBest => '上上签';
@@ -568,6 +559,99 @@ class AppLocalizationsZh extends AppLocalizations {
String get divinationManualGuideStep3 =>
'记录每次结果,按照「字面在上还是花面在上」记录。重复六次,从下往上记录。';
@override
String get autoGuideStep1Title => '自动起卦';
@override
String get autoGuideStep1Body => '无需铜钱,摇动手机或点击按钮即可完成起卦。每次摇动后,三枚铜币将自动旋转并显示结果。';
@override
String get autoGuideStep2Title => '开始摇卦';
@override
String get autoGuideStep2Body => '点击「开始摇卦」按钮,或直接摇动手机。铜币将自动旋转3秒后停止。';
@override
String get autoGuideStep3Title => '自动记录';
@override
String get autoGuideStep3Body => '每摇一次,对应的爻位会自动记录。重复六次,即可完成全部六爻。';
@override
String get autoGuideStep4Title => '分析卦象';
@override
String get autoGuideStep4Body => '六次完成后,「分析卦象」按钮将闪烁提示。点击即可查看卦象解读。';
@override
String get manualGuideStep1Title => '手动起卦';
@override
String get manualGuideStep1Body => '准备三枚相同的钱币。每次记录一爻,按从下往上的顺序共记录六爻。';
@override
String get manualGuideStep2Title => '确认时间';
@override
String get manualGuideStep2Body => '先确认起卦时间。如需调整,点击右侧「修改」。';
@override
String get manualGuideStep3Title => '依次录入六爻';
@override
String get manualGuideStep3Body => '从初爻开始逐条选择,未完成前下一爻不可点。每条会弹出三枚钱币选择面板。';
@override
String get manualGuideStep4Title => '开始分析';
@override
String get manualGuideStep4Body => '六爻都填完后,下方「分析卦象」按钮会闪烁提示,点击即可解卦。';
@override
String get yaoNameFirst => '初爻';
@override
String get yaoNameSecond => '二爻';
@override
String get yaoNameThird => '三爻';
@override
String get yaoNameFourth => '四爻';
@override
String get yaoNameFifth => '五爻';
@override
String get yaoNameTop => '上爻';
@override
String get yaoYin => '';
@override
String get yaoYang => '';
@override
String get yaoYoungYin => '少阴';
@override
String get yaoYoungYang => '少阳';
@override
String get yaoOldYin => '老阴';
@override
String get yaoOldYang => '老阳';
@override
String get yaoMovingSuffix => '(变)';
@override
String get autoCoinFaceZi => '';
@override
String get autoCoinFaceHua => '';
@override
String get divinationIAcknowledge => '我知道了';
@@ -693,6 +777,62 @@ class AppLocalizationsZh extends AppLocalizations {
String get resultWarning =>
'卦象解读结果均由AI生成,仅供娱乐参考,切不可作为商业、医疗等专业领域的决策依据。理性看待卦象,自由掌握人生。';
@override
String get followUpEntryHint => '可针对本次解卦继续追问 1 次';
@override
String get followUpEntryAction => '追问';
@override
String get followUpViewHistory => '查看历史记录';
@override
String get followUpScreenTitle => '继续追问';
@override
String get followUpEmpty => '暂无消息';
@override
String get followUpQuotaUsed => '本次会话追问次数已用完';
@override
String get followUpInputHint => '输入你想继续追问的问题';
@override
String get followUpHoldToSpeak => '按住说话';
@override
String get followUpRecording => '松开发送';
@override
String get followUpRecordingHint => '上滑取消';
@override
String get followUpTranscribing => '语音转文字中...';
@override
String get followUpGenerating => '正在生成回复...';
@override
String get followUpStepWorker => '正在分析卦象并生成回复';
@override
String followUpStepGeneric(String stepName) {
return '正在处理:$stepName';
}
@override
String get errorAudioUnsupportedFormat => '音频格式不支持,请使用 wav';
@override
String get errorAudioTooLarge => '音频文件过大,请缩短录音时长';
@override
String get errorAudioEmpty => '未检测到有效语音,请重试';
@override
String get errorAsrUnavailable => '语音识别服务暂不可用,请稍后重试';
@override
String get transitionPreparing => '天机推演中';
+56 -3
View File
@@ -71,9 +71,6 @@
"scrollHint": "请向下滚动阅读全部内容",
"understood": "我已了解",
"readAllFirst": "请先阅读完整内容",
"categoryCareer": "事业学业",
"categoryLove": "情感婚姻",
"categoryMoney": "财富投资",
"signBest": "上上签",
"signGood": "中上签",
"signNormal": "中下签",
@@ -233,6 +230,37 @@
"divinationManualGuideStep1": "左侧为花面,右侧为字面。准备三枚相同的钱币,任何类似款式均可。",
"divinationManualGuideStep2": "双手捧起钱币,闭目心中默念所问之事,然后抛掷钱币于桌面,记录字面和花面出现的次数。",
"divinationManualGuideStep3": "记录每次结果,按照「字面在上还是花面在上」记录。重复六次,从下往上记录。",
"autoGuideStep1Title": "自动起卦",
"autoGuideStep1Body": "无需铜钱,摇动手机或点击按钮即可完成起卦。每次摇动后,三枚铜币将自动旋转并显示结果。",
"autoGuideStep2Title": "开始摇卦",
"autoGuideStep2Body": "点击「开始摇卦」按钮,或直接摇动手机。铜币将自动旋转3秒后停止。",
"autoGuideStep3Title": "自动记录",
"autoGuideStep3Body": "每摇一次,对应的爻位会自动记录。重复六次,即可完成全部六爻。",
"autoGuideStep4Title": "分析卦象",
"autoGuideStep4Body": "六次完成后,「分析卦象」按钮将闪烁提示。点击即可查看卦象解读。",
"manualGuideStep1Title": "手动起卦",
"manualGuideStep1Body": "准备三枚相同的钱币。每次记录一爻,按从下往上的顺序共记录六爻。",
"manualGuideStep2Title": "确认时间",
"manualGuideStep2Body": "先确认起卦时间。如需调整,点击右侧「修改」。",
"manualGuideStep3Title": "依次录入六爻",
"manualGuideStep3Body": "从初爻开始逐条选择,未完成前下一爻不可点。每条会弹出三枚钱币选择面板。",
"manualGuideStep4Title": "开始分析",
"manualGuideStep4Body": "六爻都填完后,下方「分析卦象」按钮会闪烁提示,点击即可解卦。",
"yaoNameFirst": "初爻",
"yaoNameSecond": "二爻",
"yaoNameThird": "三爻",
"yaoNameFourth": "四爻",
"yaoNameFifth": "五爻",
"yaoNameTop": "上爻",
"yaoYin": "阴",
"yaoYang": "阳",
"yaoYoungYin": "少阴",
"yaoYoungYang": "少阳",
"yaoOldYin": "老阴",
"yaoOldYang": "老阳",
"yaoMovingSuffix": "(变)",
"autoCoinFaceZi": "字",
"autoCoinFaceHua": "花",
"divinationIAcknowledge": "我知道了",
"divinationClose": "关闭",
"divinationModify": "修改",
@@ -290,6 +318,31 @@
"signTypeXiaXia": "下下签",
"resultCopy": "复制",
"resultWarning": "卦象解读结果均由AI生成,仅供娱乐参考,切不可作为商业、医疗等专业领域的决策依据。理性看待卦象,自由掌握人生。",
"followUpEntryHint": "可针对本次解卦继续追问 1 次",
"followUpEntryAction": "追问",
"followUpViewHistory": "查看历史记录",
"followUpScreenTitle": "继续追问",
"followUpEmpty": "暂无消息",
"followUpQuotaUsed": "本次会话追问次数已用完",
"followUpInputHint": "输入你想继续追问的问题",
"followUpHoldToSpeak": "按住说话",
"followUpRecording": "松开发送",
"followUpRecordingHint": "上滑取消",
"followUpTranscribing": "语音转文字中...",
"followUpGenerating": "正在生成回复...",
"followUpStepWorker": "正在分析卦象并生成回复",
"followUpStepGeneric": "正在处理:{stepName}",
"@followUpStepGeneric": {
"placeholders": {
"stepName": {
"type": "String"
}
}
},
"errorAudioUnsupportedFormat": "音频格式不支持,请使用 wav",
"errorAudioTooLarge": "音频文件过大,请缩短录音时长",
"errorAudioEmpty": "未检测到有效语音,请重试",
"errorAsrUnavailable": "语音识别服务暂不可用,请稍后重试",
"transitionPreparing": "天机推演中",
"transitionDeriving": "正在解卦",
"transitionDone": "解卦完成\n点击查看",