diff --git a/.gitignore b/.gitignore index 51e6a31b74..2cea822c18 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ /node_modules /build /built +built /data /.cache-loader npm-debug.log diff --git a/locales/ja.yml b/locales/ja.yml index 4cbee25128..ecde1bb6a1 100644 --- a/locales/ja.yml +++ b/locales/ja.yml @@ -11,6 +11,8 @@ common: warning: "Misskeyは広告を掲載していませんが、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。" application-authorization: "アプリの連携" close: "閉じる" + do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。" + got-it: "わかった" customization-tips: title: "カスタマイズのヒント" paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。" @@ -26,7 +28,6 @@ common: notified-by: "{}さんから" reply-from: "{}さんから返信:" quoted-by: "{}さんが引用:" - name: "Misskey" time: unknown: "なぞのじかん" future: "未来" @@ -38,16 +39,10 @@ common: weeks_ago: "{}週間前" months_ago: "{}ヶ月前" years_ago: "{}年前" + month-and-day: "{month}月 {day}日" trash: "ゴミ箱" - date: - full-year: "年" - month: "月" - day: "日" - hours: "時" - minutes: "分" - weekday-short: sunday: "日" monday: "月" @@ -95,6 +90,7 @@ common: i-like-sushi: "私は(プリンよりむしろ)寿司が好き" show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示" verified-user: "認証済みのユーザー" + disable-animated-mfm: "投稿内の動きのあるテキストを無効にする" reversi: drawn: "引き分け" @@ -182,6 +178,10 @@ common/views/components/games/reversi/reversi.vue: waiting-for: "{}を待っています" cancel: "キャンセル" +common/views/components/games/reversi/reversi.game.vue: + surrender: "投了" + surrendered: "投了により" + common/views/components/games/reversi/reversi.index.vue: title: "Misskey Reversi" sub-title: "他のMisskeyユーザーとリバーシで対戦しよう" @@ -209,7 +209,7 @@ common/views/components/games/reversi/reversi.room.vue: looped-map: "ループマップ" can-put-everywhere: "どこでも置けるモード" settings-of-the-bot: "Botの設定" - this-gane-is-started-soon: "ゲームは数秒後に開始されます" + this-game-is-started-soon: "ゲームは数秒後に開始されます" waiting-for-other: "相手の準備が完了するのを待っています" waiting-for-me: "あなたの準備が完了するのを待っています" waiting-for-both: "準備中" @@ -254,12 +254,14 @@ common/views/components/messaging-room.vue: no-history: "これより過去の履歴はありません" resize-form: "ドラッグしてフォームの広さを調整" new-message: "新しいメッセージがあります" + only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです" common/views/components/messaging-room.form.vue: input-message-here: "ここにメッセージを入力" send: "送信" attach-from-local: "PCからファイルを添付する" attach-from-drive: "ドライブからファイルを添付する" + only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです" common/views/components/messaging-room.message.vue: is-read: "既読" @@ -306,6 +308,8 @@ common/views/components/signin.vue: token: "トークン" signing-in: "やってます..." signin: "サインイン" + or: "または" + signin-with-twitter: "Twitterでログイン" common/views/components/signup.vue: username: "ユーザー名" @@ -433,6 +437,18 @@ common/views/pages/follow.vue: request-pending: "フォロー許可待ち" follow-request: "フォロー申請" +desktop: + banner-crop-title: "バナーとして表示する部分を選択" + banner: "バナー" + uploading-banner: "新しいバナーをアップロードしています" + banner-updated: "バナーを更新しました" + choose-banner: "バナーにする画像を選択" + avatar-crop-title: "アバターとして表示する部分を選択" + avatar: "アバター" + uploading-avatar: "新しいアバターをアップロードしています" + avatar-updated: "アバターを更新しました" + choose-avatar: "アバターにする画像を選択" + desktop/views/components/activity.chart.vue: total: "Black ... Total" notes: "Blue ... Notes" @@ -592,6 +608,8 @@ desktop/views/components/notes.note.vue: detail: "詳細" private: "この投稿は非公開です" deleted: "この投稿は削除されました" + hide: "隠す" + see-more: "もっと見る" desktop/views/components/notes.vue: error: "読み込みに失敗しました。" @@ -630,6 +648,7 @@ desktop/views/components/post-form.vue: geolocation-alert: "お使いの端末は位置情報に対応していません" error: "エラー" enter-username: "ユーザー名を入力してください" + annotations: "内容への注釈 (オプション)" desktop/views/components/post-form-window.vue: note: "新規投稿" @@ -818,6 +837,7 @@ desktop/views/components/timeline.vue: desktop/views/components/ui.header.vue: welcome-back: "おかえりなさい、" + adjective: "さん" desktop/views/components/ui.header.account.vue: profile: "プロフィール" @@ -850,11 +870,10 @@ desktop/views/components/received-follow-requests-window.vue: accept: "承認" reject: "拒否" - - desktop/views/components/user-lists-window.vue: title: "リスト" create-list: "リストを作成" + list-name: "リスト名" desktop/views/components/user-preview.vue: notes: "投稿" @@ -959,6 +978,8 @@ desktop/views/pages/user/user.profile.vue: mute: "ミュートする" muted: "ミュートしています" unmute: "ミュート解除" + push-to-a-list: "リストに追加" + list-pushed: "{user}を{list}に追加しました。" desktop/views/pages/user/user.header.vue: posts: "投稿" @@ -1114,6 +1135,7 @@ mobile/views/components/timeline.vue: mobile/views/components/ui.header.vue: welcome-back: "おかえりなさい、" + adjective: "さん" mobile/views/components/ui.nav.vue: timeline: "タイムライン" @@ -1175,6 +1197,8 @@ mobile/views/pages/welcome.vue: mobile/views/pages/widgets.vue: dashboard: "ダッシュボード" widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。" + add-widget: "追加" + customization-tips: "カスタマイズのヒント" mobile/views/pages/widgets/activity.vue: activity: "アクティビティ" @@ -1223,6 +1247,7 @@ mobile/views/pages/settings/settings.profile.vue: mobile/views/pages/search.vue: search: "検索" empty: "「{}」に関する投稿は見つかりませんでした。" + not-found: "「{}」に関する投稿は見つかりませんでした。" mobile/views/pages/selectdrive.vue: select-file: "ファイルを選択" @@ -1327,3 +1352,7 @@ docs: name: "名前" type: "型" description: "説明" + + +dev/views/index.vue: + manage-apps: "アプリの管理" diff --git a/package.json b/package.json index 54bf473e52..64f9b577a4 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "name": "misskey", "author": "syuilo ", - "version": "5.10.0", - "clientVersion": "1.0.7828", + "version": "5.20.1", + "clientVersion": "1.0.8105", "codename": "nighthike", "main": "./built/index.js", "private": true, @@ -43,7 +43,6 @@ "@types/is-root": "1.0.0", "@types/is-url": "1.2.28", "@types/js-yaml": "3.11.2", - "@types/jsdom": "11.0.6", "@types/koa": "2.0.46", "@types/koa-bodyparser": "5.0.1", "@types/koa-compress": "2.0.8", @@ -60,8 +59,7 @@ "@types/mocha": "5.2.3", "@types/mongodb": "3.1.3", "@types/ms": "0.7.30", - "@types/node": "10.5.5", - "@types/parse5": "5.0.0", + "@types/node": "10.5.7", "@types/portscanner": "2.1.0", "@types/pug": "2.0.4", "@types/qrcode": "1.2.0", @@ -90,7 +88,7 @@ "bootstrap-vue": "2.0.0-rc.11", "cafy": "11.3.0", "chalk": "2.4.1", - "commander": "2.16.0", + "commander": "2.17.1", "crc-32": "1.2.0", "css-loader": "1.0.0", "dateformat": "3.0.3", @@ -100,7 +98,7 @@ "diskusage": "0.2.4", "dompurify": "1.0.5", "elasticsearch": "15.1.1", - "element-ui": "2.4.5", + "element-ui": "2.4.6", "emojilib": "2.3.0", "escape-regexp": "0.0.1", "eslint": "5.0.1", @@ -108,7 +106,7 @@ "eventemitter3": "3.1.0", "exif-js": "2.3.0", "file-loader": "1.1.11", - "file-type": "8.1.0", + "file-type": "9.0.0", "fuckadblock": "3.2.1", "gulp": "3.9.1", "gulp-cssnano": "2.1.3", @@ -156,7 +154,7 @@ "monk": "6.0.6", "ms": "2.1.1", "nan": "2.10.0", - "node-sass": "4.9.2", + "node-sass": "4.9.3", "node-sass-json-importer": "3.3.1", "nprogress": "0.2.0", "object-assign-deep": "0.4.0", @@ -185,11 +183,12 @@ "showdown-highlightjs-extension": "0.1.2", "single-line-log": "1.1.2", "speakeasy": "2.0.0", - "style-loader": "0.21.0", + "stringz": "1.0.0", + "style-loader": "0.22.1", "stylus": "0.54.5", "stylus-loader": "3.0.2", - "summaly": "2.0.6", - "systeminformation": "3.42.8", + "summaly": "2.1.2", + "systeminformation": "3.42.9", "syuilo-password-strength": "0.0.1", "textarea-caret": "3.1.0", "tmp": "0.0.33", @@ -197,7 +196,7 @@ "ts-node": "7.0.0", "tslint": "5.10.0", "typescript": "2.9.2", - "typescript-eslint-parser": "17.0.1", + "typescript-eslint-parser": "18.0.0", "uglify-es": "3.3.9", "url-loader": "1.0.1", "uuid": "3.3.2", @@ -206,7 +205,7 @@ "vue-cropperjs": "2.2.1", "vue-js-modal": "1.3.16", "vue-json-tree-view": "2.1.4", - "vue-loader": "15.2.6", + "vue-loader": "15.3.0", "vue-router": "3.0.1", "vue-style-loader": "4.1.1", "vue-template-compiler": "2.5.17", @@ -215,7 +214,7 @@ "vuex-persistedstate": "2.5.4", "web-push": "3.3.2", "webfinger.js": "2.6.6", - "webpack": "4.16.4", + "webpack": "4.16.5", "webpack-cli": "3.1.0", "websocket": "1.0.26", "ws": "6.0.0", diff --git a/src/client/app/auth/script.ts b/src/client/app/auth/script.ts index bdfdf70be3..64ab6536db 100644 --- a/src/client/app/auth/script.ts +++ b/src/client/app/auth/script.ts @@ -8,14 +8,14 @@ import VueRouter from 'vue-router'; import './style.styl'; import init from '../init'; - import Index from './views/index.vue'; +import * as config from '../config'; /** * init */ init(launch => { - document.title = '%i18n:common.name% | %i18n:common.application-authorization%'; + document.title = `${config.name} | %i18n:common.application-authorization%`; // Init router const router = new VueRouter({ diff --git a/src/client/app/common/scripts/compose-notification.ts b/src/client/app/common/scripts/compose-notification.ts index 4fb0610fd7..f42af94370 100644 --- a/src/client/app/common/scripts/compose-notification.ts +++ b/src/client/app/common/scripts/compose-notification.ts @@ -38,7 +38,7 @@ export default function(type, data): Notification { switch (data.type) { case 'mention': return { - title: '%i18n:common.notification.notified-by%'.split("{}")[0] + `${getUserName(data.user)}さんから:` + '%i18n:common.notification.notified-by%'.split("{}")[1], + 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 }; diff --git a/src/client/app/common/scripts/date-stringify.ts b/src/client/app/common/scripts/date-stringify.ts deleted file mode 100644 index 2b8e525567..0000000000 --- a/src/client/app/common/scripts/date-stringify.ts +++ /dev/null @@ -1,13 +0,0 @@ -export default date => { - if (typeof date == 'string') date = new Date(date); - return ( - date.getFullYear() + '%i18n:common.date.full-year%' + - (date.getMonth() + 1) + '%i18n:common.date.month%' + - date.getDate() + '%i18n:common.date.day%' + - ' ' + - date.getHours() + '%i18n:common.date.hours%' + - date.getMinutes() + '%i18n:common.date.minutes%' + - ' ' + - `(${['日', '月', '火', '水', '木', '金', '土'][date.getDay()]})` - ); -}; diff --git a/src/client/app/common/views/components/autocomplete.vue b/src/client/app/common/views/components/autocomplete.vue index cd6066877c..b274eaa0a0 100644 --- a/src/client/app/common/views/components/autocomplete.vue +++ b/src/client/app/common/views/components/autocomplete.vue @@ -132,7 +132,7 @@ export default Vue.extend({ this.users = users; this.fetching = false; } else { - (this as any).api('users/search_by_username', { + (this as any).api('users/search', { query: this.q, limit: 30 }).then(users => { diff --git a/src/client/app/common/views/components/avatar.vue b/src/client/app/common/views/components/avatar.vue index a924b62e64..6685296c16 100644 --- a/src/client/app/common/views/components/avatar.vue +++ b/src/client/app/common/views/components/avatar.vue @@ -1,6 +1,8 @@ diff --git a/src/client/app/common/views/components/games/reversi/reversi.game.vue b/src/client/app/common/views/components/games/reversi/reversi.game.vue index bbfec2c1cc..d1809d741f 100644 --- a/src/client/app/common/views/components/games/reversi/reversi.game.vue +++ b/src/client/app/common/views/components/games/reversi/reversi.game.vue @@ -1,14 +1,18 @@