diff --git a/locales/en.yml b/locales/en.yml index 650258e5cfec07d4faf28b3bee3cbffa1dcd1202..226d839938b7e03ac739bd420b5b4664cf7eb964 100644 --- a/locales/en.yml +++ b/locales/en.yml @@ -6,6 +6,10 @@ common: misskey: "A â of the fediverse" about-title: "A â of the fediverse." about: "Thank you for finding Misskey. Misskey is a <b>decentralized microblogging platform</b> born on Earth. Since it exists within the Fediverse (a universe where various social media platforms are organized), it is mutually linked with other social media platforms. Why don't you take a short break from the hustle and bustle of the city, and dive into a new Internet?" + adblock: + detected: "Please disable ad blocker." + warning: "<strong>Misskey is not running ads</strong>, but some features may be unavailable or malfunctioning if ad blocking features are enabled." + application-authorization: "Application authorizations" customization-tips: title: "Customization tips" paragraph1: "Home customization allows you to add/delete, drag and drop and rearrange widgets." @@ -13,6 +17,15 @@ common: paragraph3: "To delete a widget, <strong>drag and drop the widget onto the area labeled \"Trash\"</strong> in the header." paragraph4: "To finish the customization, click \"Finish\" in the upper right." gotit: "Got it!" + close: "Close" + notification: + file-uploaded: "File uploaded!" + message-from: "Message from {}:" + reversi-invited: "Invited to a game:" + reversi-invited-by: "By {}." + notified-by: "Notified by {}:" + reply-from: "Reply from {}:" + quoted-by: "Quoted by {}:" name: "Misskey" time: unknown: "unknown" @@ -26,6 +39,12 @@ common: months_ago: "{}month(s) ago" years_ago: "{}year(s) ago" trash: "Trash" + date: + full-year: "Year" + month: "Month" + day: "Day" + hours: "Hours" + minutes: "Minutes" weekday-short: sunday: "S" monday: "M" @@ -121,6 +140,30 @@ common: rename: "Rename" stack-left: "Stack to the left" pop-right: "Dock on the right" +auth/views/form.vue: + share-access: "Would you <b>allow</b> <i>{{app.name}}</i> to access your account?" + permission-ask: "This application requires the following permissions:" + account-read: "View account information." + account-write: "Modify account information." + note-write: "Post." + like-write: "React." + following-write: "Follow or unfollow." + drive-read: "Read your drive." + drive-write: "Upload/delete files in your drive." + notification-read: "Read your notifications." + notification-write: "Manage your notifications." + cancel: "Cancel" + accept: "Accept" +auth/views/index.vue: + loading: "Loading..." + denied: "Application authorization is denied." + denied-paragraph: "This application will not access your account." + already-authorized: "This application is already authorized." + allowed: "Application authorization allowed." + callback-url: "Going back to the application." + please-go-back: "Please go back to the application." + error: "Session does not exist." + sign-in: "Please sign in." common/views/components/games/reversi/reversi.vue: title: "Misskey Reversi" sub-title: "Play reversi with your friends!" @@ -751,10 +794,9 @@ desktop/views/pages/search.vue: not-available: "The search function can not be used." not-found: "No posts were found for '{}'" desktop/views/pages/share.vue: - share-with: "Share with Misskey" - close: "Close" + share-with: "Share with {}" desktop/views/pages/tag.vue: - no-posts-found: "ãƒãƒƒã‚·ãƒ¥ã‚¿ã‚°ã€Œ{}ã€ãŒä»˜ã‘られãŸæŠ•ç¨¿ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚" + no-posts-found: "No posts \"{}\" found." desktop/views/pages/user-list.users.vue: users: "User" add-user: "Add a user" @@ -954,7 +996,7 @@ mobile/views/pages/home.vue: hybrid: "Social" global: "Global" mobile/views/pages/tag.vue: - no-posts-found: "ãƒãƒƒã‚·ãƒ¥ã‚¿ã‚°ã€Œ{}ã€ãŒä»˜ã‘られãŸæŠ•ç¨¿ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚" + no-posts-found: "No posts \"{}\" found." mobile/views/pages/welcome.vue: signup: "Sign up" mobile/views/pages/widgets.vue: @@ -995,6 +1037,8 @@ mobile/views/pages/settings/settings.profile.vue: mobile/views/pages/search.vue: search: "Search" empty: "No posts were found for '{}'" +mobile/views/pages/share.vue: + share-with: "Share with {}." mobile/views/pages/selectdrive.vue: select-file: "Choose files" mobile/views/pages/settings.vue: diff --git a/locales/ja.yml b/locales/ja.yml index 7e245d46a9b518a7cf0689bdbbf46017c57a5f73..b3b50a5c8fc8cdbb686f4b317fac34d1f82f13cc 100644 --- a/locales/ja.yml +++ b/locales/ja.yml @@ -6,6 +6,11 @@ common: misskey: "A â of fediverse" about-title: "A â of fediverse." about: "Misskeyを見ã¤ã‘ã¦ã„ãŸã ãã€ã‚ã‚ŠãŒã¨ã†ã”ã–ã„ã¾ã™ã€‚Misskeyã¯ã€åœ°çƒã§ç”Ÿã¾ã‚ŒãŸ<b>分散マイクãƒãƒ–ãƒã‚°SNS</b>ã§ã™ã€‚Fediverse(様々ãªSNSã§æ§‹æˆã•ã‚Œã‚‹å®‡å®™)ã®ä¸ã«å˜åœ¨ã™ã‚‹ãŸã‚ã€ä»–ã®SNSã¨ç›¸äº’ã«ç¹‹ãŒã£ã¦ã„ã¾ã™ã€‚æš«ã—都会ã®å–§é¨’ã‹ã‚‰é›¢ã‚Œã¦ã€æ–°ã—ã„インターãƒãƒƒãƒˆã«ãƒ€ã‚¤ãƒ–ã—ã¦ã¿ã¾ã›ã‚“ã‹ã€‚" + adblock: + detected: "広告ブãƒãƒƒã‚«ãƒ¼ã‚’無効ã«ã—ã¦ãã ã•ã„" + warning: "<strong>Misskeyã¯åºƒå‘Šã‚’掲載ã—ã¦ã„ã¾ã›ã‚“</strong>ãŒã€åºƒå‘Šã‚’ブãƒãƒƒã‚¯ã™ã‚‹æ©Ÿèƒ½ãŒæœ‰åŠ¹ã ã¨ä¸€éƒ¨ã®æ©Ÿèƒ½ãŒåˆ©ç”¨ã§ããªã‹ã£ãŸã‚Šã€ä¸å…·åˆãŒç™ºç”Ÿã™ã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚" + application-authorization: "アプリã®é€£æº" + close: "é–‰ã˜ã‚‹" customization-tips: title: "カスタマイズã®ãƒ’ント" paragraph1: "ホームã®ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚ºã§ã¯ã€ã‚¦ã‚£ã‚¸ã‚§ãƒƒãƒˆã‚’è¿½åŠ /削除ã—ãŸã‚Šã€ãƒ‰ãƒ©ãƒƒã‚°&ドãƒãƒƒãƒ—ã—ã¦ä¸¦ã¹æ›¿ãˆãŸã‚Šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚" @@ -13,6 +18,14 @@ common: paragraph3: "ウィジェットを削除ã™ã‚‹ã«ã¯ã€ãƒ˜ãƒƒãƒ€ãƒ¼ã®<strong>「ゴミ箱ã€</strong>ã¨æ›¸ã‹ã‚ŒãŸã‚¨ãƒªã‚¢ã«ã‚¦ã‚£ã‚¸ã‚§ãƒƒãƒˆã‚’ドラッグ&ドãƒãƒƒãƒ—ã—ã¾ã™ã€‚" paragraph4: "カスタマイズを終了ã™ã‚‹ã«ã¯ã€å³ä¸Šã®ã€Œå®Œäº†ã€ã‚’クリックã—ã¾ã™ã€‚" gotit: "Got it!" + notification: + file-uploaded: "ファイルãŒã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã•ã‚Œã¾ã—ãŸ" + message-from: "{}ã•ã‚“ã‹ã‚‰ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸:" + reversi-invited: "対局ã¸ã®æ‹›å¾…ãŒã‚ã‚Šã¾ã™" + reversi-invited-by: "{}ã•ã‚“ã‹ã‚‰" + notified-by: "{}ã•ã‚“ã‹ã‚‰" + reply-from: "{}ã•ã‚“ã‹ã‚‰è¿”ä¿¡:" + quoted-by: "{}ã•ã‚“ãŒå¼•ç”¨:" name: "Misskey" time: unknown: "ãªãžã®ã˜ã‹ã‚“" @@ -28,6 +41,13 @@ common: trash: "ゴミ箱" + date: + full-year: "å¹´" + month: "月" + day: "æ—¥" + hours: "時" + minutes: "分" + weekday-short: sunday: "æ—¥" monday: "月" @@ -131,6 +151,32 @@ common: stack-left: "å·¦ã«é‡ãã‚‹" pop-right: "å³ã«å‡ºã™" +auth/views/form.vue: + share-access: "<i>{{ app.name }}</i>ãŒã‚ãªãŸã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ã‚’<b>許å¯</b>ã—ã¾ã™ã‹ï¼Ÿ" + permission-ask: "ã“ã®ã‚¢ãƒ—リã¯æ¬¡ã®æ¨©é™ã‚’è¦æ±‚ã—ã¦ã„ã¾ã™:" + account-read: "アカウントã®æƒ…å ±ã‚’è¦‹ã‚‹ã€‚" + account-write: "アカウントã®æƒ…å ±ã‚’æ“作ã™ã‚‹ã€‚" + note-write: "投稿ã™ã‚‹ã€‚" + like-write: "ã„ã„ãã—ãŸã‚Šã„ã„ã解除ã™ã‚‹ã€‚" + following-write: "フォãƒãƒ¼ã—ãŸã‚Šãƒ•ã‚©ãƒãƒ¼è§£é™¤ã™ã‚‹ã€‚" + drive-read: "ドライブを見る。" + drive-write: "ドライブをæ“作ã™ã‚‹ã€‚" + notification-read: "通知を見る。" + notification-write: "通知をæ“作ã™ã‚‹ã€‚" + cancel: "ã‚ャンセル" + accept: "アクセスを許å¯" + +auth/views/index.vue: + loading: "èªã¿è¾¼ã¿ä¸" + denied: "アプリケーションã®é€£æºã‚’ã‚ャンセルã—ã¾ã—ãŸã€‚" + denied-paragraph: "ã“ã®ã‚¢ãƒ—リãŒã‚ãªãŸã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“。" + already-authorized: "ã“ã®ã‚¢ãƒ—リã¯æ—¢ã«é€£æºæ¸ˆã¿ã§ã™" + allowed: "アプリケーションã®é€£æºã‚’許å¯ã—ã¾ã—ãŸ" + callback-url: "アプリケーションã«æˆ»ã£ã¦ã„ã¾ã™" + please-go-back: "アプリケーションã«æˆ»ã£ã¦ã€ã‚„ã£ã¦ã„ã£ã¦ãã ã•ã„。" + error: "セッションãŒå˜åœ¨ã—ã¾ã›ã‚“。" + sign-in: "サインインã—ã¦ãã ã•ã„" + common/views/components/games/reversi/reversi.vue: title: "Misskey Reversi" sub-title: "ä»–ã®Misskeyユーザーã¨ãƒªãƒãƒ¼ã‚·ã§å¯¾æˆ¦ã—よã†" @@ -870,8 +916,7 @@ desktop/views/pages/search.vue: not-found: "「{}ã€ã«é–¢ã™ã‚‹æŠ•ç¨¿ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚" desktop/views/pages/share.vue: - share-with: "Misskeyã§å…±æœ‰" - close: "é–‰ã˜ã‚‹" + share-with: "{}ã§å…±æœ‰" desktop/views/pages/tag.vue: no-posts-found: "ãƒãƒƒã‚·ãƒ¥ã‚¿ã‚°ã€Œ{}ã€ãŒä»˜ã‘られãŸæŠ•ç¨¿ã¯è¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚" @@ -1127,10 +1172,14 @@ mobile/views/pages/welcome.vue: mobile/views/pages/widgets.vue: dashboard: "ダッシュボード" + widgets-hints: "ã‚¦ã‚£ã‚¸ã‚§ãƒƒãƒˆã‚’è¿½åŠ /削除ã—ãŸã‚Šä¸¦ã¹æ›¿ãˆãŸã‚Šã§ãã¾ã™ã€‚ウィジェットを移動ã™ã‚‹ã«ã¯ã€Œä¸‰ã€ã‚’ドラッグã—ã¾ã™ã€‚ウィジェットを削除ã™ã‚‹ã«ã¯ã€Œxã€ã‚’タップã—ã¾ã™ã€‚ã„ãã¤ã‹ã®ã‚¦ã‚£ã‚¸ã‚§ãƒƒãƒˆã¯ã‚¿ãƒƒãƒ—ã™ã‚‹ã“ã¨ã§è¡¨ç¤ºã‚’変更ã§ãã¾ã™ã€‚" mobile/views/pages/widgets/activity.vue: activity: "アクティビティ" +mobile/views/pages/share.vue: + share-with: "{}ã§å…±æœ‰" + mobile/views/pages/messaging.vue: messaging: "メッセージ" diff --git a/src/client/app/auth/script.ts b/src/client/app/auth/script.ts index fd985c46ad307b9b50cc30112950d072783f0010..bdfdf70be3dca18d09b923f3571ac1c616177731 100644 --- a/src/client/app/auth/script.ts +++ b/src/client/app/auth/script.ts @@ -15,7 +15,7 @@ import Index from './views/index.vue'; * init */ init(launch => { - document.title = 'Misskey | アプリã®é€£æº'; + document.title = '%i18n:common.name% | %i18n:common.application-authorization%'; // Init router const router = new VueRouter({ diff --git a/src/client/app/auth/views/form.vue b/src/client/app/auth/views/form.vue index 80086e3861398ac6ea6f1d9b97127e892dbefb43..2d1e6d3e826b07027e79c6a2552dbe136a6949ee 100644 --- a/src/client/app/auth/views/form.vue +++ b/src/client/app/auth/views/form.vue @@ -1,7 +1,7 @@ <template> <div class="form"> <header> - <h1><i>{{ app.name }}</i>ãŒã‚ãªãŸã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ã‚’<b>許å¯</b>ã—ã¾ã™ã‹ï¼Ÿ</h1> + <h1>%i18n:@share-access%</h1> <img :src="app.iconUrl"/> </header> <div class="app"> @@ -11,25 +11,25 @@ <p class="description">{{ app.description }}</p> </section> <section> - <h2>ã“ã®ã‚¢ãƒ—リã¯æ¬¡ã®æ¨©é™ã‚’è¦æ±‚ã—ã¦ã„ã¾ã™:</h2> + <h2>%i18n:@permission-ask%</h2> <ul> <template v-for="p in app.permission"> - <li v-if="p == 'account-read'">アカウントã®æƒ…å ±ã‚’è¦‹ã‚‹ã€‚</li> - <li v-if="p == 'account-write'">アカウントã®æƒ…å ±ã‚’æ“作ã™ã‚‹ã€‚</li> - <li v-if="p == 'note-write'">投稿ã™ã‚‹ã€‚</li> - <li v-if="p == 'like-write'">ã„ã„ãã—ãŸã‚Šã„ã„ã解除ã™ã‚‹ã€‚</li> - <li v-if="p == 'following-write'">フォãƒãƒ¼ã—ãŸã‚Šãƒ•ã‚©ãƒãƒ¼è§£é™¤ã™ã‚‹ã€‚</li> - <li v-if="p == 'drive-read'">ドライブを見る。</li> - <li v-if="p == 'drive-write'">ドライブをæ“作ã™ã‚‹ã€‚</li> - <li v-if="p == 'notification-read'">通知を見る。</li> - <li v-if="p == 'notification-write'">通知をæ“作ã™ã‚‹ã€‚</li> + <li v-if="p == 'account-read'">%i18n:@account-read%</li> + <li v-if="p == 'account-write'">%i18n:@account-write%</li> + <li v-if="p == 'note-write'">%i18n:@note-write%</li> + <li v-if="p == 'like-write'">%i18n:@like-write%</li> + <li v-if="p == 'following-write'">%i18n:@following-write%</li> + <li v-if="p == 'drive-read'">%i18n:@drive-read%</li> + <li v-if="p == 'drive-write'">%i18n:@drive-write%</li> + <li v-if="p == 'notification-read'">%i18n:@notification-read%</li> + <li v-if="p == 'notification-write'">%i18n:@notification-write%</li> </template> </ul> </section> </div> <div class="action"> - <button @click="cancel">ã‚ャンセル</button> - <button @click="accept">アクセスを許å¯</button> + <button @click="cancel">%i18n:@cancel%</button> + <button @click="accept">%i18n:@accept%</button> </div> </div> </template> diff --git a/src/client/app/auth/views/index.vue b/src/client/app/auth/views/index.vue index 6d0ba3cda34740aa93f9b7b092106b5a6e843156..609e7589945c5857787bf010cc92e58a00c20bfa 100644 --- a/src/client/app/auth/views/index.vue +++ b/src/client/app/auth/views/index.vue @@ -1,7 +1,7 @@ <template> <div class="index"> <main v-if="$store.getters.isSignedIn"> - <p class="fetching" v-if="fetching">èªã¿è¾¼ã¿ä¸<mk-ellipsis/></p> + <p class="fetching" v-if="fetching">%i18n:@loading%<mk-ellipsis/></p> <x-form class="form" ref="form" @@ -11,20 +11,20 @@ @accepted="accepted" /> <div class="denied" v-if="state == 'denied'"> - <h1>アプリケーションã®é€£æºã‚’ã‚ャンセルã—ã¾ã—ãŸã€‚</h1> - <p>ã“ã®ã‚¢ãƒ—リãŒã‚ãªãŸã®ã‚¢ã‚«ã‚¦ãƒ³ãƒˆã«ã‚¢ã‚¯ã‚»ã‚¹ã™ã‚‹ã“ã¨ã¯ã‚ã‚Šã¾ã›ã‚“。</p> + <h1>%i18n:@denied%</h1> + <p>%i18n:@denied-paragraph%</p> </div> <div class="accepted" v-if="state == 'accepted'"> - <h1>{{ session.app.isAuthorized ? 'ã“ã®ã‚¢ãƒ—リã¯æ—¢ã«é€£æºæ¸ˆã¿ã§ã™' : 'アプリケーションã®é€£æºã‚’許å¯ã—ã¾ã—ãŸ' }}</h1> - <p v-if="session.app.callbackUrl">アプリケーションã«æˆ»ã£ã¦ã„ã¾ã™<mk-ellipsis/></p> - <p v-if="!session.app.callbackUrl">アプリケーションã«æˆ»ã£ã¦ã€ã‚„ã£ã¦ã„ã£ã¦ãã ã•ã„。</p> + <h1>{{ session.app.isAuthorized ? '%i18n:@already-authorized%' : '%i18n:@allowed%' }}</h1> + <p v-if="session.app.callbackUrl">%i18n:@callback-url%<mk-ellipsis/></p> + <p v-if="!session.app.callbackUrl">%i18n:@please-go-back%</p> </div> <div class="error" v-if="state == 'fetch-session-error'"> - <p>セッションãŒå˜åœ¨ã—ã¾ã›ã‚“。</p> + <p>%i18n:@error%</p> </div> </main> <main class="signin" v-if="!$store.getters.isSignedIn"> - <h1>サインインã—ã¦ãã ã•ã„</h1> + <h1>%i18n:@sign-in%</h1> <mk-signin/> </main> <footer><img src="/assets/auth/icon.svg" alt="Misskey"/></footer> diff --git a/src/client/app/common/scripts/compose-notification.ts b/src/client/app/common/scripts/compose-notification.ts index c93609bc590f3a4cb9f65c3883be9f1fce47c174..4fb0610fd7618a23f571fc386453caf60a107fe1 100644 --- a/src/client/app/common/scripts/compose-notification.ts +++ b/src/client/app/common/scripts/compose-notification.ts @@ -15,22 +15,22 @@ export default function(type, data): Notification { switch (type) { case 'drive_file_created': return { - title: 'ファイルãŒã‚¢ãƒƒãƒ—ãƒãƒ¼ãƒ‰ã•ã‚Œã¾ã—ãŸ', + title: '%i18n:common.notification.file-uploaded%', body: data.name, icon: data.url }; case 'unread_messaging_message': return { - title: `${getUserName(data.user)}ã•ã‚“ã‹ã‚‰ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸:`, + title: '%i18n:common.notification.message-from%'.split("{}")[0] + `${getUserName(data.user)}` + '%i18n:common.notification.message-from%'.split("{}")[1] , body: data.text, // TODO: getMessagingMessageSummary(data), icon: data.user.avatarUrl }; case 'reversi_invited': return { - title: '対局ã¸ã®æ‹›å¾…ãŒã‚ã‚Šã¾ã™', - body: `${getUserName(data.parent)}ã•ã‚“ã‹ã‚‰`, + title: '%i18n:common.notification.reversi-invited%', + body: '%i18n:common.notification.reversi-invited-by%'.split("{}")[0] + `${getUserName(data.parent)}` + '%i18n:common.notification.reversi-invited-by%'.split("{}")[1], icon: data.parent.avatarUrl }; @@ -38,21 +38,21 @@ export default function(type, data): Notification { switch (data.type) { case 'mention': return { - title: `${getUserName(data.user)}ã•ã‚“ã‹ã‚‰:`, + title: '%i18n:common.notification.notified-by%'.split("{}")[0] + `${getUserName(data.user)}ã•ã‚“ã‹ã‚‰:` + '%i18n:common.notification.notified-by%'.split("{}")[1], body: getNoteSummary(data), icon: data.user.avatarUrl }; case 'reply': return { - title: `${getUserName(data.user)}ã•ã‚“ã‹ã‚‰è¿”ä¿¡:`, + title: '%i18n:common.notification.reply-from%'.split("{}")[0] + `${getUserName(data.user)}` + '%i18n:common.notification.reply-from%'.split("{}")[1], body: getNoteSummary(data), icon: data.user.avatarUrl }; case 'quote': return { - title: `${getUserName(data.user)}ã•ã‚“ãŒå¼•ç”¨:`, + title: '%i18n:common.notification.quoted-by%'.split("{}")[0] + `${getUserName(data.user)}` + '%i18n:common.notification.quoted-by%'.split("{}")[1], body: getNoteSummary(data), icon: data.user.avatarUrl }; diff --git a/src/client/app/common/scripts/date-stringify.ts b/src/client/app/common/scripts/date-stringify.ts index e51de8833d8b6ba2ce6410376a78f00c07505cc7..2b8e5255679ca8a3de97308501d7e5c8638ab227 100644 --- a/src/client/app/common/scripts/date-stringify.ts +++ b/src/client/app/common/scripts/date-stringify.ts @@ -1,12 +1,12 @@ export default date => { if (typeof date == 'string') date = new Date(date); return ( - date.getFullYear() + 'å¹´' + - (date.getMonth() + 1) + '月' + - date.getDate() + 'æ—¥' + + date.getFullYear() + '%i18n:common.date.full-year%' + + (date.getMonth() + 1) + '%i18n:common.date.month%' + + date.getDate() + '%i18n:common.date.day%' + ' ' + - date.getHours() + '時' + - date.getMinutes() + '分' + + date.getHours() + '%i18n:common.date.hours%' + + date.getMinutes() + '%i18n:common.date.minutes%' + ' ' + `(${['æ—¥', '月', 'ç«', 'æ°´', '木', '金', '土'][date.getDay()]})` ); diff --git a/src/client/app/common/scripts/fuck-ad-block.ts b/src/client/app/common/scripts/fuck-ad-block.ts index 9bcf7deefffca3c5e2147ef8b74e30e989d8a9e7..ed0904aeb36ec75b7b1128cd7c98ce9dfa9a95c6 100644 --- a/src/client/app/common/scripts/fuck-ad-block.ts +++ b/src/client/app/common/scripts/fuck-ad-block.ts @@ -5,8 +5,8 @@ declare const fuckAdBlock: any; export default (os) => { function adBlockDetected() { os.apis.dialog({ - title: '%fa:exclamation-triangle%広告ブãƒãƒƒã‚«ãƒ¼ã‚’無効ã«ã—ã¦ãã ã•ã„', - text: '<strong>Misskeyã¯åºƒå‘Šã‚’掲載ã—ã¦ã„ã¾ã›ã‚“</strong>ãŒã€åºƒå‘Šã‚’ブãƒãƒƒã‚¯ã™ã‚‹æ©Ÿèƒ½ãŒæœ‰åŠ¹ã ã¨ä¸€éƒ¨ã®æ©Ÿèƒ½ãŒåˆ©ç”¨ã§ããªã‹ã£ãŸã‚Šã€ä¸å…·åˆãŒç™ºç”Ÿã™ã‚‹å ´åˆãŒã‚ã‚Šã¾ã™ã€‚', + title: '%fa:exclamation-triangle%%i18n:common.adblock.detected%', + text: '%i18n:common.adblock.warning%', actins: [{ text: 'OK' }] diff --git a/src/client/app/common/views/pages/follow.vue b/src/client/app/common/views/pages/follow.vue index 4b8c2d3b7ca7f0dc61b81b17426fdf7bf2a530d1..e1b5b1f1203111b2256e672dd056383e77cb7034 100644 --- a/src/client/app/common/views/pages/follow.vue +++ b/src/client/app/common/views/pages/follow.vue @@ -71,7 +71,7 @@ export default Vue.extend({ this.user = user; this.fetching = false; Progress.done(); - document.title = getUserName(this.user) + ' | Misskey'; + document.title = getUserName(this.user) + ' | %i18n:common.name%'; }); }, diff --git a/src/client/app/desktop/views/components/notes.vue b/src/client/app/desktop/views/components/notes.vue index c9595080200b2812a374b38c97f13dc029631e40..0ec2f16dbc6107d17d8841795e4b0614d71b7d75 100644 --- a/src/client/app/desktop/views/components/notes.vue +++ b/src/client/app/desktop/views/components/notes.vue @@ -187,7 +187,7 @@ export default Vue.extend({ clearNotification() { this.unreadCount = 0; - document.title = 'Misskey'; + document.title = '%i18n:common.name%'; }, onVisibilitychange() { diff --git a/src/client/app/desktop/views/pages/home-customize.vue b/src/client/app/desktop/views/pages/home-customize.vue index da5f15bb691dc56e838f55dedd20cd54467a4438..ffdcf39fe214a29b8e8a5712dd872f214a35fc79 100644 --- a/src/client/app/desktop/views/pages/home-customize.vue +++ b/src/client/app/desktop/views/pages/home-customize.vue @@ -6,7 +6,7 @@ import Vue from 'vue'; export default Vue.extend({ mounted() { - document.title = 'Misskey - %i18n:@title%'; + document.title = '%i18n:common.name% - %i18n:@title%'; } }); </script> diff --git a/src/client/app/desktop/views/pages/home.vue b/src/client/app/desktop/views/pages/home.vue index 60b257edb74278ace495a249f42409f4cb787254..0c42e42bd2b9d1f97fa2fc5f3b28129cec8f817f 100644 --- a/src/client/app/desktop/views/pages/home.vue +++ b/src/client/app/desktop/views/pages/home.vue @@ -16,7 +16,7 @@ export default Vue.extend({ } }, mounted() { - document.title = 'Misskey'; + document.title = '%i18n:common.name%'; Progress.start(); }, diff --git a/src/client/app/desktop/views/pages/share.vue b/src/client/app/desktop/views/pages/share.vue index b1317f93e5983d1f0dd160b916b396e08bbedc00..f5f5c4e18498fd2ee4f372ab6bc656d72cdf9269 100644 --- a/src/client/app/desktop/views/pages/share.vue +++ b/src/client/app/desktop/views/pages/share.vue @@ -1,12 +1,12 @@ <template> <div class="pptjhabgjtt7kwskbfv4y3uml6fpuhmr"> - <h1>%i18n:@share-with%</h1> + <h1>{{'%i18n:@share-with%'.split("{}")[0] + '%i18n:common.name%' + '%i18n:@share-with%'.split("{}")[1]}}</h1> <div> <mk-signin v-if="!$store.getters.isSignedIn"/> <mk-post-form v-else-if="!posted" :initial-text="text" :instant="true" @posted="posted = true"/> <p v-if="posted" class="posted">%fa:check%</p> </div> - <button v-if="posted" class="ui button" @click="close">%i18n:@close%</button> + <button v-if="posted" class="ui button" @click="close">%i18n:common.close%</button> </div> </template> diff --git a/src/client/app/desktop/views/pages/user/user.vue b/src/client/app/desktop/views/pages/user/user.vue index 64a4eaa8723e3a24a31d0c632d3d9ad03cdd8ee2..1a83f8134200771f60b17c1c8e5f3d329c2e3c06 100644 --- a/src/client/app/desktop/views/pages/user/user.vue +++ b/src/client/app/desktop/views/pages/user/user.vue @@ -68,7 +68,7 @@ export default Vue.extend({ this.user = user; this.fetching = false; Progress.done(); - document.title = getUserName(this.user) + ' | Misskey'; + document.title = getUserName(this.user) + ' | %i18n:common.name%'; }); }, diff --git a/src/client/app/desktop/views/pages/welcome.vue b/src/client/app/desktop/views/pages/welcome.vue index 7449a3e5a4533e154d3d637180b8cd9b4f6bc91a..9543a55b9a6582c0ede386a5810f75671e0b8945 100644 --- a/src/client/app/desktop/views/pages/welcome.vue +++ b/src/client/app/desktop/views/pages/welcome.vue @@ -17,7 +17,7 @@ <main> <div class="about"> <h1 v-if="name">{{ name }}</h1> - <h1 v-else><img :src="$store.state.device.darkmode ? 'assets/title.dark.svg' : 'assets/title.light.svg'" alt="Misskey"></h1> + <h1 v-else><img :src="$store.state.device.darkmode ? 'assets/title.dark.svg' : 'assets/title.light.svg'" alt="%i18n:common.name%"></h1> <p class="powerd-by" v-if="name">%i18n:@powered-by-misskey%</p> <p class="desc" v-html="description || '%i18n:common.about%'"></p> <a ref="signup" @click="signup">📦 %i18n:@signup%</a> @@ -32,7 +32,7 @@ <mk-nav class="nav"/> </div> <mk-forkit class="forkit"/> - <img src="assets/title.dark.svg" alt="Misskey"> + <img src="assets/title.dark.svg" alt="%i18n:common.name%"> </div> <div class="tl"> <mk-welcome-timeline :max="20"/> diff --git a/src/client/app/dev/views/ui.vue b/src/client/app/dev/views/ui.vue index 4a0fcee635beb9e82b619c196fa0979720ae0414..0a1cdf829bf8e9bce4958ca093ba6a7b96a9a175 100644 --- a/src/client/app/dev/views/ui.vue +++ b/src/client/app/dev/views/ui.vue @@ -1,7 +1,7 @@ <template> <div> <b-navbar toggleable="md" type="dark" variant="info"> - <b-navbar-brand>Misskey Developers</b-navbar-brand> + <b-navbar-brand>%i18n:common.name% Developers</b-navbar-brand> <b-navbar-nav> <b-nav-item to="/">Home</b-nav-item> <b-nav-item to="/apps">Apps</b-nav-item> diff --git a/src/client/app/mobile/views/components/notes.vue b/src/client/app/mobile/views/components/notes.vue index 01f3d76c74989d25fda2f2dace5994701c4a41a9..cba8ef180464463226f652bd78d19fe8965c81f3 100644 --- a/src/client/app/mobile/views/components/notes.vue +++ b/src/client/app/mobile/views/components/notes.vue @@ -183,7 +183,7 @@ export default Vue.extend({ clearNotification() { this.unreadCount = 0; - document.title = 'Misskey'; + document.title = '%i18n:common.name%'; }, onVisibilitychange() { diff --git a/src/client/app/mobile/views/pages/drive.vue b/src/client/app/mobile/views/pages/drive.vue index 2cf3f510a2f3c195ec3208023e2631d0ef4e8f5b..9c635be05b6e01b2bd2254e2e31fd15d00ce30ac 100644 --- a/src/client/app/mobile/views/pages/drive.vue +++ b/src/client/app/mobile/views/pages/drive.vue @@ -43,7 +43,7 @@ export default Vue.extend({ window.addEventListener('popstate', this.onPopState); }, mounted() { - document.title = 'Misskey Drive'; + document.title = '%i18n:common.name% Drive'; document.documentElement.style.background = '#fff'; }, beforeDestroy() { @@ -63,7 +63,7 @@ export default Vue.extend({ (this.$refs as any).browser.openContextMenu(); }, onMoveRoot(silent) { - const title = 'Misskey Drive'; + const title = '%i18n:common.name% Drive'; if (!silent) { // Rewrite URL @@ -76,7 +76,7 @@ export default Vue.extend({ this.folder = null; }, onOpenFolder(folder, silent) { - const title = folder.name + ' | Misskey Drive'; + const title = folder.name + ' | %i18n:common.name% Drive'; if (!silent) { // Rewrite URL @@ -89,7 +89,7 @@ export default Vue.extend({ this.folder = folder; }, onOpenFile(file, silent) { - const title = file.name + ' | Misskey Drive'; + const title = file.name + ' | %i18n:common.name% Drive'; if (!silent) { // Rewrite URL diff --git a/src/client/app/mobile/views/pages/favorites.vue b/src/client/app/mobile/views/pages/favorites.vue index 1cccf169b023f0a0a4dbf0c7d04417b1b37198b0..88a84bd8a214c51e6cdca5eb1eadd2befda2d98d 100644 --- a/src/client/app/mobile/views/pages/favorites.vue +++ b/src/client/app/mobile/views/pages/favorites.vue @@ -28,7 +28,7 @@ export default Vue.extend({ this.fetch(); }, mounted() { - document.title = 'Misskey | %i18n:@notifications%'; + document.title = '%i18n:common.name% | %i18n:@notifications%'; }, methods: { fetch() { diff --git a/src/client/app/mobile/views/pages/followers.vue b/src/client/app/mobile/views/pages/followers.vue index 7dc72a7c3086d1fbbbfe8fc72195da5c33bde53d..4956eb1b94ade7be610e9960d43ebdbadd069bca 100644 --- a/src/client/app/mobile/views/pages/followers.vue +++ b/src/client/app/mobile/views/pages/followers.vue @@ -49,7 +49,7 @@ export default Vue.extend({ this.user = user; this.fetching = false; - document.title = '%i18n:@followers-of%'.replace('{}', this.name) + ' | Misskey'; + document.title = '%i18n:@followers-of%'.replace('{}', this.name) + ' | %i18n:common.name%'; }); }, onLoaded() { diff --git a/src/client/app/mobile/views/pages/following.vue b/src/client/app/mobile/views/pages/following.vue index 6895a76d53189d3ecde3ff64b2f01548d51d398f..fa6807a2454354c987aefd47f566a855b416066f 100644 --- a/src/client/app/mobile/views/pages/following.vue +++ b/src/client/app/mobile/views/pages/following.vue @@ -48,7 +48,7 @@ export default Vue.extend({ this.user = user; this.fetching = false; - document.title = '%i18n:@followers-of%'.replace('{}', this.name) + ' | Misskey'; + document.title = '%i18n:@followers-of%'.replace('{}', this.name) + ' | %i18n:common.name%'; }); }, onLoaded() { diff --git a/src/client/app/mobile/views/pages/home.vue b/src/client/app/mobile/views/pages/home.vue index 2f57e422a310cb0ef45d99a7468664d9fa3f3aec..7b14c7ee98afc410a6da795044d468106947186c 100644 --- a/src/client/app/mobile/views/pages/home.vue +++ b/src/client/app/mobile/views/pages/home.vue @@ -96,7 +96,7 @@ export default Vue.extend({ }, mounted() { - document.title = 'Misskey'; + document.title = '%i18n:common.name%'; Progress.start(); diff --git a/src/client/app/mobile/views/pages/messaging-room.vue b/src/client/app/mobile/views/pages/messaging-room.vue index 35ae5067617956fd8c5c5e51f2e7640e3b4d5b9b..24ffc658a3b42387acfa6f7c993ef038c0d27074 100644 --- a/src/client/app/mobile/views/pages/messaging-room.vue +++ b/src/client/app/mobile/views/pages/messaging-room.vue @@ -47,7 +47,7 @@ export default Vue.extend({ this.user = user; this.fetching = false; - document.title = `%i18n:@messaging%: ${Vue.filter('userName')(this.user)} | Misskey`; + document.title = `%i18n:@messaging%: ${Vue.filter('userName')(this.user)} | %i18n:common.name%`; }); } } diff --git a/src/client/app/mobile/views/pages/messaging.vue b/src/client/app/mobile/views/pages/messaging.vue index 8dcbc5d6c5fdf285bbbc039182f0cee7845b4434..b5a4f405fb979bdc29a6bfa4dc0050eb77635690 100644 --- a/src/client/app/mobile/views/pages/messaging.vue +++ b/src/client/app/mobile/views/pages/messaging.vue @@ -11,7 +11,7 @@ import getAcct from '../../../../../misc/acct/render'; export default Vue.extend({ mounted() { - document.title = 'Misskey %i18n:@messaging%'; + document.title = '%i18n:common.name% %i18n:@messaging%'; }, methods: { navigate(user) { diff --git a/src/client/app/mobile/views/pages/note.vue b/src/client/app/mobile/views/pages/note.vue index 146d89d22becf520fc001a12f7d7878cb3cdd5d7..64d46f051b1851197a8f49185ac618f8ecdef94a 100644 --- a/src/client/app/mobile/views/pages/note.vue +++ b/src/client/app/mobile/views/pages/note.vue @@ -31,7 +31,7 @@ export default Vue.extend({ this.fetch(); }, mounted() { - document.title = 'Misskey'; + document.title = '%i18n:common.name%'; }, methods: { fetch() { diff --git a/src/client/app/mobile/views/pages/notifications.vue b/src/client/app/mobile/views/pages/notifications.vue index fcd930997bb2ae92aab59b5c771ec87273cc0641..3688721613bcd5cb6ff49d67201eec51c2be5d7c 100644 --- a/src/client/app/mobile/views/pages/notifications.vue +++ b/src/client/app/mobile/views/pages/notifications.vue @@ -15,7 +15,7 @@ import Progress from '../../../common/scripts/loading'; export default Vue.extend({ mounted() { - document.title = 'Misskey | %i18n:@notifications%'; + document.title = '%i18n:common.name% | %i18n:@notifications%'; Progress.start(); }, diff --git a/src/client/app/mobile/views/pages/received-follow-requests.vue b/src/client/app/mobile/views/pages/received-follow-requests.vue index bf26a84ff940ae54058e1f22efad5d235fc70c27..fff2fdea5638de5129044a34c9c5087b052f2a70 100644 --- a/src/client/app/mobile/views/pages/received-follow-requests.vue +++ b/src/client/app/mobile/views/pages/received-follow-requests.vue @@ -25,7 +25,7 @@ export default Vue.extend({ }; }, mounted() { - document.title = 'Misskey | %i18n:@title%'; + document.title = '%i18n:common.name% | %i18n:@title%'; Progress.start(); diff --git a/src/client/app/mobile/views/pages/search.vue b/src/client/app/mobile/views/pages/search.vue index 2559922efb197c615008ce054f407f3987470ad9..7801068c1a00cc021f1a840fda573e965aaa25a4 100644 --- a/src/client/app/mobile/views/pages/search.vue +++ b/src/client/app/mobile/views/pages/search.vue @@ -34,7 +34,7 @@ export default Vue.extend({ } }, mounted() { - document.title = `%i18n:@search%: ${this.q} | Misskey`; + document.title = `%i18n:@search%: ${this.q} | %i18n:common.name%`; this.fetch(); }, diff --git a/src/client/app/mobile/views/pages/settings.vue b/src/client/app/mobile/views/pages/settings.vue index f4645b1837e798fa3176063a3365d1719bdcdfb9..73bff55e44cf500eda7b9b25abc8f82630ac7b58 100644 --- a/src/client/app/mobile/views/pages/settings.vue +++ b/src/client/app/mobile/views/pages/settings.vue @@ -142,7 +142,7 @@ export default Vue.extend({ }, mounted() { - document.title = 'Misskey | %i18n:@settings%'; + document.title = '%i18n:common.name% | %i18n:@settings%'; }, methods: { diff --git a/src/client/app/mobile/views/pages/share.vue b/src/client/app/mobile/views/pages/share.vue index c69498007d4206c18c12f104a9224ea3015cb4f8..3e33e32732c5c8fc401743591d04bf9396324285 100644 --- a/src/client/app/mobile/views/pages/share.vue +++ b/src/client/app/mobile/views/pages/share.vue @@ -1,6 +1,6 @@ <template> <div class="azibmfpleajagva420swmu4c3r7ni7iw"> - <h1>Misskeyã§å…±æœ‰</h1> + <h1>{{'%i18n:@share-with%'.split("{}")[0] + '%i18n:common.name%' + '%i18n:@share-with%'.split("{}")[1]}}</h1> <div> <mk-signin v-if="!$store.getters.isSignedIn"/> <mk-post-form v-else-if="!posted" :initial-text="text" :instant="true" @posted="posted = true"/> diff --git a/src/client/app/mobile/views/pages/user-lists.vue b/src/client/app/mobile/views/pages/user-lists.vue index 288295677ef8e463d83eac7890b402e6e989c09c..1cce3e9bdd17e5f1574bbb37daceee0889d9dd7c 100644 --- a/src/client/app/mobile/views/pages/user-lists.vue +++ b/src/client/app/mobile/views/pages/user-lists.vue @@ -23,7 +23,7 @@ export default Vue.extend({ }; }, mounted() { - document.title = 'Misskey | %i18n:@title%'; + document.title = '%i18n:common.name% | %i18n:@title%'; Progress.start(); diff --git a/src/client/app/mobile/views/pages/user.vue b/src/client/app/mobile/views/pages/user.vue index 2bc89b81be600addcbbc0568e209cd2ee17ca46b..d0163457170ccb956f08c1e07b85f1fc718f3e82 100644 --- a/src/client/app/mobile/views/pages/user.vue +++ b/src/client/app/mobile/views/pages/user.vue @@ -106,7 +106,7 @@ export default Vue.extend({ this.fetching = false; Progress.done(); - document.title = Vue.filter('userName')(this.user) + ' | Misskey'; + document.title = Vue.filter('userName')(this.user) + ' | %i18n:common.name%'; }); } } diff --git a/src/client/app/mobile/views/pages/welcome.vue b/src/client/app/mobile/views/pages/welcome.vue index d7c874af9ac3a9ad1141cc63eeadf1bb3a6419b5..acc8e2c490dd421dbc1b5e7f8c8a2ca6b86231af 100644 --- a/src/client/app/mobile/views/pages/welcome.vue +++ b/src/client/app/mobile/views/pages/welcome.vue @@ -1,7 +1,7 @@ <template> <div class="welcome"> <div> - <img :src="$store.state.device.darkmode ? 'assets/title.dark.svg' : 'assets/title.light.svg'" alt="Misskey"> + <img :src="$store.state.device.darkmode ? 'assets/title.dark.svg' : 'assets/title.light.svg'" alt="%i18n:common.name%"> <p class="host">{{ host }}</p> <div class="about"> <h2>{{ name || 'unidentified' }}</h2> diff --git a/src/client/app/mobile/views/pages/widgets.vue b/src/client/app/mobile/views/pages/widgets.vue index 0724cd03faaa180a9090f771790599a8a6c35b5b..4400132bf25ff1815ce13a1a6d95b94df47df9a0 100644 --- a/src/client/app/mobile/views/pages/widgets.vue +++ b/src/client/app/mobile/views/pages/widgets.vue @@ -102,12 +102,12 @@ export default Vue.extend({ }, mounted() { - document.title = 'Misskey'; + document.title = '%i18n:common.name%'; }, methods: { hint() { - alert('ã‚¦ã‚£ã‚¸ã‚§ãƒƒãƒˆã‚’è¿½åŠ /削除ã—ãŸã‚Šä¸¦ã¹æ›¿ãˆãŸã‚Šã§ãã¾ã™ã€‚ウィジェットを移動ã™ã‚‹ã«ã¯ã€Œä¸‰ã€ã‚’ドラッグã—ã¾ã™ã€‚ウィジェットを削除ã™ã‚‹ã«ã¯ã€Œxã€ã‚’タップã—ã¾ã™ã€‚ã„ãã¤ã‹ã®ã‚¦ã‚£ã‚¸ã‚§ãƒƒãƒˆã¯ã‚¿ãƒƒãƒ—ã™ã‚‹ã“ã¨ã§è¡¨ç¤ºã‚’変更ã§ãã¾ã™ã€‚'); + alert('%i18n:@widgets-hints%'); }, widgetFunc(id) {