{ "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": { "author": { "title": "Site Developer", "name": "Name: ", "introduction": "Introduction: ", "introductionContent": "A programmer coding based on coincidence", "links": "Links: " }, "site": { "title": "Site Information", "content": "The name of this site is <1>Timeline, which is a Web App with <3>timeline as its core concept. Its frontend and backend are both developed by <5>me, and open source on GitHub. It is relatively easy to deploy it on your own server, which is also one of my goals. Welcome to comment anything in GitHub repository.", "repo": "GitHub Repo" }, "credits": { "title": "Credits", "content": "Timeline is works standing on shoulders of gaints. 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" } }