feat(apps): 重构 UI 架构为 presentation 层并新增 l10n 国际化支持

This commit is contained in:
qzl
2026-03-27 14:05:03 +08:00
parent b1f0eb8921
commit c592cc7854
178 changed files with 10748 additions and 5764 deletions
+775
View File
@@ -0,0 +1,775 @@
{
"@@locale": "en",
"appTitle": "Linksy",
"commonConfirm": "Confirm",
"commonCancel": "Cancel",
"commonSave": "Save",
"commonDone": "Done",
"commonRetry": "Retry",
"commonRefreshing": "Refreshing",
"commonLoading": "Loading...",
"commonEdit": "Edit",
"commonDelete": "Delete",
"commonShare": "Share",
"commonArchive": "Archive",
"commonCopySuccess": "Copied",
"commonLoadFailed": "Load failed: {error}",
"@commonLoadFailed": {
"placeholders": {
"error": {}
}
},
"commonUnknown": "Unknown",
"toastLabelSuccess": "Success",
"toastLabelWarning": "Warning",
"toastLabelError": "Error",
"toastLabelInfo": "Info",
"errorGenericSafe": "Request failed, please try again later",
"errorForbidden": "You do not have permission to perform this action",
"errorNotFound": "Requested resource was not found",
"errorTooManyRequests": "Too many requests, please try again later",
"errorServer": "Server error, please try again later",
"errorAgentSseConnectionLimit": "Too many connections, please try again later",
"errorAgentAttachmentEmpty": "Attachment is empty",
"errorAgentAttachmentTooLarge": "Attachment is too large",
"errorAgentAudioEmpty": "Audio content is empty",
"errorAgentAudioTooLarge": "Audio file is too large",
"errorAgentAudioUnsupportedFormat": "Unsupported audio format",
"errorAgentAsrUnavailable": "Speech service is temporarily unavailable",
"errorAgentInvalidLastEventId": "Invalid event cursor, please refresh and retry",
"errorAgentInvalidBinaryUrl": "Invalid image link, please upload again",
"errorRequestFailed": "Request failed",
"errorNetwork": "Network error",
"errorReLogin": "Please sign in again",
"errorNetworkTimeout": "Network timeout. Ensure your device and server are on the same network and retry.",
"errorNetworkUnavailable": "Cannot connect to server. Please enable network access for this app in iPhone settings.",
"homeViewHistory": "View History",
"homeNoEarlierHistory": "No earlier history",
"homeSheetTakePhoto": "Take Photo",
"homeSheetPhotoLibrary": "Photo Library",
"homeDateLabelWithYear": "{year}-{month}-{day} {weekday}",
"@homeDateLabelWithYear": {"placeholders": {"year": {"type": "int"}, "month": {"type": "int"}, "day": {"type": "int"}, "weekday": {}}},
"homeDateLabelNoYear": "{month}-{day} {weekday}",
"@homeDateLabelNoYear": {"placeholders": {"month": {"type": "int"}, "day": {"type": "int"}, "weekday": {}}},
"homeRecordingReleaseCancel": "Release to cancel",
"homeRecordingReleaseSend": "Release to send",
"homeRecordingHintReleaseCancel": "Release to cancel",
"homeRecordingHintReleaseSend": "Release to send, slide up to cancel",
"homeHoldToSpeakText": "Hold to speak",
"homeInputHint": "Type a message...",
"homeTranscribing": "Transcribing voice...",
"homeRecordingCanceled": "Canceled",
"homeToolPreparing": "Preparing tool",
"homeToolExecuting": "Running task",
"homeToolExecutionFailed": "Execution failed",
"homeToolCompleted": "Completed",
"homeRecorderPluginUnavailable": "Recorder plugin is unavailable. Fully restart the app and retry.",
"homeRecorderPermissionDenied": "Microphone permission is not granted",
"homeStopRequested": "Stop requested",
"homeNoValidSpeech": "No valid speech detected. Please move closer to the microphone and retry.",
"agentStageRouting": "Analyzing intent",
"agentStageExecution": "Executing task",
"agentStageMemory": "Loading memory",
"agentStageProcessing": "Processing task",
"agUiEventRunStarted": "Run started",
"agUiEventRunFinished": "Run finished",
"agUiEventRunError": "Run failed",
"agUiEventStepStarted": "Step started",
"agUiEventStepFinished": "Step finished",
"agUiEventTextMessageEnd": "Text output completed",
"agUiEventToolCallStart": "Tool call started",
"agUiEventToolCallArgs": "Tool arguments updated",
"agUiEventToolCallEnd": "Tool call ended",
"agUiEventToolCallResult": "Tool result received",
"agUiEventToolCallError": "Tool call failed",
"agUiEventUnknown": "Unknown event",
"chatRunCanceled": "This run was canceled",
"chatRunFailed": "This run failed",
"chatSseInterruptedRetry": "Connection interrupted, please try again",
"chatTimestampToday": "Today",
"chatTimestampYesterday": "Yesterday",
"chatTimestampMonthDay": "{month}/{day}",
"@chatTimestampMonthDay": {
"placeholders": {
"month": {
"type": "int"
},
"day": {
"type": "int"
}
}
},
"homeUnreadMessages": "{count} new messages",
"@homeUnreadMessages": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"calendarToday": "Today",
"calendarEventNoAccessOrMissing": "Event not found or no permission",
"calendarDayWeekMonthYearLabel": "{year}-{month}",
"@calendarDayWeekMonthYearLabel": {"placeholders": {"year": {"type": "int"}, "month": {"type": "int"}}},
"validatorPhoneRequired": "Please enter phone number",
"validatorPhoneInvalid86": "Please enter a valid +86 phone number",
"validatorPasswordRequired": "Please enter password",
"validatorPasswordMin8": "Password must be at least 8 characters",
"validatorRequired": "Please enter {fieldName}",
"@validatorRequired": {"placeholders": {"fieldName": {}}},
"validatorNicknameRequired": "Please enter nickname",
"validatorNicknameMin2": "Nickname must be at least 2 characters",
"authAgreementTitle": "Please agree to the policies",
"authAgreementMessage": "Before using our services, please read and agree to the User Agreement and Privacy Policy.\n\nWe can only provide services after your consent.",
"authAgreementSemantics": "Agree to User Agreement and Privacy Policy",
"authAgreementPrefix": "I have read and agree to",
"authAgreementTerms": "User Agreement",
"authAgreementAnd": "and",
"authAgreementPrivacy": "Privacy Policy",
"authPhoneHint": "Enter phone number",
"authCodeHint": "Enter verification code",
"authSendCode": "Send Code",
"authShowPassword": "Show password",
"authHidePassword": "Hide password",
"authLoginFailed": "Login failed",
"authCheckInput": "Please check your input",
"authLoginOrRegister": "Login / Register",
"authInvalidPhone": "Please enter a valid phone number",
"authSendCodeFailed": "Failed to send verification code",
"inputUsernameRequired": "Please enter username",
"inputUsernameMin": "Username must be at least 3 characters",
"inputUsernameMax": "Username must be at most 30 characters",
"inputPhoneRequired": "Please enter phone number",
"inputPhoneInvalid": "Invalid phone number format",
"inputPasswordRequired": "Please enter password",
"inputPasswordMin": "Password must be at least 6 characters",
"inputCodeRequired": "Please enter verification code",
"inputCodeInvalid": "Verification code must be 6 digits",
"uiSchemaInvalid": "Invalid UI schema",
"uiSchemaUnsupportedLayout": "Unsupported layout node: {type}",
"@uiSchemaUnsupportedLayout": {
"placeholders": {
"type": {}
}
},
"uiSchemaUnknownNode": "Unknown node: {type}",
"@uiSchemaUnknownNode": {
"placeholders": {
"type": {}
}
},
"uiSchemaActionFallback": "Action",
"uiSchemaActionNotImplemented": "This action is not available yet",
"uiSchemaNavigationInvalidParams": "Invalid navigation params",
"uiSchemaNavigationInvalidPath": "Invalid navigation path",
"notificationSnoozeMinutes": "{minutes} min",
"@notificationSnoozeMinutes": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"notificationSnoozeLater": "Remind later",
"notificationChannelName": "Schedule alarm",
"notificationChannelDescription": "Alarm-style notifications for scheduled events",
"notificationStartsNow": "Event starts now",
"notificationStartsInMinutes": "Event starts in {minutes} minutes",
"@notificationStartsInMinutes": {
"placeholders": {
"minutes": {
"type": "int"
}
}
},
"notificationLocation": "Location: {location}",
"@notificationLocation": {
"placeholders": {
"location": {}
}
},
"notificationNotes": "Notes: {notes}",
"@notificationNotes": {
"placeholders": {
"notes": {}
}
},
"todoScreenTitle": "To-Do",
"todoDetailTitle": "To-Do Details",
"todoCreateTitle": "Create To-Do",
"todoEditTitle": "Edit To-Do",
"todoMoveFailed": "Move failed",
"todoRefreshFailed": "Refresh failed, please try again",
"todoCompleteFailed": "Failed to complete: {error}",
"@todoCompleteFailed": {
"placeholders": {
"error": {}
}
},
"todoNotFound": "To-do not found",
"todoCalendarEventCards": "Calendar Event Cards",
"todoPriorityQuadrant": "Quadrant",
"todoLinkedCalendarEvents": "Linked Calendar Events",
"todoStatus": "Status",
"todoStatusDone": "Done",
"todoStatusInProgress": "In progress",
"todoQuadrantOrder": "Order in quadrant #{order}",
"@todoQuadrantOrder": {
"placeholders": {
"order": {
"type": "int"
}
}
},
"todoSplitToEvents": "Split into {count} calendar events",
"@todoSplitToEvents": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"todoNoLinkedEvents": "No linked calendar events",
"todoDeleteTitle": "Delete To-Do",
"todoDeleteMessage": "Are you sure you want to delete this to-do?",
"todoDeleteConfirm": "Delete",
"todoDeleteFailed": "Delete failed: {error}",
"@todoDeleteFailed": {
"placeholders": {
"error": {}
}
},
"todoQuadrantImportantUrgent": "Important & Urgent",
"todoQuadrantUrgentNotImportant": "Urgent, Not Important",
"todoQuadrantImportantNotUrgent": "Important, Not Urgent",
"todoQuadrantNotUrgentNotImportant": "Not Urgent, Not Important",
"todoNoItems": "No to-dos",
"todoItemCount": "{count} items",
"@todoItemCount": {
"placeholders": {
"count": {
"type": "int"
}
}
},
"todoInfoTitle": "To-Do Info",
"todoInfoDescCreate": "After creation, you can view it in quadrants and continue adjusting priority and linked events.",
"todoInfoDescDone": "This to-do is completed. You can still adjust content and reorganize linked events.",
"todoInfoDescDefault": "Adjust title, priority, and linked events to keep tasks organized.",
"todoFieldTitle": "Title",
"todoFieldTitleHint": "Enter to-do title",
"todoFieldDescriptionOptional": "Description (optional)",
"todoFieldDescriptionHint": "Add details or notes",
"todoPriority": "Priority",
"todoNoSelectableCalendarEvents": "No calendar events available to link",
"todoSaveInProgress": "Saving...",
"todoCreateButton": "Create To-Do",
"todoSaveChanges": "Save Changes",
"todoEnterTitle": "Please enter a title",
"todoSaveFailed": "Save failed: {error}",
"@todoSaveFailed": {
"placeholders": {
"error": {}
}
},
"contactsTitle": "Contacts",
"contactsSearchHint": "Enter username or phone number",
"contactsSearchEmptyQuery": "Please enter username or phone number",
"contactsSearchFailed": "Search failed, please try again",
"contactsSearchNoUser": "User not found",
"contactsFriendRequestSent": "Friend request sent",
"contactsSendFailed": "Send failed, please try again",
"contactsSectionNew": "New Contacts",
"contactsSectionAll": "All Contacts",
"contactsStatusAlreadyFriend": "Already friends",
"contactsStatusSent": "Sent",
"contactsAdd": "Add",
"contactsEmptyTitle": "No contacts",
"contactsEmptyDesc": "Search by phone to add friends and start chatting",
"contactsPendingConfirm": "Waiting for confirmation",
"contactsAddSheetTitle": "Add {username}",
"@contactsAddSheetTitle": {"placeholders": {"username": {}}},
"contactsAddSheetDesc": "Send a verification message so the other person can confirm your identity",
"contactsAddSheetMessageHint": "Hi, I am...",
"contactsSend": "Send",
"contactEditTitle": "Edit Contact",
"contactAddTitle": "Add Contact",
"contactNickname": "Nickname",
"contactNicknameHint": "Enter nickname",
"contactPhone": "Phone",
"contactPhoneHint": "+86 Enter 11-digit phone number",
"contactRemark": "Remark",
"contactRemarkHint": "Enter remark",
"contactDelete": "Delete Contact",
"contactFillRequired": "Please fill nickname and phone",
"contactDeleteConfirmTitle": "Delete Contact",
"contactDeleteConfirmMessage": "Are you sure to delete this contact?",
"messagesLoadFailed": "Failed to load messages, please try again",
"messagesSenderLoadFailed": "Failed to load sender info, pull to retry",
"messagesFriendRequestMissing": "Missing friend request data",
"messagesAcceptedFriendRequest": "Friend request accepted",
"messagesRejectedFriendRequest": "Friend request rejected",
"messagesActionFailed": "Action failed, please try again",
"messagesTabUnread": "Unread",
"messagesTabRead": "Read",
"messagesEmptyUnreadTitle": "No unread messages",
"messagesEmptyReadTitle": "No read messages",
"messagesEmptyUnreadDesc": "New messages will appear here",
"messagesEmptyReadDesc": "Processed messages will appear here",
"messagesFriendRequestLoadFailed": "Failed to load friend request info",
"messagesFriendRequestTitle": "{username} wants to add you as a friend",
"@messagesFriendRequestTitle": {"placeholders": {"username": {}}},
"messagesCalendarInvite": "Calendar invite",
"messagesSystemMessage": "System message",
"messagesTapToView": "Tap to view details",
"messagesInviteJoinCalendar": "Invites you to join calendar",
"messagesInviteAccepted": "Calendar invite accepted",
"messagesInviteRejected": "Calendar invite rejected",
"messagesCalendarUpdated": "Updated calendar event",
"messagesInviteStatusAccepted": "Accepted",
"messagesInviteStatusRejected": "Rejected",
"messagesInviteStatusHandled": "Handled",
"messagesInviteDetailNotFound": "Invite not found or expired",
"messagesInviteAcceptedToast": "Invite accepted",
"messagesInviteRejectedToast": "Invite rejected",
"messagesInviteOperationFailed": "Operation failed, please try again",
"messagesInviteDetailTitle": "Calendar Invite Details",
"messagesInviteEvent": "Event: {title}",
"@messagesInviteEvent": {"placeholders": {"title": {}}},
"messagesInviteUnnamedEvent": "Unnamed schedule",
"messagesInviteSender": "Sender: {name}",
"@messagesInviteSender": {"placeholders": {"name": {}}},
"messagesInviteUnknownUser": "Unknown user",
"messagesInviteTime": "Time: {time}",
"@messagesInviteTime": {"placeholders": {"time": {}}},
"messagesInviteStatus": "Status: {status}",
"@messagesInviteStatus": {"placeholders": {"status": {}}},
"messagesInviteId": "Invite ID: {id}",
"@messagesInviteId": {"placeholders": {"id": {}}},
"messagesInviteTip": "Accept to join this calendar event. Reject to mark this invite as handled.",
"messagesInviteAlreadyHandled": "This invite has been handled",
"messagesReject": "Reject",
"messagesAccept": "Accept",
"messagesStatusPending": "Pending",
"settingsFeaturesTitle": "Recurring Plans",
"settingsSectionDaily": "Daily",
"settingsSectionWeekly": "Weekly",
"settingsNoDailyPlans": "No daily plans",
"settingsNoWeeklyPlans": "No weekly plans",
"settingsSystemJobReadonly": "System preset jobs cannot be changed",
"settingsJobStatusEnabled": "Enabled",
"settingsJobStatusDisabled": "Disabled",
"settingsJobSourceSystem": "System preset",
"settingsJobSourceCustom": "Custom",
"settingsCreateJob": "Create Job",
"memoryTitle": "My Memory",
"memoryLoadFailedRetry": "Load failed, please retry",
"memorySmartTitle": "Smart Memory",
"memorySmartDesc": "Continuously learns your preferences and habits",
"memoryReload": "Reload",
"memorySectionUser": "User Memory",
"memorySectionWork": "Work Memory",
"memoryUserProfile": "Personal Preferences",
"memoryWorkProfile": "Work Profile",
"memoryNoInfo": "No info",
"memoryStatContacts": "Contacts",
"memoryStatPlaces": "Places",
"memoryStatInterests": "Interests",
"memoryStatSchedule": "Schedule",
"memoryStatExpertise": "Expertise",
"memoryStatTools": "Tools",
"memoryStatProjects": "Projects",
"memoryStatTeam": "Team",
"memorySummaryContactsCount": "{count} contacts",
"@memorySummaryContactsCount": {"placeholders": {"count": {"type": "int"}}},
"memorySummaryPlacesCount": "{count} places",
"@memorySummaryPlacesCount": {"placeholders": {"count": {"type": "int"}}},
"memorySummaryInterestsCount": "{count} interests",
"@memorySummaryInterestsCount": {"placeholders": {"count": {"type": "int"}}},
"memorySummaryExpertiseCount": "{count} expertise areas",
"@memorySummaryExpertiseCount": {"placeholders": {"count": {"type": "int"}}},
"memorySummaryProjectsCount": "{count} projects",
"@memorySummaryProjectsCount": {"placeholders": {"count": {"type": "int"}}},
"memorySummaryTeamMembersCount": "{count} team members",
"@memorySummaryTeamMembersCount": {"placeholders": {"count": {"type": "int"}}},
"toolCalendarRead": "Read Calendar",
"toolCalendarWrite": "Write Calendar",
"toolCalendarShare": "Share Calendar",
"toolUserLookup": "Lookup Contact",
"toolMemoryWrite": "Write Memory",
"toolMemoryForget": "Forget Memory",
"settingsTitle": "Settings",
"settingsUnset": "Not set",
"settingsFreeBadge": "Free",
"settingsNoContacts": "No contacts",
"settingsContactsAddedOne": "Added 1 contact: {name}",
"@settingsContactsAddedOne": {"placeholders": {"name": {}}},
"settingsContactsAddedMany": "Added {count} contacts",
"@settingsContactsAddedMany": {"placeholders": {"count": {"type": "int"}}},
"settingsNoEnabledPlans": "No enabled plans",
"settingsEnabledPlanOne": "Enabled: {title}",
"@settingsEnabledPlanOne": {"placeholders": {"title": {}}},
"settingsEnabledPlanMany": "Enabled {count} plans",
"@settingsEnabledPlanMany": {"placeholders": {"count": {"type": "int"}}},
"settingsUpgradeProTitle": "Upgrade to Pro",
"settingsUpgradeProDesc": "Unlock more advanced features",
"settingsUpgradeButton": "Upgrade",
"settingsMenuNotifications": "Reminder Settings",
"settingsMenuCheckUpdates": "Check for Updates",
"settingsLogoutTitle": "Log Out",
"settingsLogoutConfirmMessage": "Are you sure you want to log out of this account?",
"settingsLogoutConfirm": "Confirm Logout",
"settingsLogoutFailed": "Logout failed, please try again later",
"settingsLatestVersion": "You already have the latest version",
"settingsUpdateRequired": "A new version is available ({version}), please update now",
"@settingsUpdateRequired": {"placeholders": {"version": {}}},
"settingsUpdateOptional": "New version found ({version}), update now?",
"@settingsUpdateOptional": {"placeholders": {"version": {}}},
"settingsUpdateDialogTitle": "Check for Updates",
"settingsUpdateAction": "Update",
"settingsDownloadLink": "Download link: {url}",
"@settingsDownloadLink": {"placeholders": {"url": {}}},
"settingsUpdateCheckFailed": "Failed to check updates",
"settingsJobDetailTitle": "Job Detail",
"settingsJobCreatePageTitle": "Create Recurring Plan",
"settingsJobLoadFailed": "Load failed",
"settingsJobRetry": "Retry",
"settingsJobPlanConfig": "Plan Configuration",
"settingsJobCycle": "Cycle",
"settingsJobRunAt": "Run Time",
"settingsJobTimezone": "Timezone",
"settingsJobStatusLabel": "Status",
"settingsJobInputTemplate": "Input Template",
"settingsJobEnabledTools": "Enabled Tools",
"settingsJobContextMode": "Context Message Mode",
"settingsJobContextSource": "Source",
"settingsJobWindowMode": "Window Mode",
"settingsJobWindowCount": "Window Count",
"settingsJobWindowCountValue": "{count}",
"@settingsJobWindowCountValue": {"placeholders": {"count": {"type": "int"}}},
"settingsJobDeleteTitle": "Delete Recurring Plan",
"settingsJobDeleteMessage": "This action cannot be undone. Continue?",
"settingsJobDeleteConfirm": "Confirm Delete",
"settingsJobDeleteSuccess": "Deleted successfully",
"settingsJobBasicInfo": "Basic Info",
"settingsJobName": "Job Name",
"settingsJobNameHint": "Enter job name",
"settingsJobTemplateHint": "Example: summarize today memory",
"settingsJobExecutionRules": "Execution Rules",
"settingsJobToolSelection": "Tool Selection",
"settingsJobCounterValue": "{label}: {value}",
"@settingsJobCounterValue": {
"placeholders": {
"label": {},
"value": {"type": "int"}
}
},
"settingsJobWeekdayMon": "Mon",
"settingsJobWeekdayTue": "Tue",
"settingsJobWeekdayWed": "Wed",
"settingsJobWeekdayThu": "Thu",
"settingsJobWeekdayFri": "Fri",
"settingsJobWeekdaySat": "Sat",
"settingsJobWeekdaySun": "Sun",
"settingsJobRunDays": "Run Days",
"settingsJobNoToolsEnabled": "No tools enabled",
"settingsJobPickCycle": "Choose Cycle",
"settingsJobScheduleDaily": "Daily",
"settingsJobScheduleWeekly": "Weekly",
"settingsJobPickTimezone": "Choose Timezone",
"settingsJobPickContextSource": "Choose Context Source",
"settingsJobContextSourceLatestChat": "Latest chat",
"settingsJobPickWindowMode": "Choose Window Mode",
"settingsJobWindowModeByDay": "By day",
"settingsJobWindowModeByNumber": "By message count",
"settingsJobFillRequired": "Please fill all required fields",
"settingsJobCreateSuccess": "Created successfully",
"settingsMemorySaveSuccess": "Saved successfully",
"settingsMemorySaveFailed": "Failed to save",
"settingsMemoryInputHint": "Enter {label}",
"@settingsMemoryInputHint": {"placeholders": {"label": {}}},
"settingsMemoryInputContent": "Enter content",
"settingsUserMemoryEditTitle": "Edit Personal Preferences",
"settingsUserMemoryEmptyProfile": "No personal preferences",
"settingsUserMemorySectionBasic": "Basic Info",
"settingsUserMemorySectionPreferences": "Preferences",
"settingsUserMemorySectionSchedule": "Schedule Preferences",
"settingsUserMemorySectionContacts": "Contacts",
"settingsUserMemorySectionPlaces": "Places",
"settingsUserMemorySectionInterests": "Interests",
"settingsUserMemorySectionAvoidTopics": "Avoid Topics",
"settingsUserMemorySectionCustomRules": "Custom Rules",
"settingsUserMemorySectionRoutines": "Recurring Routines",
"settingsUserMemoryFieldOccupation": "Occupation",
"settingsUserMemoryFieldTimezone": "Timezone",
"settingsUserMemoryFieldPrimaryLanguage": "Primary Language",
"settingsUserMemoryFieldCommunicationStyle": "Communication Style",
"settingsUserMemoryFieldLocationPreference": "Location Preference",
"settingsUserMemoryFieldWorkLifestyle": "Work Lifestyle",
"settingsUserMemoryFieldLanguagePreference": "Language Preference",
"settingsUserMemoryFieldNotificationPreference": "Notification Preference",
"settingsUserMemoryFieldMeetingBuffer": "Meeting Buffer",
"settingsUserMemoryFieldMaxMeetingsPerDay": "Max Meetings per Day",
"settingsUserMemoryFieldPreferredMeetingDuration": "Preferred Meeting Duration",
"settingsUserMemoryFieldNotes": "Notes",
"settingsUserMemoryFieldName": "Name",
"settingsUserMemoryFieldRelationship": "Relationship",
"settingsUserMemoryFieldRole": "Role",
"settingsUserMemoryFieldContact": "Contact",
"settingsUserMemoryFieldCategory": "Category",
"settingsUserMemoryFieldPreference": "Preference",
"settingsUserMemoryFieldAddress": "Address",
"settingsUserMemoryFieldDescription": "Description",
"settingsUserMemoryFieldCadence": "Cadence",
"settingsUserMemoryMinute": "min",
"settingsUserMemoryMinutesValue": "{minutes} min",
"@settingsUserMemoryMinutesValue": {
"placeholders": {
"minutes": {"type": "int"}
}
},
"settingsUserMemoryEmptyContacts": "No contacts",
"settingsUserMemoryEmptyPlaces": "No places",
"settingsUserMemoryEmptyRoutines": "No routines",
"settingsUserMemoryAddContact": "Add Contact",
"settingsUserMemoryNewContact": "New Contact",
"settingsUserMemoryAddPlace": "Add Place",
"settingsUserMemoryNewPlace": "New Place",
"settingsUserMemoryAddRoutine": "Add Routine",
"settingsUserMemoryNewRoutine": "New Routine",
"settingsWorkMemoryEditTitle": "Edit Work Profile",
"settingsWorkMemoryEmptyProfile": "No work info",
"settingsWorkMemorySectionBasic": "Basic Info",
"settingsWorkMemorySectionExpertise": "Expertise",
"settingsWorkMemorySectionPreferredTools": "Preferred Tools",
"settingsWorkMemorySectionCurrentProjects": "Current Projects",
"settingsWorkMemorySectionTeamMembers": "Team Members",
"settingsWorkMemorySectionWorkHabits": "Work Habits",
"settingsWorkMemorySectionTeamContext": "Team Context",
"settingsWorkMemorySectionWorkRules": "Work Rules",
"settingsWorkMemoryFieldOccupation": "Occupation",
"settingsWorkMemoryFieldAvailableHours": "Available Hours",
"settingsWorkMemoryFieldDeepWorkBlocks": "Deep Work Blocks",
"settingsWorkMemoryFieldPreferredMeetingWindows": "Preferred Meeting Windows",
"settingsWorkMemoryFieldNoMeetingWindows": "No-Meeting Windows",
"settingsWorkMemoryFieldPreferredMeetingDuration": "Preferred Meeting Duration",
"settingsWorkMemoryFieldNotificationChannel": "Notification Channel",
"settingsWorkMemoryFieldNotes": "Notes",
"settingsWorkMemoryFieldTeamContext": "Team Context",
"settingsWorkMemoryFieldProjectName": "Project Name",
"settingsWorkMemoryFieldStatus": "Status",
"settingsWorkMemoryFieldPriority": "Priority",
"settingsWorkMemoryFieldDeadline": "Deadline",
"settingsWorkMemoryFieldCollaborators": "Collaborators",
"settingsWorkMemoryFieldMilestones": "Milestones",
"settingsWorkMemoryMinute": "min",
"settingsWorkMemoryMilestoneCount": "{count} items",
"@settingsWorkMemoryMilestoneCount": {
"placeholders": {
"count": {"type": "int"}
}
},
"settingsWorkMemoryEmptyProjects": "No projects",
"settingsWorkMemoryEmptyTeamMembers": "No team members",
"settingsWorkMemoryTimeWindowCount": "{count} windows",
"@settingsWorkMemoryTimeWindowCount": {
"placeholders": {
"count": {"type": "int"}
}
},
"settingsWorkMemoryAddProject": "Add Project",
"settingsWorkMemoryNewProject": "New Project",
"settingsWorkMemoryAddMember": "Add Member",
"settingsWorkMemoryNewMember": "New Member",
"calendarDetailTitle": "Event Details",
"calendarDetailNotFoundTitle": "Event not found",
"calendarDetailNotFoundDesc": "It may have been deleted, or you do not have access.",
"calendarDetailTimeArrangement": "Time Arrangement",
"calendarDetailDateLabel": "{year}-{month}-{day} {weekday}",
"@calendarDetailDateLabel": {
"placeholders": {
"year": {"type": "int"},
"month": {"type": "int"},
"day": {"type": "int"},
"weekday": {}
}
},
"calendarDetailBasicInfo": "Basic Info",
"calendarDetailDate": "Date",
"calendarDetailReminder": "Reminder",
"calendarDetailColor": "Color",
"calendarDetailExtraInfo": "Extra Info",
"calendarDetailLocation": "Location",
"calendarDetailDescription": "Description",
"calendarDetailNotes": "Notes",
"calendarDetailReminderNone": "None",
"calendarDetailReminderOnTime": "On time",
"calendarDetailReminderBeforeMinutes": "{minutes} min before start",
"@calendarDetailReminderBeforeMinutes": {
"placeholders": {
"minutes": {"type": "int"}
}
},
"calendarWeekdayMon": "Mon",
"calendarWeekdayTue": "Tue",
"calendarWeekdayWed": "Wed",
"calendarWeekdayThu": "Thu",
"calendarWeekdayFri": "Fri",
"calendarWeekdaySat": "Sat",
"calendarWeekdaySun": "Sun",
"calendarDetailDeleteTitle": "Delete Event",
"calendarDetailDeleteMessage": "Are you sure you want to delete this event?",
"calendarDetailDeleteConfirm": "Delete",
"calendarDetailArchiveTitle": "Archive Event",
"calendarDetailArchiveMessage": "This will mark the event as expired. Continue?",
"calendarDetailArchiveConfirm": "Archive",
"calendarDetailArchiveFailed": "Archive failed",
"calendarDetailDateTimeShort": "{month}/{day} {weekday} {time}",
"@calendarDetailDateTimeShort": {
"placeholders": {
"month": {"type": "int"},
"day": {"type": "int"},
"weekday": {},
"time": {}
}
},
"calendarDetailRangeWithStartEnd": "Start: {start}\nEnd: {end}",
"@calendarDetailRangeWithStartEnd": {
"placeholders": {
"start": {},
"end": {}
}
},
"calendarDetailStatusExpired": "Expired",
"calendarCreateEditTitle": "Edit Event",
"calendarCreateNewTitle": "New Event",
"calendarCreateTabBasic": "Basic",
"calendarCreateTabAdvanced": "Advanced",
"calendarCreateFieldTitle": "Title",
"calendarCreateFieldTitleHint": "Enter event title",
"calendarCreateFieldStart": "Start",
"calendarCreateFieldEnd": "End",
"calendarCreateFieldDescription": "Description",
"calendarCreateFieldDescriptionHint": "Enter description",
"calendarCreateFieldLocation": "Location",
"calendarCreateFieldLocationHint": "Enter location",
"calendarCreateFieldNotesHint": "Enter notes",
"calendarCreateOptionalField": "{label} (optional)",
"@calendarCreateOptionalField": {"placeholders": {"label": {}}},
"calendarCreateDateTimeLabel": "{year}-{month}-{day} {hour}:{minute}",
"@calendarCreateDateTimeLabel": {
"placeholders": {
"year": {"type": "int"},
"month": {"type": "int"},
"day": {"type": "int"},
"hour": {},
"minute": {}
}
},
"calendarCreateReminderNone": "No reminder",
"calendarCreateReminderTime": "Reminder Time",
"calendarCreatePickReminderTime": "Select Reminder Time",
"calendarCreateReminderPermissionFailed": "Failed to create reminder, check notification permission",
"settingsEditProfileLoadFailed": "Failed to load user profile",
"settingsEditProfileAvatarUploadSuccess": "Avatar uploaded successfully",
"settingsEditProfileAvatarUploadFailed": "Failed to upload avatar, please try again",
"settingsEditProfileUsernameRequired": "Username is required",
"settingsEditProfileUsernameLengthInvalid": "Username must be 3-30 characters",
"settingsEditProfileSaveSuccess": "Saved successfully",
"settingsEditProfileSaveFailed": "Save failed, please try again",
"settingsEditProfileTitle": "Edit Profile",
"settingsEditProfileSaveChanges": "Save Changes",
"settingsEditProfileBasicInfo": "Basic Info",
"settingsEditProfileUsername": "Username",
"settingsEditProfileUsernameHint": "Enter username",
"settingsEditProfileBio": "Bio",
"settingsEditProfileBioContent": "Bio Content",
"settingsEditProfileBioHint": "Tell us about yourself",
"calendarSharePhoneRequired": "Please enter a phone number",
"calendarShareInviteSent": "Invite sent",
"calendarShareInviteFailed": "Failed to send invite",
"calendarShareTitle": "Share Calendar",
"calendarSharePhoneLabel": "Phone",
"calendarSharePhoneHint": "Enter recipient's +86 phone number",
"calendarSharePermissionTitle": "Permissions",
"calendarSharePermissionView": "View",
"calendarSharePermissionViewDesc": "Can view this calendar event (required)",
"calendarSharePermissionEdit": "Edit",
"calendarSharePermissionEditDesc": "Can edit this calendar event",
"calendarSharePermissionInvite": "Invite",
"calendarSharePermissionInviteDesc": "Can invite others",
"calendarShareSendInvite": "Send Invite",
"calendarMonthHeader": "{month}",
"@calendarMonthHeader": {
"placeholders": {
"month": {"type": "int"}
}
},
"calendarMonthToday": "Today",
"calendarMonthWeekdaySunShort": "S",
"calendarMonthWeekdayMonShort": "M",
"calendarMonthWeekdayTueShort": "T",
"calendarMonthWeekdayWedShort": "W",
"calendarMonthWeekdayThuShort": "T",
"calendarMonthWeekdayFriShort": "F",
"calendarMonthWeekdaySatShort": "S",
"calendarMonthYearLabel": "{year}",
"@calendarMonthYearLabel": {
"placeholders": {
"year": {"type": "int"}
}
},
"calendarDateTimePickerDateLabel": "Date",
"calendarDateTimePickerYearUnit": "Y",
"calendarDateTimePickerMonthUnit": "M",
"calendarDateTimePickerDayUnit": "D",
"calendarDateTimePickerTimeLabel": "Time",
"calendarDateTimePickerTitle": "Select Time",
"messagesCalendarCardInviteTitle": "Calendar Invite",
"messagesCalendarCardInviteWithTitle": "Invites you to access \"{title}\"",
"@messagesCalendarCardInviteWithTitle": {
"placeholders": {
"title": {}
}
},
"messagesCalendarCardInviteWithoutTitle": "Invites you to access a calendar",
"messagesCalendarCardUpdatedWithTitle": "{title} updated",
"@messagesCalendarCardUpdatedWithTitle": {
"placeholders": {
"title": {}
}
},
"messagesCalendarCardUpdatedWithoutTitle": "Calendar event updated",
"messagesCalendarCardTimeMinutesAgo": "{minutes}m ago",
"@messagesCalendarCardTimeMinutesAgo": {
"placeholders": {
"minutes": {"type": "int"}
}
},
"messagesCalendarCardTimeHoursAgo": "{hours}h ago",
"@messagesCalendarCardTimeHoursAgo": {
"placeholders": {
"hours": {"type": "int"}
}
},
"messagesCalendarCardTimeDaysAgo": "{days}d ago",
"@messagesCalendarCardTimeDaysAgo": {
"placeholders": {
"days": {"type": "int"}
}
},
"messagesCalendarCardTimeDate": "{month}/{day}",
"@messagesCalendarCardTimeDate": {
"placeholders": {
"month": {"type": "int"},
"day": {"type": "int"}
}
},
"messagesCalendarCardDeletedWithTitle": "{title} deleted",
"@messagesCalendarCardDeletedWithTitle": {
"placeholders": {
"title": {}
}
},
"messagesCalendarCardDeletedWithoutTitle": "Calendar event deleted"
}