#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub enum I18nKey {
AlbumAddMoreMedia,
AlbumAddMorePhotos,
AlbumAddMoreVideos,
AlbumAllMedia,
AlbumAllPhotos,
AlbumAllVideos,
AlbumLabel,
AlbumOriginalImage,
AlbumSelected,
CameraAccessDenied,
CameraAudioInitFailed,
CameraCancelling,
CameraInitFailed,
CameraLabel,
CameraLongPressToRecord,
CameraMaxDurationReached,
CameraPreparing,
CameraRecordVideo,
CameraReleaseToStop,
CameraSwitch,
CameraSwitchFailed,
CameraSwitchToBack,
CameraSwitchToFront,
CameraSwitching,
CameraTapToCapture,
CameraTapToRecord,
CameraTapToStop,
CameraVideoInputFailed,
CameraVideoOutputFailed,
CapsuleCleanCache,
CapsuleRestart,
CapsuleUninstall,
CommonAuto,
CommonBack,
CommonCancel,
CommonClose,
CommonConfirm,
CommonDelete,
CommonDone,
CommonEdit,
CommonHome,
CommonLoading,
CommonOk,
CommonRetry,
CommonSave,
CommonSettings,
CommonShare,
CommonSuccess,
CommonWarning,
DateLast30Days,
DateLast7Days,
DateLastMonth,
DateLastWeek,
DateThisMonth,
DateThisWeek,
DocumentPdfPagePreview,
ErrCode1000,
ErrCode1001,
ErrCode1002,
ErrCode1003,
ErrCode1004,
ErrCode1005,
ErrCode12000,
ErrCode12001,
ErrCode12002,
ErrCode12003,
ErrCode12004,
ErrCode12005,
ErrCode12006,
ErrCode12007,
ErrCode12008,
ErrCode12009,
ErrCode12010,
ErrCode2000,
ErrCode2001,
ErrCode3000,
ErrCode3001,
ErrCode3002,
ErrCode3003,
ErrCode3004,
ErrCode3005,
ErrCode3006,
ErrCode3007,
ErrCode4000,
ErrCode4001,
ErrCode4002,
ErrCode4003,
ErrCode5000,
ErrCode5001,
ErrCode5002,
ErrCode5003,
ErrCode5004,
ErrCode6000,
ErrCode6001,
ErrCode6002,
ErrorNetworkError,
ErrorSaveFailed,
ErrorServerError,
ErrorTimeout,
ErrorUnauthorized,
ErrorUnknown,
ErrorVideoTooShort,
FileChooserDefaultTitle,
FileChooserEmptySubtitle,
FileChooserEmptyTitle,
FileChooserFilterAudio,
FileChooserFilterImages,
FileChooserFilterLabel,
FileChooserFilterVideos,
FileChooserFilteredEmptySubtitle,
FileChooserFilteredEmptyTitle,
FileChooserFolderSubtitle,
PermissionLimitedAccessAddMoreMedia,
PermissionLimitedAccessAddMorePhotos,
PermissionLimitedAccessAddMoreVideos,
PermissionLimitedAccessWarning,
PermissionLocationReason,
PermissionMediaReason,
PermissionNetworkReason,
PermissionWifiReason,
UpdateConfirm,
UpdateDownloadFailed,
UpdateDownloading,
UpdateMessage,
UpdateTitle,
VideoQuality,
VideoSpeed,
}
impl I18nKey {
pub fn get(&self, locale: &str) -> &'static str {
let lang = locale
.split('-')
.next()
.unwrap_or(locale)
.to_ascii_lowercase();
match (self, lang.as_str()) {
(I18nKey::AlbumAddMoreMedia, "en") => {
"Add more
accessible items"
}
(I18nKey::AlbumAddMorePhotos, "en") => {
"Add more
accessible photos"
}
(I18nKey::AlbumAddMoreVideos, "en") => {
"Add more
accessible videos"
}
(I18nKey::AlbumAllMedia, "en") => "Photos & Videos",
(I18nKey::AlbumAllPhotos, "en") => "All Photos",
(I18nKey::AlbumAllVideos, "en") => "All Videos",
(I18nKey::AlbumLabel, "en") => "Album",
(I18nKey::AlbumOriginalImage, "en") => "Original",
(I18nKey::AlbumSelected, "en") => "Selected",
(I18nKey::CameraAccessDenied, "en") => "Cannot access camera",
(I18nKey::CameraAudioInitFailed, "en") => "Audio session initialization failed",
(I18nKey::CameraCancelling, "en") => "Cancelling...",
(I18nKey::CameraInitFailed, "en") => "Camera initialization failed",
(I18nKey::CameraLabel, "en") => "Camera",
(I18nKey::CameraLongPressToRecord, "en") => "Long press to record",
(I18nKey::CameraMaxDurationReached, "en") => "Maximum recording time reached",
(I18nKey::CameraPreparing, "en") => "Preparing camera...",
(I18nKey::CameraRecordVideo, "en") => "Record video",
(I18nKey::CameraReleaseToStop, "en") => "Release to stop",
(I18nKey::CameraSwitch, "en") => "Switch camera",
(I18nKey::CameraSwitchFailed, "en") => "Failed to switch camera",
(I18nKey::CameraSwitchToBack, "en") => "Switch to rear camera",
(I18nKey::CameraSwitchToFront, "en") => "Switch to front camera",
(I18nKey::CameraSwitching, "en") => "Switching camera...",
(I18nKey::CameraTapToCapture, "en") => "Tap to capture",
(I18nKey::CameraTapToRecord, "en") => "Tap to record",
(I18nKey::CameraTapToStop, "en") => "Tap to stop",
(I18nKey::CameraVideoInputFailed, "en") => "Cannot add video input",
(I18nKey::CameraVideoOutputFailed, "en") => "Cannot add video output",
(I18nKey::CapsuleCleanCache, "en") => "Clean cache",
(I18nKey::CapsuleRestart, "en") => "Restart",
(I18nKey::CapsuleUninstall, "en") => "Uninstall",
(I18nKey::CommonAuto, "en") => "Auto",
(I18nKey::CommonBack, "en") => "Back",
(I18nKey::CommonCancel, "en") => "Cancel",
(I18nKey::CommonClose, "en") => "Close",
(I18nKey::CommonConfirm, "en") => "Confirm",
(I18nKey::CommonDelete, "en") => "Delete",
(I18nKey::CommonDone, "en") => "Done",
(I18nKey::CommonEdit, "en") => "Edit",
(I18nKey::CommonHome, "en") => "Home",
(I18nKey::CommonLoading, "en") => "Loading...",
(I18nKey::CommonOk, "en") => "OK",
(I18nKey::CommonRetry, "en") => "Retry",
(I18nKey::CommonSave, "en") => "Save",
(I18nKey::CommonSettings, "en") => "Settings",
(I18nKey::CommonShare, "en") => "Share",
(I18nKey::CommonSuccess, "en") => "Success",
(I18nKey::CommonWarning, "en") => "Warning",
(I18nKey::DateLast30Days, "en") => "Last 30 Days",
(I18nKey::DateLast7Days, "en") => "Last 7 Days",
(I18nKey::DateLastMonth, "en") => "Last Month",
(I18nKey::DateLastWeek, "en") => "Last Week",
(I18nKey::DateThisMonth, "en") => "This Month",
(I18nKey::DateThisWeek, "en") => "This Week",
(I18nKey::DocumentPdfPagePreview, "en") => "PDF page preview",
(I18nKey::ErrCode1000, "en") => "Unknown error",
(I18nKey::ErrCode1001, "en") => "Operation failed",
(I18nKey::ErrCode1002, "en") => "Invalid parameter",
(I18nKey::ErrCode1003, "en") => "Resource not found",
(I18nKey::ErrCode1004, "en") => "Initialization failed",
(I18nKey::ErrCode1005, "en") => "Internal error",
(I18nKey::ErrCode12000, "en") => "Not initialized (call startWifi first)",
(I18nKey::ErrCode12001, "en") => "System error (internal error)",
(I18nKey::ErrCode12002, "en") => "Password error (incorrect WiFi password)",
(I18nKey::ErrCode12003, "en") => "Connection timeout",
(I18nKey::ErrCode12004, "en") => "Duplicate connection request",
(I18nKey::ErrCode12005, "en") => {
"Requested WiFi capability is not supported on this platform"
}
(I18nKey::ErrCode12006, "en") => "Permission denied",
(I18nKey::ErrCode12007, "en") => "User did not respond",
(I18nKey::ErrCode12008, "en") => "User refused connection",
(I18nKey::ErrCode12009, "en") => {
"WiFi is disabled (Please enable WiFi in system settings)"
}
(I18nKey::ErrCode12010, "en") => "WiFi network not found",
(I18nKey::ErrCode2000, "en") => "User cancelled",
(I18nKey::ErrCode2001, "en") => "User declined",
(I18nKey::ErrCode3000, "en") => "Permission denied",
(I18nKey::ErrCode3001, "en") => "Camera permission denied",
(I18nKey::ErrCode3002, "en") => "Location permission denied",
(I18nKey::ErrCode3003, "en") => "Microphone permission denied",
(I18nKey::ErrCode3004, "en") => "Photo library permission denied",
(I18nKey::ErrCode3005, "en") => "Storage permission denied",
(I18nKey::ErrCode3006, "en") => "Notification permission denied",
(I18nKey::ErrCode3007, "en") => "Bluetooth permission denied",
(I18nKey::ErrCode4000, "en") => "Service unavailable",
(I18nKey::ErrCode4001, "en") => "Location services disabled",
(I18nKey::ErrCode4002, "en") => "Bluetooth disabled",
(I18nKey::ErrCode4003, "en") => "NFC disabled",
(I18nKey::ErrCode5000, "en") => "Network error",
(I18nKey::ErrCode5001, "en") => "Network unavailable",
(I18nKey::ErrCode5002, "en") => "Request timeout",
(I18nKey::ErrCode5003, "en") => "Server error",
(I18nKey::ErrCode5004, "en") => "Connection failed",
(I18nKey::ErrCode6000, "en") => "Feature not supported",
(I18nKey::ErrCode6001, "en") => "Device not supported",
(I18nKey::ErrCode6002, "en") => "System version too low",
(I18nKey::ErrorNetworkError, "en") => "Network Error",
(I18nKey::ErrorSaveFailed, "en") => {
"Save failed. Please check permissions or available space."
}
(I18nKey::ErrorServerError, "en") => "Server Error",
(I18nKey::ErrorTimeout, "en") => "Request Timeout",
(I18nKey::ErrorUnauthorized, "en") => "Unauthorized",
(I18nKey::ErrorUnknown, "en") => "Unknown Error",
(I18nKey::ErrorVideoTooShort, "en") => "Video too short",
(I18nKey::FileChooserDefaultTitle, "en") => "Choose File",
(I18nKey::FileChooserEmptySubtitle, "en") => {
"This folder does not contain any files or subfolders yet."
}
(I18nKey::FileChooserEmptyTitle, "en") => "Nothing here yet",
(I18nKey::FileChooserFilterAudio, "en") => "Audio",
(I18nKey::FileChooserFilterImages, "en") => "Images",
(I18nKey::FileChooserFilterLabel, "en") => "Showing %1$s",
(I18nKey::FileChooserFilterVideos, "en") => "Videos",
(I18nKey::FileChooserFilteredEmptySubtitle, "en") => {
"There are no files matching the current filter in this folder."
}
(I18nKey::FileChooserFilteredEmptyTitle, "en") => "No matching files",
(I18nKey::FileChooserFolderSubtitle, "en") => "Folder",
(I18nKey::PermissionLimitedAccessAddMoreMedia, "en") => {
"Add more
accessible items"
}
(I18nKey::PermissionLimitedAccessAddMorePhotos, "en") => {
"Add more
accessible photos"
}
(I18nKey::PermissionLimitedAccessAddMoreVideos, "en") => {
"Add more
accessible videos"
}
(I18nKey::PermissionLimitedAccessWarning, "en") => {
"You have limited photo access. Grant full access in settings."
}
(I18nKey::PermissionLocationReason, "en") => {
"Location permission required to provide location-based services"
}
(I18nKey::PermissionMediaReason, "en") => {
"Media permission required to save images and videos to album"
}
(I18nKey::PermissionNetworkReason, "en") => {
"Network permission required to detect network status"
}
(I18nKey::PermissionWifiReason, "en") => {
"WiFi permission required to scan and connect to WiFi networks"
}
(I18nKey::UpdateConfirm, "en") => "Download & Install",
(I18nKey::UpdateDownloadFailed, "en") => "Download failed. Please try again.",
(I18nKey::UpdateDownloading, "en") => "Downloading Update",
(I18nKey::UpdateMessage, "en") => "A new version is ready. Install now?",
(I18nKey::UpdateTitle, "en") => "New Version Available",
(I18nKey::VideoQuality, "en") => "Quality",
(I18nKey::VideoSpeed, "en") => "Speed",
(I18nKey::AlbumAddMoreMedia, "zh") => {
"添加更多
可访问内容"
}
(I18nKey::AlbumAddMorePhotos, "zh") => {
"添加更多
可访问照片"
}
(I18nKey::AlbumAddMoreVideos, "zh") => {
"添加更多
可访问视频"
}
(I18nKey::AlbumAllMedia, "zh") => "图片和视频",
(I18nKey::AlbumAllPhotos, "zh") => "所有图片",
(I18nKey::AlbumAllVideos, "zh") => "所有视频",
(I18nKey::AlbumLabel, "zh") => "相册",
(I18nKey::AlbumOriginalImage, "zh") => "原图",
(I18nKey::AlbumSelected, "zh") => "已选",
(I18nKey::CameraAccessDenied, "zh") => "无法访问摄像头",
(I18nKey::CameraAudioInitFailed, "zh") => "音频会话初始化失败",
(I18nKey::CameraCancelling, "zh") => "取消中...",
(I18nKey::CameraInitFailed, "zh") => "摄像头初始化失败",
(I18nKey::CameraLabel, "zh") => "拍摄",
(I18nKey::CameraLongPressToRecord, "zh") => "长按拍摄",
(I18nKey::CameraMaxDurationReached, "zh") => "已达最长录制时间",
(I18nKey::CameraPreparing, "zh") => "准备相机...",
(I18nKey::CameraRecordVideo, "zh") => "录制视频",
(I18nKey::CameraReleaseToStop, "zh") => "松开停止",
(I18nKey::CameraSwitch, "zh") => "切换摄像头",
(I18nKey::CameraSwitchFailed, "zh") => "无法切换摄像头",
(I18nKey::CameraSwitchToBack, "zh") => "切换到后置摄像头",
(I18nKey::CameraSwitchToFront, "zh") => "切换到前置摄像头",
(I18nKey::CameraSwitching, "zh") => "切换摄像头...",
(I18nKey::CameraTapToCapture, "zh") => "轻触拍照",
(I18nKey::CameraTapToRecord, "zh") => "点击录制",
(I18nKey::CameraTapToStop, "zh") => "点击停止",
(I18nKey::CameraVideoInputFailed, "zh") => "无法添加视频输入",
(I18nKey::CameraVideoOutputFailed, "zh") => "无法添加视频输出",
(I18nKey::CapsuleCleanCache, "zh") => "清理缓存",
(I18nKey::CapsuleRestart, "zh") => "重启",
(I18nKey::CapsuleUninstall, "zh") => "卸载",
(I18nKey::CommonAuto, "zh") => "自动",
(I18nKey::CommonBack, "zh") => "返回",
(I18nKey::CommonCancel, "zh") => "取消",
(I18nKey::CommonClose, "zh") => "关闭",
(I18nKey::CommonConfirm, "zh") => "确定",
(I18nKey::CommonDelete, "zh") => "删除",
(I18nKey::CommonDone, "zh") => "完成",
(I18nKey::CommonEdit, "zh") => "编辑",
(I18nKey::CommonHome, "zh") => "首页",
(I18nKey::CommonLoading, "zh") => "加载中",
(I18nKey::CommonOk, "zh") => "确定",
(I18nKey::CommonRetry, "zh") => "重试",
(I18nKey::CommonSave, "zh") => "保存",
(I18nKey::CommonSettings, "zh") => "设置",
(I18nKey::CommonShare, "zh") => "分享",
(I18nKey::CommonSuccess, "zh") => "成功",
(I18nKey::CommonWarning, "zh") => "警告",
(I18nKey::DateLast30Days, "zh") => "近30日",
(I18nKey::DateLast7Days, "zh") => "近7日",
(I18nKey::DateLastMonth, "zh") => "上月",
(I18nKey::DateLastWeek, "zh") => "上周",
(I18nKey::DateThisMonth, "zh") => "本月",
(I18nKey::DateThisWeek, "zh") => "本周",
(I18nKey::DocumentPdfPagePreview, "zh") => "PDF页面预览",
(I18nKey::ErrCode1000, "zh") => "未知错误",
(I18nKey::ErrCode1001, "zh") => "操作失败",
(I18nKey::ErrCode1002, "zh") => "参数无效",
(I18nKey::ErrCode1003, "zh") => "资源不存在",
(I18nKey::ErrCode1004, "zh") => "初始化失败",
(I18nKey::ErrCode1005, "zh") => "内部错误",
(I18nKey::ErrCode12000, "zh") => "未初始化(请先调用 startWifi)",
(I18nKey::ErrCode12001, "zh") => "系统错误(内部错误)",
(I18nKey::ErrCode12002, "zh") => "密码错误(WiFi 密码不正确)",
(I18nKey::ErrCode12003, "zh") => "连接超时",
(I18nKey::ErrCode12004, "zh") => "重复的连接请求",
(I18nKey::ErrCode12005, "zh") => "当前平台不支持所请求的 WiFi 能力",
(I18nKey::ErrCode12006, "zh") => "权限被拒绝",
(I18nKey::ErrCode12007, "zh") => "用户未响应",
(I18nKey::ErrCode12008, "zh") => "用户拒绝连接",
(I18nKey::ErrCode12009, "zh") => "WiFi 已关闭(请在系统设置中开启 WiFi)",
(I18nKey::ErrCode12010, "zh") => "未找到 WiFi 网络",
(I18nKey::ErrCode2000, "zh") => "用户取消",
(I18nKey::ErrCode2001, "zh") => "用户拒绝",
(I18nKey::ErrCode3000, "zh") => "权限被拒绝",
(I18nKey::ErrCode3001, "zh") => "相机权限被拒绝",
(I18nKey::ErrCode3002, "zh") => "定位权限被拒绝",
(I18nKey::ErrCode3003, "zh") => "麦克风权限被拒绝",
(I18nKey::ErrCode3004, "zh") => "相册权限被拒绝",
(I18nKey::ErrCode3005, "zh") => "存储权限被拒绝",
(I18nKey::ErrCode3006, "zh") => "通知权限被拒绝",
(I18nKey::ErrCode3007, "zh") => "蓝牙权限被拒绝",
(I18nKey::ErrCode4000, "zh") => "服务不可用",
(I18nKey::ErrCode4001, "zh") => "定位服务未开启",
(I18nKey::ErrCode4002, "zh") => "蓝牙未开启",
(I18nKey::ErrCode4003, "zh") => "NFC未开启",
(I18nKey::ErrCode5000, "zh") => "网络错误",
(I18nKey::ErrCode5001, "zh") => "网络不可用",
(I18nKey::ErrCode5002, "zh") => "请求超时",
(I18nKey::ErrCode5003, "zh") => "服务器错误",
(I18nKey::ErrCode5004, "zh") => "连接失败",
(I18nKey::ErrCode6000, "zh") => "功能不支持",
(I18nKey::ErrCode6001, "zh") => "设备不支持",
(I18nKey::ErrCode6002, "zh") => "系统版本过低",
(I18nKey::ErrorNetworkError, "zh") => "网络错误",
(I18nKey::ErrorSaveFailed, "zh") => "保存失败,请检查照片权限或可用空间",
(I18nKey::ErrorServerError, "zh") => "服务器错误",
(I18nKey::ErrorTimeout, "zh") => "请求超时",
(I18nKey::ErrorUnauthorized, "zh") => "未授权",
(I18nKey::ErrorUnknown, "zh") => "未知错误",
(I18nKey::ErrorVideoTooShort, "zh") => "拍摄时间过短",
(I18nKey::FileChooserDefaultTitle, "zh") => "选择文件",
(I18nKey::FileChooserEmptySubtitle, "zh") => {
"这个文件夹里还没有可显示的文件或子文件夹。"
}
(I18nKey::FileChooserEmptyTitle, "zh") => "这里还是空的",
(I18nKey::FileChooserFilterAudio, "zh") => "音频",
(I18nKey::FileChooserFilterImages, "zh") => "图片",
(I18nKey::FileChooserFilterLabel, "zh") => "筛选:%1$s",
(I18nKey::FileChooserFilterVideos, "zh") => "视频",
(I18nKey::FileChooserFilteredEmptySubtitle, "zh") => {
"当前文件夹里没有符合筛选条件的文件。"
}
(I18nKey::FileChooserFilteredEmptyTitle, "zh") => "没有匹配的文件",
(I18nKey::FileChooserFolderSubtitle, "zh") => "文件夹",
(I18nKey::PermissionLimitedAccessAddMoreMedia, "zh") => {
"添加更多
可访问内容"
}
(I18nKey::PermissionLimitedAccessAddMorePhotos, "zh") => {
"添加更多
可访问照片"
}
(I18nKey::PermissionLimitedAccessAddMoreVideos, "zh") => {
"添加更多
可访问视频"
}
(I18nKey::PermissionLimitedAccessWarning, "zh") => {
"你仅开启有限访问相册权限,建议允许访问「所有照片」"
}
(I18nKey::PermissionLocationReason, "zh") => "LingXia需要位置权限为你提供服务",
(I18nKey::PermissionMediaReason, "zh") => "LingXia需要相册权限保存图片和视频",
(I18nKey::PermissionNetworkReason, "zh") => "LingXia需要网络权限来检测网络状态",
(I18nKey::PermissionWifiReason, "zh") => "LingXia需要WiFi权限来扫描和连接WiFi网络",
(I18nKey::UpdateConfirm, "zh") => "下载并安装",
(I18nKey::UpdateDownloadFailed, "zh") => "下载失败,请重试",
(I18nKey::UpdateDownloading, "zh") => "正在下载更新",
(I18nKey::UpdateMessage, "zh") => "新版本已准备好,是否立即安装?",
(I18nKey::UpdateTitle, "zh") => "发现新版本",
(I18nKey::VideoQuality, "zh") => "画质",
(I18nKey::VideoSpeed, "zh") => "倍速",
_ => self.get("en"),
}
}
}
pub fn err_code_key(code: u32) -> Option<I18nKey> {
match code {
1000 => Some(I18nKey::ErrCode1000),
1001 => Some(I18nKey::ErrCode1001),
1002 => Some(I18nKey::ErrCode1002),
1003 => Some(I18nKey::ErrCode1003),
1004 => Some(I18nKey::ErrCode1004),
1005 => Some(I18nKey::ErrCode1005),
2000 => Some(I18nKey::ErrCode2000),
2001 => Some(I18nKey::ErrCode2001),
3000 => Some(I18nKey::ErrCode3000),
3001 => Some(I18nKey::ErrCode3001),
3002 => Some(I18nKey::ErrCode3002),
3003 => Some(I18nKey::ErrCode3003),
3004 => Some(I18nKey::ErrCode3004),
3005 => Some(I18nKey::ErrCode3005),
3006 => Some(I18nKey::ErrCode3006),
3007 => Some(I18nKey::ErrCode3007),
4000 => Some(I18nKey::ErrCode4000),
4001 => Some(I18nKey::ErrCode4001),
4002 => Some(I18nKey::ErrCode4002),
4003 => Some(I18nKey::ErrCode4003),
5000 => Some(I18nKey::ErrCode5000),
5001 => Some(I18nKey::ErrCode5001),
5002 => Some(I18nKey::ErrCode5002),
5003 => Some(I18nKey::ErrCode5003),
5004 => Some(I18nKey::ErrCode5004),
6000 => Some(I18nKey::ErrCode6000),
6001 => Some(I18nKey::ErrCode6001),
6002 => Some(I18nKey::ErrCode6002),
12000 => Some(I18nKey::ErrCode12000),
12001 => Some(I18nKey::ErrCode12001),
12002 => Some(I18nKey::ErrCode12002),
12003 => Some(I18nKey::ErrCode12003),
12004 => Some(I18nKey::ErrCode12004),
12005 => Some(I18nKey::ErrCode12005),
12006 => Some(I18nKey::ErrCode12006),
12007 => Some(I18nKey::ErrCode12007),
12008 => Some(I18nKey::ErrCode12008),
12009 => Some(I18nKey::ErrCode12009),
12010 => Some(I18nKey::ErrCode12010),
_ => None,
}
}