{ "welcome": "Welcome!", "search": "Search", "edit": "Edit", "image": "Image", "done": "Done", "preview": "Preview", "delete": "Delete", "changeProperty": "Change Property", "loadFailReload": "Load failed, <1>click here to reload.", "error": { "network": "Network error.", "unknown": "Unknown error." }, "connectionState": { "Connected": "Connected", "Connecting": "Connecting", "Disconnected": "Disconnected", "Disconnecting": "Disconnecting", "Reconnecting": "Reconnecting" }, "visibility": { "private": "Private For Me", "register": "Only Registered Users", "public": "Public To Everyone" }, "register": { "register": "Register", "username": "Username", "password": "Password", "confirmPassword": "Confirm Password", "registerCode": "Register Code", "error": { "usernameEmpty": "Username can't be empty.", "passwordEmpty": "Password can't be emtpy.", "confirmPasswordWrong": "Password does not match.", "registerCodeEmpty": "Register code can't be empty.", "registerCodeInvalid": "Register code is invalid." } }, "serviceWorker": { "availableOffline": "Timeline is now cached in your computer and you can use it offline. πŸŽ‰πŸŽ‰πŸŽ‰", "upgradePrompt": "App is getting a new version!", "upgradeNow": "Update Now", "upgradeSuccess": "Congratulations! App update succeeded! Still you can use it offline. πŸŽ‰πŸŽ‰πŸŽ‰", "externalActivatedPrompt": "A new version of app is activated. Please refresh the page. Or it may be broken.", "reloadNow": "Refresh Now" }, "nav": { "settings": "Settings", "login": "Login", "about": "About", "administration": "Administration" }, "chooseImage": "Choose a image", "loadImageError": "Failed to load image.", "home": { "loadingHighlightTimelines": "Loading highlight timelines...", "loadedHighlightTimelines": "Here are some highlight timelinesπŸ’‘", "errorHighlightTimelines": "Failed to load highlight timelines, please try reloading!", "bookmarkTimeline": "Bookmark Timelines", "highlightTimeline": "Highlight Timelines", "relatedTimeline": "Timelines You Participate", "message": { "moveHighlightFail": "Failed to move highlight timeline.", "deleteHighlightFail": "Failed to delete highlight timeline.", "moveBookmarkFail": "Failed to move bookmark timeline.", "deleteBookmarkFail": "Failed to delete bookmark timeline." }, "createButton": "Create Timeline", "createDialog": { "title": "Create Timeline!", "name": "Name", "nameFormat": "Name must consist of only letter including non-English letter, digit, hyphen(-) and underline(_) and be no longer than 26.", "badFormat": "Bad format.", "noEmpty": "Empty is not allowed.", "tooLong": "Too long." } }, "operationDialog": { "retry": "Retry", "nextStep": "Next", "previousStep": "Previous", "confirm": "Confirm", "cancel": "Cancel", "ok": "OK!", "processing": "Processing...", "success": "Success!", "error": "An error occured." }, "timeline": { "messageCantSee": "Sorry, you are not allowed to see this timeline.πŸ˜…", "userNotExist": "The user does not exist!", "timelineNotExist": "The timeline does not exist!", "manage": "Manage", "memberButton": "Member", "send": "Send", "deletePostFailed": "Failed to delete post.", "sendPostFailed": "Failed to send post.", "dropDraft": "Drop Draft", "confirmLeave": "Are you sure to leave? All content you typed would be lost.", "postNoLogin": "Please login to send post.", "visibility": { "public": "public to everyone", "register": "only registed people can see", "private": "only members can see" }, "visibilityTooltip": { "public": "Everyone including those without accounts can see content of the timeline.", "register": "Only those who have an account and logined can see content of the timeline.", "private": "Only members of this timeline can see content of the timeline." }, "dialogChangeProperty": { "title": "Change Timeline Properties", "titleField": "Title", "visibility": "Visibility", "description": "Description", "color": "Color" }, "changePostPropertyDialog": { "title": "Change Post Properties", "time": "Date and time", "timeEmpty": "You must select a time." }, "member": { "noUserAvailableToAdd": "Sorry, no user available to be a member in search result.", "add": "Add", "remove": "Remove" }, "manageItem": { "nickname": "Nickname", "avatar": "Avatar", "property": "Timeline Property", "member": "Timeline Member", "delete": "Delete Timeline" }, "deleteDialog": { "title": "Delete Timeline", "inputPrompt": "This is a dangerous action. If you are sure to delete timeline<1>{{name}}, please input its name below and click confirm button.", "notMatch": "Name does not match." }, "post": { "type": { "text": "Plain Text", "markdown": "Markdown", "image": "Image" }, "deleteDialog": { "title": "Confirm Delete", "prompt": "Are you sure to delete the post? This operation is not recoverable." } }, "addHighlightFail": "Failed to add highlight.", "removeHighlightFail": "Failed to remove highlight.", "addBookmarkFail": "Failed to add bookmark.", "removeBookmarkFail": "Failed to remove bookmark." }, "searchPage": { "loading": "Loading search result...", "input": "Input something and search!", "noResult": "Sorry, there is no satisfied results." }, "user": { "username": "username", "password": "password", "login": "login", "rememberMe": "Remember Me", "welcomeBack": "Welcome back!", "tokenInvalid": "Your authentication token is not valid any more. Please log in again!" }, "login": { "emptyUsername": "Username can't be empty.", "emptyPassword": "Password can't be empty.", "badCredential": "Username or password is invalid.", "alreadyLogin": "Already login! Redirect to home page in 3s!", "noAccount": "If you don't have an account and know a register code, then click <1>here to register." }, "settings": { "subheaders": { "account": "Account", "customization": "Customization" }, "languagePrimary": "Choose display language", "languageSecondary": "You language preference will be saved locally. Next time you visit this page, last language option will be used.", "changePassword": "Change account's password", "logout": "Log out this account", "changeAvatar": "Change avatar", "changeNickname": "Change nickname", "changeBookmarkVisibility": "Change bookmark visibility", "myRegisterCode": "My register code:", "myRegisterCodeDesc": "Click to create a new register code.", "renewRegisterCode": "Renew Register Code", "renewRegisterCodeDesc": "Confirm to renew register code? The old one will no longer be used.", "myRegisterCodeCopied": "Register code copied!", "dialogChangePassword": { "title": "Change Password", "prompt": "You are changing your password. You need to input the correct old password. After change, you need to login again and all old login will be invalid.", "inputOldPassword": "Old password", "inputNewPassword": "New password", "inputRetypeNewPassword": "Retype new password", "errorEmptyOldPassword": "Old password can't be empty.", "errorEmptyNewPassword": "New password can't be empty.", "errorRetypeNotMatch": "Password retyped does not match." }, "dialogConfirmLogout": { "title": "Confirm Logout", "prompt": "Are you sure to log out? All cached data in the browser will be deleted." }, "dialogChangeNickname": { "title": "Change Nickname", "inputLabel": "New nickname" }, "dialogChangeAvatar": { "title": "Change Avatar", "previewImgAlt": "preview", "prompt": { "select": "Please select a picture.", "crop": "Please crop the picture.", "processingCrop": "Cropping picture...", "uploading": "Uploading...", "preview": "Please preview avatar" }, "upload": "upload" } }, "about": { "credits": { "title": "Credits", "content": "Timeline stands on shoulders of giants. Special appreciation for many open source projects listed below or not. Related licenses could be found in GitHub repository.", "frontend": "Frontend", "backend": "Backend" } }, "admin": { "title": "admin" } }