{
  "appTitle": "Wealth Notes",
  "navHistory": "History",
  "navPlan": "Plans",
  "navSettings": "Settings",
  "navDecision": "Decision",
  "navTools": "Tools",
  "navAI": "AI",
  "navNotes": "Notes",
  "navAccounting": "Accounting",
  "decisionTitle": "Tools",
  "navAITitle": "AI",
  "notesTitle": "Notes",
  "accountingTitle": "Accounting",
  "confirm": "Confirm",
  "cancel": "Cancel",
  "back": "Back",
  "itemCount": "items",
  "versionPrefix": "Version",
  "featureInDevelopment": "Feature in development",
  "stayTuned": "Stay tuned for future updates",
  "aiInputHint": "Ask me anything...",
  "aiWelcomeTitle": "Hello, I'm your AI assistant",
  "aiWelcomeDesc": "I can help track expenses, write notes, make plans, and analyze spending",
  "aiSuggestion1": "Record today's expenses",
  "aiSuggestion2": "Write a work note",
  "aiSuggestion3": "Create a savings plan",
  "aiSuggestion4": "Analyze my monthly spending",
  "aiNewChat": "New chat",
  "aiModelName": "DeepSeek-V3",
  "aiDisclaimer": "AI-generated content may contain errors. Please verify.",
  "aiApiKeyTitle": "Configure API Key",
  "aiApiKeyHint": "Enter your DeepSeek API Key",
  "aiApiKeyMissing": "Please configure your DeepSeek API Key first",
  "aiRenameConversationTitle": "Rename chat",
  "aiConversationNameHint": "Chat name",
  "aiEmptyResponse": "AI returned an empty response. Please try again.",
  "aiNetworkError": "Network connection failed. Please check your network and try again.",
  "aiCopy": "Copy",
  "aiRegenerate": "Regenerate",
  "aiConvertToNote": "Convert to Note",
  "aiCopied": "Copied",
  "aiRename": "Rename",
  "aiDelete": "Delete",
  "chatTimeToday": "Today",
  "chatTimeYesterday": "Yesterday",

  "noteNewNote": "New Note",
  "noteNewGroup": "New Group",
  "noteGroupNameHint": "Group Name",
  "noteTitleHint": "Note Title",
  "noteBackToParent": "Back",
  "noteSameTitleError": "A note with the same title already exists in this group",
  "noteDeleteConfirm": "Delete this note?",
  "noteGroupDeleteConfirm": "Delete this group? Notes in this group will become uncategorized.",
  "noteDelete": "Delete",
  "noteMove": "Move",
  "noteMoveToGroup": "Move to",
  "noteRename": "Rename",
  "noteEditTitle": "Edit Note",
  "noteEmpty": "No notes yet",
  "noteEmptyDesc": "Tap the button to create a note or group",
  "noteUncategorized": "Uncategorized",
  "noteRootDirectory": "Root",
  "notePin": "Pin",
  "noteUnpin": "Unpin",
  "noteGroupCount": "{0} notes",
  "noteGroupUpdated": "Updated {0}",
  "noteEditComingSoon": "Note editor coming soon",
  "noteSearchHint": "Search note titles or content",
  "noteSearchLoading": "Searching...",
  "noteSearchEmpty": "No matching notes",
  "noteSearchEmptyDesc": "Try another keyword. Search covers note titles and body content.",
  "noteSearchMatchedTitle": "Title match",
  "noteSearchMatchedContent": "Content match",
  "preview": "Preview",
  "save": "Save",
  "saveNoteConfirm": "Note has been modified. Save changes?",
  "discard": "Discard",
  "edit": "Edit",
  "done": "Done",
  "untitled": "Untitled",

  "autoSaved": "Settings are auto-saved and will take effect immediately",
  "settingsTitle": "Settings",
  "displaySettings": "Interface & Display",
  "notifications": "Notifications",
  "planNotifications": "Plan Notifications",
  "desktopStartup": "Launch at startup",
  "desktopStartupFailed": "Could not update startup setting. Try again.",
  "recycleBin": "Recycle Bin",
  "clearHistory": "Clear Calculation History",
  "clearHistoryCountFormat": "Clear History ({count} {item})",
  "privacySettings": "Privacy Settings",
  "userAgreement": "User Agreement",
  "privacyPolicy": "Privacy Policy",
  "dataMigration": "Data Migration",
  "dataMigrationCloud": "Cloud migration",
  "dataMigrationCloudDesc": "Cloud backup and sync are reserved for a later release",
  "dataMigrationCloudComingSoon": "Cloud migration is not available yet.",
  "dataMigrationDevice": "Device migration",
  "dataMigrationDeviceDesc": "Transfer a database snapshot over the same Wi-Fi with a QR code",
  "migrationSend": "Send",
  "migrationSendDesc": "Send data to another device",
  "migrationReceive": "Receive",
  "migrationReceiveDesc": "Receive data from another device",
  "migrationSendToApp": "Send to App",
  "migrationSendToAppDesc": "Show a QR code for another App device to scan",
  "migrationSendToWindows": "Send to Windows",
  "migrationSendToWindowsDesc": "Scan the receiving QR code shown on Windows and upload data",
  "migrationQrTitleSend": "Send Data",
  "migrationQrTitleReceive": "Receive Data",
  "migrationQrSubtitleSend": "Ask the receiving device to scan this QR code and download this device's data",
  "migrationQrSubtitleReceive": "Use the App to scan this QR code and upload data to this device",
  "migrationScanTitle": "Scan QR Code",
  "migrationScanDesc": "Scan the data migration QR code shown on the other device",
  "migrationConfirmOverwriteTitle": "Overwrite local data?",
  "migrationConfirmOverwriteDesc": "Importing will clear and replace all local data on this device. This cannot be undone.",
  "migrationImportModeTitle": "Choose import mode",
  "migrationImportModeDesc": "Merge incoming data into this device, or clear this device and overwrite it.",
  "migrationMergeData": "Merge data",
  "migrationMergeDataDesc": "Keep local data and append data from the other device",
  "migrationOverwriteData": "Overwrite local",
  "migrationOverwriteDataDesc": "Clear this device, then import data from the other device",
  "migrationConfirmSendTitle": "Send local data?",
  "migrationConfirmSendDesc": "Send this device's data to {device}. The other device will overwrite its local data after confirming.",
  "migrationSuccess": "Data migration completed",
  "migrationFailed": "Data migration failed",
  "migrationInvalidQr": "Invalid data migration QR code",
  "migrationExpiredQr": "This QR code has expired. Generate a new one.",
  "migrationNetworkConnectFailed": "Cannot connect to the target device. Make sure both devices are on the same Wi-Fi.",
  "migrationNetworkTimeout": "Connection timed out. Make sure both devices are on the same Wi-Fi.",
  "migrationSameWifiHint": "Make sure both devices are on the same Wi-Fi. The QR code is valid for 10 minutes.",
  "migrationScannerStarting": "Starting camera...",
  "migrationCameraPermissionDenied": "Camera permission is off. Allow camera access and try again.",
  "migrationCameraStartFailed": "Could not start the camera. Check camera permission or reopen this page.",
  "migrationRetryScan": "Try Again",
  "scheduledAccounting": "Scheduled Accounting",
  "scheduledAccountingAdd": "Add Scheduled Bill",
  "scheduledAccountingEdit": "Edit Scheduled Bill",
  "scheduledAccountingEmpty": "No scheduled bills yet",
  "scheduledAccountingEmptyDesc": "Tap the bottom-right button to create an automatic bill rule.",
  "scheduledAccountingNoBooks": "Create an account book before adding scheduled bills.",
  "scheduledAccountingBook": "Account Book",
  "scheduledAccountingRepeat": "Repeat",
  "scheduledAccountingDate": "Date",
  "scheduledAccountingTime": "Time",
  "scheduledAccountingNextDue": "Next",
  "scheduledAccountingRuleDisabled": "Disabled",
  "scheduledAccountingSelectBook": "Select an account book",
  "scheduledAccountingSelectWeekday": "Select at least one weekday",
  "scheduledAccountingSelectFutureTime": "Select a future time",
  "scheduledAccountingSaving": "Saving...",
  "scheduledAccountingDeleteTitle": "Delete scheduled bill?",
  "scheduledAccountingDeleteDesc": "This stops future automatic bills. Bills already created are not affected.",
  "scheduledAccountingRepeatOnce": "Once",
  "scheduledAccountingRepeatDaily": "Daily",
  "scheduledAccountingRepeatSingleRest": "Single-rest workdays",
  "scheduledAccountingRepeatDoubleRest": "Double-rest workdays",
  "scheduledAccountingRepeatCustomWeekly": "Custom weekly",
  "scheduledAccountingNotificationTitle": "Scheduled bill due",
  "scheduledAccountingNotificationBody": "{book} · {category} · {amount}",
  "scheduledAccountingGenerated": "Automatically created {count} bill(s)",
  "planReminderEmpty": "No plan notifications yet",
  "planReminderEmptyDesc": "Use the add button in the lower-right corner to remind yourself about a savings or compound plan",
  "planReminderAdd": "Add Plan Notification",
  "planReminderEdit": "Edit Plan Notification",
  "planReminderSelectPlan": "Select Plan",
  "planReminderNoPlans": "No plans are available for reminders. Create a savings or compound plan first.",
  "planReminderUnavailable": "Unavailable",
  "planReminderTargetUnavailable": "This plan no longer exists or was deleted. Please choose another plan.",
  "planReminderNoNextTime": "No upcoming reminder",
  "planReminderHuaweiAutoStartGuideTitle": "Huawei/HarmonyOS reminder setup",
  "planReminderHuaweiAutoStartGuideDesc": "On Huawei/Honor/HarmonyOS devices, open App launch management and manually enable Auto-launch, Secondary launch, and Run in background so plan reminders stay reliable after the app is closed.",
  "planReminderPushTitle": "Plan reminder: {plan}",
  "planReminderPushBody": "Remember to check the progress of \"{plan}\"",
  "systemPermissions": "System Permissions",
  "permissionCamera": "Camera",
  "permissionNotifications": "Notifications",
  "permissionPhotos": "Photos",
  "permissionAutoStart": "Auto-start",
  "permissionExactAlarm": "Exact Alarms",
  "permissionBatteryOptimization": "Battery Optimization",
  "permissionCameraDesc": "Used for scanning QR codes during device migration",
  "permissionNotificationsDesc": "Used for plan reminders and scheduled accounting reminders",
  "permissionPhotosDesc": "Used for selecting and inserting images in notes",
  "permissionAutoStartDesc": "Manually enable Auto-launch, Secondary launch, and Run in background so reminders stay reliable after the app is closed",
  "permissionHuaweiAutoStartDesc": "On Huawei/Honor/HarmonyOS devices, enable Auto-launch, Secondary launch, and Run in background in App launch management",
  "permissionExactAlarmDesc": "Used to create scheduled bills on time in the background",
  "permissionBatteryOptimizationDesc": "Disabling battery optimization improves background scheduled accounting reliability",
  "permissionGranted": "Granted",
  "permissionLimited": "Limited",
  "permissionDenied": "Not granted",
  "permissionPermanentlyDenied": "Denied. Enable it in system settings.",
  "permissionRestricted": "Restricted by the system",
  "permissionUnavailable": "Unavailable on this platform",
  "permissionDialogTitle": "Permission required: {permission}",
  "permissionRequest": "Allow",
  "permissionOpenSettings": "Open System Settings",
  "helpFeedback": "Help & Feedback",
  "helpHeroTitle": "Start with one record and build your finance routine over time",
  "helpHeroDesc": "This page covers the common flows for accounting, plans, reminders, notes, and data migration. If something goes wrong, copy the feedback template to help the developer locate it.",
  "helpQuickStartTitle": "Quick Start",
  "helpQuickStartAccountingTitle": "Record Money",
  "helpQuickStartAccountingDesc": "Create an account book, then use the add button on Accounting to add income or expenses.",
  "helpQuickStartPlanTitle": "Create Plans",
  "helpQuickStartPlanDesc": "Add a savings or compound plan and update its progress regularly.",
  "helpQuickStartReminderTitle": "Set Reminders",
  "helpQuickStartReminderDesc": "Enable plan notifications or scheduled accounting in Settings so the system can remind you.",
  "helpQuickStartMigrationTitle": "Move Data",
  "helpQuickStartMigrationDesc": "Connect both devices to the same Wi-Fi and migrate data peer to peer with a QR code.",
  "helpGuideTitle": "How To Use",
  "helpGuideAccountingTitle": "Accounting & Stats",
  "helpGuideAccountingStep1": "Open Accounting from the bottom navigation, then create or select an account book.",
  "helpGuideAccountingStep2": "Tap the add button, choose income or expense, then enter amount, category, and notes.",
  "helpGuideAccountingStep3": "To organize categories, go to Settings > Category Settings to add, edit, or merge categories.",
  "helpGuideAccountingStep4": "Open account book details or Stats to review spending structure and history.",
  "helpGuidePlanTitle": "Plan Management",
  "helpGuidePlanStep1": "Open Plans from the bottom navigation, then choose a savings plan, compound plan, or custom plan.",
  "helpGuidePlanStep2": "Fill in target amount, period, return parameters, and save it to the plan list.",
  "helpGuidePlanStep3": "Open plan details and record deposits, withdrawals, or milestone changes as they happen.",
  "helpGuidePlanStep4": "Plan notifications can attach to a specific plan and remind you to check progress.",
  "helpGuideReminderTitle": "Notifications & Scheduled Accounting",
  "helpGuideReminderStep1": "Go to Settings > Plan Notifications, add a reminder, then choose the plan and reminder time.",
  "helpGuideReminderStep2": "When enabling reminders for the first time, allow notification permission. Some Android phones also need Auto-launch and Run in background enabled manually.",
  "helpGuideReminderStep3": "Go to Settings > Scheduled Accounting to create rules for rent, subscriptions, salary, and other recurring items.",
  "helpGuideReminderStep4": "When a scheduled accounting rule is due, Visdo sends a confirmation notification. A bill is created only after you confirm it.",
  "helpGuideNotesTitle": "Notes & AI",
  "helpGuideNotesStep1": "Open Notes from the bottom navigation and add records for reviews, plan explanations, or trading thoughts.",
  "helpGuideNotesStep2": "The note editor supports basic formatting and image insertion for long-term information.",
  "helpGuideNotesStep3": "Open AI to discuss investing, plans, and finance questions.",
  "helpGuideSettingsTitle": "Settings & Data",
  "helpGuideSettingsStep1": "Use Interface & Display to change theme, language, and font size.",
  "helpGuideSettingsStep2": "Use Data Migration to send or receive data with a QR code on another device.",
  "helpGuideSettingsStep3": "If something is deleted by mistake, check Recycle Bin first.",
  "helpFaqTitle": "FAQ",
  "helpFaqNotificationQuestion": "Why am I not receiving reminder notifications?",
  "helpFaqNotificationAnswer": "First check system notification permission, then make sure the plan notification or scheduled accounting rule is enabled. On Android, also check Auto-launch, Run in background, battery optimization, and exact alarm settings.",
  "helpFaqScheduledAccountingQuestion": "Will scheduled accounting create bills automatically?",
  "helpFaqScheduledAccountingAnswer": "The current design sends a confirmation notification when a rule is due. A bill is created only after you tap Confirm, which prevents incorrect rules from writing data silently.",
  "helpFaqMigrationQuestion": "How do I move data to another phone or computer?",
  "helpFaqMigrationAnswer": "Go to Settings > Data Migration. Choose Send on the old device and Receive on the new device. Both devices need to be on the same Wi-Fi, then follow the QR code flow.",
  "helpFaqDataQuestion": "Is my data uploaded to the cloud automatically?",
  "helpFaqDataAnswer": "The app currently focuses on local storage and device-to-device migration. Cloud migration is still in preparation, so important data should be backed up with migration or future export tools.",
  "helpFeedbackSectionTitle": "Send an issue or suggestion",
  "helpFeedbackSectionDesc": "Include what happened, reproduction steps, device system, and screenshots when possible. Copy the template first, then send it through your usual communication channel.",
  "helpFeedbackCopyTemplate": "Copy Feedback Template",
  "helpFeedbackCopied": "Feedback template copied",
  "helpFeedbackContactEmail": "Email: thl_lyj@163.com",
  "helpFeedbackTemplate": "Visdo Feedback\n\nSend to: thl_lyj@163.com\nPlatform: {platform}\nVersion: v1.0.0\nType: Bug / Question / Suggestion\n\nDescription:\n\nSteps to reproduce:\n1. \n2. \n3. \n\nExpected result:\n\nActual result:\n\nExtra info: device model, system version, screenshots, or screen recording",
  "aboutApp": "About Wealth Notes",
  "appFooter": "Wealth Notes · Neumorphic Design",
  "clearHistoryDialogTitle": "Clear History",
  "clearHistoryDialogContent": "Are you sure you want to delete all {count} calculation history records? This cannot be undone.",
  "confirmClear": "Clear All",
  "historyClearedToast": "History cleared",
  "aboutDescription": "A compound interest calculator featuring neumorphic design. Supports yearly/monthly compounding, recurring investment cycles, wan-yuan unit toggle, multi-theme switching, and persistent history.",
  "displaySettingsTitle": "Interface & Display",
  "themePicker": "Appearance Theme",
  "multiLanguage": "Language",
  "fontSizeSetting": "Font Size",
  "themePickerTitle": "Appearance Theme",
  "themePickerHeader": "Choose a look you love",
  "themeTip": "Each theme is carefully tuned. The change takes effect immediately; you can switch freely anytime to match your mood and surroundings.",
  "themeCurrentTag": "Currently using",
  "themeNamePureWhite": "Pure White",
  "themeNameMidnightBlack": "Midnight Black",
  "themeNameLightBlue": "Light Blue",
  "themeNameElegantPurple": "Elegant Purple",
  "themeNameEyeCareGreen": "Eye Care Green",
  "themeNameAlmondYellow": "Almond Yellow",
  "themeDescPureWhite": "Clean and bright white interface, simple and elegant",
  "themeDescDarkBlack": "Dark background, excellent contrast, easy on the eyes and battery-friendly",
  "themeDescLightBlue": "Soft blue tones for a calm, refreshing look",
  "themeDescLightPurple": "Elegant purple tones with a refined, sophisticated vibe",
  "themeDescEyeCare": "Soft green tones, easier on the eyes for long sessions",
  "themeDescAlmondYellow": "Warm yellow for a cozy atmosphere",
  "fontSizeTitle": "Font Size",
  "fontCurrentTag": "Currently using",
  "fontSmall": "Small",
  "fontStandard": "Standard",
  "fontLarge": "Large",
  "fontSmallDesc": "Smaller font, fits more content",
  "fontStandardDesc": "Default size, balanced reading and capacity",
  "fontLargeDesc": "Larger font, more comfortable reading",
  "languageTitle": "Language",
  "languageCurrentTag": "Current language",
  "langSimplifiedChinese": "简体中文",
  "langTraditionalChinese": "繁體中文",
  "langEnglish": "English",
  "langSimplifiedChineseDesc": "Used in mainland China, Singapore and other regions",
  "langTraditionalChineseDesc": "Used in Taiwan, Hong Kong, Macau and other regions",
  "langEnglishDesc": "Global English for an international audience",
  "recycleBinTitle": "Recycle Bin",
  "recycleBinEmpty": "Recycle Bin is empty",
  "recycleBinRestore": "Restore",
  "recycleBinDeletePermanently": "Delete permanently",
  "recycleBinEmptyAll": "Empty Recycle Bin",
  "recycleBinDeletedCount": "{count} deleted items",
  "recycleBinClearModule": "Clear current module",
  "recycleBinRetention": "Deleted items are retained for 30 days",
  "recycleBinCategory": "Category",
  "recycleBinOriginalLocation": "Original location: ",
  "recycleBinRootCategory": "Root category",
  "recycleBinUncategorized": "Uncategorized",
  "recycleBinAccountBook": "Account Book",
  "recycleBinAccountBookRestoreHint": "Restoring an account book will also restore its bills",
  "recycleBinBillRecord": "Bill",
  "recycleBinBillCategory": "Category",
  "recycleBinCompleted": "Completed",
  "recycleBinConfirmDelete": "Delete {title} permanently",
  "recycleBinConfirmDeleteContent": "Are you sure you want to delete \"{name}\" permanently? This action cannot be undone.",
  "recycleBinConfirmClearModule": "Are you sure you want to clear {title} recycle items? This action cannot be undone.",
  "recycleBinConfirmClearAll": "Are you sure you want to clear all recycle items? This action cannot be undone.",
  "recycleBinClear": "Clear",
  "recycleBinClearedModule": "{title} recycle items cleared",
  "recycleBinClearedAll": "Recycle Bin cleared",
  "recycleBinDeletedAt": "Deleted at {time}",
  "recycleBinAutoClean": "Auto-clean in {days} days",
  "recycleBinRemainingDays": "{days} days remaining",
  "recycleBinRestoredPlan": "Plan restored",
  "recycleBinRestoredGroup": "Group restored",
  "recycleBinRestoredNote": "Note restored",
  "recycleBinRestoredBook": "Account book restored",
  "recycleBinRestoredBill": "Bill restored",
  "recycleBinRestoredCategory": "Category restored",
  "rpAsset1": "Asset 1",
  "rpAsset2": "Asset 2",
  "rpRiskContribution": "Risk contribution",
  "rpWorkingPrinciple": "Working Principle",
  "rpPrincipleDesc": "Traditional asset allocation distributes by capital proportion (e.g., 60% stocks + 40% bonds), but stock volatility is much higher than bonds, causing portfolio risk to come almost entirely from stocks.\n\nThe core idea of risk parity is: adjust capital weights so each asset contributes equally to total portfolio risk. High volatility assets → allocate less capital, low volatility assets → allocate more capital, until stocks and bonds each bear equal portfolio risk.",
  "mcKeyConclusions": "Key Conclusions",
  "mcPracticalScenario": "Practical Scenarios",
  "atrAdvantage": "Advantages",
  "aboutTitle": "About Wealth Notes",
  "calculatorTitle": "Compound Interest",
  "calcTitle": "Compound Interest",
  "btnStartCalculate": "Calculate",
  "labelStart": "Calculate",
  "labelRecalculate": "Recalculate",
  "labelResult": "Result",
  "labelDetails": "Amortization Schedule",
  "labelExpectedDuration": "Expected time to goal",
  "toastInvalidParams": "Please fill in all investment parameters first",
  "toastNoRateNoContribution": "Rate and recurring amount cannot both be zero; please fill in at least one",
  "toastParamsInvalid": "Invalid parameters: please verify rate, amounts and other fields are filled correctly",
  "statTotalPeriods": "Total Periods",
  "statFinalAmount": "Final Amount",
  "statTotalPrincipal": "Total Principal",
  "statTotalInterest": "Total Interest",
  "statCumulativePrincipal": "Cumulative Principal",
  "statCumulativeInterest": "Cumulative Interest",
  "labelYearlyTable": "Yearly Schedule",
  "labelMonthlyTable": "Monthly Schedule",
  "colPeriod": "Period",
  "colStartAmount": "Start Balance",
  "colContribution": "Contribution",
  "colInterest": "Interest",
  "colEndAmount": "End Balance",
  "seeMoreRows": "Show all rows",
  "foldRows": "Collapse rows",
  "unitItemPeriodYear": "yr",
  "unitItemPeriodMonth": "mo",
  "unitYear": "yr",
  "unitMonth": "mo",
  "unitYears": "yr",
  "unitMonths": "mo",
  "reachedTargetPeriodHint": "to reach target amount",
  "resultFinalAmount": "Final Amount",
  "resultTimeToTarget": "Time to Target",
  "resultTotalPrincipal": "Total Principal",
  "resultTotalInterest": "Total Interest Earned",
  "resultYieldRate": "Total Yield",
  "labelResultSection": "Result Overview",
  "labelScheduleSection": "Amortization Schedule",
  "periodReachedBadge": "Target Reached",
  "periodsNeededPrefix": "Needed",
  "historyTitle": "Calculation History",
  "historyEmpty": "No history yet",
  "historyEmptyDesc": "Head to the Calculator and start planning. Your future self will thank you.",
  "labelReached": "Reached",
  "labelAmountShort": "Final",
  "labelPrincipalShort": "Principal",
  "labelInterestShort": "Interest",
  "statPrincipalShort": "Principal",
  "statInterestShort": "Interest",
  "statTotalShort": "Total",
  "swipeConvertToPlan": "To Plan",
  "swipeDelete": "Delete",
  "actionConvertToPlan": "To Plan",
  "actionDelete": "Delete",
  "toastConvertedToPlan": "Converted to plan",
  "toastDeleteHistory": "History record deleted",
  "historyDetailTitle": "Calculation Detail",
  "sectionParams": "Investment Parameters",
  "sectionStats": "Key Metrics",
  "sectionDetailTable": "Amortization Schedule",
  "planTitle": "Plans",
  "planEmpty": "No plans yet",
  "planEmptyDesc": "Click the Add button in the bottom right corner to create your first plan",
  "addPlanTitle": "New Plan",
  "compoundPlan": "Compound Plan",
  "compoundPlanDesc": "Track compound goals with principal, contributions, and rates",
  "compoundPlanEmpty": "No compound plans yet",
  "compoundPlanEmptyDesc": "Click the Add button in the bottom right corner to create your first compound plan",
  "addCompoundPlanTitle": "New Compound Plan",
  "savingsPlan": "Savings Plan",
  "trainingPlan": "Training Plan",
  "savingsPlanDesc": "Set a savings goal and record deposits or withdrawals",
  "savingsPlanEmpty": "No savings plans yet",
  "savingsPlanEmptyDesc": "Click the Add button in the bottom right corner to create your first savings plan",
  "addSavingsPlan": "New Savings Plan",
  "editSavingsPlan": "Edit Savings Plan",
  "savingsTarget": "Savings Goal",
  "savingsCurrent": "Current Savings",
  "savingsRemaining": "Remaining",
  "savingsProgress": "Savings Progress",
  "savingsRecords": "Entries",
  "savingsRecordCount": "Entries",
  "savingsNoRecords": "No entries yet",
  "savingsDeposit": "Deposit",
  "savingsWithdrawal": "Withdraw",
  "savingsAddEntry": "New Entry",
  "savingsEditEntry": "Edit Entry",
  "savingsEntryAmount": "Amount",
  "savingsEntryDate": "Date",
  "savingsEntryNoteHint": "Note (optional)",
  "savingsInvalidAmount": "Enter an amount greater than 0",
  "savingsBalanceInsufficient": "Current savings are not enough for this withdrawal",
  "savingsPlanCreated": "Savings plan created",
  "savingsPlanUpdated": "Savings plan saved",
  "savingsEntrySaved": "Entry saved",
  "savingsPlanRestored": "Savings plan restored",
  "savingsPlanUnavailable": "Savings plan is missing or deleted",
  "savingsDeleteEntry": "Delete Entry",
  "savingsDeleteEntryDesc": "Delete this savings entry?",
  "planCountTpl": "{count}",
  "planCreatedDatePrefix": "Created",
  "planCompletionPrefix": "Completion",
  "labelCompleted": "Completed",
  "statusCompletedCelebrate": "🎉 Congrats — you completed the plan!",
  "labelPlanName": "Plan Name",
  "hintPlanName": "Enter a plan name",
  "toastPlanSaved": "Plan saved",
  "toastPlanDeleted": "Plan deleted",
  "toastPlanPinned": "Pinned",
  "toastPlanUnpinned": "Unpinned",
  "dialogDeletePlanTitle": "Delete Plan",
  "btnDelete": "Delete",
  "paramInitial": "Initial",
  "paramTarget": "Target",
  "paramMonthlyContribution": "Monthly",
  "paramYearlyContribution": "Yearly",
  "paramMonthlyRate": "Mo. rate",
  "paramYearlyRate": "Annual rate",
  "unitWanShort": "0k",
  "swipePin": "Pin",
  "swipeUnpin": "Unpin",
  "labelCompletionRate": "Completion",
  "labelCreatedAtPrefix": "Created",
  "labelInvested": "Invested",
  "labelCurrentBalance": "Balance",
  "actionPin": "Pin",
  "actionUnpin": "Unpin",
  "planDetailTitle": "Plan Detail",
  "planStatusActive": "In progress",
  "planStatusCompleted": "Completed",
  "planDetailSectionSchedule": "Execution Schedule",
  "formTitleInvestment": "Investment Parameters",
  "formTitlePlan": "Plan Parameters",
  "labelInitialAmount": "Initial Amount",
  "labelMonthlyContribution": "Recurring Amount",
  "labelRate": "Interest Rate",
  "labelTargetAmount": "Target Amount",
  "hintInitialAmount": "Initial principal",
  "hintContributionAmount": "Annual contribution",
  "hintExpectedRate": "Expected annual rate",
  "hintTargetAmount": "Your financial goal",
  "unitYuan": "CNY",
  "unitWanYuan": "10k",
  "unitPercent": "%",
  "unitPerYearYuan": "/yr",
  "unitPerMonthYuan": "/mo",
  "unitPerYearRate": "% p.a.",
  "unitPerMonthRate": "% p.m.",
  "btnYear": "Year",
  "btnMonth": "Month",
  "btnYuan": "CNY",
  "btnWan": "10k",
  "uaLastUpdated": "Last updated: June 28, 2026",
  "ppLastUpdated": "Last updated: June 28, 2026",
  "previewEffect": "Font Size Preview",
  "previewTitleSample": "This is a sample title",
  "previewBodySample": "This is a sample body. Pick a comfortable font size so that calculation results and history records feel natural for long reading sessions.",
  "previewCaptionSample": "Caption / helper text sample",
  "fontSizeTip": "Tip: Pick a font size that works best for you. The change applies immediately and is saved automatically.",
  "labelInitialPrincipal": "Initial Principal",
  "labelTotalPeriodsReachedTpl": "Total of {count} {unit} reached",
  "labelDetailTableWithCountTpl": "Amortization Schedule ({count} {unit} in total)",
  "footerGoalReached": "🎉 Target amount reached!",
  "statusInProgressTpl": "{completed} / {total} {unit} completed",
  "labelPlanPrincipal": "Planned Principal",
  "labelPlanInterest": "Planned Interest",
  "labelTargetTotal": "Target Total",
  "labelExecutionDetail": "Execution Detail",
  "footerAllPeriodsDone": "✅ All periods completed — goal achieved",
  "footerCheckCompletedPeriods": "Tip: Check off each period as you complete it; progress updates automatically.",
  "labelContribution": "Recurring",
  "suffixYuan": "CNY",
  "suffixWanYuan": "10k",
  "suffixPercent": "%",
  "suffixYuanPerMonth": "/mo",
  "suffixYuanPerYear": "/yr",
  "hintContributionMonthly": "Monthly contribution amount",
  "hintContributionYearly": "Yearly contribution amount",
  "hintRateMonthly": "Expected monthly rate (%)",
  "hintRateYearly": "Expected annual rate (%)",
  "hintTargetAmountYuan": "Target amount (CNY)",
  "hintTargetAmountWan": "Target amount (×10,000)",
  "noDetailData": "No schedule data yet. Run a calculation and each period will appear here.",
  "thCompleted": "Done",
  "thOpeningBalance": "Opening",
  "thContribution": "Contrib.",
  "thInterest": "Interest",
  "thCumulativeInterest": "Cum. Interest",
  "thCumulativePrincipal": "Cum. Principal",
  "thClosingBalance": "Closing",
  "toastEnterPlanName": "Please enter a plan name first",
  "toastPlanCreatedTpl": "Plan \"{name}\" created",
  "btnAutoGenerate": "Auto generate",
  "labelPreviewResult": "Preview result",
  "btnCreatePlan": "Create Plan",
  "notificationsTitle": "Notifications",
  "notifyMonthEnd": "Month-End Reminder",
  "notifyMonthEndDesc": "Notify you of plan progress at the end of each month",
  "notifyYearEnd": "Year-End Reminder",
  "notifyYearEndDesc": "Notify you of yearly plan completion at the end of each year",
  "notifyMonthEndPushTitle": "Month-End Is Here 🌙",
  "notifyMonthEndPushBody": "It's the end of the month! Take a quick look at your plan progress.",
  "notifyYearEndPushTitle": "Year-End Is Here 🎆",
  "notifyYearEndPushBody": "It's the end of the year! Don't forget to review your yearly plan.",
  "notifyPermissionDenied": "Notification permission is required. Please enable it in Settings.",
  "notifyBatteryOptimizationHint": "Not showing? Please disable battery optimization in system Settings.",
  "notifyAutoStartMust": "Notifications may not work properly. Please enable Auto-launch, Secondary launch, and Run in background.",
  "notifyCheckAutoStart": "To receive notifications after closing the app, make sure Auto-launch, Secondary launch, and Run in background are enabled.",
  "notifyOpenSettings": "Settings",
  "notifyTest": "Test notification",
  "notifyTestPushTitle": "Visdo test notification",
  "notifyTestPushBody": "If you can see this, system notifications are working.",
  "notifyTestSent": "Test notification sent. Check the system notification center.",
  "notifyTestFailed": "Failed to send test notification. Check system notification settings.",
  "autoStartPermissionPromptTitle": "Enable auto-start",
  "autoStartPermissionPromptDesc": "To keep plan reminders and scheduled accounting reminders working after the app is closed, manually enable Auto-launch, Secondary launch, and Run in background in system settings.",
  "autoStartPermissionHuaweiPromptDesc": "On Huawei/Honor/HarmonyOS devices, open App launch management, turn off automatic management, and manually enable Auto-launch, Secondary launch, and Run in background. This helps plan reminders and scheduled accounting reminders stay reliable after the app is closed.",
  "autoStartPermissionAlreadyEnabled": "Already enabled",
  "notificationPermissionPromptTitle": "Enable notifications",
  "notificationPermissionPromptDesc": "Please enable notifications so Visdo can send plan reminders and scheduled accounting reminders.",
  "notificationPermissionSettingsDesc": "Please enable notifications so Visdo can send plan reminders and scheduled accounting reminders. You can turn them on manually in system settings.",
  "notificationPermissionContinue": "Continue",
  "notifyEmptyHint": "No reminders yet. Tap + in the bottom-right to add one.",
  "notifyAddReminder": "Add Reminder",
  "notifyEditReminder": "Edit Reminder",
  "notifyDeleteReminder": "Delete Reminder",
  "notifyDeleteConfirm": "Delete this reminder?",
  "notifySave": "Save",
  "notifyCancel": "Cancel",
  "notifyDelete": "Delete",
  "modeOnce": "Once",
  "modeDaily": "Daily",
  "modeWeekly": "Weekly",
  "modeMonthly": "Monthly",
  "modeYearly": "Yearly",
  "fieldRemindTime": "Reminder Time",
  "fieldDate": "Date",
  "fieldWeekdays": "Weekdays",
  "fieldDayOfMonth": "Day of Month",
  "fieldLastDayOfMonth": "Last Day of Month",
  "fieldMonth": "Month",
  "fieldDay": "Day",
  "fieldLastDayOfYear": "Last Day of Year",
  "wd1": "Mon",
  "wd2": "Tue",
  "wd3": "Wed",
  "wd4": "Thu",
  "wd5": "Fri",
  "wd6": "Sat",
  "wd7": "Sun",
  "notifyOncePushTitle": "Your Reminder Is Due ⏰",
  "notifyOncePushBody": "This is your one-time reminder. Take a moment to check your plan progress.",
  "notifyDailyPushTitle": "Daily Plan Check 🌅",
  "notifyDailyPushBody": "How's your plan today? 30 seconds to check in!",
  "notifyWeeklyPushTitle": "Weekly Plan Check 📅",
  "notifyWeeklyPushBody": "Don't forget to update this week's plan progress.",
  "notifyMonthlyPushTitle": "Monthly Plan Check 🌙",
  "notifyMonthlyPushBody": "The date came around again. Take a look at this month's plan!",
  "notifyYearlyPushTitle": "Yearly Plan Check 🎆",
  "notifyYearlyPushBody": "Another year passed — don't forget to review your plan progress.",
  "descPrefixOnce": "Once",
  "descPrefixDaily": "Daily at",
  "descPrefixWeekly": "Weekly on",
  "descPrefixMonthly": "Monthly on",
  "descPrefixYearly": "Yearly on",
  "descLastDayOfMonth": "last day",
  "descLastDayOfYear": "Dec 31",
  "descDayOfMonthSuffix": "",
  "descMonthSuffix": "",
  "compoundInterestCalc": "Compound Interest Calculator",
  "compoundInterestCalcDesc": "Principal · DCA · Rate · Target",
  "kellyFormula": "Kelly Criterion",
  "kellyFormulaDesc": "Position sizing · Calculate optimal bet size",
  "kellyCalculatorTitle": "Kelly Criterion Calculator",
  "kellyOddsB": "Odds b",
  "kellyOddsBHint": "Net odds, e.g. 2 means win 2x your stake",
  "kellyWinProbP": "Win Probability p",
  "kellyWinProbPHint": "e.g. 55 means 55%",
  "kellyLoseProbQ": "Lose Probability q",
  "kellyLoseProbQHint": "Auto = 100% - p, or adjust manually",
  "kellyUnitPercent": "%",
  "kellyBtnCalculate": "Calculate",
  "kellyBtnReset": "Reset",
  "kellyFraction": "Kelly fraction f*",
  "kellySuggestedPosition": "Suggested Position",
  "kellyRiskCapital": "Risk Capital %",
  "kellyHalfKelly": "Half-Kelly (Conservative)",
  "kellyQuarterKelly": "Quarter-Kelly (Very Conservative)",
  "kellyFullKelly": "Full-Kelly (Aggressive)",
  "kellyExplanation": "Explanation",
  "kellyIntro": "The Kelly Criterion calculates the optimal bet or position size to maximize the expected long-term growth rate of capital, while avoiding the risk of ruin from oversized bets. It is widely used in investment position sizing and game theory strategies.",
  "kellyFormulaText": "f* = (p × b - q) / b",
  "kellyFormulaMeaning": "Where: p = win probability, q = lose probability, b = net odds (profit on win / loss on lose)",
  "kellyWarning": "Note: Full-Kelly maximizes theoretical return but is highly volatile. Half-Kelly or lower is recommended in practice.",
  "kellyInvalidParamsToast": "Invalid parameters. Odds must be > 0, p + q must equal 100%, each in 0-100 range.",
  "toolFixedRisk": "2% Fixed Risk Rule",
  "toolFixedRiskDesc": "Risk ≤ 2% of total capital per trade",
  "toolSharpeCalmar": "Sharpe / Calmar Ratio",
  "toolSharpeCalmarDesc": "Risk-adjusted return metrics",
  "toolMeanVariance": "Mean-Variance",
  "toolMeanVarianceDesc": "Portfolio optimization · Asset allocation",
  "toolMonteCarlo": "Monte Carlo Simulation",
  "toolMonteCarloDesc": "Random sampling · Return distribution",
  "toolAtrStop": "ATR Dynamic Stop Loss",
  "toolAtrStopDesc": "Average True Range · Trend stop loss",
  "calcBtn": "Calculate",
  "resetBtn": "Reset",
  "fr_title": "2% Fixed Risk Rule",
  "fr_totalCapital": "Total Capital",
  "fr_totalCapitalHint": "e.g. 100000",
  "fr_entryPrice": "Entry Price",
  "fr_entryPriceHint": "e.g. 50.00",
  "fr_stopLoss": "Stop Loss Price",
  "fr_stopLossHint": "e.g. 45.00",
  "fr_riskPercent": "Risk %",
  "fr_riskPercentHint": "Default 2%",
  "fr_resultTitle": "Results",
  "fr_positionSize": "Position Size (shares)",
  "fr_positionValue": "Position Value",
  "fr_riskAmount": "Risk Amount",
  "fr_unitYuan": "",
  "fr_unitShares": "shares",
  "sc_annualReturn": "Annual Return",
  "sc_annualReturnHint": "e.g. 15 means 15%",
  "sc_riskFreeRate": "Risk-Free Rate",
  "sc_riskFreeRateHint": "e.g. 2.5 means 2.5%",
  "sc_annualVol": "Annual Volatility",
  "sc_annualVolHint": "e.g. 20 means 20%",
  "sc_maxDrawdown": "Max Drawdown",
  "sc_maxDrawdownHint": "e.g. 30 means 30%",
  "sc_sharpeRatio": "Sharpe Ratio",
  "sc_calmarRatio": "Calmar Ratio",
  "sc_interpretation": "Interpretation",
  "sc_goodSharpe": "Sharpe > 1 indicates good risk-adjusted return",
  "sc_goodCalmar": "Calmar > 2 indicates excellent drawdown control",
  "sc_badSharpe": "Sharpe ratio is low, risk-adjusted return needs improvement",
  "sc_badCalmar": "Calmar ratio is low, drawdown control needs improvement",
  "sc_unitPercent": "%",
  "mv_expectedReturn": "Expected Annual Return",
  "mv_volatility": "Annual Volatility",
  "mv_correlation": "Correlation",
  "mv_mvWeights": "Mean-Variance Optimal Weights",
  "mv_rpWeights": "Risk Parity Weights",
  "mv_portfolioReturn": "Portfolio Expected Return",
  "mv_portfolioVol": "Portfolio Volatility",
  "mv_unitPercent": "%",
  "mc_initialCapital": "Initial Capital",
  "mc_initialCapitalHint": "e.g. 100000",
  "mc_expectedReturn": "Expected Annual Return",
  "mc_expectedReturnHint": "e.g. 12 means 12%",
  "mc_volatility": "Annual Volatility",
  "mc_volatilityHint": "e.g. 20 means 20%",
  "mc_years": "Years",
  "mc_yearsHint": "e.g. 10",
  "mc_simulations": "Simulations",
  "mc_simulationsHint": "e.g. 1000",
  "mc_median": "Median",
  "mc_pct5": "95th Percentile (Pessimistic)",
  "mc_pct25": "75th Percentile",
  "mc_pct75": "25th Percentile",
  "mc_pct95": "5th Percentile (Optimistic)",
  "mc_avg": "Average",
  "mc_unitYuan": "",
  "atr_atrValue": "ATR Value",
  "atr_atrValueHint": "e.g. 2.50",
  "atr_multiplier": "ATR Multiplier",
  "atr_multiplierHint": "Default 2~3x",
  "atr_entryPrice": "Entry Price",
  "atr_entryPriceHint": "e.g. 100.00",
  "atr_direction": "Direction",
  "atr_long": "Long",
  "atr_short": "Short",
  "atr_stopPrice": "Stop Loss Price",
  "atr_riskPerShare": "Risk per Share",
  "atr_stopLoss": "Stop Loss",
  "fr_explanationTitle": "Overview",
  "fr_explanationDesc": "Controls the maximum loss per trade, limiting each trade's loss to no more than 2% of total account capital. Solves the problem of a single large loss wiping out previous gains. Used across futures, stocks, and forex — a core risk control rule from the Turtle Trading System.",
  "fr_formulaTitle": "Formulas",
  "fr_formula1": "Max Loss Per Trade = Total Capital × Risk %",
  "fr_formula2": "Per Unit Loss = |Entry Price - Stop Loss|",
  "fr_formula3": "Position Size = Max Loss ÷ Per Unit Loss",
  "fr_example": "Example\n$100K capital, buy at $100, stop at $95, loss of $5/share\nMax loss = 100,000 × 2% = $2,000\nShares = 2,000 ÷ 5 = 400 shares",
  "fr_pros": "Pros: Simple to implement, no need to estimate win rate, enforces single-trade drawdown control",
  "fr_cons": "Cons: Doesn't distinguish opportunity quality; high-ROI opportunities are capped by the same fixed risk, limiting compounding vs. Kelly",
  "sc_explanationTitle": "Overview",
  "sc_sharpeTitle": "Sharpe Ratio",
  "sc_sharpeDesc": "Measures how much excess return you get per unit of total volatility. Used to compare stocks, funds, or trading strategies on a risk-adjusted basis.",
  "sc_sharpeFormula": "SR = (Rp - Rf) / σp\nRp: Annual portfolio return  Rf: Risk-free rate  σp: Annual volatility",
  "sc_sharpeNotes": "Interpretation: SR＞1 is good, SR＞1.5 excellent, SR＞2 world-class\nLimitation: Profitable upside volatility also increases denominator, underestimating trend strategies",
  "sc_calmarTitle": "Calmar Ratio",
  "sc_calmarDesc": "Specifically measures long-term stability by comparing annual return to maximum drawdown. Preferred for long-term investing and hedge fund screening.",
  "sc_calmarFormula": "Calmar = Annual Return / Max Drawdown",
  "sc_calmarNotes": "Higher values mean faster recovery and better drawdown control.\nExample: 20% annual return, 10% max drawdown, Calmar=2 — recovers 2× the drawdown per year.",
  "sc_diffTitle": "Key Differences",
  "sc_diffDesc": "Sharpe: Measures volatility efficiency, suitable for short-term/trading strategies\nCalmar: Measures drawdown recovery, suitable for long-term/asset allocation",
  "mv_explanationTitle": "Overview",
  "mv_mptTitle": "Markowitz Mean-Variance (MPT)",
  "mv_mptDesc": "The core of modern portfolio theory, solving for optimal capital allocation across assets. Uses correlation between assets to diversify risk — combining low-correlation assets reduces overall portfolio volatility.",
  "mv_mptLimit": "Limitation: Heavily dependent on historical returns, volatility, and correlation estimates. Parameters break during bull/bear regime shifts, potentially over-concentrating in a single asset.",
  "mv_rpTitle": "Risk Parity",
  "mv_rpDesc": "Instead of allocating by capital, allocates so each asset class contributes equal risk to the portfolio.\nExample: Stocks are volatile, bonds are stable — bonds get more capital, stocks less, so stocks, bonds, and commodities each contribute 25% of total portfolio risk.",
  "mv_rpAdvantage": "Advantage: Avoids overweighting stocks just because they have high returns. Drastically reduces extreme bear market drawdowns. A standard institutional long-term core holding.",
  "mv_compare": "Comparison: Mean-variance pursues maximum return, tending to overweight high-beta assets. Risk parity pursues balanced risk, sacrificing some return for extreme stability.",
  "mc_explanationTitle": "Overview",
  "mc_desc": "Based on trading parameters (win rate, risk/reward, average P&L, position sizing rules), the computer runs thousands of random simulations of a complete trading career to output probabilistic results, helping predict long-term strategy risk in advance.",
  "mc_outputs": "Key Outputs\n1. Probability of account ruin\n2. Distribution range of capital over 5-10 years\n3. Maximum expected drawdown at 95% confidence\n4. Compare long-term return/risk across Kelly, 2% Rule, and other sizing methods\n5. Stress test: strategy performance when win rate drops slightly",
  "mc_scenario": "Practical Use\nAfter calculating the optimal Kelly position, use Monte Carlo to verify: if actual win rate is lower than estimated, will deep drawdowns occur? Helps decide whether to switch to Half-Kelly.",
  "atr_explanationTitle": "Overview",
  "atr_desc": "Sets adaptive dynamic stop loss levels based on recent market volatility, replacing fixed percentage stops. Solves the problem of stops being too tight or too loose during volatile markets.",
  "atr_formulaTitle": "ATR Calculation",
  "atr_trFormula": "True Range TR = max(High-Low, High-PrevClose, PrevClose-Low)",
  "atr_atrFormula": "ATR = Simple average of TR over N periods (commonly 14)",
  "atr_stopFormulaTitle": "Stop Loss Formulas",
  "atr_stopFormula": "Long Stop = Entry Price - N × ATR\nShort Stop = Entry Price + N × ATR (typical multiplier: 1.5~2× ATR)",
  "atr_example": "Example: Stock at $100, 14-day ATR=3, using 2× ATR\nStop Loss = 100 - 2 × 3 = $94",
  "atr_advantages": "Advantages\n1. Low-volatility stocks get tighter stops, allowing larger positions\n2. High-volatility environments automatically widen stops to avoid being shaken out\n3. Can combine with the 2% Risk Rule: ATR sets stop distance, 2% Rule calculates position size — a complete trading system",
  "toolSharpeRatio": "Sharpe Ratio",
  "toolSharpeRatioDesc": "Risk-adjusted return per unit of volatility",
  "toolCalmarRatio": "Calmar Ratio",
  "toolCalmarRatioDesc": "Drawdown recovery · Return / Max Drawdown",
  "riskParityTitle": "Risk Parity",
  "riskParityDesc": "Equal risk contribution · Portfolio balancer",
  "rp_explanationTitle": "Overview",
  "rp_desc": "Instead of allocating by capital, allocates so each asset class contributes equal risk to the portfolio.\nExample: Stocks are volatile, bonds are stable — bonds get more capital, stocks less, so each contributes 25% of total risk.",
  "rp_formula": "w1 × σ1 = w2 × σ2 (simplified, ignoring correlation)\nw1 = σ2 / (σ1 + σ2)",
  "rp_advantage": "Advantage: Avoids overweighting stocks just because they have high returns. Drastically reduces extreme bear market drawdowns. A institutional long-term core holding.",
  "rp_compare": "Comparison: Mean-variance pursues maximum return, tending to overweight high-beta assets. Risk parity pursues balanced risk, sacrificing some return for extreme stability.",

  "accountingNewBook": "New Account Book",
  "accountingBookNameHint": "Account Book Name",
  "accountingDeleteBookConfirm": "Confirm delete this account book?",
  "accountingDelete": "Delete",
  "accountingEmpty": "No account books yet",
  "accountingEmptyDesc": "Click the button below to create your first account book",
  "accountingTotal": "Total Balance",
  "accountingTodayIncome": "Today's Income",
  "accountingTodayExpense": "Today's Expense",
  "accountingAddBill": "Add Bill",
  "accountingExpense": "Expense",
  "accountingIncome": "Income",
  "accountingAmountHint": "Amount",
  "accountingNoteHint": "Note (optional)",
  "accountingEnterAmount": "Please enter amount",
  "accountingInvalidAmount": "Invalid amount",
  "accountingAmountTooLarge": "Single amount cannot exceed 100 million",
  "accountingSelectCategory": "Please select category",
  "accountingDeleteBillConfirm": "Confirm delete this bill?",
  "accountingBillEmpty": "No bills yet",
  "accountingBillEmptyDesc": "Click the button below to add your first bill",
  "accountingStats": "Statistics",
  "accountingAllBooks": "All Books",
  "accountingSelectBooks": "Select Books",
  "accountingNoData": "No Data",
  "accountingAddCategory": "Add Category",
  "accountingCategoryNameHint": "Category Name",
  "accountingEditBookName": "Edit Book Name",
  "accountingEditBookNameHint": "Enter book name",
  "accountingEditName": "Edit Name",
  "accountingCategoryManage": "Category Management",
  "accountingWeekly": "Weekly",
  "accountingMonthly": "Monthly",
  "accountingYearly": "Yearly",
  "accountingCompareWeek": "vs Last Week",
  "accountingCompareMonth": "vs Last Month",
  "accountingCompareYear": "vs Last Year",
  "accountingThisWeek": "This Week",
  "accountingTotalExpense": "Total Expense: ",
  "accountingTotalIncome": "Total Income: ",
  "accountingAverage": "Average: ",
  "accountingRankExpense": "Expense Ranking",
  "accountingRankIncome": "Income Ranking",
  "accountingSelectTime": "Select Time",
  "accountingDate": "Date",
  "accountingToday": "Today",
  "accountingYesterday": "Yesterday",
  "accountingSunday": "Sun",
  "accountingWeekDay": "W",
  "accountingWeekdayMon": "Mon",
  "accountingWeekdayTue": "Tue",
  "accountingWeekdayWed": "Wed",
  "accountingWeekdayThu": "Thu",
  "accountingWeekdayFri": "Fri",
  "accountingWeekdaySat": "Sat",
  "accountingAnalysis": "Analysis",
  "accountingAddBill": "Add Bill",
  "accountingCategory": "Category",
  "accountingMonthSelect": "Select Month",
  "accountingCustomTime": "Custom Time",
  "accountingTransactionTime": "Transaction Time",
  "accountingRecentWeek": "Last Week",
  "accountingRecent3Months": "Last 3 Months",
  "accountingRecent6Months": "Last 6 Months",
  "accountingRecentYear": "Last Year",
  "accountingCustom": "Custom",
  "accountingTo": "to",
  "accountingRangeTooLong": "Time range cannot exceed one year",
  "accountingDeleteCategory": "Delete Category",
  "accountingConfirmDelete": "Are you sure you want to delete \"{name}\"?",
  "accountingDelete": "Delete",
  "accountingConfirmDeleteBills": "Confirm Delete Bills",
  "accountingDeleteBillsWarning": "Will delete all {count} bills under \"{name}\" and this category. This operation cannot be undone. Continue?",
  "accountingStillDelete": "Delete Anyway",
  "accountingCategorySettings": "Category Settings",
  "accountingDeleteCategoryConfirm": "Delete \"{name}\"?",
  "accountingDeleteConfirmBills": "Confirm Delete Related Bills",
  "accountingDeleteCategoryWithBills": "Will delete all {count} bills under \"{name}\" and the category. This cannot be undone. Continue?",
  "accountingDeleteAnyway": "Delete Anyway",
  "accountingCategorySettings": "Category Settings",
  "accountingAddCategoryLabel": "+ Add Category",
  "accountingCategoryHasBills": "{count} bills under \"{name}\"",
  "accountingDeleteCategoryWarning": "Please handle bills before deleting category. Data cannot be recovered.",
  "accountingMigrateTo": "Migrate to Another Category",
  "accountingMigrateSelect": "Select Data to Transfer",
  "accountingNoDataToMigrate": "No data to migrate",
  "accountingSelectAll": "Select All",
  "accountingNextStep": "Next",
  "accountingSelectTargetCategory": "Select Target Category",
  "accountingNoTargetCategory": "No available target categories",
  "accountingMigrating": "Migrating data...",
  "accountingMigrateSuccess": "Migrated {count} records to \"{name}\"",
  "accountingMigrateFailed": "Migration failed: {error}",
  "accountingMigrateDesc": "Select bills and migrate to existing categories before deleting",
  "accountingDeleteBills": "Delete Related Bills",
  "accountingDeleteBillsDesc": "Delete category and all its bill records",
  "accountingTotalBills": "{count} bills",
  "accountingCat_food": "Food & Dining",
  "accountingCat_clothing": "Clothing",
  "accountingCat_daily": "Daily Goods",
  "accountingCat_home": "Home & Decor",
  "accountingCat_digital": "Electronics",
  "accountingCat_sports": "Sports & Outdoors",
  "accountingCat_beauty": "Beauty & Hair",
  "accountingCat_baby": "Baby & Kids",
  "accountingCat_pet": "Pets",
  "accountingCat_transport": "Transportation",
  "accountingCat_car": "Car Care",
  "accountingCat_housing": "Housing",
  "accountingCat_hotel": "Travel",
  "accountingCat_entertainment": "Entertainment",
  "accountingCat_education": "Education",
  "accountingCat_medical": "Healthcare",
  "accountingCat_life": "Life Services",
  "accountingCat_public": "Public Services",
  "accountingCat_business": "Business Services",
  "accountingCat_donation": "Donation",
  "accountingCat_insurance": "Mutual Aid",
  "accountingCat_investment": "Investment",
  "accountingCat_insurance2": "Insurance",
  "accountingCat_credit": "Credit & Loan",
  "accountingCat_recharge": "Recharge & Payment",
  "accountingCat_income": "Income",
  "accountingCat_transfer": "Transfer & Red Packet",
  "accountingCat_family": "Family Payment",
  "accountingCat_deposit": "Deposit & Withdrawal",
  "accountingCat_refund": "Refund",
  "accountingCat_other": "Other",
  "accountingCat_settings": "Settings"
}
