{
  "common.confirm": "OK",
  "common.cancel": "Cancel",
  "common.save": "Save",
  "common.delete": "Delete",
  "common.loading": "Loading…",
  "common.retry": "Retry",
  "common.success": "Operation successful",
  "common.failed": "Operation failed",
  "common.networkError": "Network error. Please check your connection and try again",
  "common.ok": "Got it",
  "common.close": "Close",
  "common.copy": "Copy",
  "common.search": "Search",
  "common.send": "Send",
  "common.edit": "Edit",
  "common.exit": "Exit",
  "common.tip": "Notice",
  "common.error": "Error",
  "common.empty": "No data",
  "common.yes": "Yes",
  "common.no": "No",
  "common.back": "Back",
  "common.more": "More",
  "settings.language": "Language",
  "settings.languageSystem": "Follow system",
  "profile.title": "Me",
  "profile.notLoggedIn": "Not logged in",
  "profile.recordings": "Meeting recordings",
  "profile.recordingsSub": "Playback of meetings you attended",
  "profile.deviceTest": "Device test",
  "profile.deviceTestSub": "Microphone/Camera",
  "profile.notifications": "Notifications",
  "profile.privacy": "Privacy & security",
  "profile.changePasswordSub": "Change password",
  "profile.lockPassword": "Lock PIN",
  "profile.lockPasswordSub": "Unlock required when launching the app",
  "profile.version": "Version",
  "profile.checkUpdate": "Check for updates",
  "profile.logout": "Log out",
  "profile.logoutConfirm": "Are you sure you want to log out?",
  "profile.aboutDesc": "Video conferencing and instant messaging system",
  "err.unknown": "Unknown error",
  "err.10001": "Invalid parameter",
  "err.10002": "Resource not found",
  "err.10003": "No permission for this operation",
  "err.10004": "Too many requests",
  "err.10005": "Duplicate operation",
  "err.10006": "File size exceeded",
  "err.10007": "File type not supported",
  "err.10008": "Validation failed",
  "err.20001": "Not logged in",
  "err.20002": "Login expired",
  "err.20003": "Incorrect username or password",
  "err.20004": "Account disabled",
  "err.20005": "Account locked",
  "err.20006": "Session expired, please log in again",
  "err.20007": "Old password is incorrect",
  "err.20008": "New password does not meet strength requirements",
  "err.20009": "Duplicate login",
  "err.30001": "Username already exists",
  "err.30002": "Department has users and cannot be deleted",
  "err.30003": "Department has sub-departments; delete them first",
  "err.30004": "Built-in role cannot be deleted",
  "err.30005": "Cannot delete yourself",
  "err.30006": "Cannot disable yourself",
  "err.30007": "Cannot modify the super admin role",
  "err.30008": "Department name already exists",
  "err.40001": "Conversation not found",
  "err.40002": "Not a group member; no permission",
  "err.40003": "Mute all is on; you cannot speak",
  "err.40004": "Messages cannot be recalled after 2 minutes",
  "err.40005": "Cannot recall others' messages",
  "err.40006": "You have been muted",
  "err.40007": "Admin only",
  "err.40008": "Group member limit reached",
  "err.40009": "Cannot leave a direct chat",
  "err.40010": "Message not found",
  "err.50001": "Meeting not found",
  "err.50002": "Incorrect meeting password",
  "err.50003": "Meeting is full (100)",
  "err.50004": "Video stream limit exceeded (60)",
  "err.50005": "Audio stream limit exceeded (10)",
  "err.50006": "Meeting has ended",
  "err.50007": "Host only",
  "err.50008": "Meeting has been cancelled",
  "err.50009": "Meeting has not started yet",
  "err.50010": "Already in this meeting",
  "err.50011": "The host cannot leave. Transfer the host or end the meeting first",
  "err.50012": "Sign-in has ended",
  "err.50013": "You have already signed in",
  "err.50014": "Cannot remove yourself",
  "err.50015": "Cannot remove the host",
  "err.60001": "Recording not found",
  "err.60002": "Recording in progress",
  "err.60003": "Recording has been deleted",
  "err.60004": "No recording permission",
  "err.60005": "Recording service error",
  "err.60006": "Share record not found",
  "err.60007": "Share link has expired",
  "err.60008": "Share link is invalid",
  "err.70001": "Config not found",
  "err.70002": "Config cannot be modified",
  "err.70003": "Invalid config value",
  "err.70004": "Audit logs cannot be deleted",
  "err.90001": "Internal server error",
  "err.90002": "Database error",
  "err.90003": "File storage error",
  "err.90004": "WebSocket connection error",
  "err.90005": "Cache service error",
  "err.90006": "Audio/video service error",
  "err.90007": "Third-party service error",
  "err.90008": "Service not found or not in the managed list",
  "err.90009": "Service restart failed",
  "auth.loginSubtitle": "Enterprise video conferencing and instant messaging system",
  "auth.serverAddress": "Server address",
  "auth.serverAddressHint": "e.g. m.lk36524.cn",
  "auth.serverAddressEmpty": "Please enter the server address",
  "auth.username": "Account",
  "auth.usernameEmpty": "Please enter your account",
  "auth.password": "Password",
  "auth.passwordEmpty": "Please enter your password",
  "auth.loginButton": "Log In",
  "auth.slogan": "乐议, more than just meetings",
  "auth.loginFailed": "Login failed: {0}",
  "auth.changeFailed": "Change failed: {0}",
  "auth.noUserInfo": "Failed to get user info",
  "auth.updateFailed": "Update failed: {0}",
  "auth.uploadFailed": "Upload failed: {0}",
  "auth.currentPassword": "Current password",
  "auth.currentPasswordEmpty": "Please enter your current password",
  "auth.newPassword": "New password",
  "auth.newPasswordEmpty": "Please enter a new password",
  "auth.confirmPassword": "Confirm new password",
  "auth.confirmPasswordHint": "Enter the new password again",
  "auth.confirmPasswordEmpty": "Please confirm the new password",
  "auth.passwordMismatch": "Passwords do not match",
  "auth.passwordMinLength": "Password must be at least 8 characters",
  "auth.passwordRequireAlnum": "Must contain letters and numbers",
  "auth.passwordRuleTip": "New password must be at least 8 characters and contain letters and numbers",
  "auth.confirmChange": "Confirm change",
  "auth.passwordChangedRelogin": "Password changed. Please log in again",
  "auth.passwordChangeFailed": "Change failed",
  "lock.appLocked": "App locked",
  "lock.enterPinToUnlock": "Enter your lock PIN to unlock",
  "lock.failCount": "Failed attempts: {0}",
  "lock.wrongPin": "Incorrect PIN. Please try again",
  "lock.pinLengthError": "PIN must be 4-6 digits",
  "lock.unlock": "Unlock",
  "lock.forgotPin": "Forgot PIN",
  "lock.forgotPinConfirm": "If you forgot your lock PIN, you'll need to log out and re-authenticate. Continue?",
  "lock.verifyOldPin": "Verify current PIN",
  "lock.currentPinHint": "Enter your current lock PIN",
  "lock.oldPinError": "Current PIN is incorrect",
  "lock.enabledDesc": "Lock PIN is enabled. You'll need to unlock the app on launch.",
  "lock.disable": "Disable lock screen",
  "lock.disabledToast": "Lock PIN disabled",
  "lock.setPin": "Set lock PIN",
  "lock.setNewPin": "Set new PIN",
  "lock.pinDigitsHint": "4-6 digits",
  "lock.pinDigitsError": "PIN must be 4-6 digits",
  "lock.confirmPin": "Confirm PIN",
  "lock.confirmPinHint": "Enter the same PIN again",
  "lock.pinMismatch": "PINs do not match. Please try again",
  "lock.enabledToast": "Lock PIN enabled. It will take effect on next launch",
  "notify.backgroundSection": "Screen-off message delivery",
  "notify.backgroundPermission": "Background running permission",
  "notify.bgOn": "Enabled. Messages and calls are received normally when the screen is off",
  "notify.bgOff": "Disabled: Huawei/Honor and similar phones may not receive messages or calls when the screen is off",
  "notify.imSection": "IM messages",
  "notify.msgNotify": "New message notifications",
  "notify.msgNotifySub": "Alert when a new message arrives",
  "notify.sound": "Sound",
  "notify.vibrate": "Vibrate",
  "notify.showDetail": "Show message details",
  "notify.showDetailSub": "Show message content in the notification bar",
  "notify.meetingSection": "Meetings",
  "notify.meetingInvite": "Meeting invitation notifications",
  "notify.meetingInviteSub": "Alert when you're invited to a meeting",
  "notify.meetingRemind": "Meeting start reminders",
  "notify.meetingRemindSub": "Remind 5 minutes before a meeting starts",
  "notify.dndSection": "Do not disturb",
  "notify.nightQuiet": "Nighttime do not disturb",
  "notify.nightQuietSub": "Mute message notifications from 22:00 to 08:00",
  "deviceTest.camera": "Camera",
  "deviceTest.cameraOff": "Camera is off",
  "deviceTest.cameraPermDenied": "Camera permission denied. Please grant it in system settings",
  "deviceTest.cameraStartFailed": "Failed to start camera: {0}",
  "deviceTest.cameraSwitchFailed": "Failed to switch camera: {0}",
  "deviceTest.switchCamera": "Switch camera",
  "deviceTest.startPreview": "Start preview",
  "deviceTest.mic": "Microphone",
  "deviceTest.micOn": "Microphone is on",
  "deviceTest.micOff": "Microphone is off",
  "deviceTest.micPermDenied": "Microphone permission denied. Please grant it in system settings",
  "deviceTest.micStartFailed": "Failed to start microphone: {0}",
  "deviceTest.micWorkingTip": "Microphone is working. Speak into it to confirm",
  "deviceTest.test": "Test",
  "deviceTest.speaker": "Speaker",
  "deviceTest.speakerSub": "Tap the button below to test your speaker",
  "deviceTest.playTestTone": "Play test tone",
  "deviceTest.playingTone": "Playing test tone. If you can't hear it, check your volume and output device",
  "deviceTest.playToneFailed": "Failed to play test tone: {0}",
  "deviceTest.deviceDefault": "System default",
  "deviceTest.noDevice": "No available devices detected",
  "deviceTest.speakerSelectTip": "The selected speaker will be used for call and meeting playback",
  "deviceTest.permGranted": "Granted",
  "deviceTest.permDenied": "Denied",
  "deviceTest.permNotGranted": "Permission not granted",
  "deviceTest.permChecking": "Checking permissions…",
  "deviceTest.goSettings": "Go to settings",
  "deviceTest.privacyTip": "Device test checks whether your camera and microphone are working. No audio or video data is recorded or uploaded. If a device is unavailable, check your system permission settings.",
  "profile.editTitle": "Profile",
  "profile.changeAvatar": "Tap to change avatar",
  "profile.pickFromGallery": "Choose from gallery",
  "profile.takePhoto": "Take photo",
  "profile.pickImageFailed": "Failed to pick image: {0}",
  "profile.avatarUpdated": "Avatar updated",
  "profile.avatarUploadFailed": "Failed to upload avatar",
  "profile.name": "Name",
  "profile.nameEmpty": "Please enter a name",
  "profile.phone": "Phone number",
  "profile.phoneEmpty": "Please enter a phone number",
  "profile.phoneInvalid": "Please enter a valid phone number",
  "profile.department": "Department",
  "profile.role": "Role",
  "profile.profileSaved": "Profile saved",
  "profile.saveFailed": "Save failed",
  "perm.title": "Permissions",
  "perm.intro": "To use calls, meetings, and messaging, please grant the following permissions once:",
  "perm.grantAll": "Grant all",
  "perm.done": "Done",
  "perm.later": "Not now",
  "perm.notify": "Notifications",
  "perm.notifyDesc": "Get alerts for new messages and incoming calls",
  "perm.micDesc": "Voice calls and speaking in meetings",
  "perm.cameraDesc": "Video calls and video meetings",
  "perm.media": "Photos and videos",
  "perm.mediaDesc": "Send photos and videos in chats",
  "im.title": "Messages",
  "im.searchHint": "Search conversations",
  "im.deleteConversation": "Delete conversation",
  "im.deleteForMeTip": "This will only remove the conversation from your list. The chat history will no longer be visible to you; other members are unaffected.",
  "im.conversationDeleted": "Conversation deleted",
  "im.deleteFailedRetry": "Delete failed. Please try again",
  "im.noConversations": "No conversations yet",
  "im.emptyHint": "Tap + in the bottom-right corner to start a group chat",
  "im.membersLoading": "Loading conversation members. Please try again later",
  "im.sendMedia": "Send media",
  "im.mediaImage": "Image",
  "im.mediaVideo": "Video",
  "im.mediaGallery": "Gallery",
  "im.mediaCamera": "Take photo",
  "im.mediaRecordVideo": "Record video",
  "im.meetingRecording": "Meeting recording",
  "im.pickImageFailed": "Failed to pick image: {0}",
  "im.takePhotoFailed": "Failed to take photo: {0}",
  "im.pickVideoFailed": "Failed to pick video: {0}",
  "im.recordingSendFailed": "Failed to send meeting recording (no playable URL)",
  "im.recordVideoFailed": "Failed to record video: {0}",
  "im.imageSendFailed": "Failed to send image",
  "im.videoSendFailed": "Failed to send video",
  "im.reply": "Reply",
  "im.recall": "Recall",
  "im.recalled": "Recalled",
  "im.recallFailed": "Recall failed",
  "im.readCount": "{0}/{1} read",
  "im.read": "Read",
  "im.unread": "Unread",
  "im.readReceipt": "Read receipts",
  "im.readCountLabel": "Read {0}",
  "im.unreadCountLabel": "Unread {0}",
  "im.memberCount": "{0} members",
  "im.videoCall": "Video call",
  "im.audioCall": "Voice call",
  "im.replyQuote": "Reply: {0}",
  "im.mutedAllHint": "Mute all is on. Only admins can speak",
  "im.inputHint": "Send a message, @ to mention…",
  "im.groupSettings": "Group settings",
  "im.messageNotFound": "Message not found",
  "im.unassignedDept": "Unassigned department",
  "im.needTwoMembers": "Select at least 2 members for a group chat",
  "im.createGroupFailed": "Failed to create group chat",
  "im.createGroupFailedReason": "Failed to create group chat: {0}",
  "im.createGroupTitle": "Start group chat",
  "im.start": "Start",
  "im.groupNameHint": "Group name (optional)",
  "im.searchContactHint": "Search contacts",
  "im.noMatchContacts": "No matching contacts found",
  "im.noContacts": "No contacts yet",
  "im.deptMemberCount": "{0} ({1})",
  "im.me": "Me",
  "im.muteAllOn": "Mute all enabled",
  "im.muteAllOff": "Mute all disabled",
  "im.muteAllFailed": "Operation failed. Owner or admin permission required",
  "im.editGroupName": "Edit group name",
  "im.groupNameInputHint": "Enter a new group name",
  "im.groupNameUpdated": "Group name updated",
  "im.updateGroupNameFailed": "Update failed. Owner or admin permission required",
  "im.dissolveGroup": "Dissolve group chat",
  "im.dissolveConfirm": "Are you sure you want to dissolve \"{0}\"? All chat history of this group will be deleted and cannot be recovered.",
  "im.dissolve": "Dissolve",
  "im.groupDissolved": "Group chat dissolved",
  "im.dissolveFailed": "Dissolve failed. Only the group owner can dissolve it",
  "im.leaveGroup": "Leave group chat",
  "im.leaveConfirm": "Are you sure you want to leave \"{0}\"?",
  "im.groupLeft": "Left the group chat",
  "im.leaveFailed": "Failed to leave",
  "im.groupMemberCount": "Members ({0})",
  "im.noMembers": "No members yet",
  "im.dissolveThisGroup": "Dissolve this group",
  "im.muteAll": "Mute all",
  "im.muteAllTip": "When on, only the owner and admins can speak",
  "im.roleOwner": "Owner",
  "im.roleMember": "Member",
  "im.youRecalled": "You recalled a message",
  "im.otherRecalled": "{0} recalled a message",
  "im.sendFailedRetry": "Send failed. Tap to retry",
  "im.imageLoadFailed": "Failed to load image",
  "im.yesterday": "Yesterday",
  "im.daysAgo": "{0} days ago",
  "im.groupTag": "Group",
  "im.typeImage": "[Image]",
  "im.typeFile": "[File]",
  "im.typeVideo": "[Video]",
  "im.typeRecording": "[Meeting recording]{0}",
  "im.typeRecordingWithName": "[Meeting recording] {0}",
  "im.typeCall": "[Call]{0}",
  "im.typeCallWithName": "[Call] {0}",
  "im.typeFileWithName": "[File] {0}",
  "im.groupChat": "Group chat",
  "im.messageRevoked": "Message recalled",
  "im.loadFailed": "Load failed: {0}",
  "im.loadMoreFailed": "Failed to load more: {0}",
  "im.uploadFailed": "Upload failed",
  "im.revokedPlaceholder": "This message was recalled",
  "im.callRecord": "Call history",
  "im.callRejected": "{0} · Declined",
  "im.callMissed": "{0} · Missed",
  "im.callCanceled": "{0} · Cancelled",
  "im.callBusy": "{0} · Busy",
  "im.callEnded": "{0} · Ended",
  "im.callDuration": "{0} · {1}",
  "meeting.title": "Meetings",
  "meeting.record": "Meeting recording",
  "meeting.recordSub": "Automatically record the entire meeting when enabled",
  "meeting.statusOngoing": "In progress",
  "meeting.statusUpcoming": "Upcoming",
  "meeting.statusCancelled": "Cancelled",
  "meeting.statusEnded": "Ended",
  "meeting.history": "Meeting history",
  "meeting.join": "Join meeting",
  "meeting.inputCode": "Enter a meeting code to join instantly",
  "meeting.schedule": "Schedule meeting",
  "meeting.scheduleSub": "Schedule meetings in advance",
  "meeting.empty": "No meetings yet",
  "meeting.joinBarSub": "Enter a meeting code to join quickly",
  "meeting.peopleCount": "{0} participants",
  "meeting.codeLabel": "Meeting code {0}",
  "meeting.duration": "Duration {0}",
  "meeting.ongoingSince": "Since {0}",
  "meeting.dateMd": "{0}/{1}",
  "meeting.loadFailed": "Load failed: {0}",
  "meeting.topic": "Meeting topic",
  "meeting.titleRequired": "Please enter a meeting topic",
  "meeting.startTime": "Start time",
  "meeting.startTimeRequired": "Please select a start time",
  "meeting.endTimeOptional": "End time (optional)",
  "meeting.videoMeeting": "Video meeting",
  "meeting.videoMeetingSub": "Audio and video supported",
  "meeting.audioMeeting": "Audio-only meeting",
  "meeting.audioMeetingSub": "Voice only, camera off",
  "meeting.passwordTitle": "Meeting password",
  "meeting.passwordSub": "When enabled, a password is required to join",
  "meeting.passwordHint": "Enter the meeting password",
  "meeting.create": "Create meeting",
  "meeting.pickTime": "Select time",
  "meeting.createFailed": "Create failed: {0}",
  "meeting.joinByCode": "Join by code",
  "meeting.joinByCodeSub": "Enter a meeting code to join quickly",
  "meeting.code": "Meeting code",
  "meeting.codeHint": "Enter the meeting code",
  "meeting.codeRequired": "Please enter a meeting code",
  "meeting.passwordLabel": "Meeting password",
  "meeting.needPassword": "Need a password? Tap to enter",
  "meeting.notFoundByCode": "Meeting not found. Please check the meeting code",
  "meeting.joinFailed": "Join failed: {0}",
  "meeting.ended": "Meeting has ended",
  "meeting.quotedTitle": "\"{0}\"",
  "meeting.participantCountLabel": "Participants",
  "meeting.durationLabel": "Duration",
  "meeting.backToList": "Back to meeting list",
  "meeting.joining": "Joining meeting…",
  "meeting.participants": "Participants",
  "meeting.participantsCount": "Participants ({0})",
  "meeting.chat": "Chat",
  "meeting.chatDisabled": "Meeting chat is disabled",
  "meeting.audioOnly": "Audio only",
  "meeting.camera": "Cameras",
  "camera.panelTitle": "Meeting Cameras",
  "camera.loading": "Loading camera streams…",
  "camera.empty": "No camera channels bound to this meeting",
  "camera.offline": "Channel offline",
  "camera.playFailed": "Playback failed",
  "camera.backToGrid": "Back to grid",
  "camera.loadFailed": "Failed to load cameras: {0}",
  "meeting.recording": "Recording",
  "meeting.me": "Me",
  "meeting.user": "User",
  "meeting.mute": "Mute",
  "meeting.unmute": "Unmute",
  "meeting.turnOn": "Turn on camera",
  "meeting.turnOff": "Turn off camera",
  "meeting.raiseHand": "Raise hand",
  "meeting.lowerHand": "Lower hand",
  "meeting.share": "Screen sharing",
  "meeting.stopShare": "Stop sharing",
  "meeting.stop": "Stop recording",
  "meeting.flipCamera": "Flip camera",
  "meeting.signin": "Sign in",
  "meeting.startSignin": "Start sign-in",
  "meeting.end": "End",
  "meeting.leave": "Leave",
  "meeting.signinTitle": "Meeting sign-in",
  "meeting.signinPrompt": "The host has started a sign-in. Tap the button below to sign in",
  "meeting.hostActions": "Host actions",
  "meeting.muteAll": "Mute all",
  "meeting.kickTitle": "Remove from meeting",
  "meeting.kickConfirm": "Are you sure you want to remove {0} from the meeting?",
  "meeting.remove": "Remove",
  "meeting.leaveTitle": "Leave meeting",
  "meeting.leaveConfirm": "Are you sure you want to leave the meeting?",
  "meeting.endTitle": "End meeting",
  "meeting.endConfirm": "Are you sure you want to end the current meeting?",
  "meeting.nameWithMe": "{0} (me)",
  "meeting.approve": "Approve",
  "meeting.host": "Host",
  "meeting.speaker": "Speaker",
  "meeting.viewer": "Viewer",
  "meeting.youAreSharing": "You are sharing your screen",
  "meeting.sharingHint": "Shared content is visible to participants in real time",
  "meeting.receivingShare": "Receiving screen sharing…",
  "meeting.sharingScreen": "{0} is sharing their screen",
  "meeting.joinMeetingFailed": "Failed to join meeting",
  "meeting.connectFailed": "Connection failed: {0}",
  "meeting.mediaServerFailed": "Audio/video service connection failed ({0}). Currently in signaling-only mode",
  "meeting.kickedOut": "You have been removed from the meeting by the host",
  "meeting.viewerNeedHand": "Viewers must raise a hand and be approved by the host before unmuting",
  "meeting.mediaNotConnectedMic": "Media service not connected. Cannot turn on the microphone",
  "meeting.micPermissionDenied": "Microphone permission denied. Please enable it in system settings",
  "meeting.micToggleFailed": "Microphone operation failed: {0}",
  "meeting.mediaNotConnectedCam": "Media service not connected. Cannot turn on the camera",
  "meeting.camPermissionDenied": "Camera permission denied. Please enable it in system settings",
  "meeting.camToggleFailed": "Camera operation failed: {0}",
  "meeting.desktopNoSwitchCam": "Camera switching is not supported on desktop",
  "meeting.mediaNotConnectedSwitchCam": "Media service not connected. Cannot switch the camera",
  "meeting.switchCamFailed": "Failed to switch camera: {0}",
  "meeting.signinStarted": "Sign-in started",
  "meeting.signinFailed": "Sign-in failed",
  "meeting.signinFailedWith": "Sign-in failed: {0}",
  "meeting.hostOnlyRecord": "Only the host can control recording",
  "meeting.getRecordingFailed": "Failed to get recording info: {0}",
  "meeting.noActiveRecording": "No active recording found",
  "meeting.stopRecordFailed": "Failed to stop recording",
  "meeting.stopRecordFailedWith": "Failed to stop recording: {0}",
  "meeting.startRecordFailed": "Failed to start recording",
  "meeting.startRecordFailedWith": "Failed to start recording: {0}",
  "meeting.mediaNotConnectedShare": "Media service not connected. Cannot start screen sharing",
  "meeting.shareStartFailed": "Failed to start sharing: {0}",
  "meeting.shareStopFailed": "Failed to stop sharing: {0}",
  "meeting.noScreenFound": "No screen available to share",
  "meeting.shareTitle": "Share meeting",
  "meeting.codeColon": "Meeting code: {0}",
  "meeting.passwordRequired": "This meeting requires a password",
  "meeting.copyCode": "Copy meeting code",
  "meeting.copyJoinLink": "Copy join link",
  "meeting.shareToIM": "Share to messages",
  "meeting.copied": "Copied: {0}",
  "meeting.inviteText": "You're invited to \"{0}\"\nMeeting code: {1}\nTime: {2}\nLink: {3}",
  "meeting.inviteCopied": "Invitation copied. Go to Messages and send it to your friends",
  "meeting.goMessages": "Go to Messages",
  "whiteboard.title": "Whiteboard",
  "whiteboard.close": "Close whiteboard",
  "whiteboard.viewOnly": "View only",
  "whiteboard.pen": "Pen",
  "whiteboard.eraser": "Eraser",
  "whiteboard.clear": "Clear",
  "whiteboard.noRemoteContent": "The host has not started the whiteboard",
  "record.loadFailed": "Load failed: {0}",
  "record.selectTitle": "Select recording",
  "record.myTitle": "My recordings",
  "record.empty": "No recordings yet",
  "record.emptyMine": "No recordings from meetings you attended",
  "record.noMore": "No more",
  "record.fallbackName": "Meeting recording {0}",
  "record.play": "Play",
  "record.deleted": "Deleted",
  "record.completed": "Completed",
  "record.loadDetailFailed": "Failed to load recording details",
  "record.playerInitFailed": "Failed to initialize player: {0}",
  "record.playerTitle": "Meeting recording",
  "record.notPlayable": "This recording is not playable yet ({0})",
  "record.loadingVideo": "Loading video…",
  "record.durationSize": "Duration {0} · Size {1}",
  "record.meta": "Duration {0}",
  "record.download": "Download",
  "record.downloadTodo": "Download coming soon",
  "contact.title": "Contacts",
  "contact.searchHint": "Search contacts",
  "contact.creatingConversation": "Creating conversation…",
  "contact.startConversationFailed": "Failed to start conversation",
  "contact.empty": "No contacts yet",
  "contact.groupChats": "Group chats",
  "contact.unitGroup": "groups",
  "contact.contacts": "Contacts",
  "contact.unitPerson": "contacts",
  "contact.sectionHeader": "{0} ({1} {2})",
  "contact.deptCount": "{0} ({1})",
  "contact.unassignedDeptCount": "Unassigned department ({0})",
  "contact.noMatch": "No matching contacts found",
  "contact.groupChatsCount": "Group chats ({0})",
  "contact.contactsCount": "Contacts ({0})",
  "contact.groupBadge": "Group",
  "contact.memberCount": "{0} members",
  "contact.loadFailed": "Load failed: {0}",
  "call.waitingAccept": "Waiting for the other party to accept…",
  "call.inviteYou": "Inviting you to a call",
  "call.connecting": "Connecting…",
  "call.ended": "Call ended",
  "call.videoCall": "Video call",
  "call.audioCall": "Voice call",
  "call.networkUnavailableRetry": "Network unavailable. Please try again later",
  "call.peerBusy": "The other party is busy",
  "call.failed": "Call failed",
  "call.interrupted": "Call interrupted",
  "call.inviteVideo": "Inviting you to a video call",
  "call.inviteAudio": "Inviting you to a voice call",
  "call.networkFluctuation": "Unstable network. The call was interrupted",
  "call.micPermissionDenied": "Microphone permission denied. Please grant it in system settings",
  "call.networkUnavailable": "Network unavailable",
  "call.rejected": "Declined",
  "call.connectFailed": "Connection failed",
  "call.cancelled": "Cancelled",
  "call.peerRejected": "The other party declined",
  "call.peerCancelled": "The other party cancelled",
  "call.noAnswer": "No answer",
  "call.peerNotOnline": "The other party is not online",
  "call.peerOffline": "The other party is offline",
  "call.connectTimeout": "Connection timed out. Please try again",
  "call.mediaConnectFailed": "Media connection failed",
  "call.missed": "Missed",
  "call.duration": "Call duration {0}",
  "media.loadingVideo": "Loading video…",
  "media.videoLoadFailed": "Failed to load video. Please check your network and try again",
  "notify.channelSoundVibrate": "New messages (sound and vibration)",
  "notify.channelDescSoundVibrate": "New message alerts: tone and vibration",
  "notify.channelSound": "New messages (sound)",
  "notify.channelDescSound": "New message alerts: tone",
  "notify.channelVibrate": "New messages (vibration)",
  "notify.channelDescVibrate": "New message alerts: vibration",
  "notify.channelMute": "New messages (silent)",
  "notify.channelDescMute": "New message alerts: notification bar only",
  "notify.channelCall": "Incoming call",
  "notify.channelDescCall": "Voice/video incoming call alerts",
  "notify.receivedNewMessage": "You have a new message",
  "notify.newMessage": "New message",
  "battery.titleStep1": "Enable screen-off message delivery",
  "battery.titleStep2": "Last step: allow background running",
  "battery.descStep1": "To receive messages and calls when the screen is off, you need to turn on 2 system settings (only once).",
  "battery.stepIgnoreBattery": "Ignore battery optimization",
  "battery.stepIgnoreBatteryHint": "A system dialog will pop up. Please tap \"Allow\"",
  "battery.stepAllowBackground": "Allow background running",
  "battery.stepAllowBackgroundWait": "Complete the previous step first",
  "battery.descStep2": "Go to system settings, find 乐议, turn off \"Auto management\" and allow background running (by brand: Huawei/Honor - App launch management; Xiaomi - Autostart; OPPO/vivo - Background running).",
  "battery.done": "Done",
  "battery.step2Confirm": "After changing the settings, come back and tap \"Done\"",
  "battery.step2GoSettings": "Tap the button below to go to settings",
  "battery.later": "Not now",
  "battery.goSettings": "Go to settings",
  "battery.goBackgroundSettings": "Go to background running settings",
  "update.downloadFailed": "Download failed. Please check your network and try again",
  "update.cannotOpenInstaller": "Unable to open the installer. Please install it manually (saved to: {0})",
  "update.startFailed": "Failed to launch the update. Please download and install it manually (see %TEMP%\\meeting_im_updater_dart.log for details)",
  "update.foundNewVersion": "New version found",
  "update.versionWithSize": "v{0} ({1})",
  "update.releaseNotesLabel": "Release notes:",
  "update.downloadingPercent": "Downloading {0}%",
  "update.downloadingEllipsis": "Downloading…",
  "update.installing": "Download complete. Launching installer…",
  "update.manualDownload": "Download manually",
  "update.later": "Not now",
  "update.downloadingBtn": "Downloading",
  "update.reinstall": "Reinstall",
  "update.installNow": "Install now",
  "update.updateNow": "Update now",
  "update.alreadyLatest": "You're on the latest version",
  "update.badPackage": "Invalid package structure (main program missing). Please contact the administrator to re-upload it",
  "update.dirNotWritable": "No write permission for the install directory. Right-click and run this program as administrator, then retry, or download the package manually and install it over the current one",
  "update.nonAsciiScript": "The update script contains non-ASCII characters (build error). Please contact the developer",
  "update.noWritePermissionAdmin": "No write permission for the install directory. Please run this program as administrator and retry, or download the package manually",
  "update.componentStartFailed": "Failed to start the update component ({0}). Please download the package manually and install it over the current one",
  "nav.messages": "Messages",
  "nav.meetings": "Meetings"
}
