diff --git a/locales/en.yml b/locales/en.yml index 900571124..94c5e8ec3 100644 --- a/locales/en.yml +++ b/locales/en.yml @@ -1,5 +1,5 @@ common: - misskey: "Note everything and share it others using Misskey." + misskey: "Share everything others using Misskey." time: unknown: "unknown" @@ -33,155 +33,576 @@ common: confused: "Confused" pudding: "Pudding" - note_categories: - music: "Music" - game: "Video Game" - anime: "Anime" - it: "IT" - gadgets: "Gadgets" - photography: "Photography" - - input-message-here: "Enter message here" - send: "Send" delete: "Delete" loading: "Loading" ok: "OK" update-available: "New version of Misskey is now available({newer}, current is {current}). Reload page to apply update." my-token-regenerated: "Your token is just regenerated, so you will signout." - tags: - mk-nav-links: - about: "About" - stats: "Stats" - status: "Status" - wiki: "Wiki" - donors: "Donors" - repository: "Repository" - develop: "Developers" +common/views/components/connect-failed.vue: + title: "Unable to connect to the server" + description: "There is a problem with Internet connection, or the server may be down or maintaining. Please {try again} later." + thanks: "Thank you for using Misskey." + troubleshoot: "Troubleshoot" - mk-messaging-form: - attach-from-local: "Attach file from your pc" - attach-from-drive: "Attach file from the drive" +common/views/components/connect-failed.troubleshooter.vue: + title: "TroubleShooting" + network: "Network connection" + checking-network: "Checking network connection" + internet: "Internet connection" + checking-internet: "Checking internet connection" + server: "Server connection" + checking-server: "Checking server connection" + finding: "Finding a problem" + no-network: "There is no Network connection" + no-network-desc: "Please make sure you are connected to the Network." + no-internet: "There is no Internet connection" + no-internet-desc: "Please make sure you are connected to the Internet." + no-server: "Unable to connect to the server" + no-server-desc: "The network connection of your PC is normal, but you could not connect to Misskey's server. There is a possibility that the server is down or maintaining, please try to access it again after a while." + success: "Successfully connect to the Misskey's server" + success-desc: "It seems to be able to connect normally. Please reload the page." - mk-messaging: - search-user: "Find a user" - you: "You" - no-history: "No history" +common/views/components/messaging.vue: + search-user: "Find a user" + you: "You" + no-history: "No history" - mk-messaging-message: - is-read: "Read" - deleted: "This message has been deleted" +common/views/components/messaging-room.vue: + empty: "No conversations" + more: "More" + no-history: "There is no more history" + resize-form: "Drag to resize" + new-message: "New message" - mk-messaging-room: - empty: "No conversations" - more: "More" - no-history: "There is no more history" - resize-form: "Drag to resize" - new-message: "New message" +common/views/components/messaging-room.form.vue: + input-message-here: "Enter message here" + send: "Send" + attach-from-local: "Attach file from your pc" + attach-from-drive: "Attach file from the drive" - mk-authorized-apps: - no-apps: "No apps" +common/views/components/messaging-room.message.vue: + is-read: "Read" + deleted: "This message has been deleted" - mk-error: - title: "Unable to connect to the server" - description: "There is a problem with Internet connection, or the server may be down or maintaining. Please {try again} later." - thanks: "Thank you for using Misskey." - troubleshoot: "Troubleshoot" +common/views/components/nav.vue: + about: "About" + stats: "Stats" + status: "Status" + wiki: "Wiki" + donors: "Donors" + repository: "Repository" + develop: "Developers" - troubleshooter: - title: "TroubleShooting" - network: "Network connection" - checking-network: "Checking network connection" - internet: "Internet connection" - checking-internet: "Checking internet connection" - server: "Server connection" - checking-server: "Checking server connection" - finding: "Finding a problem" - no-network: "There is no Network connection" - no-network-desc: "Please make sure you are connected to the Network." - no-internet: "There is no Internet connection" - no-internet-desc: "Please make sure you are connected to the Internet." - no-server: "Unable to connect to the server" - no-server-desc: "The network connection of your PC is normal, but you could not connect to Misskey's server. There is a possibility that the server is down or maintaining, please try to access it again after a while." - success: "Successfully connect to the Misskey's server" - success-desc: "It seems to be able to connect normally. Please reload the page." +common/views/components/note-menu.vue: + pin: "Pin to profile page" - mk-forkit: - open-github-link: "View source on Github" +common/views/components/poll.vue: + vote-to: "Vote to 「{}」" + vote-count: "{} votes" + total-users: "{} users voted" + vote: "Vote" + show-result: "Show result" + voted: "Voted" - mk-poll-editor: - no-only-one-choice: "You need to enter two or more choice." - choice-n: "Choice {}" - remove: "Remove this choice" - add: "+ Add a choice" - destroy: "Destroy this poll" +common/views/components/poll-editor.vue: + no-only-one-choice: "You need to enter two or more choice." + choice-n: "Choice {}" + remove: "Remove this choice" + add: "+ Add a choice" + destroy: "Destroy this poll" - mk-poll: - vote-to: "Vote to 「{}」" - vote-count: "{} votes" - total-users: "{} users voted" - vote: "Vote" - show-result: "Show result" - voted: "Voted" +common/views/components/reaction-picker.vue: + choose-reaction: "Pick your reaction" - mk-note-menu: - pin: "Pin" - pinned: "Pinned" - select: "Select category" - categorize: "Accept" - categorized: "Category reported. Thank you!" +common/views/components/signin.vue: + username: "Username" + password: "Password" + token: "Token" + signing-in: "Signing in..." + signin: "Sign in" - mk-reaction-picker: - choose-reaction: "Pick your reaction" +common/views/components/signup.vue: + username: "Username" + checking: "Checking..." + available: "Available" + unavailable: "Unavailable" + error: "Network error" + invalid-format: "Only use letters, numbers and -." + too-short: "Please enter at least 1 letters!" + too-long: "Please enter within 20 letters." + password: "Password" + password-placeholder: "We recommend more than 8 letters." + weak-password: "Weak" + normal-password: "So so" + strong-password: "Strong" + retype: "Type again" + retype-placeholder: "Confirm your password" + password-matched: "OK" + password-not-matched: "Not matched" + recaptcha: "Verify" + create: "Create an Account" + some-error: "Account creation failed for some reason. Please try again." - mk-signin: - username: "Username" - password: "Password" - token: "Token" - signing-in: "Signing in..." - signin: "Sign in" +common/views/components/special-message.vue: + new-year: "Happy New Year!" + christmas: "Merry Christmas!" - mk-signup: - username: "Username" - checking: "Checking..." - available: "Available" - unavailable: "Unavailable" - error: "Network error" - invalid-format: "Only use letters, numbers and -." - too-short: "Please enter at least 3 letters!" - too-long: "Please enter within 20 letters." - password: "Password" - password-placeholder: "We recommend more than 8 letters." - weak-password: "Weak" - normal-password: "So so" - strong-password: "Strong" - retype: "Type again" - retype-placeholder: "Confirm your password" - password-matched: "OK" - password-not-matched: "Not matched" - recaptcha: "Verify" - create: "Create an Account" - some-error: "Account creation failed for some reason. Please try again." +common/views/components/stream-indicator.vue: + connecting: "Connecting" + reconnecting: "Reconnecting" + connected: "Connected" - mk-special-message: - new-year: "Happy New Year!" - christmas: "Merry Christmas!" +common/views/components/twitter-setting.vue: + description: "お使いのTwitterアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでTwitterアカウント情報が表示されるようになったり、Twitterを用いた便利なサインインを利用できるようになります。" + connected-to: "You to connected this Twitter account" + detail: "Detail..." + reconnect: "Reconnect" + connect: "Connect to Twitter" + disconnect: "Disconnect" - mk-stream-indicator: - connecting: "Connecting" - reconnecting: "Reconnecting" - connected: "Connected" +common/views/components/uploader.vue: + waiting: "Waiting" - mk-twitter-setting: - description: "お使いのTwitterアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでTwitterアカウント情報が表示されるようになったり、Twitterを用いた便利なサインインを利用できるようになります。" - connected-to: "You to connected this Twitter account" - detail: "Detail..." - reconnect: "Reconnect" - connect: "Connect to Twitter" - disconnect: "Disconnect" +common/views/widgets/broadcast.vue: + fetching: "Fetching" + no-broadcasts: "No broadcasts" + have-a-nice-day: "Have a nice day!" + next: "Next" - mk-uploader: - waiting: "Waiting" +common/views/widgets/donation.vue: + title: "Donation" + text: "To manage Misskey we spend money for our domain server etc.. There's no incomes for us so we need your tip. If you're interested contact {}. Thank you for your contribution!" + +common/views/widgets/photo-stream.vue: + title: "Photostream" + no-photos: "No photos" + +common/views/widgets/server.vue: + title: "Server info" + toggle: "Toggle views" + +desktop/views/components/activity.vue: + title: "Activity" + toggle: "Toggle views" + +desktop/views/components/calendar.vue: + title: "{1} / {2}" + prev: "Previous month" + next: "Next month" + go: "Click to travel" + +desktop/views/components/drive-window.vue: + used: "used" + drive: "Drive" + +desktop/views/components/drive.file.vue: + avatar: "Avatar" + banner: "Banner" + contextmenu: + rename: "Rename" + copy-url: "Copy URL" + download: "Download" + else-files: "その他..." + set-as-avatar: "Set as avatar" + set-as-banner: "Set as banner" + open-in-app: "Open in app" + add-app: "Add app" + rename-file: "Rename file" + input-new-file-name: "Enter new name" + copied: "Copied" + copied-url-to-clipboard: "Copied URL to clipboard" + +desktop/views/components/drive.folder.vue: + unable-to-process: "操作を完了できません" + circular-reference-detected: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。" + unhandled-error: "Unknown error" + contextmenu: + move-to-this-folder: "Move to this folder" + show-in-new-window: "Open in new window" + rename: "Rename" + rename-folder: "Rename folder" + input-new-folder-name: "Enter new name" + +desktop/views/components/drive.nav-folder.vue: + drive: "Drive" + +desktop/views/components/drive.vue: + search: "Search" + load-more: "Load more" + empty-draghover: "Drop Welcome!" + empty-drive: "Your drive is empty" + empty-drive-description: "右クリックして「ファイルをアップロード」を選んだり、ファイルをドラッグ&ドロップすることでもアップロードできます。" + empty-folder: "This folder is empty" + unable-to-process: "操作を完了できません" + circular-reference-detected: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。" + unhandled-error: "Unknown error" + url-upload: "Upload from a URL" + url-of-file: "URL of file you want to upload" + url-upload-requested: "Upload requested" + may-take-time: "アップロードが完了するまで時間がかかる場合があります。" + create-folder: "Create a folder" + folder-name: "Folder name" + contextmenu: + create-folder: "Create a folder" + upload: "Upload a file" + url-upload: "Upload from a URL" + +desktop/views/components/notes.note.vue: + reposted-by: "Reposted by {}" + reply: "Reply" + renote: "Renote" + add-reaction: "Add your reaction" + detail: "Show detail" + +desktop/views/components/notifications.vue: + more: "More" + empty: "No notifications" + +desktop/views/components/post-form.vue: + note-placeholder: "What's happening?" + reply-placeholder: "Reply to this note..." + quote-placeholder: "Quote this note..." + note: "Post" + reply: "Reply" + renote: "Renote" + posted: "Posted!" + replied: "Replied!" + reposted: "Reposted!" + note-failed: "Failed to note" + reply-failed: "Failed to reply" + renote-failed: "Failed to renote" + posting: "Posting" + attach-media-from-local: "Attach media from your pc" + attach-media-from-drive: "Attach media from the drive" + attach-cancel: "Cancel attachment" + insert-a-kao: "v(‘ω’)v" + create-poll: "Create a poll" + text-remain: "{} chars remaining" + +desktop/views/components/post-form-window.vue: + note: "New note" + reply: "Reply" + attaches: "{} media attached" + uploading-media: "Uploading {} media" + +desktop/views/components/renote-form.vue: + quote: "Quote..." + cancel: "Cancel" + renote: "Renote" + reposting: "Reposting..." + success: "Reposted!" + failure: "Failed to Renote" + +desktop/views/components/renote-form-window.vue: + title: "Are you sure you want to renote this note?" + +desktop/views/components/settings.vue: + profile: "Profile" + mute: "Mute" + drive: "Drive" + security: "Security" + password: "Password" + 2fa: "Two-factor authentication" + other: "Other" + license: "License" + +desktop/views/components/settings.2fa.vue: + intro: "If you set up 2-step verification, you will need not only a password at sign-in but also a pre-registered physical device (such as your smartphone), which will improve security. " + detail: "See details..." + url: "https://www.google.com/landing/2step/" + caution: "As a caveat, security improves, but you can not sign in to Misskey if you lose a registered device, etc." + register: "Register a device" + already-registered: "The setting has already been completed." + unregister: "Disable" + unregistered: "Two-step authentication has been disabled." + enter-password: "Enter the password" + authenticator: "First, you need install Google Authenticator to your device:" + howtoinstall: "How to install" + scan: "Next, please scan displayed QR code:" + done: "Please enter the token displaying in your device:" + submit: "Submit" + success: "Setup completed successfully!" + failed: "Failed to setup. please ensure that the token is correct." + info: "From the next sign in, enter the token that is displayed on the device in addition to the password." + +desktop/views/components/settings.api.vue: + intro: "APIを利用するには、上記のトークンを「i」というキーでパラメータに付加してリクエストします。" + caution: "アカウントを不正利用される可能性があるため、このトークンは第三者に教えないでください(アプリなどにも入力しないでください)。" + regeneration-of-token: "万が一このトークンが漏れたりその可能性がある場合はトークンを再生成できます。" + regenerate-token: "Regenerate the token" + enter-password: "Please enter the password" + +desktop/views/components/settings.app.vue: + no-apps: "No authorized apps" + +desktop/views/components/settings.mute.vue: + no-users: "No muted users" + +desktop/views/components/settings.password.vue: + reset: "Change your password" + enter-current-password: "Enter the current password" + enter-new-password: "Enter the new password" + enter-new-password-again: "Enter the new password again" + not-match: "New password not matched" + changed: "Password updated successfully" + +desktop/views/components/settings.profile.vue: + avatar: "Avatar" + choice-avatar: "Choice an image" + name: "Name" + location: "Location" + description: "Description" + birthday: "Birthday" + save: "Update profile" + +desktop/views/components/ui.header.account.vue: + profile: "Your profile" + drive: "Drive" + mentions: "Mentions" + customize: "Customize" + settings: "Settings" + signout: "Sign out" + +desktop/views/components/ui.header.nav.vue: + home: "Home" + messaging: "Messages" + game: "Game" + +desktop/views/components/ui.header.notifications.vue: + title: "Notifications" + +desktop/views/components/ui.header.post.vue: + post: "Compose new Post" + +desktop/views/components/ui.header.search.vue: + placeholder: "Search" + +desktop/views/pages/note.vue: + prev: "Previous note" + next: "Next note" + +desktop/views/pages/selectdrive.vue: + title: "Choose a file(s)" + ok: "OK" + cancel: "Cancel" + upload: "Upload a file(s) from you PC" + +desktop/views/pages/user/user.followers-you-know.vue: + title: "Followers you know" + loading: "Loading" + no-users: "No users" + +desktop/views/pages/user/user.friends.vue: + title: "Frequently replied" + loading: "Loading" + no-users: "No users" + +desktop/views/pages/user/user.home.vue: + last-used-at: "Last used at" + +desktop/views/pages/user/user.photos.vue: + title: "Photos" + loading: "Loading" + no-photos: "No photos" + +desktop/views/pages/user/user.profile.vue: + follows-you: "Follows you" + mute: "Mute" + muted: "Muting" + unmute: "Unmute" + +desktop/views/widgets/messaging.vue: + title: "Messaging" + +desktop/views/widgets/notifications.vue: + title: "Notifications" + settings: "Settings" + +desktop/views/widgets/polls.vue: + title: "Polls" + refresh: "Show others" + nothing: "Nothing" + +desktop/views/widgets/post-form.vue: + title: "Post" + note: "Post" + placeholder: "What's happening?" + +desktop/views/widgets/trends.vue: + title: "Trend" + refresh: "Show others" + nothing: "Nothing" + +desktop/views/widgets/users.vue: + title: "Recommended users" + refresh: "Show others" + no-one: "No one" + +desktop/views/widgets/channel.vue: + title: "Channel" + settings: "Widget settings" + get-started: "Please click the cog in the upper right to specify the channel to receive" + +mobile/views/components/drive.vue: + drive: "Drive" + used: "used" + folder-count: "Folder(s)" + count-separator: ", " + file-count: "File(s)" + load-more: "Load more" + nothing-in-drive: "Nothing" + folder-is-empty: "This folder is empty" + +mobile/views/components/drive-file-chooser.vue: + select-file: "Choose a file" + +mobile/views/components/drive-folder-chooser.vue: + select-folder: "Choose a folder" + +mobile/views/components/drive.file-detail.vue: + download: "Download" + rename: "Rename" + move: "Move" + hash: "Hash (md5)" + exif: "EXIF" + +mobile/views/components/follow-button.vue: + follow: "Follow" + unfollow: "Unfollow" + +mobile/views/components/note.vue: + reposted-by: "Renoted by {}" + +mobile/views/components/note-detail.vue: + reply: "Reply" + reaction: "Reaction" + +mobile/views/components/notifications.vue: + more: "More" + empty: "No notifications" + +mobile/views/components/post-form.vue: + submit: "Post" + reply-placeholder: "Reply to this note..." + note-placeholder: "What's happening?" + +mobile/views/components/sub-note-content.vue: + media-count: "{} media" + poll: "Poll" + +mobile/views/components/timeline.vue: + empty: "No notes" + load-more: "More" + +mobile/views/components/ui.nav.vue: + home: "Home" + notifications: "Notifications" + messaging: "Messages" + drive: "Drive" + settings: "Settings" + about: "About Misskey" + search: "Search" + +mobile/views/components/user-timeline.vue: + no-notes: "This user seems never note" + no-notes-with-media: "There is no notes with media" + load-more: "More" + +mobile/views/components/users-list.vue: + all: "All" + known: "You know" + load-more: "More" + +mobile/views/pages/drive.vue: + drive: "Drive" + +mobile/views/pages/followers.vue: + followers-of: "Followers of {}" + +mobile/views/pages/following.vue: + following-of: "Following of {}" + +mobile/views/pages/messaging.vue: + messaging: "Messaging" + +mobile/views/pages/messaging-room.vue: + messaging: "Messaging" + +mobile/views/pages/note.vue: + title: "Post" + prev: "Previous note" + next: "Next note" + +mobile/views/pages/notifications.vue: + notifications: "Notifications" + read-all: "Are you sure you want to mark all unread notifications as read?" + +mobile/views/pages/profile-setting.vue: + title: "Profile settings" + will-be-published: "These profiles will be published." + name: "Name" + location: "Location" + description: "Description" + birthday: "Birthday" + avatar: "Avatar" + banner: "Banner" + avatar-saved: "Avatar updated successfully" + banner-saved: "Banner updated successfully" + set-avatar: "Choose an avatar" + set-banner: "Choose a banner" + save: "Save" + saved: "Profile updated successfully" + +mobile/views/pages/search.vue: + search: "Search" + empty: "「{}」に関する投稿は見つかりませんでした。" + +mobile/views/pages/selectdrive.vue: + select-file: "Choose a file" + +mobile/views/pages/settings.vue: + signed-in-as: "Signed in as {}" + profile: "Profile" + twitter-integration: "Twitter integration" + signin-history: "Sign in history" + settings: "Settings" + signout: "Sign out" + +mobile/views/pages/user.vue: + follows-you: "Follows you" + following: "Following" + followers: "Followers" + notes: "Posts" + overview: "Overview" + timeline: "Timeline" + media: "Media" + +mobile/views/pages/user/home.vue: + recent-notes: "Recent notes" + images: "Images" + activity: "Activity" + keywords: "Keywords" + domains: "Domains" + frequently-replied-users: "Frequently talking users" + followers-you-know: "Followers you know" + last-used-at: "Last used at" + +mobile/views/pages/user/home.followers-you-know.vue: + loading: "Loading" + no-users: "No users" + +mobile/views/pages/user/home.friends.vue: + loading: "Loading" + no-users: "No users" + +mobile/views/pages/user/home.notes.vue: + loading: "Loading" + no-notes: "No notes" + +mobile/views/pages/user/home.photos.vue: + loading: "Loading" + no-photos: "No photos" docs: edit-this-page-on-github: "Caught a mistake or want to contribute to the documentation? " @@ -200,512 +621,3 @@ docs: description: "Description" yes: "Yes" no: "No" - -ch: - tags: - mk-index: - new: "Create new channel" - channel-title: "Channel title" - - mk-channel-form: - textarea: "Write here" - upload: "Upload" - drive: "Drive" - note: "Do" - posting: "Doing" - -desktop: - tags: - mk-api-info: - intro: "APIを利用するには、上記のトークンを「i」というキーでパラメータに付加してリクエストします。" - caution: "アカウントを不正利用される可能性があるため、このトークンは第三者に教えないでください(アプリなどにも入力しないでください)。" - regeneration-of-token: "万が一このトークンが漏れたりその可能性がある場合はトークンを再生成できます。" - regenerate-token: "Regenerate the token" - enter-password: "Please enter the password" - - mk-drive-browser-base-contextmenu: - create-folder: "Create a folder" - upload: "Upload a file" - url-upload: "Upload from a URL" - - mk-drive-browser-window: - used: "used" - drive: "Drive" - - mk-drive-browser: - search: "Search" - load-more: "Load more" - empty-draghover: "Drop Welcome!" - empty-drive: "Your drive is empty" - empty-drive-description: "右クリックして「ファイルをアップロード」を選んだり、ファイルをドラッグ&ドロップすることでもアップロードできます。" - empty-folder: "This folder is empty" - unable-to-process: "操作を完了できません" - circular-reference-detected: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。" - unhandled-error: "Unknown error" - url-upload: "Upload from a URL" - url-of-file: "URL of file you want to upload" - url-upload-requested: "Upload requested" - may-take-time: "アップロードが完了するまで時間がかかる場合があります。" - create-folder: "Create a folder" - folder-name: "Folder name" - - mk-drive-browser-file-contextmenu: - rename: "Rename" - copy-url: "Copy URL" - download: "Download" - else-files: "その他..." - set-as-avatar: "Set as avatar" - set-as-banner: "Set as banner" - open-in-app: "Open in app" - add-app: "Add app" - rename-file: "Rename file" - input-new-file-name: "Enter new name" - copied: "Copied" - copied-url-to-clipboard: "Copied URL to clipboard" - - mk-drive-browser-file: - avatar: "Avatar" - banner: "Banner" - - mk-drive-browser-folder-contextmenu: - move-to-this-folder: "Move to this folder" - show-in-new-window: "Open in new window" - rename: "Rename" - rename-folder: "Rename folder" - input-new-folder-name: "Enter new name" - - mk-drive-browser-folder: - unable-to-process: "操作を完了できません" - circular-reference-detected: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。" - unhandled-error: "Unknown error" - - mk-drive-browser-nav-folder: - drive: "Drive" - - mk-selectdrive-page: - title: "Choose a file(s)" - ok: "OK" - cancel: "Cancel" - upload: "Upload a file(s) from you PC" - - mk-ui-header-nav: - home: "Home" - messaging: "Messages" - ch: "Channels" - info: "News" - - mk-ui-header-search: - placeholder: "Search" - - mk-ui-header-account: - profile: "Your profile" - drive: "Drive" - mentions: "Mentions" - settings: "Settings" - signout: "Sign out" - - mk-ui-header-note-button: - note: "Compose new Post" - - mk-ui-header-notifications: - title: "Notifications" - - mk-profile-setting: - avatar: "Avatar" - choice-avatar: "Choice an image" - name: "Name" - location: "Location" - description: "Description" - birthday: "Birthday" - save: "Update profile" - - mk-password-setting: - reset: "Change your password" - enter-current-password: "Enter the current password" - enter-new-password: "Enter the new password" - enter-new-password-again: "Enter the new password again" - not-match: "New password not matched" - changed: "Password updated successfully" - - mk-2fa-setting: - intro: "If you set up 2-step verification, you will need not only a password at sign-in but also a pre-registered physical device (such as your smartphone), which will improve security. " - detail: "See details..." - url: "https://www.google.com/landing/2step/" - caution: "As a caveat, security improves, but you can not sign in to Misskey if you lose a registered device, etc." - register: "Register a device" - already-registered: "The setting has already been completed." - unregister: "Disable" - unregistered: "Two-step authentication has been disabled." - enter-password: "Enter the password" - authenticator: "First, you need install Google Authenticator to your device:" - howtoinstall: "How to install" - scan: "Next, please scan displayed QR code:" - done: "Please enter the token displaying in your device:" - submit: "Submit" - success: "Setup completed successfully!" - failed: "Failed to setup. please ensure that the token is correct." - info: "From the next sign in, enter the token that is displayed on the device in addition to the password." - - mk-mute-setting: - no-users: "No muted users" - - mk-post-form: - note-placeholder: "What's happening?" - reply-placeholder: "Reply to this note..." - quote-placeholder: "Quote this note..." - note: "Post" - reply: "Reply" - renote: "Renote" - posted: "Posted!" - replied: "Replied!" - reposted: "Reposted!" - note-failed: "Failed to note" - reply-failed: "Failed to reply" - renote-failed: "Failed to renote" - posting: "Posting" - attach-media-from-local: "Attach media from your pc" - attach-media-from-drive: "Attach media from the drive" - attach-cancel: "Cancel attachment" - insert-a-kao: "v(‘ω’)v" - create-poll: "Create a poll" - text-remain: "{} chars remaining" - - mk-post-form-window: - note: "New note" - reply: "Reply" - attaches: "{} media attached" - uploading-media: "Uploading {} media" - - mk-note-page: - prev: "Previous note" - next: "Next note" - - mk-settings: - profile: "Profile" - mute: "Mute" - drive: "Drive" - security: "Security" - password: "Password" - 2fa: "Two-factor authentication" - other: "Other" - license: "License" - - mk-timeline-note: - reposted-by: "Reposted by {}" - reply: "Reply" - renote: "Renote" - add-reaction: "Add your reaction" - detail: "Show detail" - - mk-notifications: - more: "More" - - mk-notifications-home-widget: - title: "Notifications" - settings: "Notification settings" - - mk-server-home-widget: - title: "Server info" - toggle: "Toggle views" - - mk-activity-widget: - title: "Activity" - toggle: "Toggle views" - - mk-user-recommendation-home-widget: - title: "Recommended users" - refresh: "Show others" - no-one: "No one" - - mk-recommended-polls-home-widget: - title: "Polls" - refresh: "Show others" - nothing: "Nothing" - - mk-trends-home-widget: - title: "Trend" - refresh: "Show others" - nothing: "Nothing" - - mk-photo-stream-home-widget: - title: "Photostream" - no-photos: "No photos" - - mk-donation-home-widget: - title: "Donation" - text: "To manage Misskey we spend money for our domain server etc.. There's no incomes for us so we need your tip. If you're interested contact {}. Thank you for your contribution!" - - mk-channel-home-widget: - title: "Channel" - settings: "Widget settings" - get-started: "Please click the cog in the upper right to specify the channel to receive" - - mk-calendar-widget: - title: "{1} / {2}" - prev: "Previous month" - next: "Next month" - go: "Click to travel" - - mk-post-form-home-widget: - title: "Post" - note: "Post" - placeholder: "What's happening?" - - mk-access-log-home-widget: - title: "Access log" - - mk-messaging-home-widget: - title: "Messaging" - - mk-broadcast-home-widget: - fetching: "Fetching" - no-broadcasts: "No broadcasts" - have-a-nice-day: "Have a nice day!" - next: "Next" - - mk-renote-form: - quote: "Quote..." - cancel: "Cancel" - renote: "Renote" - reposting: "Reposting..." - success: "Reposted!" - failure: "Failed to Renote" - - mk-renote-form-window: - title: "Are you sure you want to renote this note?" - - mk-user: - last-used-at: "Last used at" - - follows-you: "Follows you" - mute: "Mute" - muted: "Muting" - unmute: "Unmute" - - photos: - title: "Photos" - loading: "Loading" - no-photos: "No photos" - - frequently-replied-users: - title: "Frequently replied" - loading: "Loading" - no-users: "No users" - - followers-you-know: - title: "Followers you know" - loading: "Loading" - no-users: "No users" - -mobile: - tags: - mk-selectdrive-page: - select-file: "Select file(s)" - - mk-drive-file-viewer: - download: "Download" - rename: "Rename" - move: "Move" - hash: "Hash (md5)" - exif: "EXIF" - - mk-entrance-signin: - signup: "Sign up" - about: "About Misskey" - - mk-entrance-signup: - cancel: "Cancel" - - mk-authorized-apps-page: - application: "Applications" - - mk-signin-history-page: - signin-history: "Sign in history" - - mk-twitter-setting-page: - twitter-integration: "Twitter integration" - - mk-drive-page: - drive: "Drive" - - mk-home: - home: "Home" - - mk-messaging-room-page: - message: "Messaging" - - mk-messaging-page: - message: "Messaging" - - mk-notifications-page: - notifications: "Notifications" - read-all: "Are you sure you want to mark all unread notifications as read?" - - mk-note-page: - title: "Post" - prev: "Previous note" - next: "Next note" - - mk-search-page: - search: "Search" - - mk-settings: - signed-in-as: "Signed in as {}" - - mk-settings-page: - profile: "Profile" - applications: "Applications" - twitter-integration: "Twitter integration" - signin-history: "Sign in history" - link: "MisskeyLink" - settings: "Settings" - signout: "Sign out" - - mk-profile-setting-page: - title: "Profile Settings" - - mk-profile-setting: - will-be-published: "These profiles will be published." - name: "Name" - location: "Location" - description: "Description" - birthday: "Birthday" - avatar: "Avatar" - banner: "Banner" - avatar-saved: "Avatar updated successfully" - banner-saved: "Banner updated successfully" - set-avatar: "Choose an avatar" - set-banner: "Choose a banner" - save: "Save" - saved: "Profile updated successfully" - - mk-user-followers-page: - followers-of: "Followers of {}" - - mk-user-following-page: - following-of: "Following of {}" - - mk-drive-folder-selector: - select-folder: "Choose a folder" - - mk-drive-selector: - select-file: "Choose a file" - - mk-drive: - drive: "Drive" - used: "used" - folder-count: "Folder(s)" - count-separator: ", " - file-count: "File(s)" - load-more: "Load more" - nothing-in-drive: "Nothing" - folder-is-empty: "This folder is empty" - - mk-follow-button: - follow: "Follow" - unfollow: "Unfollow" - - mk-home-timeline: - empty-timeline: "There is no notes" - - mk-notifications: - more: "More" - empty: "No notifications" - - mk-note-detail: - reply: "Reply" - reaction: "Reaction" - - mk-post-form: - submit: "Post" - reply-placeholder: "Reply to this note..." - note-placeholder: "What's happening?" - - mk-search-notes: - empty: "There is no note related to the 「{}」" - - mk-sub-note-content: - media-count: "{} media" - poll: "Poll" - - mk-timeline-note: - reposted-by: "Reposted by {}" - - mk-timeline: - empty: "No notes" - load-more: "More" - - mk-ui-nav: - home: "Home" - notifications: "Notifications" - messaging: "Messages" - ch: "Channels" - drive: "Drive" - settings: "Settings" - about: "About Misskey" - search: "Search" - - mk-user-followers: - no-users: "No followers." - - mk-user-following: - no-users: "No following." - - mk-user-timeline: - no-notes: "This user seems never note" - no-notes-with-media: "There is no notes with media" - load-more: "More" - - mk-user: - follows-you: "Follows you" - following: "Following" - followers: "Followers" - notes: "Posts" - overview: "Overview" - timeline: "Timeline" - media: "Media" - - mk-user-overview: - recent-notes: "Recent notes" - images: "Images" - activity: "Activity" - keywords: "Keywords" - domains: "Domains" - frequently-replied-users: "Frequently talking users" - followers-you-know: "Followers you know" - last-used-at: "Last used at" - - mk-user-overview-notes: - loading: "Loading" - no-notes: "No notes" - - mk-user-overview-photos: - loading: "Loading" - no-photos: "No photos" - - mk-user-overview-keywords: - no-keywords: "No keywords" - - mk-user-overview-domains: - no-domains: "No domains" - - mk-user-overview-frequently-replied-users: - loading: "Loading" - no-users: "No users" - - mk-user-overview-followers-you-know: - loading: "Loading" - no-users: "No users" - - mk-users-list: - all: "All" - known: "You know" - load-more: "More" - -stats: - notes-count: "Number of all notes" - users-count: "Number of all users" - -status: - all-systems-maybe-operational: "All systems maybe operational" - what-is-this-site: "" diff --git a/locales/index.ts b/locales/index.ts index ced3b4cb3..0593af366 100644 --- a/locales/index.ts +++ b/locales/index.ts @@ -11,7 +11,7 @@ const loadLang = lang => yaml.safeLoad( const native = loadLang('ja'); const langs = { - //'en': loadLang('en'), + 'en': loadLang('en'), 'ja': native }; diff --git a/locales/ja.yml b/locales/ja.yml index 4d4c85362..e7c03f9dd 100644 --- a/locales/ja.yml +++ b/locales/ja.yml @@ -1,5 +1,5 @@ common: - misskey: "Misskeyに何でも投稿して皆と共有しましょう。" + misskey: "Misskeyで皆と共有しよう。" time: unknown: "なぞのじかん" @@ -33,155 +33,576 @@ common: confused: "こまこまのこまり" pudding: "Pudding" - note_categories: - music: "音楽" - game: "ゲーム" - anime: "アニメ" - it: "IT" - gadgets: "ガジェット" - photography: "写真" - - input-message-here: "ここにメッセージを入力" - send: "送信" delete: "削除" loading: "読み込み中" ok: "わかった" update-available: "Misskeyの新しいバージョンがあります({newer}。現在{current}を利用中)。ページを再度読み込みすると更新が適用されます。" my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。" - tags: - mk-nav-links: - about: "Misskeyについて" - stats: "統計" - status: "ステータス" - wiki: "Wiki" - donors: "ドナー" - repository: "リポジトリ" - develop: "開発者" +common/views/components/connect-failed.vue: + title: "サーバーに接続できません" + description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。" + thanks: "いつもMisskeyをご利用いただきありがとうございます。" + troubleshoot: "トラブルシュート" - mk-messaging-form: - attach-from-local: "PCからファイルを添付する" - attach-from-drive: "ドライブからファイルを添付する" +common/views/components/connect-failed.troubleshooter.vue: + title: "トラブルシューティング" + network: "ネットワーク接続" + checking-network: "ネットワーク接続を確認中" + internet: "インターネット接続" + checking-internet: "インターネット接続を確認中" + server: "サーバー接続" + checking-server: "サーバー接続を確認中" + finding: "問題を調べています" + no-network: "ネットワークに接続されていません" + no-network-desc: "お使いのPCのネットワーク接続が正常か確認してください。" + no-internet: "インターネットに接続されていません" + no-internet-desc: "ネットワークには接続されていますが、インターネットには接続されていないようです。お使いのPCのインターネット接続が正常か確認してください。" + no-server: "Misskeyのサーバーに接続できません" + no-server-desc: "お使いのPCのインターネット接続は正常ですが、Misskeyのサーバーには接続できませんでした。サーバーがダウンまたはメンテナンスしている可能性があるので、しばらくしてから再度御アクセスください。" + success: "Misskeyのサーバーに接続できました" + success-desc: "正常に接続できるようです。ページを再度読み込みしてください。" - mk-messaging: - search-user: "ユーザーを探す" - you: "あなた" - no-history: "履歴はありません" +common/views/components/messaging.vue: + search-user: "ユーザーを探す" + you: "あなた" + no-history: "履歴はありません" - mk-messaging-message: - is-read: "既読" - deleted: "このメッセージは削除されました" +common/views/components/messaging-room.vue: + empty: "このユーザーと話したことはありません" + more: "もっと読む" + no-history: "これより過去の履歴はありません" + resize-form: "ドラッグしてフォームの広さを調整" + new-message: "新しいメッセージがあります" - mk-messaging-room: - empty: "このユーザーと話したことはありません" - more: "もっと読む" - no-history: "これより過去の履歴はありません" - resize-form: "ドラッグしてフォームの広さを調整" - new-message: "新しいメッセージがあります" +common/views/components/messaging-room.form.vue: + input-message-here: "ここにメッセージを入力" + send: "送信" + attach-from-local: "PCからファイルを添付する" + attach-from-drive: "ドライブからファイルを添付する" - mk-authorized-apps: - no-apps: "連携しているアプリケーションはありません" +common/views/components/messaging-room.message.vue: + is-read: "既読" + deleted: "このメッセージは削除されました" - mk-error: - title: "サーバーに接続できません" - description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。" - thanks: "いつもMisskeyをご利用いただきありがとうございます。" - troubleshoot: "トラブルシュート" +common/views/components/nav.vue: + about: "Misskeyについて" + stats: "統計" + status: "ステータス" + wiki: "Wiki" + donors: "ドナー" + repository: "リポジトリ" + develop: "開発者" - troubleshooter: - title: "トラブルシューティング" - network: "ネットワーク接続" - checking-network: "ネットワーク接続を確認中" - internet: "インターネット接続" - checking-internet: "インターネット接続を確認中" - server: "サーバー接続" - checking-server: "サーバー接続を確認中" - finding: "問題を調べています" - no-network: "ネットワークに接続されていません" - no-network-desc: "お使いのPCのネットワーク接続が正常か確認してください。" - no-internet: "インターネットに接続されていません" - no-internet-desc: "ネットワークには接続されていますが、インターネットには接続されていないようです。お使いのPCのインターネット接続が正常か確認してください。" - no-server: "Misskeyのサーバーに接続できません" - no-server-desc: "お使いのPCのインターネット接続は正常ですが、Misskeyのサーバーには接続できませんでした。サーバーがダウンまたはメンテナンスしている可能性があるので、しばらくしてから再度御アクセスください。" - success: "Misskeyのサーバーに接続できました" - success-desc: "正常に接続できるようです。ページを再度読み込みしてください。" +common/views/components/note-menu.vue: + pin: "ピン留め" - mk-forkit: - open-github-link: "View source on Github" +common/views/components/poll.vue: + vote-to: "「{}」に投票する" + vote-count: "{}票" + total-users: "{}人が投票" + vote: "投票する" + show-result: "結果を見る" + voted: "投票済み" - mk-poll-editor: - no-only-one-choice: "投票には、選択肢が最低2つ必要です" - choice-n: "選択肢{}" - remove: "この選択肢を削除" - add: "+選択肢を追加" - destroy: "投票を破棄" +common/views/components/poll-editor.vue: + no-only-one-choice: "投票には、選択肢が最低2つ必要です" + choice-n: "選択肢{}" + remove: "この選択肢を削除" + add: "+選択肢を追加" + destroy: "投票を破棄" - mk-poll: - vote-to: "「{}」に投票する" - vote-count: "{}票" - total-users: "{}人が投票" - vote: "投票する" - show-result: "結果を見る" - voted: "投票済み" +common/views/components/reaction-picker.vue: + choose-reaction: "リアクションを選択" - mk-note-menu: - pin: "ピン留め" - pinned: "ピン留めしました" - select: "カテゴリを選択" - categorize: "決定" - categorized: "カテゴリを報告しました。これによりMisskeyが賢くなり、投稿の自動カテゴライズに役立てられます。ご協力ありがとうございました。" +common/views/components/signin.vue: + username: "ユーザー名" + password: "パスワード" + token: "トークン" + signing-in: "やってます..." + signin: "サインイン" - mk-reaction-picker: - choose-reaction: "リアクションを選択" +common/views/components/signup.vue: + username: "ユーザー名" + checking: "確認しています..." + available: "利用できます" + unavailable: "既に利用されています" + error: "通信エラー" + invalid-format: "a~z、A~Z、0~9、_が使えます" + too-short: "1文字以上でお願いします!" + too-long: "20文字以内でお願いします" + password: "パスワード" + password-placeholder: "8文字以上を推奨します" + weak-password: "弱いパスワード" + normal-password: "まあまあのパスワード" + strong-password: "強いパスワード" + retype: "再入力" + retype-placeholder: "確認のため再入力してください" + password-matched: "確認されました" + password-not-matched: "一致していません" + recaptcha: "認証" + create: "アカウント作成" + some-error: "何らかの原因によりアカウントの作成に失敗しました。再度お試しください。" - mk-signin: - username: "ユーザー名" - password: "パスワード" - token: "トークン" - signing-in: "やってます..." - signin: "サインイン" +common/views/components/special-message.vue: + new-year: "Happy New Year!" + christmas: "Merry Christmas!" - mk-signup: - username: "ユーザー名" - checking: "確認しています..." - available: "利用できます" - unavailable: "既に利用されています" - error: "通信エラー" - invalid-format: "a~z、A~Z、0~9、_が使えます" - too-short: "1文字以上でお願いします!" - too-long: "20文字以内でお願いします" - password: "パスワード" - password-placeholder: "8文字以上を推奨します" - weak-password: "弱いパスワード" - normal-password: "まあまあのパスワード" - strong-password: "強いパスワード" - retype: "再入力" - retype-placeholder: "確認のため再入力してください" - password-matched: "確認されました" - password-not-matched: "一致していません" - recaptcha: "認証" - create: "アカウント作成" - some-error: "何らかの原因によりアカウントの作成に失敗しました。再度お試しください。" +common/views/components/stream-indicator.vue: + connecting: "接続中" + reconnecting: "再接続中" + connected: "接続完了" - mk-special-message: - new-year: "Happy New Year!" - christmas: "Merry Christmas!" +common/views/components/twitter-setting.vue: + description: "お使いのTwitterアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでTwitterアカウント情報が表示されるようになったり、Twitterを用いた便利なサインインを利用できるようになります。" + connected-to: "次のTwitterアカウントに接続されています" + detail: "詳細..." + reconnect: "再接続する" + connect: "Twitterと接続する" + disconnect: "切断する" - mk-stream-indicator: - connecting: "接続中" - reconnecting: "再接続中" - connected: "接続完了" +common/views/components/uploader.vue: + waiting: "待機中" - mk-twitter-setting: - description: "お使いのTwitterアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでTwitterアカウント情報が表示されるようになったり、Twitterを用いた便利なサインインを利用できるようになります。" - connected-to: "次のTwitterアカウントに接続されています" - detail: "詳細..." - reconnect: "再接続する" - connect: "Twitterと接続する" - disconnect: "切断する" +common/views/widgets/broadcast.vue: + fetching: "確認中" + no-broadcasts: "お知らせはありません" + have-a-nice-day: "良い一日を!" + next: "次" - mk-uploader: - waiting: "待機中" +common/views/widgets/donation.vue: + title: "寄付のお願い" + text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。" + +common/views/widgets/photo-stream.vue: + title: "フォトストリーム" + no-photos: "写真はありません" + +common/views/widgets/server.vue: + title: "サーバー情報" + toggle: "表示を切り替え" + +desktop/views/components/activity.vue: + title: "アクティビティ" + toggle: "表示を切り替え" + +desktop/views/components/calendar.vue: + title: "{1}年 {2}月" + prev: "前の月" + next: "次の月" + go: "クリックして時間遡行" + +desktop/views/components/drive-window.vue: + used: "使用中" + drive: "ドライブ" + +desktop/views/components/drive.file.vue: + avatar: "アイコン" + banner: "バナー" + contextmenu: + rename: "名前を変更" + copy-url: "URLをコピー" + download: "ダウンロード" + else-files: "その他..." + set-as-avatar: "アイコンに設定" + set-as-banner: "バナーに設定" + open-in-app: "アプリで開く" + add-app: "アプリを追加" + rename-file: "ファイル名の変更" + input-new-file-name: "新しいファイル名を入力してください" + copied: "コピー完了" + copied-url-to-clipboard: "URLをクリップボードにコピーしました" + +desktop/views/components/drive.folder.vue: + unable-to-process: "操作を完了できません" + circular-reference-detected: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。" + unhandled-error: "不明なエラー" + contextmenu: + move-to-this-folder: "このフォルダへ移動" + show-in-new-window: "新しいウィンドウで表示" + rename: "名前を変更" + rename-folder: "フォルダ名の変更" + input-new-folder-name: "新しいフォルダ名を入力してください" + +desktop/views/components/drive.nav-folder.vue: + drive: "ドライブ" + +desktop/views/components/drive.vue: + search: "検索" + load-more: "もっと読み込む" + empty-draghover: "ドロップですか?いいですよ、ボクはカワイイですからね" + empty-drive: "ドライブには何もありません。" + empty-drive-description: "右クリックして「ファイルをアップロード」を選んだり、ファイルをドラッグ&ドロップすることでもアップロードできます。" + empty-folder: "このフォルダーは空です" + unable-to-process: "操作を完了できません" + circular-reference-detected: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。" + unhandled-error: "不明なエラー" + url-upload: "URLアップロード" + url-of-file: "アップロードしたいファイルのURL" + url-upload-requested: "アップロードをリクエストしました" + may-take-time: "アップロードが完了するまで時間がかかる場合があります。" + create-folder: "フォルダー作成" + folder-name: "フォルダー名" + contextmenu: + create-folder: "フォルダーを作成" + upload: "ファイルをアップロード" + url-upload: "URLからアップロード" + +desktop/views/components/notes.note.vue: + reposted-by: "{}がRenote" + reply: "返信" + renote: "Renote" + add-reaction: "リアクション" + detail: "詳細" + +desktop/views/components/notifications.vue: + more: "もっと見る" + empty: "ありません!" + +desktop/views/components/post-form.vue: + note-placeholder: "いまどうしてる?" + reply-placeholder: "この投稿への返信..." + quote-placeholder: "この投稿を引用..." + note: "投稿" + reply: "返信" + renote: "Renote" + posted: "投稿しました!" + replied: "返信しました!" + reposted: "Renoteしました!" + note-failed: "投稿に失敗しました" + reply-failed: "返信に失敗しました" + renote-failed: "Renoteに失敗しました" + posting: "投稿中" + attach-media-from-local: "PCからメディアを添付" + attach-media-from-drive: "ドライブからメディアを添付" + attach-cancel: "添付取り消し" + insert-a-kao: "v(‘ω’)v" + create-poll: "投票を作成" + text-remain: "残り{}文字" + +desktop/views/components/post-form-window.vue: + note: "新規投稿" + reply: "返信" + attaches: "添付: {}メディア" + uploading-media: "{}個のメディアをアップロード中" + +desktop/views/components/renote-form.vue: + quote: "引用する..." + cancel: "キャンセル" + renote: "Renote" + reposting: "しています..." + success: "Renoteしました!" + failure: "Renoteに失敗しました" + +desktop/views/components/renote-form-window.vue: + title: "この投稿をRenoteしますか?" + +desktop/views/components/settings.vue: + profile: "プロフィール" + mute: "ミュート" + drive: "ドライブ" + security: "セキュリティ" + password: "パスワード" + 2fa: "二段階認証" + other: "その他" + license: "ライセンス" + +desktop/views/components/settings.2fa.vue: + intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。" + detail: "詳細..." + url: "https://www.google.co.jp/intl/ja/landing/2step/" + caution: "登録したデバイスを紛失するなどした場合、Misskeyにサインインできなくなりますのでご注意ください。" + register: "デバイスを登録する" + already-registered: "既に設定は完了しています。" + unregister: "設定を解除" + unregistered: "二段階認証が無効になりました。" + enter-password: "パスワードを入力してください" + authenticator: "まず、Google Authenticatorをお使いのデバイスにインストールします:" + howtoinstall: "インストール方法はこちら" + scan: "次に、表示されているQRコードをスキャンします:" + done: "お使いのデバイスに表示されているトークンを入力して完了します:" + submit: "完了" + success: "設定が完了しました!" + failed: "設定に失敗しました。トークンに誤りがないかご確認ください。" + info: "次回サインインからは、同様にパスワードに加えてデバイスに表示されているトークンを入力します。" + +desktop/views/components/settings.api.vue: + intro: "APIを利用するには、上記のトークンを「i」というキーでパラメータに付加してリクエストします。" + caution: "アカウントを不正利用される可能性があるため、このトークンは第三者に教えないでください(アプリなどにも入力しないでください)。" + regeneration-of-token: "万が一このトークンが漏れたりその可能性がある場合はトークンを再生成できます。" + regenerate-token: "トークンを再生成" + enter-password: "パスワードを入力してください" + +desktop/views/components/settings.app.vue: + no-apps: "連携しているアプリケーションはありません" + +desktop/views/components/settings.mute.vue: + no-users: "ミュートしているユーザーはいません" + +desktop/views/components/settings.password.vue: + reset: "パスワードを変更する" + enter-current-password: "現在のパスワードを入力してください" + enter-new-password: "新しいパスワードを入力してください" + enter-new-password-again: "もう一度新しいパスワードを入力してください" + not-match: "新しいパスワードが一致しません" + changed: "パスワードを変更しました" + +desktop/views/components/settings.profile.vue: + avatar: "アイコン" + choice-avatar: "画像を選択" + name: "名前" + location: "場所" + description: "自己紹介" + birthday: "誕生日" + save: "保存" + +desktop/views/components/ui.header.account.vue: + profile: "プロフィール" + drive: "ドライブ" + mentions: "あなた宛て" + customize: "カスタマイズ" + settings: "設定" + signout: "サインアウト" + +desktop/views/components/ui.header.nav.vue: + home: "ホーム" + messaging: "メッセージ" + game: "ゲーム" + +desktop/views/components/ui.header.notifications.vue: + title: "通知" + +desktop/views/components/ui.header.post.vue: + post: "新規投稿" + +desktop/views/components/ui.header.search.vue: + placeholder: "検索" + +desktop/views/pages/note.vue: + prev: "前の投稿" + next: "次の投稿" + +desktop/views/pages/selectdrive.vue: + title: "ファイルを選択してください" + ok: "決定" + cancel: "キャンセル" + upload: "PCからドライブにファイルをアップロード" + +desktop/views/pages/user/user.followers-you-know.vue: + title: "知り合いのフォロワー" + loading: "読み込み中" + no-users: "知り合いのフォロワーはいません" + +desktop/views/pages/user/user.friends.vue: + title: "よく話すユーザー" + loading: "読み込み中" + no-users: "よく話すユーザーはいません" + +desktop/views/pages/user/user.home.vue: + last-used-at: "最終アクセス" + +desktop/views/pages/user/user.photos.vue: + title: "フォト" + loading: "読み込み中" + no-photos: "写真はありません" + +desktop/views/pages/user/user.profile.vue: + follows-you: "フォローされています" + mute: "ミュートする" + muted: "ミュートしています" + unmute: "ミュート解除" + +desktop/views/widgets/messaging.vue: + title: "メッセージ" + +desktop/views/widgets/notifications.vue: + title: "通知" + settings: "通知の設定" + +desktop/views/widgets/polls.vue: + title: "投票" + refresh: "他を見る" + nothing: "ありません!" + +desktop/views/widgets/post-form.vue: + title: "投稿" + note: "投稿" + placeholder: "いまどうしてる?" + +desktop/views/widgets/trends.vue: + title: "トレンド" + refresh: "他を見る" + nothing: "ありません!" + +desktop/views/widgets/users.vue: + title: "おすすめユーザー" + refresh: "他を見る" + no-one: "いません!" + +desktop/views/widgets/channel.vue: + title: "チャンネル" + settings: "ウィジェットの設定" + get-started: "右上の歯車をクリックして受信するチャンネルを指定してください" + +mobile/views/components/drive.vue: + drive: "ドライブ" + used: "使用中" + folder-count: "フォルダ" + count-separator: "、" + file-count: "ファイル" + load-more: "もっと読み込む" + nothing-in-drive: "ドライブには何もありません" + folder-is-empty: "このフォルダは空です" + +mobile/views/components/drive-file-chooser.vue: + select-file: "ファイルを選択" + +mobile/views/components/drive-folder-chooser.vue: + select-folder: "フォルダーを選択" + +mobile/views/components/drive.file-detail.vue: + download: "ダウンロード" + rename: "名前を変更" + move: "移動" + hash: "ハッシュ (md5)" + exif: "EXIF" + +mobile/views/components/follow-button.vue: + follow: "フォロー" + unfollow: "フォロー解除" + +mobile/views/components/note.vue: + reposted-by: "{}がRenote" + +mobile/views/components/note-detail.vue: + reply: "返信" + reaction: "リアクション" + +mobile/views/components/notifications.vue: + more: "もっと見る" + empty: "ありません!" + +mobile/views/components/post-form.vue: + submit: "投稿" + reply-placeholder: "この投稿への返信..." + note-placeholder: "いまどうしてる?" + +mobile/views/components/sub-note-content.vue: + media-count: "{}個のメディア" + poll: "投票" + +mobile/views/components/timeline.vue: + empty: "投稿がありません" + load-more: "もっと" + +mobile/views/components/ui.nav.vue: + home: "ホーム" + notifications: "通知" + messaging: "メッセージ" + search: "検索" + drive: "ドライブ" + settings: "設定" + about: "Misskeyについて" + +mobile/views/components/user-timeline.vue: + no-notes: "このユーザーは投稿していないようです。" + no-notes-with-media: "メディア付き投稿はありません。" + load-more: "もっと" + +mobile/views/components/users-list.vue: + all: "すべて" + known: "知り合い" + load-more: "もっと" + +mobile/views/pages/drive.vue: + drive: "ドライブ" + +mobile/views/pages/followers.vue: + followers-of: "{}のフォロワー" + +mobile/views/pages/following.vue: + following-of: "{}のフォロー" + +mobile/views/pages/messaging.vue: + messaging: "メッセージ" + +mobile/views/pages/messaging-room.vue: + messaging: "メッセージ" + +mobile/views/pages/note.vue: + title: "投稿" + prev: "前の投稿" + next: "次の投稿" + +mobile/views/pages/notifications.vue: + notifications: "通知" + read-all: "すべての通知を既読にしますか?" + +mobile/views/pages/profile-setting.vue: + title: "プロフィール設定" + will-be-published: "これらのプロフィールは公開されます。" + name: "名前" + location: "場所" + description: "自己紹介" + birthday: "誕生日" + avatar: "アイコン" + banner: "バナー" + avatar-saved: "アイコンを保存しました" + banner-saved: "バナーを保存しました" + set-avatar: "アイコンを選択する" + set-banner: "バナーを選択する" + save: "保存" + saved: "プロフィールを保存しました" + +mobile/views/pages/search.vue: + search: "検索" + empty: "「{}」に関する投稿は見つかりませんでした。" + +mobile/views/pages/selectdrive.vue: + select-file: "ファイルを選択" + +mobile/views/pages/settings.vue: + signed-in-as: "{}としてサインイン中" + profile: "プロフィール" + twitter: "Twitter連携" + signin-history: "サインイン履歴" + settings: "設定" + signout: "サインアウト" + +mobile/views/pages/user.vue: + follows-you: "フォローされています" + following: "フォロー" + followers: "フォロワー" + notes: "投稿" + overview: "概要" + timeline: "タイムライン" + media: "メディア" + +mobile/views/pages/user/home.vue: + recent-notes: "最近の投稿" + images: "画像" + activity: "アクティビティ" + keywords: "キーワード" + domains: "頻出ドメイン" + frequently-replied-users: "よく会話するユーザー" + followers-you-know: "知り合いのフォロワー" + last-used-at: "最終ログイン" + +mobile/views/pages/user/home.followers-you-know.vue: + loading: "読み込み中" + no-users: "知り合いのユーザーはいません" + +mobile/views/pages/user/home.friends.vue: + loading: "読み込み中" + no-users: "よく会話するユーザーはいません" + +mobile/views/pages/user/home.notes.vue: + loading: "読み込み中" + no-notes: "投稿はありません" + +mobile/views/pages/user/home.photos.vue: + loading: "読み込み中" + no-photos: "写真はありません" docs: edit-this-page-on-github: "間違いや改善点を見つけましたか?" @@ -200,512 +621,3 @@ docs: description: "説明" yes: "はい" no: "いいえ" - -ch: - tags: - mk-index: - new: "チャンネルを作成" - channel-title: "チャンネルのタイトル" - - mk-channel-form: - textarea: "書いて" - upload: "アップロード" - drive: "ドライブ" - note: "やる" - posting: "やってます" - -desktop: - tags: - mk-api-info: - intro: "APIを利用するには、上記のトークンを「i」というキーでパラメータに付加してリクエストします。" - caution: "アカウントを不正利用される可能性があるため、このトークンは第三者に教えないでください(アプリなどにも入力しないでください)。" - regeneration-of-token: "万が一このトークンが漏れたりその可能性がある場合はトークンを再生成できます。" - regenerate-token: "トークンを再生成" - enter-password: "パスワードを入力してください" - - mk-drive-browser-base-contextmenu: - create-folder: "フォルダーを作成" - upload: "ファイルをアップロード" - url-upload: "URLからアップロード" - - mk-drive-browser-window: - used: "使用中" - drive: "ドライブ" - - mk-drive-browser: - search: "検索" - load-more: "もっと読み込む" - empty-draghover: "ドロップですか?いいですよ、ボクはカワイイですからね" - empty-drive: "ドライブには何もありません。" - empty-drive-description: "右クリックして「ファイルをアップロード」を選んだり、ファイルをドラッグ&ドロップすることでもアップロードできます。" - empty-folder: "このフォルダーは空です" - unable-to-process: "操作を完了できません" - circular-reference-detected: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。" - unhandled-error: "不明なエラー" - url-upload: "URLアップロード" - url-of-file: "アップロードしたいファイルのURL" - url-upload-requested: "アップロードをリクエストしました" - may-take-time: "アップロードが完了するまで時間がかかる場合があります。" - create-folder: "フォルダー作成" - folder-name: "フォルダー名" - - mk-drive-browser-file-contextmenu: - rename: "名前を変更" - copy-url: "URLをコピー" - download: "ダウンロード" - else-files: "その他..." - set-as-avatar: "アバターに設定" - set-as-banner: "バナーに設定" - open-in-app: "アプリで開く" - add-app: "アプリを追加" - rename-file: "ファイル名の変更" - input-new-file-name: "新しいファイル名を入力してください" - copied: "コピー完了" - copied-url-to-clipboard: "URLをクリップボードにコピーしました" - - mk-drive-browser-file: - avatar: "アバター" - banner: "バナー" - - mk-drive-browser-folder-contextmenu: - move-to-this-folder: "このフォルダへ移動" - show-in-new-window: "新しいウィンドウで表示" - rename: "名前を変更" - rename-folder: "フォルダ名の変更" - input-new-folder-name: "新しいフォルダ名を入力してください" - - mk-drive-browser-folder: - unable-to-process: "操作を完了できません" - circular-reference-detected: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。" - unhandled-error: "不明なエラー" - - mk-drive-browser-nav-folder: - drive: "ドライブ" - - mk-selectdrive-page: - title: "ファイルを選択してください" - ok: "決定" - cancel: "キャンセル" - upload: "PCからドライブにファイルをアップロード" - - mk-ui-header-nav: - home: "ホーム" - messaging: "メッセージ" - ch: "チャンネル" - info: "お知らせ" - - mk-ui-header-search: - placeholder: "検索" - - mk-ui-header-account: - profile: "プロフィール" - drive: "ドライブ" - mentions: "あなた宛て" - settings: "設定" - signout: "サインアウト" - - mk-ui-header-note-button: - note: "新規投稿" - - mk-ui-header-notifications: - title: "通知" - - mk-profile-setting: - avatar: "アバター" - choice-avatar: "画像を選択" - name: "名前" - location: "場所" - description: "自己紹介" - birthday: "誕生日" - save: "保存" - - mk-password-setting: - reset: "パスワードを変更する" - enter-current-password: "現在のパスワードを入力してください" - enter-new-password: "新しいパスワードを入力してください" - enter-new-password-again: "もう一度新しいパスワードを入力してください" - not-match: "新しいパスワードが一致しません" - changed: "パスワードを変更しました" - - mk-2fa-setting: - intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。" - detail: "詳細..." - url: "https://www.google.co.jp/intl/ja/landing/2step/" - caution: "登録したデバイスを紛失するなどした場合、Misskeyにサインインできなくなりますのでご注意ください。" - register: "デバイスを登録する" - already-registered: "既に設定は完了しています。" - unregister: "設定を解除" - unregistered: "二段階認証が無効になりました。" - enter-password: "パスワードを入力してください" - authenticator: "まず、Google Authenticatorをお使いのデバイスにインストールします:" - howtoinstall: "インストール方法はこちら" - scan: "次に、表示されているQRコードをスキャンします:" - done: "お使いのデバイスに表示されているトークンを入力して完了します:" - submit: "完了" - success: "設定が完了しました!" - failed: "設定に失敗しました。トークンに誤りがないかご確認ください。" - info: "次回サインインからは、同様にパスワードに加えてデバイスに表示されているトークンを入力します。" - - mk-mute-setting: - no-users: "ミュートしているユーザーはいません" - - mk-post-form: - note-placeholder: "いまどうしてる?" - reply-placeholder: "この投稿への返信..." - quote-placeholder: "この投稿を引用..." - note: "投稿" - reply: "返信" - renote: "Renote" - posted: "投稿しました!" - replied: "返信しました!" - reposted: "Renoteしました!" - note-failed: "投稿に失敗しました" - reply-failed: "返信に失敗しました" - renote-failed: "Renoteに失敗しました" - posting: "投稿中" - attach-media-from-local: "PCからメディアを添付" - attach-media-from-drive: "ドライブからメディアを添付" - attach-cancel: "添付取り消し" - insert-a-kao: "v(‘ω’)v" - create-poll: "投票を作成" - text-remain: "のこり{}文字" - - mk-post-form-window: - note: "新規投稿" - reply: "返信" - attaches: "添付: {}メディア" - uploading-media: "{}個のメディアをアップロード中" - - mk-note-page: - prev: "前の投稿" - next: "次の投稿" - - mk-settings: - profile: "プロフィール" - mute: "ミュート" - drive: "ドライブ" - security: "セキュリティ" - password: "パスワード" - 2fa: "二段階認証" - other: "その他" - license: "ライセンス" - - mk-timeline-note: - reposted-by: "{}がRenote" - reply: "返信" - renote: "Renote" - add-reaction: "リアクション" - detail: "詳細" - - mk-notifications: - more: "もっと見る" - - mk-notifications-home-widget: - title: "通知" - settings: "通知の設定" - - mk-server-home-widget: - title: "サーバー情報" - toggle: "表示を切り替え" - - mk-activity-widget: - title: "アクティビティ" - toggle: "表示を切り替え" - - mk-user-recommendation-home-widget: - title: "おすすめユーザー" - refresh: "他を見る" - no-one: "いません!" - - mk-recommended-polls-home-widget: - title: "投票" - refresh: "他を見る" - nothing: "ありません!" - - mk-trends-home-widget: - title: "トレンド" - refresh: "他を見る" - nothing: "ありません!" - - mk-photo-stream-home-widget: - title: "フォトストリーム" - no-photos: "写真はありません" - - mk-donation-home-widget: - title: "寄付のお願い" - text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。" - - mk-channel-home-widget: - title: "チャンネル" - settings: "ウィジェットの設定" - get-started: "右上の歯車をクリックして受信するチャンネルを指定してください" - - mk-calendar-widget: - title: "{1}年 {2}月" - prev: "前の月" - next: "次の月" - go: "クリックして時間遡行" - - mk-post-form-home-widget: - title: "投稿" - note: "投稿" - placeholder: "いまどうしてる?" - - mk-access-log-home-widget: - title: "アクセスログ" - - mk-messaging-home-widget: - title: "メッセージ" - - mk-broadcast-home-widget: - fetching: "確認中" - no-broadcasts: "お知らせはありません" - have-a-nice-day: "良い一日を!" - next: "次" - - mk-renote-form: - quote: "引用する..." - cancel: "キャンセル" - renote: "Renote" - reposting: "しています..." - success: "Renoteしました!" - failure: "Renoteに失敗しました" - - mk-renote-form-window: - title: "この投稿をRenoteしますか?" - - mk-user: - last-used-at: "最終アクセス" - - follows-you: "フォローされています" - mute: "ミュートする" - muted: "ミュートしています" - unmute: "ミュート解除" - - photos: - title: "フォト" - loading: "読み込み中" - no-photos: "写真はありません" - - frequently-replied-users: - title: "よく話すユーザー" - loading: "読み込み中" - no-users: "よく話すユーザーはいません" - - followers-you-know: - title: "知り合いのフォロワー" - loading: "読み込み中" - no-users: "知り合いのフォロワーはいません" - -mobile: - tags: - mk-selectdrive-page: - select-file: "ファイルを選択" - - mk-drive-file-viewer: - download: "ダウンロード" - rename: "名前を変更" - move: "移動" - hash: "ハッシュ (md5)" - exif: "EXIF" - - mk-entrance-signin: - signup: "新規登録" - about: "Misskeyについて" - - mk-entrance-signup: - cancel: "キャンセル" - - mk-authorized-apps-page: - application: "アプリケーション" - - mk-signin-history-page: - signin-history: "ログイン履歴" - - mk-twitter-setting-page: - twitter-integration: "Twitter連携" - - mk-drive-page: - drive: "ドライブ" - - mk-home: - home: "ホーム" - - mk-messaging-room-page: - message: "メッセージ" - - mk-messaging-page: - message: "メッセージ" - - mk-notifications-page: - notifications: "通知" - read-all: "すべての通知を既読にしますか?" - - mk-note-page: - title: "投稿" - prev: "前の投稿" - next: "次の投稿" - - mk-search-page: - search: "検索" - - mk-settings: - signed-in-as: "{}としてサインイン中" - - mk-settings-page: - profile: "プロフィール" - applications: "アプリケーション" - twitter-integration: "Twitter連携" - signin-history: "サインイン履歴" - link: "Misskeyリンク" - settings: "設定" - signout: "サインアウト" - - mk-profile-setting-page: - title: "プロフィール設定" - - mk-profile-setting: - will-be-published: "これらのプロフィールは公開されます。" - name: "名前" - location: "場所" - description: "自己紹介" - birthday: "誕生日" - avatar: "アバター" - banner: "バナー" - avatar-saved: "アバターを保存しました" - banner-saved: "バナーを保存しました" - set-avatar: "アバターを選択する" - set-banner: "バナーを選択する" - save: "保存" - saved: "プロフィールを保存しました" - - mk-user-followers-page: - followers-of: "{}のフォロワー" - - mk-user-following-page: - following-of: "{}のフォロー" - - mk-drive-folder-selector: - select-folder: "フォルダーを選択" - - mk-drive-selector: - select-file: "ファイルを選択" - - mk-drive: - drive: "ドライブ" - used: "使用中" - folder-count: "フォルダ" - count-separator: "、" - file-count: "ファイル" - load-more: "もっと読み込む" - nothing-in-drive: "ドライブには何もありません" - folder-is-empty: "このフォルダは空です" - - mk-follow-button: - follow: "フォロー" - unfollow: "フォロー解除" - - mk-home-timeline: - empty-timeline: "表示する投稿がありません。誰かしらをフォローするなどしましょう。" - - mk-notifications: - more: "もっと見る" - empty: "ありません!" - - mk-note-detail: - reply: "返信" - reaction: "リアクション" - - mk-post-form: - submit: "投稿" - reply-placeholder: "この投稿への返信..." - note-placeholder: "いまどうしてる?" - - mk-search-notes: - empty: "「{}」に関する投稿は見つかりませんでした。" - - mk-sub-note-content: - media-count: "{}個のメディア" - poll: "投票" - - mk-timeline-note: - reposted-by: "{}がRenote" - - mk-timeline: - empty: "表示するものがありません" - load-more: "もっとみる" - - mk-ui-nav: - home: "ホーム" - notifications: "通知" - messaging: "メッセージ" - ch: "チャンネル" - search: "検索" - drive: "ドライブ" - settings: "設定" - about: "Misskeyについて" - - mk-user-followers: - no-users: "フォロワーはいないようです。" - - mk-user-following: - no-users: "フォロー中のユーザーはいないようです。" - - mk-user-timeline: - no-notes: "このユーザーはまだ投稿していないようです。" - no-notes-with-media: "メディア付き投稿はありません。" - load-more: "もっとみる" - - mk-user: - follows-you: "フォローされています" - following: "フォロー" - followers: "フォロワー" - notes: "投稿" - overview: "概要" - timeline: "タイムライン" - media: "メディア" - - mk-user-overview: - recent-notes: "最近の投稿" - images: "画像" - activity: "アクティビティ" - keywords: "キーワード" - domains: "頻出ドメイン" - frequently-replied-users: "よく会話するユーザー" - followers-you-know: "知り合いのフォロワー" - last-used-at: "最終ログイン" - - mk-user-overview-notes: - loading: "読み込み中" - no-notes: "投稿はありません" - - mk-user-overview-photos: - loading: "読み込み中" - no-photos: "写真はありません" - - mk-user-overview-keywords: - no-keywords: "キーワードはありません(十分な数の投稿をしていない可能性があります)" - - mk-user-overview-domains: - no-domains: "よく表れるドメインは検出されませんでした" - - mk-user-overview-frequently-replied-users: - loading: "読み込み中" - no-users: "よく会話するユーザーはいません" - - mk-user-overview-followers-you-know: - loading: "読み込み中" - no-users: "知り合いのユーザーはいません" - - mk-users-list: - all: "すべて" - known: "知り合い" - load-more: "もっと" - -stats: - notes-count: "投稿の数" - users-count: "アカウントの数" - -status: - all-systems-maybe-operational: "すべてのシステムがたぶん正常に作動しています" - what-is-this-site: "" diff --git a/src/build/fa.ts b/src/build/fa.ts index 0c21be950..f6f2427d0 100644 --- a/src/build/fa.ts +++ b/src/build/fa.ts @@ -14,7 +14,7 @@ fontawesome.library.add(brands); export const pattern = /%fa:(.+?)%/g; -export const replacement = (_, key) => { +export const replacement = (match, key) => { const args = key.split(' '); let prefix = 'fas'; const classes = []; diff --git a/src/build/i18n.ts b/src/build/i18n.ts index b9b740321..279019119 100644 --- a/src/build/i18n.ts +++ b/src/build/i18n.ts @@ -16,7 +16,7 @@ export default class Replacer { this.replacement = this.replacement.bind(this); } - private get(key: string) { + private get(path: string, key: string) { const texts = locale[this.lang]; if (texts == null) { @@ -26,6 +26,15 @@ export default class Replacer { let text = texts; + if (path) { + if (text.hasOwnProperty(path)) { + text = text[path]; + } else { + console.warn(`path '${path}' not found in '${this.lang}'`); + return key; // Fallback + } + } + // Check the key existance const error = key.split('.').some(k => { if (text.hasOwnProperty(k)) { @@ -37,21 +46,31 @@ export default class Replacer { }); if (error) { - console.warn(`key '${key}' not found in '${this.lang}'`); + console.warn(`key '${key}' not found in '${path}' of '${this.lang}'`); return key; // Fallback } else { return text; } } - public replacement(match, a, b, c) { - const key = a || b || c; + public replacement(ctx, match, a, b, c) { + const client = 'misskey/src/client/app/'; + let name = null; + + let key = a || b || c; + if (key[0] == '@') { + name = ctx.src.substr(ctx.src.indexOf(client) + client.length); + key = key.substr(1); + } + + if (ctx && ctx.lang) this.lang = ctx.lang; + if (match[0] == '"') { - return '"' + this.get(key).replace(/"/g, '\\"') + '"'; + return '"' + this.get(name, key).replace(/"/g, '\\"') + '"'; } else if (match[0] == "'") { - return '\'' + this.get(key).replace(/'/g, '\\\'') + '\''; + return '\'' + this.get(name, key).replace(/'/g, '\\\'') + '\''; } else { - return this.get(key); + return this.get(name, key); } } } diff --git a/src/client/app/boot.js b/src/client/app/boot.js index 2675fa233..12b0d220a 100644 --- a/src/client/app/boot.js +++ b/src/client/app/boot.js @@ -31,11 +31,9 @@ // Detect the user language // Note: The default language is Japanese - //let lang = navigator.language.split('-')[0]; - //if (!/^(en|ja)$/.test(lang)) lang = 'ja'; - //if (localStorage.getItem('lang')) lang = localStorage.getItem('lang'); - //if (ENV != 'production') lang = 'ja'; - const lang = 'ja'; + let lang = navigator.language.split('-')[0]; + if (!/^(en|ja)$/.test(lang)) lang = 'ja'; + if (localStorage.getItem('lang')) lang = localStorage.getItem('lang'); // Detect the user agent const ua = navigator.userAgent.toLowerCase(); diff --git a/src/client/app/common/views/components/connect-failed.troubleshooter.vue b/src/client/app/common/views/components/connect-failed.troubleshooter.vue index cadbd36ba..b0a9c87e7 100644 --- a/src/client/app/common/views/components/connect-failed.troubleshooter.vue +++ b/src/client/app/common/views/components/connect-failed.troubleshooter.vue @@ -1,34 +1,34 @@ diff --git a/src/client/app/common/views/components/connect-failed.vue b/src/client/app/common/views/components/connect-failed.vue index 185250dbd..d90c8756b 100644 --- a/src/client/app/common/views/components/connect-failed.vue +++ b/src/client/app/common/views/components/connect-failed.vue @@ -1,15 +1,15 @@ diff --git a/src/client/app/common/views/components/forkit.vue b/src/client/app/common/views/components/forkit.vue index 6f334b965..2a463ebfd 100644 --- a/src/client/app/common/views/components/forkit.vue +++ b/src/client/app/common/views/components/forkit.vue @@ -1,5 +1,5 @@ diff --git a/src/client/app/common/views/components/nav.vue b/src/client/app/common/views/components/nav.vue index 8ce75d352..229595792 100644 --- a/src/client/app/common/views/components/nav.vue +++ b/src/client/app/common/views/components/nav.vue @@ -1,18 +1,18 @@ diff --git a/src/client/app/common/views/components/poll-editor.vue b/src/client/app/common/views/components/poll-editor.vue index 47d901d7b..fa1897f43 100644 --- a/src/client/app/common/views/components/poll-editor.vue +++ b/src/client/app/common/views/components/poll-editor.vue @@ -1,18 +1,18 @@ diff --git a/src/client/app/common/views/components/twitter-setting.vue b/src/client/app/common/views/components/twitter-setting.vue index 00669cd83..77788290f 100644 --- a/src/client/app/common/views/components/twitter-setting.vue +++ b/src/client/app/common/views/components/twitter-setting.vue @@ -1,11 +1,11 @@