♻️ Move translations out of dart code

This commit is contained in:
LittleSheep 2024-09-11 19:56:32 +08:00
parent 133213b430
commit 408a2489e2
10 changed files with 836 additions and 837 deletions

388
assets/locales/en_us.json Normal file
View File

@ -0,0 +1,388 @@
{
"done": "Done",
"hide": "Hide",
"okay": "Okay",
"next": "Next",
"reset": "Reset",
"page": "Page",
"home": "Home",
"guest": "Guest",
"draft": "Draft",
"dashboard": "Dashboard",
"today": "Today",
"yesterday": "Yesterday",
"draftSave": "Save",
"draftBox": "Draft Box",
"more": "More",
"share": "Share",
"shareNoUri": "Share text content",
"alias": "Alias",
"feed": "Feed",
"unlink": "Unlink",
"feedSearch": "Search Feed",
"feedSearchWithTag": "Searching with tag #@key",
"feedSearchWithCategory": "Searching in category @category",
"feedUnreadCount": "@count posts you may missed",
"messages": "Messages",
"messagesUnreadCount": "@count messages unread",
"dailySign": "Daily Sign",
"dailySignNone": "You haven't sign today",
"dailySignTier0": "Everything may not be good",
"dailySignTier1": "Something may be wrong",
"dailySignTier2": "Just so so",
"dailySignTier3": "Something may goes well",
"dailySignTier4": "Everything will be awesome",
"dashboardFooter": "Don't be serious, just for fun.",
"visitProfilePage": "Visit Profile Page",
"profilePage": "Page",
"profilePosts": "Posts",
"profileAlbum": "Album",
"chat": "Chat",
"apply": "Apply",
"cancel": "Cancel",
"confirm": "Confirm",
"leave": "Leave",
"loading": "Loading...",
"about": "About",
"edit": "Edit",
"delete": "Delete",
"settings": "Settings",
"search": "Search",
"post": "Post",
"article": "Article",
"reply": "Reply",
"repost": "Repost",
"openInAlbum": "Open in album",
"openInBrowser": "Open in browser",
"notification": "Notification",
"notificationUnreadCount": "@count unread notifications",
"errorHappened": "An error occurred",
"errorHappenedUnauthorized": "Unauthorized request, please sign in or try resign in.",
"forgotPassword": "Forgot password",
"email": "Email",
"username": "Username",
"nickname": "Nickname",
"password": "Password",
"title": "Title",
"description": "Description",
"birthday": "Birthday",
"firstName": "First Name",
"lastName": "Last Name",
"account": "Account",
"accountPersonalize": "Personalize",
"accountPersonalizeApplied": "Account personalize settings has been saved.",
"accountStickers": "Stickers",
"accountFriend": "Friend",
"accountFriendNew": "New friend",
"accountFriendNewHint": "Use someone's username to send a request of making friends with them!",
"accountFriendPending": "Friend requests",
"accountFriendBlocked": "Friend blocklist",
"accountFriendListHint": "Swipe left to decline, right to approve",
"accountFriendRequestSent": "Friend request sent, waiting for processing...",
"accountSuspended": "Account was suspended",
"accountSuspendedAt": "Account was suspended since @date",
"aspectRatio": "Aspect Ratio",
"aspectRatioSquare": "Square",
"aspectRatioPortrait": "Portrait",
"aspectRatioLandscape": "Landscape",
"unsignedIn": "Unsigned in",
"signin": "Sign in",
"signinRequired": "Sign in",
"signinRequiredHint": "Sign in to get full access of Solar Network",
"signinGreeting": "Welcome back\nSolar Network",
"signinCaption": "Sign in to create post, start a realm, message your friend and more!",
"signinRiskDetected": "Risk detected, click Next to open a webpage and signin through it to pass security check.",
"signinResetPasswordHint": "Please enter username to request reset password.",
"signinResetPasswordSent": "Reset password request sent, check your inbox!",
"signup": "Sign up",
"signupGreeting": "Welcome onboard",
"signupCaption": "Create an account on Solarpass and then get the access of entire Solar Network!",
"signupDone": "Sign up successfully.",
"signupDoneCaption": "You successfully created an account on Solar Network. Now go sign in!",
"signout": "Sign out",
"joinedAt": "Joined at @date",
"riskDetection": "Risk Detected",
"matureContent": "Mature Content",
"matureContentCaption": "The content is rated and may not suitable for everyone to view",
"notifyAllRead": "Mark all as read",
"notifyEmpty": "All notifications read",
"notifyEmptyCaption": "It seems like nothing happened recently",
"totalSocialCreditPoints": "Social Credit Points",
"totalPostCount": "Posts",
"totalUpvote": "Upvote",
"totalDownvote": "Downvote",
"clear": "Clear",
"pinPost": "Pin this post",
"unpinPost": "Unpin this post",
"postRestoreFromLocal": "Restore from local",
"postAutoSaveAt": "Auto saved at @date",
"postCategoriesAndTags": "Categories n' Tags",
"postPublishDate": "Publish Date",
"postPublishAt": "Publish At",
"postPublishedUntil": "Publish Until",
"postPublishZone": "Publish Zone",
"postPublishZoneNone": "None",
"postVisibility": "Visibility",
"postVisibilityAll": "Everyone",
"postVisibilityFriends": "Friends",
"postVisibilitySelected": "Selected visible",
"postVisibilityFiltered": "Selected invisible",
"postVisibilityNone": "Only me",
"postVisibleUsers": "Visible users",
"postInvisibleUsers": "Invisible users",
"postOverview": "Overview",
"postThumbnail": "Thumbnail",
"postThumbnailAttachmentNew": "Upload thumbnail",
"postThumbnailAttachment": "Attachment serial number",
"postPinned": "Pinned",
"postListNews": "News",
"postListFriends": "Friends",
"postListShuffle": "Random",
"postEditorModeStory": "Post a post",
"postEditorModeArticle": "Post an article",
"postEditor": "Post editor",
"articleEditor": "Create new article",
"articleDetail": "Article details",
"draftBoxOpen": "Open draft box",
"postNew": "Create a new post",
"postNewInRealmHint": "Add post in realm @realm",
"postAction": "Post",
"postEdited": "Edited at @date",
"postNewCreated": "Created at @date",
"attachmentHint": "@count attachment(s)",
"postInRealm": "In @realm",
"postDetail": "Post",
"postReplies": "Replies",
"postPublish": "Post a post",
"articlePublish": "Write an article",
"articleTitlePlaceholder": "Title",
"articleDescriptionPlaceholder": "Description",
"articleContentPlaceholder": "Content",
"postIdentityNotify": "You will post this post as",
"postContentPlaceholder": "What's happened?!",
"postTagsPlaceholder": "Tags",
"postReaction": "Reactions of the Post",
"postActionList": "Actions of Post",
"postReplyAction": "Make a reply",
"postRepliedNotify": "Replied a post from @username.",
"postRepostedNotify": "Reposted a post from @username.",
"postInRealmNotify": "You're posting in realm @realm.",
"postEditingNotify": "You're editing as post from you.",
"postReplyingNotify": "You're replying a post from @username.",
"postRepostingNotify": "You're reposting a post from @username.",
"postDeletionConfirm": "Confirm post deletion",
"postDeletionConfirmCaption": "Are your sure to delete post \"@content\"? This action cannot be undone!",
"reactAdd": "React",
"reactCompleted": "Your reaction has been added",
"reactUncompleted": "Your reaction has been removed",
"attachmentUploadBy": "Upload by",
"attachmentAutoUpload": "Auto Upload",
"attachmentUploadQueue": "Upload Queue",
"attachmentUploadQueueStart": "Start All",
"attachmentUploadInProgress": "There are attachments being uploaded. Please wait until all attachments have been uploaded before proceeding...",
"attachmentAttached": "Exists Files",
"attachmentUploadBlocked": "Upload blocked, there is currently a task in progress...",
"attachmentAdd": "Attach file",
"attachmentAddGalleryPhoto": "Gallery photo",
"attachmentAddGalleryVideo": "Gallery video",
"attachmentAddCameraPhoto": "Capture photo",
"attachmentAddCameraVideo": "Capture video",
"attachmentAddClipboard": "Paste file",
"attachmentAddFile": "Attach file",
"attachmentAddLink": "Link attachments",
"attachmentAddLinkHint": "Enter attachment serial number to link that attachment",
"attachmentAddLinkInput": "Serial number",
"attachmentSetting": "Adjust attachment",
"attachmentAlt": "Alternative text",
"attachmentLoadFailed": "Load Attachment Failed",
"attachmentLoadFailedCaption": "Something went wrong during loading the attachment metadata...",
"attachmentUploading": "Uploading @name...",
"attachmentUploadingWebMode": "Uploading @name... Due to browser's limitation, calculate attachment information may cause some lag...",
"realm": "Realm",
"realms": "Realms",
"realmOrganizing": "Organize a realm",
"realmAlias": "Alias (Identifier)",
"realmName": "Name",
"realmDescription": "Description",
"realmPublic": "Public Realm",
"realmCommunity": "Community Realm",
"realmDetail": "Realm detail",
"realmMember": "Realm member",
"realmMembers": "Realm members",
"realmMembersAdd": "Add realm members",
"realmMembersAddHint": "Into @realm",
"realmAdjust": "Realm adjustment",
"realmSettings": "Realm settings",
"realmEditingNotify": "You're editing realm @realm",
"realmLeaveConfirm": "Confirm realm quit",
"realmLeaveConfirmCaption": "Are you sure you want leave realm @realm? Your content published in this realm will not be deleted.",
"realmDeletionConfirm": "Confirm realm deletion",
"realmDeletionConfirmCaption": "Are you sure to delete realm @realm? This action cannot be undone!",
"channels": "Channels",
"channelNew": "Create a new channel",
"channelNewInRealmHint": "Create channel in realm @realm",
"channelOrganizing": "Organize a channel",
"channelOrganizeCommon": "Create regular channel",
"channelOrganizeDirect": "Create DM",
"channelOrganizeDirectHint": "Choose friend to create DM",
"channelInRealmNotify": "You're creating channel in realm @realm",
"channelEditingNotify": "You're editing channel @channel",
"channelAlias": "Alias (Identifier)",
"channelName": "Name",
"channelDescription": "Description",
"channelDirectDescription": "Direct message with @username",
"channelEncrypted": "Encrypted Channel",
"channelMember": "Channel member",
"channelMembers": "Channel members",
"channelMembersAdd": "Add channel members",
"channelMembersAddHint": "Into @channel",
"channelType": "Channel type",
"channelTypeCommon": "Regular",
"channelTypeDirect": "DM",
"channelAdjust": "Channel adjustment",
"channelDetail": "Channel detail",
"channelSettings": "Channel settings",
"channelLeaveConfirm": "Confirm channel quit",
"channelLeaveConfirmCaption": "Are you sure to leave channel @channel? All your messages will be deleted!",
"channelDeletionConfirm": "Confirm channel deletion",
"channelDeletionConfirmCaption": "Are you sure to delete channel @channel? This action cannot be undone!",
"channelCategoryDirect": "DM",
"channelCategoryDirectHint": "Your direct messages",
"channelNotifyLevel": "Notify level",
"channelNotifyLevelAll": "All",
"channelNotifyLevelMentioned": "Only mentioned",
"channelNotifyLevelNone": "Ignore all",
"channelNotifyLevelApplied": "Your notification settings has been applied.",
"messageUnSync": "Messages Un-synced",
"messageUnSyncCaption": "@count message(s) still in un-synced.",
"messageSending": "Sending...",
"messageEditDesc": "Edited message @id",
"messageDeleteDesc": "Deleted message @id",
"messageCallStartDesc": "@user starts a call",
"messageCallEndDesc": "Call last for @duration",
"messageTypeUnsupported": "Unsupported Message: @type",
"messageInputPlaceholder": "Message @channel",
"messageActionList": "Actions of Message",
"messageDeletionConfirm": "Confirm message deletion",
"messageDeletionConfirmCaption": "Are your sure to delete message @id? This action cannot be undone!",
"call": "Call",
"callOngoing": "A call is ongoing...",
"callOngoingEmpty": "A call is on hold...",
"callOngoingParticipants": "@count people are calling...",
"callOngoingJoined": "Call last @duration",
"callJoin": "Join",
"callResume": "Resume",
"callMicrophone": "Microphone",
"callMicrophoneDisabled": "Microphone Disabled",
"callMicrophoneSelect": "Select Microphone",
"callCamera": "Camera",
"callCameraDisabled": "Camera Disabled",
"callCameraSelect": "Select Camera",
"callSpeakerSelect": "Select Speaker",
"callDisconnected": "Call Disconnected... @reason",
"callMicrophoneOn": "Turn Microphone On",
"callMicrophoneOff": "Turn Microphone Off",
"callCameraOn": "Turn Camera On",
"callCameraOff": "Turn Camera Off",
"callVideoFlip": "Flip Video Input",
"callSpeakerphoneToggle": "Toggle Speakerphone Mode",
"callScreenOn": "Start Screen Sharing",
"callScreenOff": "Stop Screen Sharing",
"callDisconnect": "Disconnect",
"callDisconnectCaption": "Are you sure you want to disconnect from this call? You can also just return to the page, and the call will continue in the background.",
"callParticipantAction": "Participant Actions",
"callParticipantMicrophoneOff": "Mute Participant",
"callParticipantMicrophoneOn": "Unmute Participant",
"callParticipantVideoOff": "Turn Off Participant Video",
"callParticipantVideoOn": "Turn On Participant Video",
"callAlreadyOngoing": "A call is already ongoing",
"badge": "Badge",
"badges": "Badges",
"badgeGrantAt": "Badge awarded on @date",
"badgeSolsynthStaff": "Solsynth Staff",
"badgeSolarOriginalCitizen": "Solar Network Natives",
"badgeGreatCommunityContributor": "Great Community Contributor",
"pushNotifyRegister": "Register Push Notification Device",
"pushNotifyRegisterCaption": "Activating push notifications allows you to get our latest notifications even when the app is completely closed. We use Apple's official push service on iOS/macOS devices; other devices provide push notifications through Google Firebase. To register a device for push notifications, you may need to connect to Google's servers and install the Google Framework on your device. Although you dismiss this dialog, this registration will be auto performed when you next time launch the app.",
"pushNotifyRegisterDone": "Push notifications has been activated.",
"pushNotifyRegisterFailed": "Unable to active push notification... @reason",
"accountChangeStatus": "Change Status",
"accountCustomStatus": "Set Custom Status",
"accountClearStatus": "Clear Status",
"accountStatusOnline": "Online",
"accountStatusSilent": "Do not Disturb",
"accountStatusSilentDesc": "The notification will stop popping up",
"accountStatusInvisible": "Invisible",
"accountStatusInvisibleDesc": "Will show as offline, but all features still remain normal",
"accountStatusOffline": "Offline",
"accountLastSeenAt": "@date ago online",
"accountStatusLabel": "Status Text",
"accountStatusClearAt": "Clear At",
"accountStatusNegative": "Negative",
"accountStatusNeutral": "Neutral",
"accountStatusPositive": "Positive",
"bsLoadingTheme": "Loading Theme",
"bsCheckForUpdate": "Checking For Updates",
"bsCheckForUpdateFailed": "Unable to Check Updates",
"bsCheckForUpdateNew": "Found New Version",
"bsCheckForUpdateDescApple": "Please head to TestFlight and update your app to latest version to prevent error happens and get latest functions.",
"bsCheckForUpdateDescCommon": "Please head to our website download and install latest version of application to prevent error happens and get latest functions.",
"bsCheckingServer": "Checking Server Status",
"bsCheckingServerFail": "Unable connect to server, check your network connection",
"bsCheckingServerDown": "Server currently unavailable, please retry later",
"bsAuthorizing": "Authorizing",
"bsEstablishingConn": "Establishing Connection",
"bsPreparingData": "Preparing User Data",
"bsRegisteringPushNotify": "Enabling Push Notifications",
"bsDismissibleErrorHint": "Click anywhere to ignore this error",
"postShareContent": "@content\n\n@username on the Solar Network\nCheck it out: @link",
"postShareSubject": "@username posted a post on the Solar Network",
"themeColor": "Global Theme Color",
"themeColorRed": "Modern Red",
"themeColorBlue": "Classic Blue",
"themeColorMiku": "Miku Blue",
"themeColorKagamine": "Kagamine Yellow",
"themeColorLuka": "Luka Pink",
"stickerDeletionConfirm": "Confirm sticker delete",
"stickerDeletionConfirmCaption": "Are you sure to delete sticker @name? This action cannot be undo.",
"themeColorApplied": "Global theme color has been applied.",
"attachmentSaved": "Attachment saved to your system album.",
"cropImage": "Crop Image",
"stickerUploader": "Upload sticker",
"stickerUploaderAttachmentNew": "Upload sticker",
"stickerUploaderAttachment": "Attachment serial number",
"stickerUploaderPack": "Sticker pack serial number",
"stickerUploaderPackHint": "Don't have pack id? Head to creator platform and create one!",
"stickerUploaderAlias": "Alias",
"stickerUploaderAliasHint": "Will be used as a placeholder with the sticker pack prefix when entered.",
"stickerUploaderName": "Name",
"stickerUploaderNameHint": "A human-friendly name given to the user in the sticker selection interface.",
"readMore": "Read more",
"attachmentUnload": "Not Loaded",
"attachmentUnloadCaption": "In order to save traffic, this attachment is not loaded automatically. Click it to start loading.",
"callStatusConnected": "Connected",
"callStatusDisconnected": "Disconnected",
"callStatusConnecting": "Connecting",
"callStatusReconnected": "Reconnecting",
"messageOutOfSync": "May Out of Sync with Server",
"messageOutOfSyncCaption": "Since the App has entered the background, there may be a time difference between the message list and the server. Click to Refresh.",
"messageHistoryWipe": "Wipe local message history",
"unknown": "Unknown",
"collapse": "Collapse",
"expand": "Expand",
"typingMessage": "@user are typing...",
"userLevel0": "Newbie",
"userLevel1": "Novice",
"userLevel2": "Apprentice",
"userLevel3": "Explorer",
"userLevel4": "Adventurer",
"userLevel5": "Warrior",
"userLevel6": "Knight",
"userLevel7": "Champion",
"userLevel8": "Hero",
"userLevel9": "Master",
"userLevel10": "Grandmaster",
"userLevel11": "Legend",
"userLevel12": "Mythic",
"userLevel13": "Immortal"
}

388
assets/locales/zh_cn.json Normal file
View File

@ -0,0 +1,388 @@
{
"done": "完成",
"hide": "隐藏",
"okay": "确认",
"home": "首页",
"next": "下一步",
"reset": "重置",
"cancel": "取消",
"confirm": "确认",
"leave": "离开",
"loading": "载入中…",
"guest": "游客",
"about": "关于",
"edit": "编辑",
"delete": "删除",
"settings": "设置",
"page": "页面",
"draft": "草稿",
"draftSave": "存为草稿",
"draftBox": "草稿箱",
"more": "更多",
"share": "分享",
"shareNoUri": "分享文字内容",
"alias": "别名",
"feed": "资讯",
"unlink": "移除链接",
"dashboard": "仪表盘",
"today": "今日",
"yesterday": "昨日",
"feedSearch": "搜索资讯",
"feedSearchWithTag": "检索带有 #@key 标签的资讯",
"feedSearchWithCategory": "检索位于分类 @category 的资讯",
"feedUnreadCount": "@count 条你可能错过的帖子",
"messages": "消息",
"messagesUnreadCount": "@count 条未读的消息",
"dailySign": "签到",
"dailySignNone": "今日未拜访佛祖",
"dailySignTier0": "诸事不宜",
"dailySignTier1": "有些不宜",
"dailySignTier2": "平平淡淡",
"dailySignTier3": "有些事宜",
"dailySignTier4": "诸事皆宜",
"dashboardFooter": "占卜多少沾点玩,人生还得靠实力",
"visitProfilePage": "造访个人主页",
"profilePage": "主页",
"profilePosts": "帖子",
"profileAlbum": "相簿",
"chat": "聊天",
"apply": "应用",
"search": "搜索",
"post": "帖子",
"article": "文章",
"reply": "回复",
"repost": "转帖",
"openInAlbum": "在相簿中打开",
"openInBrowser": "在浏览器中打开",
"notification": "通知",
"notificationUnreadCount": "@count 条未读通知",
"errorHappened": "发生错误了",
"errorHappenedUnauthorized": "未经授权的请求,请登录或尝试重新登录。",
"errorHappenedRequestBad": "请求错误,服务器拒绝处理该请求,请检查您的请求数据。",
"errorHappenedRequestForbidden": "请求错误,权限不足。",
"errorHappenedRequestNotFound": "请求错误,请求的数据不存在。",
"errorHappenedRequestConnection": "网络请求失败,请检查连接状态与服务状态后再试。",
"errorHappenedRequestUnknown": "请求错误,类型未知,请将本提示完整截图提交反馈。",
"forgotPassword": "忘记密码",
"email": "邮件地址",
"username": "用户名",
"nickname": "显示名",
"password": "密码",
"title": "标题",
"description": "简介",
"birthday": "生日",
"firstName": "名称",
"lastName": "姓氏",
"account": "账号",
"accountPersonalize": "个性化",
"accountPersonalizeApplied": "账户的个性化设置已保存。",
"accountStickers": "贴图",
"accountFriend": "好友",
"accountFriendNew": "添加好友",
"accountFriendNewHint": "使用他人的用户名来发送一个好友请求吧!",
"accountFriendPending": "好友请求",
"accountFriendBlocked": "好友黑名单",
"accountFriendListHint": "左滑来拒绝,右滑来接受",
"accountFriendRequestSent": "好友请求已发送,等待处理对方中……",
"accountSuspended": "帐号被停用",
"accountSuspendedAt": "该帐号自 @date 起被停用",
"aspectRatio": "纵横比",
"aspectRatioSquare": "方型",
"aspectRatioPortrait": "竖型",
"aspectRatioLandscape": "横型",
"unsignedIn": "未登录",
"signin": "登录",
"signinRequired": "需要登录",
"signinRequiredHint": "登陆以获得 Solar Network 的全部功能使用权。",
"signinGreeting": "欢迎回来\nSolar Network",
"signinCaption": "登录以发表帖子、文章、创建领域、和你的朋友聊天,以及获取更多功能!",
"signinRiskDetected": "检测到风险,点击下一步按钮来打开一个网页,并通过在其上面登录来通过安全检查。",
"signinResetPasswordHint": "请先填写用户名以发送重置密码请求。",
"signinResetPasswordSent": "重置密码请求已发送,在绑定邮件收件箱可收取一份包含重置密码链接的邮件。",
"signup": "注册",
"signupGreeting": "欢迎加入\nSolar Network",
"signupCaption": "在 Solarpass 注册一个账号以获得整个 Solar Network 的存取权!",
"signupDone": "注册成功",
"signupDoneCaption": "你成功地注册了一个帐户,现在去尝试登陆吧!",
"signout": "登出",
"joinedAt": "加入于 @date",
"riskDetection": "检测到风险",
"matureContent": "评级内容",
"matureContentCaption": "该内容已被评级为家长指导级或以上,这可能说明内容包含一系列不友好的成分",
"notifyAllRead": "已读所有通知",
"notifyEmpty": "通知箱为空",
"notifyEmptyCaption": "看起来最近没发生什么呢",
"totalSocialCreditPoints": "社会信用点",
"totalPostCount": "总帖数",
"totalUpvote": "获顶数",
"totalDownvote": "获踩数",
"clear": "清除",
"pinPost": "置顶本帖",
"unpinPost": "取消置顶本帖",
"postRestoreFromLocal": "内容从本地暂存回复",
"postAutoSaveAt": "已自动保存于 @date",
"postCategoriesAndTags": "分类与标签",
"postPublishDate": "发布时间",
"postPublishAt": "发布帖子于",
"postPublishedUntil": "取消发布于",
"postPublishZone": "帖子发布区",
"postPublishZoneNone": "无所属领域",
"postVisibility": "帖子可见性",
"postVisibilityAll": "所有人可见",
"postVisibilityFriends": "仅好友可见",
"postVisibilitySelected": "选中者可见",
"postVisibilityFiltered": "选中者不可见",
"postVisibilityNone": "仅自己可见",
"postVisibleUsers": "可见帖子者",
"postInvisibleUsers": "隐藏帖子者",
"postOverview": "帖子概览",
"postThumbnail": "帖子缩略图",
"postThumbnailAttachmentNew": "上传附件作为缩略图",
"postThumbnailAttachment": "附件序列号",
"postPinned": "已置顶",
"postEditorModeStory": "发个帖子",
"postEditorModeArticle": "撰写文章",
"postEditor": "帖子编辑器",
"articleEditor": "撰写文章",
"articleDetail": "文章详情",
"draftBoxOpen": "打开草稿箱",
"postListNews": "新鲜事",
"postListFriends": "好友圈",
"postListShuffle": "打乱看",
"postNew": "创建新帖子",
"postNewInRealmHint": "在领域 @realm 里发表新帖子",
"postAction": "发表",
"postEdited": "编辑于 @date",
"postNewCreated": "创建于 @date",
"postInRealm": "发表于 @realm",
"attachmentHint": "@count 个附件",
"postDetail": "帖子详情",
"postReplies": "帖子回复",
"postPublish": "编辑帖子",
"postIdentityNotify": "你将会以本身份发表帖子",
"postContentPlaceholder": "发生什么事了?!",
"postTagsPlaceholder": "标签",
"postReaction": "帖子的反应",
"postActionList": "帖子的操作",
"postReplyAction": "发表一则回复",
"postRepliedNotify": "回了一个 @username 的帖子",
"postRepostedNotify": "转了一个 @username 的帖子",
"postInRealmNotify": "你正在领域 @realm 中发表帖子",
"postEditingNotify": "你正在编辑一个你发布的帖子",
"postReplyingNotify": "你正在回一个来自 @username 的帖子",
"postRepostingNotify": "你正在转一个来自 @username 的帖子",
"postDeletionConfirm": "确认删除帖子",
"postDeletionConfirmCaption": "你确定要删除帖子 “@content” 吗?该操作不可撤销。",
"reactAdd": "作出反应",
"reactCompleted": "你的反应已被添加",
"reactUncompleted": "你的反应已被移除",
"attachmentUploadBy": "由上传",
"attachmentAutoUpload": "自动上传",
"attachmentUploadQueue": "上传队列",
"attachmentUploadQueueStart": "整队上传",
"attachmentUploadInProgress": "有附件正在上传,请等待所有附件上传完毕后再进行操作……",
"attachmentAttached": "已附附件",
"attachmentUploadBlocked": "上传受阻,当前已有任务进行中……",
"attachmentAdd": "附加附件",
"attachmentAddGalleryPhoto": "相册照片",
"attachmentAddGalleryVideo": "相册视频",
"attachmentAddCameraPhoto": "拍摄图片",
"attachmentAddCameraVideo": "拍摄视频",
"attachmentAddClipboard": "粘贴文件",
"attachmentAddFile": "附加文件",
"attachmentAddLink": "链接附件",
"attachmentAddLinkHint": "输入附件的神秘代号来链接对应附件",
"attachmentAddLinkInput": "神秘代号",
"attachmentSetting": "调整附件",
"attachmentAlt": "替代文字",
"attachmentLoadFailed": "加载失败",
"attachmentLoadFailedCaption": "有错误发生于加载附件元数据的过程中了…",
"attachmentUploading": "上传附件 @name 中…",
"attachmentUploadingWebMode": "上传附件 @name 中… 由于浏览器单线程限制,计算所需资源可能会导致界面卡顿…",
"realm": "领域",
"realms": "领域",
"realmOrganizing": "组织领域",
"realmAlias": "别称(标识符)",
"realmName": "显示名称",
"realmDescription": "领域简介",
"realmPublic": "公开领域",
"realmCommunity": "社区领域",
"realmDetail": "领域详情",
"realmMember": "领域成员",
"realmMembers": "领域成员",
"realmMembersAdd": "添加领域成员",
"realmMembersAddHint": "到 @realm",
"realmAdjust": "调整领域",
"realmSettings": "领域设置",
"realmEditingNotify": "你正在编辑领域 @realm",
"realmLeaveConfirm": "确认离开领域",
"realmLeaveConfirmCaption": "你确认要离开领域 @realm 吗?你在该领域发表的内容不会被删除。",
"realmDeletionConfirm": "确认删除领域",
"realmDeletionConfirmCaption": "你确定要删除领域 @realm 嘛?该操作不可撤销。",
"channels": "频道",
"channelNew": "创建新频道",
"channelNewInRealmHint": "在领域 @realm 里创建新频道",
"channelOrganizing": "组织频道",
"channelOrganizeCommon": "创建普通频道",
"channelOrganizeDirect": "创建私信频道",
"channelOrganizeDirectHint": "选择好友来创建私信",
"channelInRealmNotify": "你正在领域 @realm 中创建频道",
"channelEditingNotify": "你正在编辑频道 @channel",
"channelAlias": "别称(标识符)",
"channelName": "显示名称",
"channelDescription": "频道简介",
"channelDirectDescription": "与 @username 的私聊",
"channelEncrypted": "加密频道",
"channelMember": "频道成员",
"channelMembers": "频道成员",
"channelMembersAdd": "添加频道成员",
"channelMembersAddHint": "到 @channel",
"channelType": "频道类型",
"channelTypeCommon": "普通频道",
"channelTypeDirect": "私信聊天",
"channelAdjust": "调整频道",
"channelDetail": "频道详情",
"channelSettings": "频道设置",
"channelLeaveConfirm": "确认离开频道",
"channelLeaveConfirmCaption": "你确认要离开频道 @channel 吗?你在这个频道的消息将被删除。",
"channelDeletionConfirm": "确认删除频道",
"channelDeletionConfirmCaption": "你确认要删除频道 @channel 吗?该操作不可撤销。",
"channelCategoryDirect": "私聊频道",
"channelCategoryDirectHint": "你的所有私聊频道",
"channelNotifyLevel": "通知等级",
"channelNotifyLevelAll": "全部通知",
"channelNotifyLevelMentioned": "仅提及",
"channelNotifyLevelNone": "忽略一切",
"channelNotifyLevelApplied": "你的通知设置已经应用。",
"messageUnSync": "消息未同步",
"messageUnSyncCaption": "还有 @count 条消息未同步",
"messageSending": "消息发送中…",
"messageEditDesc": "修改了消息 @id",
"messageDeleteDesc": "删除了消息 @id",
"messageCallStartDesc": "@user 发起了一次通话",
"messageCallEndDesc": "通话持续了 @duration",
"messageTypeUnsupported": "不支持的消息类型 @type",
"messageActionList": "消息的操作",
"messageDeletionConfirm": "确认删除消息",
"messageDeletionConfirmCaption": "你确定要删除消息 @id 吗?该操作不可撤销。",
"call": "通话",
"callOngoing": "一则通话正在进行中…",
"callOngoingEmpty": "一则通话待机中…",
"callOngoingParticipants": "@count 人正在进行通话…",
"callOngoingJoined": "通话进行 @duration",
"callJoin": "加入",
"callResume": "恢复",
"callMicrophone": "麦克风",
"callMicrophoneDisabled": "麦克风禁用",
"callMicrophoneSelect": "选择麦克风",
"callCamera": "摄像头",
"callCameraDisabled": "摄像头禁用",
"callCameraSelect": "选择摄像头",
"callSpeakerSelect": "选择扬声器",
"callDisconnected": "通话已断开… @reason",
"callMicrophoneOn": "开启麦克风",
"callMicrophoneOff": "关闭麦克风",
"callCameraOn": "开启摄像头",
"callCameraOff": "关闭摄像头",
"callVideoFlip": "翻转视频输入",
"callSpeakerphoneToggle": "切换扬声器模式",
"callScreenOn": "启动屏幕分享",
"callScreenOff": "关闭屏幕分享",
"callDisconnect": "断开连接",
"callDisconnectCaption": "你确定要断开与该则通话的连接吗?你也可以直接返回页面,通话将在后台继续。",
"callParticipantAction": "通话参与者的操作",
"callParticipantMicrophoneOff": "静音参与者",
"callParticipantMicrophoneOn": "解除静音参与者",
"callParticipantVideoOff": "静音参与者",
"callParticipantVideoOn": "解除静音参与者",
"callAlreadyOngoing": "当前正在进行一则通话",
"badge": "徽章",
"badges": "徽章",
"badgeGrantAt": "徽章颁发于 @date",
"badgeSolsynthStaff": "Solsynth 工作人员",
"badgeSolarOriginalCitizen": "Solar Network 原住民",
"badgeGreatCommunityContributor": "优秀社区贡献者",
"pushNotifyRegister": "注册推送通知设备",
"pushNotifyRegisterCaption": "激活推送通知便可以让你在应用程序完全关闭的时候仍然获取到我们最新的通知。在 iOS/macOS 设备上我们使用 Apple 官方的推送服务;其他设备则通过 Google Firebase 提供推送通知。要注册推送通知设备,您可能需要连接到 Google 的服务器(在中国大陆不可用)并在您的设备上安装 Google Framework。即使您关闭此对话框下次启动应用程序时仍会自动执行此注册。",
"pushNotifyRegisterDone": "推送通知已成功激活",
"pushNotifyRegisterFailed": "推送通知激活失败…… @reason",
"accountChangeStatus": "变更状态",
"accountCustomStatus": "自定义状态",
"accountClearStatus": "清除状态",
"accountStatusOnline": "在线",
"accountStatusSilent": "请勿打扰",
"accountStatusSilentDesc": "将会暂停所有通知推送",
"accountStatusInvisible": "隐身",
"accountStatusInvisibleDesc": "将会在他人界面显示离线,但不影响功能使用",
"accountStatusOffline": "离线",
"accountLastSeenAt": "最后上线于 @date 前",
"accountStatusLabel": "状态文字",
"accountStatusClearAt": "清除状态于",
"accountStatusNegative": "负面",
"accountStatusNeutral": "中性",
"accountStatusPositive": "积极",
"bsLoadingTheme": "正在装载主题",
"bsCheckForUpdate": "正在检查更新",
"bsCheckForUpdateFailed": "无法检查更新",
"bsCheckForUpdateNew": "发现新版本",
"bsCheckForUpdateDescApple": "请前往 TestFlight 并将您的应用程序更新到最新版本,以防止出现错误并获取最新功能。",
"bsCheckForUpdateDescCommon": "请前往我们的网站下载并安装最新版本的应用程序,以防止出现错误并获取最新功能。",
"bsCheckingServer": "检查服务器状态中",
"bsCheckingServerFail": "无法连接至服务器,请检查你的网络连接状态",
"bsCheckingServerDown": "当前服务器不可用,请稍后重试",
"bsAuthorizing": "正在授权中",
"bsEstablishingConn": "部署连接中",
"bsPreparingData": "正在准备用户资料",
"bsRegisteringPushNotify": "正在启用推送通知",
"bsDismissibleErrorHint": "点击任意地方忽略此错误",
"postShareContent": "@content\n\n@username 在 Solar Network\n原帖地址@link",
"postShareSubject": "@username 在 Solar Network 上发布了一篇帖子",
"themeColor": "全局主题色",
"themeColorRed": "现代红",
"themeColorBlue": "经典蓝",
"themeColorMiku": "未来蓝",
"themeColorKagamine": "镜音黄",
"themeColorLuka": "流音粉",
"themeColorApplied": "全局主题颜色已应用",
"stickerDeletionConfirm": "确认删除贴图",
"stickerDeletionConfirmCaption": "你确认要删除贴图 @name 吗?该操作不可撤销。",
"attachmentSaved": "附件已保存到系统相册",
"cropImage": "裁剪图片",
"stickerUploader": "上传贴图",
"stickerUploaderAttachmentNew": "上传附件作为贴图",
"stickerUploaderAttachment": "附件序列号",
"stickerUploaderPack": "贴图包序号",
"stickerUploaderPackHint": "没有该序号?请转到我们的创作者平台创建一个贴图包。",
"stickerUploaderAlias": "贴图别名",
"stickerUploaderAliasHint": "将会在输入时使用和贴图包前缀组成占位符。",
"stickerUploaderName": "贴图名称",
"stickerUploaderNameHint": "在贴图选择界面提供给用户的人类友好名称。",
"readMore": "阅读更多",
"attachmentUnload": "附件未加载",
"attachmentUnloadCaption": "为了节省流量,本附件未自动加载,点一下来开始加载。",
"callStatusConnected": "已连接",
"callStatusDisconnected": "已断开",
"callStatusConnecting": "连接中",
"callStatusReconnected": "重连中",
"messageOutOfSync": "消息可能与服务器脱节",
"messageOutOfSyncCaption": "由于 App 进入后台,消息列表可能与服务器存在时差,点击刷新。",
"messageHistoryWipe": "清除消息记录",
"unknown": "未知",
"collapse": "折叠",
"expand": "展开",
"typingMessage": "@user 正在输入中…",
"userLevel0": "不慕名利",
"userLevel1": "初出茅庐",
"userLevel2": "小试牛刀",
"userLevel3": "磨杵成针",
"userLevel4": "披荆斩棘",
"userLevel5": "力挽狂澜",
"userLevel6": "一骑当千",
"userLevel7": "所向披靡",
"userLevel8": "气吞山河",
"userLevel9": "登峰造极",
"userLevel10": "出神入化",
"userLevel11": "名垂千古",
"userLevel12": "独占鳌头",
"userLevel13": "万古流芳"
}

View File

@ -42,6 +42,9 @@ void main() async {
GoRouter.optionURLReflectsImperativeAPIs = true; GoRouter.optionURLReflectsImperativeAPIs = true;
Get.put(AppTranslations());
await AppTranslations.init();
usePathUrlStrategy(); usePathUrlStrategy();
runApp(const SolianApp()); runApp(const SolianApp());
} }
@ -99,10 +102,12 @@ class SolianApp extends StatelessWidget {
routeInformationParser: AppRouter.instance.routeInformationParser, routeInformationParser: AppRouter.instance.routeInformationParser,
routeInformationProvider: AppRouter.instance.routeInformationProvider, routeInformationProvider: AppRouter.instance.routeInformationProvider,
backButtonDispatcher: AppRouter.instance.backButtonDispatcher, backButtonDispatcher: AppRouter.instance.backButtonDispatcher,
translations: SolianMessages(), translations: Get.find<AppTranslations>(),
locale: Get.deviceLocale, locale: Get.deviceLocale,
fallbackLocale: const Locale('en', 'US'), fallbackLocale: const Locale('en', 'US'),
onInit: () => _initializeProviders(context), onInit: () {
_initializeProviders(context);
},
builder: (context, child) { builder: (context, child) {
return SystemShell( return SystemShell(
child: ScaffoldMessenger( child: ScaffoldMessenger(

View File

@ -1,11 +1,25 @@
import 'package:get/get.dart'; import 'dart:convert';
import 'package:solian/translations/en_us.dart';
import 'package:solian/translations/zh_cn.dart'; import 'package:flutter/services.dart' show rootBundle;
import 'package:get/get.dart';
class AppTranslations extends Translations {
static const List<String> supportedLocales = ['zh_cn', 'en_us'];
final Map<String, Map<String, String>> messages = {};
static Future<void> init() async {
final AppTranslations inst = Get.find();
inst.messages.clear();
for (final locale in supportedLocales) {
inst.messages[locale] = jsonDecode(
await rootBundle.loadString('assets/locales/$locale.json'),
)
.map((key, value) => MapEntry(key, value.toString()))
.cast<String, String>();
}
}
class SolianMessages extends Translations {
@override @override
Map<String, Map<String, String>> get keys => { Map<String, Map<String, String>> get keys => messages;
'en_US': i18nEnglish,
'zh_CN': i18nSimplifiedChinese,
};
} }

View File

@ -1,419 +0,0 @@
const i18nEnglish = {
'done': 'Done',
'hide': 'Hide',
'okay': 'Okay',
'next': 'Next',
'reset': 'Reset',
'page': 'Page',
'home': 'Home',
'guest': 'Guest',
'draft': 'Draft',
'dashboard': 'Dashboard',
'today': 'Today',
'yesterday': 'Yesterday',
'draftSave': 'Save',
'draftBox': 'Draft Box',
'more': 'More',
'share': 'Share',
'shareNoUri': 'Share text content',
'alias': 'Alias',
'feed': 'Feed',
'unlink': 'Unlink',
'feedSearch': 'Search Feed',
'feedSearchWithTag': 'Searching with tag #@key',
'feedSearchWithCategory': 'Searching in category @category',
'feedUnreadCount': '@count posts you may missed',
'messages': 'Messages',
'messagesUnreadCount': '@count messages unread',
'dailySign': 'Daily Sign',
'dailySignNone': 'You haven\'t sign today',
'dailySignTier0': 'Everything may not be good',
'dailySignTier1': 'Something may be wrong',
'dailySignTier2': 'Just so so',
'dailySignTier3': 'Something may goes well',
'dailySignTier4': 'Everything will be awesome',
'dashboardFooter': 'Don\'t be serious, just for fun.',
'visitProfilePage': 'Visit Profile Page',
'profilePage': 'Page',
'profilePosts': 'Posts',
'profileAlbum': 'Album',
'chat': 'Chat',
'apply': 'Apply',
'cancel': 'Cancel',
'confirm': 'Confirm',
'leave': 'Leave',
'loading': 'Loading...',
'about': 'About',
'edit': 'Edit',
'delete': 'Delete',
'settings': 'Settings',
'search': 'Search',
'post': 'Post',
'article': 'Article',
'reply': 'Reply',
'repost': 'Repost',
'openInAlbum': 'Open in album',
'openInBrowser': 'Open in browser',
'notification': 'Notification',
'notificationUnreadCount': '@count unread notifications',
'errorHappened': 'An error occurred',
'errorHappenedUnauthorized':
'Unauthorized request, please sign in or try resign in.',
'forgotPassword': 'Forgot password',
'email': 'Email',
'username': 'Username',
'nickname': 'Nickname',
'password': 'Password',
'title': 'Title',
'description': 'Description',
'birthday': 'Birthday',
'firstName': 'First Name',
'lastName': 'Last Name',
'account': 'Account',
'accountPersonalize': 'Personalize',
'accountPersonalizeApplied': 'Account personalize settings has been saved.',
'accountStickers': 'Stickers',
'accountFriend': 'Friend',
'accountFriendNew': 'New friend',
'accountFriendNewHint':
'Use someone\'s username to send a request of making friends with them!',
'accountFriendPending': 'Friend requests',
'accountFriendBlocked': 'Friend blocklist',
'accountFriendListHint': 'Swipe left to decline, right to approve',
'accountFriendRequestSent': 'Friend request sent, waiting for processing...',
'accountSuspended': 'Account was suspended',
'accountSuspendedAt': 'Account was suspended since @date',
'aspectRatio': 'Aspect Ratio',
'aspectRatioSquare': 'Square',
'aspectRatioPortrait': 'Portrait',
'aspectRatioLandscape': 'Landscape',
'unsignedIn': 'Unsigned in',
'signin': 'Sign in',
'signinRequired': 'Sign in',
'signinRequiredHint': 'Sign in to get full access of Solar Network',
'signinGreeting': 'Welcome back\nSolar Network',
'signinCaption':
'Sign in to create post, start a realm, message your friend and more!',
'signinRiskDetected':
'Risk detected, click Next to open a webpage and signin through it to pass security check.',
'signinResetPasswordHint': 'Please enter username to request reset password.',
'signinResetPasswordSent': 'Reset password request sent, check your inbox!',
'signup': 'Sign up',
'signupGreeting': 'Welcome onboard',
'signupCaption':
'Create an account on Solarpass and then get the access of entire Solar Network!',
'signupDone': 'Sign up successfully.',
'signupDoneCaption':
'You successfully created an account on Solar Network. Now go sign in!',
'signout': 'Sign out',
'joinedAt': 'Joined at @date',
'riskDetection': 'Risk Detected',
'matureContent': 'Mature Content',
'matureContentCaption':
'The content is rated and may not suitable for everyone to view',
'notifyAllRead': 'Mark all as read',
'notifyEmpty': 'All notifications read',
'notifyEmptyCaption': 'It seems like nothing happened recently',
'totalSocialCreditPoints': 'Social Credit Points',
'totalPostCount': 'Posts',
'totalUpvote': 'Upvote',
'totalDownvote': 'Downvote',
'clear': 'Clear',
'pinPost': 'Pin this post',
'unpinPost': 'Unpin this post',
'postRestoreFromLocal': 'Restore from local',
'postAutoSaveAt': 'Auto saved at @date',
'postCategoriesAndTags': 'Categories n\' Tags',
'postPublishDate': 'Publish Date',
'postPublishAt': 'Publish At',
'postPublishedUntil': 'Publish Until',
'postPublishZone': 'Publish Zone',
'postPublishZoneNone': 'None',
'postVisibility': 'Visibility',
'postVisibilityAll': 'Everyone',
'postVisibilityFriends': 'Friends',
'postVisibilitySelected': 'Selected visible',
'postVisibilityFiltered': 'Selected invisible',
'postVisibilityNone': 'Only me',
'postVisibleUsers': 'Visible users',
'postInvisibleUsers': 'Invisible users',
'postOverview': 'Overview',
'postThumbnail': 'Thumbnail',
'postThumbnailAttachmentNew': 'Upload thumbnail',
'postThumbnailAttachment': 'Attachment serial number',
'postPinned': 'Pinned',
'postListNews': 'News',
'postListFriends': 'Friends',
'postListShuffle': 'Random',
'postEditorModeStory': 'Post a post',
'postEditorModeArticle': 'Post an article',
'postEditor': 'Post editor',
'articleEditor': 'Create new article',
'articleDetail': 'Article details',
'draftBoxOpen': 'Open draft box',
'postNew': 'Create a new post',
'postNewInRealmHint': 'Add post in realm @realm',
'postAction': 'Post',
'postEdited': 'Edited at @date',
'postNewCreated': 'Created at @date',
'attachmentHint': '@count attachment(s)',
'postInRealm': 'In @realm',
'postDetail': 'Post',
'postReplies': 'Replies',
'postPublish': 'Post a post',
'articlePublish': 'Write an article',
'articleTitlePlaceholder': 'Title',
'articleDescriptionPlaceholder': 'Description',
'articleContentPlaceholder': 'Content',
'postIdentityNotify': 'You will post this post as',
'postContentPlaceholder': 'What\'s happened?!',
'postTagsPlaceholder': 'Tags',
'postReaction': 'Reactions of the Post',
'postActionList': 'Actions of Post',
'postReplyAction': 'Make a reply',
'postRepliedNotify': 'Replied a post from @username.',
'postRepostedNotify': 'Reposted a post from @username.',
'postInRealmNotify': 'You\'re posting in realm @realm.',
'postEditingNotify': 'You\'re editing as post from you.',
'postReplyingNotify': 'You\'re replying a post from @username.',
'postRepostingNotify': 'You\'re reposting a post from @username.',
'postDeletionConfirm': 'Confirm post deletion',
'postDeletionConfirmCaption':
'Are your sure to delete post "@content"? This action cannot be undone!',
'reactAdd': 'React',
'reactCompleted': 'Your reaction has been added',
'reactUncompleted': 'Your reaction has been removed',
'attachmentUploadBy': 'Upload by',
'attachmentAutoUpload': 'Auto Upload',
'attachmentUploadQueue': 'Upload Queue',
'attachmentUploadQueueStart': 'Start All',
'attachmentUploadInProgress':
'There are attachments being uploaded. Please wait until all attachments have been uploaded before proceeding...',
'attachmentAttached': 'Exists Files',
'attachmentUploadBlocked':
'Upload blocked, there is currently a task in progress...',
'attachmentAdd': 'Attach file',
'attachmentAddGalleryPhoto': 'Gallery photo',
'attachmentAddGalleryVideo': 'Gallery video',
'attachmentAddCameraPhoto': 'Capture photo',
'attachmentAddCameraVideo': 'Capture video',
'attachmentAddClipboard': 'Paste file',
'attachmentAddFile': 'Attach file',
'attachmentAddLink': 'Link attachments',
'attachmentAddLinkHint':
'Enter attachment serial number to link that attachment',
'attachmentAddLinkInput': 'Serial number',
'attachmentSetting': 'Adjust attachment',
'attachmentAlt': 'Alternative text',
'attachmentLoadFailed': 'Load Attachment Failed',
'attachmentLoadFailedCaption':
'Something went wrong during loading the attachment metadata...',
'attachmentUploading': 'Uploading @name...',
'attachmentUploadingWebMode':
'Uploading @name... Due to browser\'s limitation, calculate attachment information may cause some lag...',
'realm': 'Realm',
'realms': 'Realms',
'realmOrganizing': 'Organize a realm',
'realmAlias': 'Alias (Identifier)',
'realmName': 'Name',
'realmDescription': 'Description',
'realmPublic': 'Public Realm',
'realmCommunity': 'Community Realm',
'realmDetail': 'Realm detail',
'realmMember': 'Realm member',
'realmMembers': 'Realm members',
'realmMembersAdd': 'Add realm members',
'realmMembersAddHint': 'Into @realm',
'realmAdjust': 'Realm adjustment',
'realmSettings': 'Realm settings',
'realmEditingNotify': 'You\'re editing realm @realm',
'realmLeaveConfirm': 'Confirm realm quit',
'realmLeaveConfirmCaption':
'Are you sure you want leave realm @realm? Your content published in this realm will not be deleted.',
'realmDeletionConfirm': 'Confirm realm deletion',
'realmDeletionConfirmCaption':
'Are you sure to delete realm @realm? This action cannot be undone!',
'channels': 'Channels',
'channelNew': 'Create a new channel',
'channelNewInRealmHint': 'Create channel in realm @realm',
'channelOrganizing': 'Organize a channel',
'channelOrganizeCommon': 'Create regular channel',
'channelOrganizeDirect': 'Create DM',
'channelOrganizeDirectHint': 'Choose friend to create DM',
'channelInRealmNotify': 'You\'re creating channel in realm @realm',
'channelEditingNotify': 'You\'re editing channel @channel',
'channelAlias': 'Alias (Identifier)',
'channelName': 'Name',
'channelDescription': 'Description',
'channelDirectDescription': 'Direct message with @username',
'channelEncrypted': 'Encrypted Channel',
'channelMember': 'Channel member',
'channelMembers': 'Channel members',
'channelMembersAdd': 'Add channel members',
'channelMembersAddHint': 'Into @channel',
'channelType': 'Channel type',
'channelTypeCommon': 'Regular',
'channelTypeDirect': 'DM',
'channelAdjust': 'Channel adjustment',
'channelDetail': 'Channel detail',
'channelSettings': 'Channel settings',
'channelLeaveConfirm': 'Confirm channel quit',
'channelLeaveConfirmCaption':
'Are you sure to leave channel @channel? All your messages will be deleted!',
'channelDeletionConfirm': 'Confirm channel deletion',
'channelDeletionConfirmCaption':
'Are you sure to delete channel @channel? This action cannot be undone!',
'channelCategoryDirect': 'DM',
'channelCategoryDirectHint': 'Your direct messages',
'channelNotifyLevel': 'Notify level',
'channelNotifyLevelAll': 'All',
'channelNotifyLevelMentioned': 'Only mentioned',
'channelNotifyLevelNone': 'Ignore all',
'channelNotifyLevelApplied': 'Your notification settings has been applied.',
'messageUnSync': 'Messages Un-synced',
'messageUnSyncCaption': '@count message(s) still in un-synced.',
'messageSending': 'Sending...',
'messageEditDesc': 'Edited message @id',
'messageDeleteDesc': 'Deleted message @id',
'messageCallStartDesc': '@user starts a call',
'messageCallEndDesc': 'Call last for @duration',
'messageTypeUnsupported': 'Unsupported Message: @type',
'messageInputPlaceholder': 'Message @channel',
'messageActionList': 'Actions of Message',
'messageDeletionConfirm': 'Confirm message deletion',
'messageDeletionConfirmCaption':
'Are your sure to delete message @id? This action cannot be undone!',
'call': 'Call',
'callOngoing': 'A call is ongoing...',
'callOngoingEmpty': 'A call is on hold...',
'callOngoingParticipants': '@count people are calling...',
'callOngoingJoined': 'Call last @duration',
'callJoin': 'Join',
'callResume': 'Resume',
'callMicrophone': 'Microphone',
'callMicrophoneDisabled': 'Microphone Disabled',
'callMicrophoneSelect': 'Select Microphone',
'callCamera': 'Camera',
'callCameraDisabled': 'Camera Disabled',
'callCameraSelect': 'Select Camera',
'callSpeakerSelect': 'Select Speaker',
'callDisconnected': 'Call Disconnected... @reason',
'callMicrophoneOn': 'Turn Microphone On',
'callMicrophoneOff': 'Turn Microphone Off',
'callCameraOn': 'Turn Camera On',
'callCameraOff': 'Turn Camera Off',
'callVideoFlip': 'Flip Video Input',
'callSpeakerphoneToggle': 'Toggle Speakerphone Mode',
'callScreenOn': 'Start Screen Sharing',
'callScreenOff': 'Stop Screen Sharing',
'callDisconnect': 'Disconnect',
'callDisconnectCaption':
'Are you sure you want to disconnect from this call? You can also just return to the page, and the call will continue in the background.',
'callParticipantAction': 'Participant Actions',
'callParticipantMicrophoneOff': 'Mute Participant',
'callParticipantMicrophoneOn': 'Unmute Participant',
'callParticipantVideoOff': 'Turn Off Participant Video',
'callParticipantVideoOn': 'Turn On Participant Video',
'callAlreadyOngoing': 'A call is already ongoing',
'badge': 'Badge',
'badges': 'Badges',
'badgeGrantAt': 'Badge awarded on @date',
'badgeSolsynthStaff': 'Solsynth Staff',
'badgeSolarOriginalCitizen': 'Solar Network Natives',
'badgeGreatCommunityContributor': 'Great Community Contributor',
'pushNotifyRegister': 'Register Push Notification Device',
'pushNotifyRegisterCaption':
'Activating push notifications allows you to get our latest notifications even when the app is completely closed. We use Apple\'s official push service on iOS/macOS devices; other devices provide push notifications through Google Firebase. To register a device for push notifications, you may need to connect to Google\'s servers and install the Google Framework on your device. Although you dismiss this dialog, this registration will be auto performed when you next time launch the app.',
'pushNotifyRegisterDone': 'Push notifications has been activated.',
'pushNotifyRegisterFailed': 'Unable to active push notification... @reason',
'accountChangeStatus': 'Change Status',
'accountCustomStatus': 'Set Custom Status',
'accountClearStatus': 'Clear Status',
'accountStatusOnline': 'Online',
'accountStatusSilent': 'Do not Disturb',
'accountStatusSilentDesc': 'The notification will stop popping up',
'accountStatusInvisible': 'Invisible',
'accountStatusInvisibleDesc':
'Will show as offline, but all features still remain normal',
'accountStatusOffline': 'Offline',
'accountLastSeenAt': '@date ago online',
'accountStatusLabel': 'Status Text',
'accountStatusClearAt': 'Clear At',
'accountStatusNegative': 'Negative',
'accountStatusNeutral': 'Neutral',
'accountStatusPositive': 'Positive',
'bsLoadingTheme': 'Loading Theme',
'bsCheckForUpdate': 'Checking For Updates',
'bsCheckForUpdateFailed': 'Unable to Check Updates',
'bsCheckForUpdateNew': 'Found New Version',
'bsCheckForUpdateDescApple':
'Please head to TestFlight and update your app to latest version to prevent error happens and get latest functions.',
'bsCheckForUpdateDescCommon':
'Please head to our website download and install latest version of application to prevent error happens and get latest functions.',
'bsCheckingServer': 'Checking Server Status',
'bsCheckingServerFail':
'Unable connect to server, check your network connection',
'bsCheckingServerDown': 'Server currently unavailable, please retry later',
'bsAuthorizing': 'Authorizing',
'bsEstablishingConn': 'Establishing Connection',
'bsPreparingData': 'Preparing User Data',
'bsRegisteringPushNotify': 'Enabling Push Notifications',
'bsDismissibleErrorHint': 'Click anywhere to ignore this error',
'postShareContent':
'@content\n\n@username on the Solar Network\nCheck it out: @link',
'postShareSubject': '@username posted a post on the Solar Network',
'themeColor': 'Global Theme Color',
'themeColorRed': 'Modern Red',
'themeColorBlue': 'Classic Blue',
'themeColorMiku': 'Miku Blue',
'themeColorKagamine': 'Kagamine Yellow',
'themeColorLuka': 'Luka Pink',
'stickerDeletionConfirm': 'Confirm sticker delete',
'stickerDeletionConfirmCaption':
'Are you sure to delete sticker @name? This action cannot be undo.',
'themeColorApplied': 'Global theme color has been applied.',
'attachmentSaved': 'Attachment saved to your system album.',
'cropImage': 'Crop Image',
'stickerUploader': 'Upload sticker',
'stickerUploaderAttachmentNew': 'Upload sticker',
'stickerUploaderAttachment': 'Attachment serial number',
'stickerUploaderPack': 'Sticker pack serial number',
'stickerUploaderPackHint':
'Don\'t have pack id? Head to creator platform and create one!',
'stickerUploaderAlias': 'Alias',
'stickerUploaderAliasHint':
'Will be used as a placeholder with the sticker pack prefix when entered.',
'stickerUploaderName': 'Name',
'stickerUploaderNameHint':
'A human-friendly name given to the user in the sticker selection interface.',
'readMore': 'Read more',
'attachmentUnload': 'Not Loaded',
'attachmentUnloadCaption':
'In order to save traffic, this attachment is not loaded automatically. Click it to start loading.',
'callStatusConnected': 'Connected',
'callStatusDisconnected': 'Disconnected',
'callStatusConnecting': 'Connecting',
'callStatusReconnected': 'Reconnecting',
'messageOutOfSync': 'May Out of Sync with Server',
'messageOutOfSyncCaption':
'Since the App has entered the background, there may be a time difference between the message list and the server. Click to Refresh.',
'messageHistoryWipe': 'Wipe local message history',
'unknown': 'Unknown',
'collapse': 'Collapse',
'expand': 'Expand',
'typingMessage': '@user are typing...',
'userLevel0': 'Newbie',
'userLevel1': 'Novice',
'userLevel2': 'Apprentice',
'userLevel3': 'Explorer',
'userLevel4': 'Adventurer',
'userLevel5': 'Warrior',
'userLevel6': 'Knight',
'userLevel7': 'Champion',
'userLevel8': 'Hero',
'userLevel9': 'Master',
'userLevel10': 'Grandmaster',
'userLevel11': 'Legend',
'userLevel12': 'Mythic',
'userLevel13': 'Immortal',
};

View File

@ -1,389 +0,0 @@
const i18nSimplifiedChinese = {
'done': '完成',
'hide': '隐藏',
'okay': '确认',
'home': '首页',
'next': '下一步',
'reset': '重置',
'cancel': '取消',
'confirm': '确认',
'leave': '离开',
'loading': '载入中…',
'guest': '游客',
'about': '关于',
'edit': '编辑',
'delete': '删除',
'settings': '设置',
'page': '页面',
'draft': '草稿',
'draftSave': '存为草稿',
'draftBox': '草稿箱',
'more': '更多',
'share': '分享',
'shareNoUri': '分享文字内容',
'alias': '别名',
'feed': '资讯',
'unlink': '移除链接',
'dashboard': '仪表盘',
'today': '今日',
'yesterday': '昨日',
'feedSearch': '搜索资讯',
'feedSearchWithTag': '检索带有 #@key 标签的资讯',
'feedSearchWithCategory': '检索位于分类 @category 的资讯',
'feedUnreadCount': '@count 条你可能错过的帖子',
'messages': '消息',
'messagesUnreadCount': '@count 条未读的消息',
'dailySign': '签到',
'dailySignNone': '今日未拜访佛祖',
'dailySignTier0': '诸事不宜',
'dailySignTier1': '有些不宜',
'dailySignTier2': '平平淡淡',
'dailySignTier3': '有些事宜',
'dailySignTier4': '诸事皆宜',
'dashboardFooter': '占卜多少沾点玩,人生还得靠实力',
'visitProfilePage': '造访个人主页',
'profilePage': '主页',
'profilePosts': '帖子',
'profileAlbum': '相簿',
'chat': '聊天',
'apply': '应用',
'search': '搜索',
'post': '帖子',
'article': '文章',
'reply': '回复',
'repost': '转帖',
'openInAlbum': '在相簿中打开',
'openInBrowser': '在浏览器中打开',
'notification': '通知',
'notificationUnreadCount': '@count 条未读通知',
'errorHappened': '发生错误了',
'errorHappenedUnauthorized': '未经授权的请求,请登录或尝试重新登录。',
'errorHappenedRequestBad': '请求错误,服务器拒绝处理该请求,请检查您的请求数据。',
'errorHappenedRequestForbidden': '请求错误,权限不足。',
'errorHappenedRequestNotFound': '请求错误,请求的数据不存在。',
'errorHappenedRequestConnection': '网络请求失败,请检查连接状态与服务状态后再试。',
'errorHappenedRequestUnknown': '请求错误,类型未知,请将本提示完整截图提交反馈。',
'forgotPassword': '忘记密码',
'email': '邮件地址',
'username': '用户名',
'nickname': '显示名',
'password': '密码',
'title': '标题',
'description': '简介',
'birthday': '生日',
'firstName': '名称',
'lastName': '姓氏',
'account': '账号',
'accountPersonalize': '个性化',
'accountPersonalizeApplied': '账户的个性化设置已保存。',
'accountStickers': '贴图',
'accountFriend': '好友',
'accountFriendNew': '添加好友',
'accountFriendNewHint': '使用他人的用户名来发送一个好友请求吧!',
'accountFriendPending': '好友请求',
'accountFriendBlocked': '好友黑名单',
'accountFriendListHint': '左滑来拒绝,右滑来接受',
'accountFriendRequestSent': '好友请求已发送,等待处理对方中……',
'accountSuspended': '帐号被停用',
'accountSuspendedAt': '该帐号自 @date 起被停用',
'aspectRatio': '纵横比',
'aspectRatioSquare': '方型',
'aspectRatioPortrait': '竖型',
'aspectRatioLandscape': '横型',
'unsignedIn': '未登录',
'signin': '登录',
'signinRequired': '需要登录',
'signinRequiredHint': '登陆以获得 Solar Network 的全部功能使用权。',
'signinGreeting': '欢迎回来\nSolar Network',
'signinCaption': '登录以发表帖子、文章、创建领域、和你的朋友聊天,以及获取更多功能!',
'signinRiskDetected': '检测到风险,点击下一步按钮来打开一个网页,并通过在其上面登录来通过安全检查。',
'signinResetPasswordHint': '请先填写用户名以发送重置密码请求。',
'signinResetPasswordSent': '重置密码请求已发送,在绑定邮件收件箱可收取一份包含重置密码链接的邮件。',
'signup': '注册',
'signupGreeting': '欢迎加入\nSolar Network',
'signupCaption': '在 Solarpass 注册一个账号以获得整个 Solar Network 的存取权!',
'signupDone': '注册成功',
'signupDoneCaption': '你成功地注册了一个帐户,现在去尝试登陆吧!',
'signout': '登出',
'joinedAt': '加入于 @date',
'riskDetection': '检测到风险',
'matureContent': '评级内容',
'matureContentCaption': '该内容已被评级为家长指导级或以上,这可能说明内容包含一系列不友好的成分',
'notifyAllRead': '已读所有通知',
'notifyEmpty': '通知箱为空',
'notifyEmptyCaption': '看起来最近没发生什么呢',
'totalSocialCreditPoints': '社会信用点',
'totalPostCount': '总帖数',
'totalUpvote': '获顶数',
'totalDownvote': '获踩数',
'clear': '清除',
'pinPost': '置顶本帖',
'unpinPost': '取消置顶本帖',
'postRestoreFromLocal': '内容从本地暂存回复',
'postAutoSaveAt': '已自动保存于 @date',
'postCategoriesAndTags': '分类与标签',
'postPublishDate': '发布时间',
'postPublishAt': '发布帖子于',
'postPublishedUntil': '取消发布于',
'postPublishZone': '帖子发布区',
'postPublishZoneNone': '无所属领域',
'postVisibility': '帖子可见性',
'postVisibilityAll': '所有人可见',
'postVisibilityFriends': '仅好友可见',
'postVisibilitySelected': '选中者可见',
'postVisibilityFiltered': '选中者不可见',
'postVisibilityNone': '仅自己可见',
'postVisibleUsers': '可见帖子者',
'postInvisibleUsers': '隐藏帖子者',
'postOverview': '帖子概览',
'postThumbnail': '帖子缩略图',
'postThumbnailAttachmentNew': '上传附件作为缩略图',
'postThumbnailAttachment': '附件序列号',
'postPinned': '已置顶',
'postEditorModeStory': '发个帖子',
'postEditorModeArticle': '撰写文章',
'postEditor': '帖子编辑器',
'articleEditor': '撰写文章',
'articleDetail': '文章详情',
'draftBoxOpen': '打开草稿箱',
'postListNews': '新鲜事',
'postListFriends': '好友圈',
'postListShuffle': '打乱看',
'postNew': '创建新帖子',
'postNewInRealmHint': '在领域 @realm 里发表新帖子',
'postAction': '发表',
'postEdited': '编辑于 @date',
'postNewCreated': '创建于 @date',
'postInRealm': '发表于 @realm',
'attachmentHint': '@count 个附件',
'postDetail': '帖子详情',
'postReplies': '帖子回复',
'postPublish': '编辑帖子',
'postIdentityNotify': '你将会以本身份发表帖子',
'postContentPlaceholder': '发生什么事了?!',
'postTagsPlaceholder': '标签',
'postReaction': '帖子的反应',
'postActionList': '帖子的操作',
'postReplyAction': '发表一则回复',
'postRepliedNotify': '回了一个 @username 的帖子',
'postRepostedNotify': '转了一个 @username 的帖子',
'postInRealmNotify': '你正在领域 @realm 中发表帖子',
'postEditingNotify': '你正在编辑一个你发布的帖子',
'postReplyingNotify': '你正在回一个来自 @username 的帖子',
'postRepostingNotify': '你正在转一个来自 @username 的帖子',
'postDeletionConfirm': '确认删除帖子',
'postDeletionConfirmCaption': '你确定要删除帖子 “@content” 吗?该操作不可撤销。',
'reactAdd': '作出反应',
'reactCompleted': '你的反应已被添加',
'reactUncompleted': '你的反应已被移除',
'attachmentUploadBy': '由上传',
'attachmentAutoUpload': '自动上传',
'attachmentUploadQueue': '上传队列',
'attachmentUploadQueueStart': '整队上传',
'attachmentUploadInProgress': '有附件正在上传,请等待所有附件上传完毕后再进行操作……',
'attachmentAttached': '已附附件',
'attachmentUploadBlocked': '上传受阻,当前已有任务进行中……',
'attachmentAdd': '附加附件',
'attachmentAddGalleryPhoto': '相册照片',
'attachmentAddGalleryVideo': '相册视频',
'attachmentAddCameraPhoto': '拍摄图片',
'attachmentAddCameraVideo': '拍摄视频',
'attachmentAddClipboard': '粘贴文件',
'attachmentAddFile': '附加文件',
'attachmentAddLink': '链接附件',
'attachmentAddLinkHint': '输入附件的神秘代号来链接对应附件',
'attachmentAddLinkInput': '神秘代号',
'attachmentSetting': '调整附件',
'attachmentAlt': '替代文字',
'attachmentLoadFailed': '加载失败',
'attachmentLoadFailedCaption': '有错误发生于加载附件元数据的过程中了…',
'attachmentUploading': '上传附件 @name 中…',
'attachmentUploadingWebMode': '上传附件 @name 中… 由于浏览器单线程限制,计算所需资源可能会导致界面卡顿…',
'realm': '领域',
'realms': '领域',
'realmOrganizing': '组织领域',
'realmAlias': '别称(标识符)',
'realmName': '显示名称',
'realmDescription': '领域简介',
'realmPublic': '公开领域',
'realmCommunity': '社区领域',
'realmDetail': '领域详情',
'realmMember': '领域成员',
'realmMembers': '领域成员',
'realmMembersAdd': '添加领域成员',
'realmMembersAddHint': '到 @realm',
'realmAdjust': '调整领域',
'realmSettings': '领域设置',
'realmEditingNotify': '你正在编辑领域 @realm',
'realmLeaveConfirm': '确认离开领域',
'realmLeaveConfirmCaption': '你确认要离开领域 @realm 吗?你在该领域发表的内容不会被删除。',
'realmDeletionConfirm': '确认删除领域',
'realmDeletionConfirmCaption': '你确定要删除领域 @realm 嘛?该操作不可撤销。',
'channels': '频道',
'channelNew': '创建新频道',
'channelNewInRealmHint': '在领域 @realm 里创建新频道',
'channelOrganizing': '组织频道',
'channelOrganizeCommon': '创建普通频道',
'channelOrganizeDirect': '创建私信频道',
'channelOrganizeDirectHint': '选择好友来创建私信',
'channelInRealmNotify': '你正在领域 @realm 中创建频道',
'channelEditingNotify': '你正在编辑频道 @channel',
'channelAlias': '别称(标识符)',
'channelName': '显示名称',
'channelDescription': '频道简介',
'channelDirectDescription': '与 @username 的私聊',
'channelEncrypted': '加密频道',
'channelMember': '频道成员',
'channelMembers': '频道成员',
'channelMembersAdd': '添加频道成员',
'channelMembersAddHint': '到 @channel',
'channelType': '频道类型',
'channelTypeCommon': '普通频道',
'channelTypeDirect': '私信聊天',
'channelAdjust': '调整频道',
'channelDetail': '频道详情',
'channelSettings': '频道设置',
'channelLeaveConfirm': '确认离开频道',
'channelLeaveConfirmCaption': '你确认要离开频道 @channel 吗?你在这个频道的消息将被删除。',
'channelDeletionConfirm': '确认删除频道',
'channelDeletionConfirmCaption': '你确认要删除频道 @channel 吗?该操作不可撤销。',
'channelCategoryDirect': '私聊频道',
'channelCategoryDirectHint': '你的所有私聊频道',
'channelNotifyLevel': '通知等级',
'channelNotifyLevelAll': '全部通知',
'channelNotifyLevelMentioned': '仅提及',
'channelNotifyLevelNone': '忽略一切',
'channelNotifyLevelApplied': '你的通知设置已经应用。',
'messageUnSync': '消息未同步',
'messageUnSyncCaption': '还有 @count 条消息未同步',
'messageSending': '消息发送中…',
'messageEditDesc': '修改了消息 @id',
'messageDeleteDesc': '删除了消息 @id',
'messageCallStartDesc': '@user 发起了一次通话',
'messageCallEndDesc': '通话持续了 @duration',
'messageTypeUnsupported': '不支持的消息类型 @type',
'messageActionList': '消息的操作',
'messageDeletionConfirm': '确认删除消息',
'messageDeletionConfirmCaption': '你确定要删除消息 @id 吗?该操作不可撤销。',
'call': '通话',
'callOngoing': '一则通话正在进行中…',
'callOngoingEmpty': '一则通话待机中…',
'callOngoingParticipants': '@count 人正在进行通话…',
'callOngoingJoined': '通话进行 @duration',
'callJoin': '加入',
'callResume': '恢复',
'callMicrophone': '麦克风',
'callMicrophoneDisabled': '麦克风禁用',
'callMicrophoneSelect': '选择麦克风',
'callCamera': '摄像头',
'callCameraDisabled': '摄像头禁用',
'callCameraSelect': '选择摄像头',
'callSpeakerSelect': '选择扬声器',
'callDisconnected': '通话已断开… @reason',
'callMicrophoneOn': '开启麦克风',
'callMicrophoneOff': '关闭麦克风',
'callCameraOn': '开启摄像头',
'callCameraOff': '关闭摄像头',
'callVideoFlip': '翻转视频输入',
'callSpeakerphoneToggle': '切换扬声器模式',
'callScreenOn': '启动屏幕分享',
'callScreenOff': '关闭屏幕分享',
'callDisconnect': '断开连接',
'callDisconnectCaption': '你确定要断开与该则通话的连接吗?你也可以直接返回页面,通话将在后台继续。',
'callParticipantAction': '通话参与者的操作',
'callParticipantMicrophoneOff': '静音参与者',
'callParticipantMicrophoneOn': '解除静音参与者',
'callParticipantVideoOff': '静音参与者',
'callParticipantVideoOn': '解除静音参与者',
'callAlreadyOngoing': '当前正在进行一则通话',
'badge': '徽章',
'badges': '徽章',
'badgeGrantAt': '徽章颁发于 @date',
'badgeSolsynthStaff': 'Solsynth 工作人员',
'badgeSolarOriginalCitizen': 'Solar Network 原住民',
'badgeGreatCommunityContributor': '优秀社区贡献者',
'pushNotifyRegister': '注册推送通知设备',
'pushNotifyRegisterCaption':
'激活推送通知便可以让你在应用程序完全关闭的时候仍然获取到我们最新的通知。在 iOS/macOS 设备上我们使用 Apple 官方的推送服务;其他设备则通过 Google Firebase 提供推送通知。要注册推送通知设备,您可能需要连接到 Google 的服务器(在中国大陆不可用)并在您的设备上安装 Google Framework。即使您关闭此对话框下次启动应用程序时仍会自动执行此注册。',
'pushNotifyRegisterDone': '推送通知已成功激活',
'pushNotifyRegisterFailed': '推送通知激活失败…… @reason',
'accountChangeStatus': '变更状态',
'accountCustomStatus': '自定义状态',
'accountClearStatus': '清除状态',
'accountStatusOnline': '在线',
'accountStatusSilent': '请勿打扰',
'accountStatusSilentDesc': '将会暂停所有通知推送',
'accountStatusInvisible': '隐身',
'accountStatusInvisibleDesc': '将会在他人界面显示离线,但不影响功能使用',
'accountStatusOffline': '离线',
'accountLastSeenAt': '最后上线于 @date 前',
'accountStatusLabel': '状态文字',
'accountStatusClearAt': '清除状态于',
'accountStatusNegative': '负面',
'accountStatusNeutral': '中性',
'accountStatusPositive': '积极',
'bsLoadingTheme': '正在装载主题',
'bsCheckForUpdate': '正在检查更新',
'bsCheckForUpdateFailed': '无法检查更新',
'bsCheckForUpdateNew': '发现新版本',
'bsCheckForUpdateDescApple': '请前往 TestFlight 并将您的应用程序更新到最新版本,以防止出现错误并获取最新功能。',
'bsCheckForUpdateDescCommon': '请前往我们的网站下载并安装最新版本的应用程序,以防止出现错误并获取最新功能。',
'bsCheckingServer': '检查服务器状态中',
'bsCheckingServerFail': '无法连接至服务器,请检查你的网络连接状态',
'bsCheckingServerDown': '当前服务器不可用,请稍后重试',
'bsAuthorizing': '正在授权中',
'bsEstablishingConn': '部署连接中',
'bsPreparingData': '正在准备用户资料',
'bsRegisteringPushNotify': '正在启用推送通知',
'bsDismissibleErrorHint': '点击任意地方忽略此错误',
'postShareContent': '@content\n\n@username 在 Solar Network\n原帖地址:@link',
'postShareSubject': '@username 在 Solar Network 上发布了一篇帖子',
'themeColor': '全局主题色',
'themeColorRed': '现代红',
'themeColorBlue': '经典蓝',
'themeColorMiku': '未来蓝',
'themeColorKagamine': '镜音黄',
'themeColorLuka': '流音粉',
'themeColorApplied': '全局主题颜色已应用',
'stickerDeletionConfirm': '确认删除贴图',
'stickerDeletionConfirmCaption': '你确认要删除贴图 @name 吗?该操作不可撤销。',
'attachmentSaved': '附件已保存到系统相册',
'cropImage': '裁剪图片',
'stickerUploader': '上传贴图',
'stickerUploaderAttachmentNew': '上传附件作为贴图',
'stickerUploaderAttachment': '附件序列号',
'stickerUploaderPack': '贴图包序号',
'stickerUploaderPackHint': '没有该序号?请转到我们的创作者平台创建一个贴图包。',
'stickerUploaderAlias': '贴图别名',
'stickerUploaderAliasHint': '将会在输入时使用和贴图包前缀组成占位符。',
'stickerUploaderName': '贴图名称',
'stickerUploaderNameHint': '在贴图选择界面提供给用户的人类友好名称。',
'readMore': '阅读更多',
'attachmentUnload': '附件未加载',
'attachmentUnloadCaption': '为了节省流量,本附件未自动加载,点一下来开始加载。',
'callStatusConnected': '已连接',
'callStatusDisconnected': '已断开',
'callStatusConnecting': '连接中',
'callStatusReconnected': '重连中',
'messageOutOfSync': '消息可能与服务器脱节',
'messageOutOfSyncCaption': '由于 App 进入后台,消息列表可能与服务器存在时差,点击刷新。',
'messageHistoryWipe': '清除消息记录',
'unknown': '未知',
'collapse': '折叠',
'expand': '展开',
'typingMessage': '@user 正在输入中…',
'userLevel0': '不慕名利',
'userLevel1': '初出茅庐',
'userLevel2': '小试牛刀',
'userLevel3': '磨杵成针',
'userLevel4': '披荆斩棘',
'userLevel5': '力挽狂澜',
'userLevel6': '一骑当千',
'userLevel7': '所向披靡',
'userLevel8': '气吞山河',
'userLevel9': '登峰造极',
'userLevel10': '出神入化',
'userLevel11': '名垂千古',
'userLevel12': '独占鳌头',
'userLevel13': '万古流芳',
};

View File

@ -260,7 +260,7 @@ class _AttachmentItemVideoState extends State<_AttachmentItemVideo> {
end: Alignment.topCenter, end: Alignment.topCenter,
colors: [ colors: [
Theme.of(context).colorScheme.surface, Theme.of(context).colorScheme.surface,
Colors.transparent, Theme.of(context).colorScheme.surface.withOpacity(0),
], ],
), ),
), ),
@ -281,7 +281,10 @@ class _AttachmentItemVideoState extends State<_AttachmentItemVideo> {
children: [ children: [
Text( Text(
widget.item.alt, widget.item.alt,
style: const TextStyle(shadows: labelShadows), style: const TextStyle(
shadows: labelShadows,
color: Colors.white,
),
), ),
Text( Text(
Duration( Duration(
@ -293,13 +296,17 @@ class _AttachmentItemVideoState extends State<_AttachmentItemVideo> {
style: GoogleFonts.robotoMono( style: GoogleFonts.robotoMono(
fontSize: 12, fontSize: 12,
shadows: labelShadows, shadows: labelShadows,
color: Colors.white,
), ),
), ),
], ],
), ),
), ),
const Icon(Icons.play_arrow, shadows: labelShadows) const Icon(
.paddingOnly(bottom: 4, right: 8), Icons.play_arrow,
shadows: labelShadows,
color: Colors.white,
).paddingOnly(bottom: 4, right: 8),
], ],
), ),
), ),
@ -437,7 +444,7 @@ class _AttachmentItemAudioState extends State<_AttachmentItemAudio> {
end: Alignment.topCenter, end: Alignment.topCenter,
colors: [ colors: [
Theme.of(context).colorScheme.surface, Theme.of(context).colorScheme.surface,
Colors.transparent, Theme.of(context).colorScheme.surface.withOpacity(0),
], ],
), ),
), ),
@ -458,20 +465,27 @@ class _AttachmentItemAudioState extends State<_AttachmentItemAudio> {
children: [ children: [
Text( Text(
widget.item.alt, widget.item.alt,
style: const TextStyle(shadows: labelShadows), style: const TextStyle(
shadows: labelShadows,
color: Colors.white,
),
), ),
Text( Text(
_formatBytes(widget.item.size), _formatBytes(widget.item.size),
style: GoogleFonts.robotoMono( style: GoogleFonts.robotoMono(
fontSize: 12, fontSize: 12,
shadows: labelShadows, shadows: labelShadows,
color: Colors.white,
), ),
), ),
], ],
), ),
), ),
const Icon(Icons.play_arrow, shadows: labelShadows) const Icon(
.paddingOnly(bottom: 4, right: 8), Icons.play_arrow,
shadows: labelShadows,
color: Colors.white,
).paddingOnly(bottom: 4, right: 8),
], ],
), ),
), ),

View File

@ -368,7 +368,10 @@ class _PostItemState extends State<PostItem> {
end: Alignment.topCenter, end: Alignment.topCenter,
colors: [ colors: [
Theme.of(context).colorScheme.surfaceContainerLow, Theme.of(context).colorScheme.surfaceContainerLow,
Colors.transparent, Theme.of(context)
.colorScheme
.surface
.withOpacity(0),
], ],
), ),
), ),
@ -461,7 +464,10 @@ class _PostItemState extends State<PostItem> {
end: Alignment.topCenter, end: Alignment.topCenter,
colors: [ colors: [
Theme.of(context).colorScheme.surface, Theme.of(context).colorScheme.surface,
Colors.transparent, Theme.of(context)
.colorScheme
.surface
.withOpacity(0),
], ],
), ),
), ),

View File

@ -294,14 +294,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.0" version: "1.0.0"
cupertino_icons:
dependency: "direct main"
description:
name: cupertino_icons
sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6
url: "https://pub.dev"
source: hosted
version: "1.0.8"
dart_style: dart_style:
dependency: transitive dependency: transitive
description: description:

View File

@ -12,7 +12,6 @@ dependencies:
sdk: flutter sdk: flutter
flutter_web_plugins: flutter_web_plugins:
sdk: flutter sdk: flutter
cupertino_icons: ^1.0.6
go_router: ^14.1.1 go_router: ^14.1.1
get: ^4.6.6 get: ^4.6.6
timeago: ^3.6.1 timeago: ^3.6.1
@ -99,6 +98,7 @@ flutter:
assets: assets:
- assets/logo.png - assets/logo.png
- assets/locales/
fonts: fonts:
- family: NotoSansEmoji - family: NotoSansEmoji