Compare commits

...

567 Commits

Author SHA1 Message Date
syuilo 38e8d4bbea 10.70.0 2018-12-29 06:03:21 +09:00
syuilo cb106e6fe4 🎨 2018-12-29 05:55:09 +09:00
syuilo 61411605b8 Merge pull request #3750 from syuilo/l10n_develop
New Crowdin translations
2018-12-29 05:52:34 +09:00
syuilo 0ac7682188 Better note filtering 2018-12-29 05:51:17 +09:00
syuilo d7af18efbd [Client] Renote数の表示を廃止 2018-12-29 05:43:31 +09:00
syuilo 8bb388f62a New translations ja-JP.yml (English) 2018-12-29 04:52:33 +09:00
syuilo ee36956451 New translations ja-JP.yml (English) 2018-12-29 04:21:50 +09:00
syuilo f1a0e95489 Improve usability 2018-12-29 03:12:22 +09:00
syuilo de5d9470af New translations ja-JP.yml (Norwegian) 2018-12-29 03:02:56 +09:00
syuilo a9838495ce New translations ja-JP.yml (Dutch) 2018-12-29 03:02:51 +09:00
syuilo d34c080822 New translations ja-JP.yml (Japanese, Kansai) 2018-12-29 03:02:46 +09:00
syuilo 59f55a8291 New translations ja-JP.yml (Spanish) 2018-12-29 03:02:42 +09:00
syuilo 79ace6238a New translations ja-JP.yml (Russian) 2018-12-29 03:02:35 +09:00
syuilo 89e88802b9 New translations ja-JP.yml (Portuguese) 2018-12-29 03:02:31 +09:00
syuilo c7f969a002 New translations ja-JP.yml (Polish) 2018-12-29 03:02:26 +09:00
syuilo 18b186068d New translations ja-JP.yml (Korean) 2018-12-29 03:02:22 +09:00
syuilo 037c67cbfb New translations ja-JP.yml (Italian) 2018-12-29 03:02:17 +09:00
syuilo c3ccee9097 New translations ja-JP.yml (German) 2018-12-29 03:02:13 +09:00
syuilo 2449183f44 New translations ja-JP.yml (French) 2018-12-29 03:02:09 +09:00
syuilo 1c98226621 New translations ja-JP.yml (English) 2018-12-29 03:02:03 +09:00
syuilo b405669672 New translations ja-JP.yml (Chinese Simplified) 2018-12-29 03:01:58 +09:00
syuilo 53fbe675a7 New translations ja-JP.yml (Catalan) 2018-12-29 03:01:53 +09:00
syuilo 6bcc174456 Clean up 2018-12-29 02:58:04 +09:00
syuilo a3493c4f07 Privateの公開範囲を廃止 2018-12-29 02:55:46 +09:00
syuilo 545ced7826 Make autoAcceptFollowed default 2018-12-29 02:46:57 +09:00
MeiMei a9a476a0d5 Resolve #3786 (#3788) 2018-12-29 02:04:29 +09:00
syuilo 8dfd35303c New translations ja-JP.yml (Norwegian) 2018-12-28 21:43:24 +09:00
syuilo 498ca306e4 New translations ja-JP.yml (Dutch) 2018-12-28 21:43:18 +09:00
syuilo 5a46e08165 New translations ja-JP.yml (Japanese, Kansai) 2018-12-28 21:43:14 +09:00
syuilo c0c57044cc New translations ja-JP.yml (Spanish) 2018-12-28 21:43:09 +09:00
syuilo 42d00b96c6 New translations ja-JP.yml (Russian) 2018-12-28 21:43:04 +09:00
syuilo 072360947b New translations ja-JP.yml (Portuguese) 2018-12-28 21:43:00 +09:00
syuilo d60ba8e37d New translations ja-JP.yml (Polish) 2018-12-28 21:42:53 +09:00
syuilo c10cf60059 New translations ja-JP.yml (Korean) 2018-12-28 21:42:47 +09:00
syuilo 880689e28a New translations ja-JP.yml (Italian) 2018-12-28 21:42:42 +09:00
syuilo ade7050996 New translations ja-JP.yml (German) 2018-12-28 21:42:35 +09:00
syuilo 71b5fae4d9 New translations ja-JP.yml (French) 2018-12-28 21:42:30 +09:00
syuilo d398e87ea1 New translations ja-JP.yml (English) 2018-12-28 21:42:25 +09:00
syuilo 6256d021e6 New translations ja-JP.yml (Chinese Simplified) 2018-12-28 21:42:20 +09:00
syuilo 405f242ff9 New translations ja-JP.yml (Catalan) 2018-12-28 21:42:15 +09:00
MeiMei 8823a6c1a1 フォローしているユーザーからのフォローを自動承認するオプション (#3780) 2018-12-28 21:36:58 +09:00
MeiMei 65a82f32be Supports CSS Scrollbars (#3783)
* Supports CSS Scrollbars

* fix
2018-12-28 21:34:35 +09:00
syuilo fd593458a6 New translations ja-JP.yml (Korean) 2018-12-28 07:42:07 +09:00
syuilo eead9fad03 10.69.0 2018-12-28 05:16:24 +09:00
syuilo b498072f9d 🎨 2018-12-28 05:14:04 +09:00
syuilo f56a961db2 New translations ja-JP.yml (Norwegian) 2018-12-28 05:13:16 +09:00
syuilo 5d224f4eac New translations ja-JP.yml (Dutch) 2018-12-28 05:13:11 +09:00
syuilo 5b5edae11c New translations ja-JP.yml (Japanese, Kansai) 2018-12-28 05:13:07 +09:00
syuilo bd51154c46 New translations ja-JP.yml (Spanish) 2018-12-28 05:13:03 +09:00
syuilo 749a1ff8b6 New translations ja-JP.yml (Russian) 2018-12-28 05:12:58 +09:00
syuilo b06d46f46f New translations ja-JP.yml (Portuguese) 2018-12-28 05:12:54 +09:00
syuilo 7146a534df New translations ja-JP.yml (Polish) 2018-12-28 05:12:48 +09:00
syuilo ef51e591ee New translations ja-JP.yml (Korean) 2018-12-28 05:12:41 +09:00
syuilo 9d2f4d3ffb New translations ja-JP.yml (Italian) 2018-12-28 05:12:34 +09:00
syuilo f7e0b196eb New translations ja-JP.yml (German) 2018-12-28 05:12:29 +09:00
syuilo feb7e58912 New translations ja-JP.yml (French) 2018-12-28 05:12:23 +09:00
syuilo fbf04392c9 New translations ja-JP.yml (English) 2018-12-28 05:12:19 +09:00
syuilo e650818952 New translations ja-JP.yml (Chinese Simplified) 2018-12-28 05:12:15 +09:00
syuilo 76fcb1af87 New translations ja-JP.yml (Catalan) 2018-12-28 05:12:09 +09:00
syuilo cce3e52642 通知の管理を強化
Resolve #3772
2018-12-28 05:06:25 +09:00
syuilo 8c762e7b8e 🎵 2018-12-28 04:36:24 +09:00
syuilo f0dafa04a5 🎨 2018-12-28 04:30:37 +09:00
syuilo 81f39b3b36 🎨 2018-12-28 04:28:16 +09:00
syuilo b162471d3e 🎨 2018-12-28 04:26:32 +09:00
syuilo 2736e8d6fa New translations ja-JP.yml (English) 2018-12-28 03:42:36 +09:00
syuilo 182f6f8faa New translations ja-JP.yml (Norwegian) 2018-12-28 01:03:26 +09:00
syuilo ff34655221 New translations ja-JP.yml (Dutch) 2018-12-28 01:03:20 +09:00
syuilo f6ce6109f9 New translations ja-JP.yml (Japanese, Kansai) 2018-12-28 01:03:15 +09:00
syuilo 899ac15d88 New translations ja-JP.yml (Spanish) 2018-12-28 01:03:09 +09:00
syuilo 7132f2062c New translations ja-JP.yml (Russian) 2018-12-28 01:03:04 +09:00
syuilo 96b354c7f2 New translations ja-JP.yml (Portuguese) 2018-12-28 01:02:59 +09:00
syuilo 715664a523 New translations ja-JP.yml (Polish) 2018-12-28 01:02:54 +09:00
syuilo e8ddfb4bfe New translations ja-JP.yml (Korean) 2018-12-28 01:02:49 +09:00
syuilo 2a1229978e New translations ja-JP.yml (Italian) 2018-12-28 01:02:44 +09:00
syuilo b8af3515cd New translations ja-JP.yml (German) 2018-12-28 01:02:39 +09:00
syuilo f99e3f3d42 New translations ja-JP.yml (French) 2018-12-28 01:02:35 +09:00
syuilo d6057bd830 New translations ja-JP.yml (English) 2018-12-28 01:02:30 +09:00
syuilo 975e57ec48 New translations ja-JP.yml (Chinese Simplified) 2018-12-28 01:02:26 +09:00
syuilo bd35965c99 New translations ja-JP.yml (Catalan) 2018-12-28 01:02:20 +09:00
MeiMei 1029bff5ff Undo reaction with clicking minus (#3773)
* Undo reaction with clicking minus

* fix isMyNote
2018-12-28 01:01:58 +09:00
syuilo 6c1893f869 10.68.0 2018-12-27 23:38:53 +09:00
syuilo 0a89ba60bd New translations ja-JP.yml (English) 2018-12-27 23:32:01 +09:00
syuilo c6e418a242 New translations ja-JP.yml (Norwegian) 2018-12-27 23:23:35 +09:00
syuilo d9a6666ba8 New translations ja-JP.yml (Dutch) 2018-12-27 23:23:29 +09:00
syuilo ab849fbbef New translations ja-JP.yml (Japanese, Kansai) 2018-12-27 23:23:24 +09:00
syuilo 9d6b6053a6 New translations ja-JP.yml (Spanish) 2018-12-27 23:23:19 +09:00
syuilo ddfd64944d New translations ja-JP.yml (Russian) 2018-12-27 23:23:12 +09:00
syuilo 51153ed287 New translations ja-JP.yml (Portuguese) 2018-12-27 23:23:07 +09:00
syuilo 0e7bbd1b32 New translations ja-JP.yml (Polish) 2018-12-27 23:23:03 +09:00
syuilo 5049791d7f New translations ja-JP.yml (Korean) 2018-12-27 23:22:57 +09:00
syuilo 1ebcf8d915 New translations ja-JP.yml (Italian) 2018-12-27 23:22:51 +09:00
syuilo e01873811a New translations ja-JP.yml (German) 2018-12-27 23:22:45 +09:00
syuilo d078b871e1 New translations ja-JP.yml (French) 2018-12-27 23:22:39 +09:00
syuilo c6375ae864 New translations ja-JP.yml (English) 2018-12-27 23:22:34 +09:00
syuilo 483467e32f New translations ja-JP.yml (Chinese Simplified) 2018-12-27 23:22:29 +09:00
syuilo c84d43bc5f New translations ja-JP.yml (Catalan) 2018-12-27 23:22:23 +09:00
MeiMei fdd42fc2d7 user mention (#3771) 2018-12-27 23:14:30 +09:00
Aya Morisawa 8573e258f8 Set cursor default on hover the own reaction
Co-authored-by: syuilo <syuilotan@yahoo.co.jp>
2018-12-27 23:02:32 +09:00
Aya Morisawa 6943c7d2d8 Resolve #3770
Co-authored-by: syuilo <syuilotan@yahoo.co.jp>
2018-12-27 22:54:50 +09:00
syuilo 4a42bf7b19 New translations ja-JP.yml (Norwegian) 2018-12-27 21:13:13 +09:00
syuilo b982f97c05 New translations ja-JP.yml (Dutch) 2018-12-27 21:13:06 +09:00
syuilo d9207788d3 New translations ja-JP.yml (Japanese, Kansai) 2018-12-27 21:13:01 +09:00
syuilo 0ad48cc896 New translations ja-JP.yml (Spanish) 2018-12-27 21:12:57 +09:00
syuilo 5e191a1f5b New translations ja-JP.yml (Russian) 2018-12-27 21:12:52 +09:00
syuilo 8069e44d0a New translations ja-JP.yml (Portuguese) 2018-12-27 21:12:48 +09:00
syuilo 0a83f0fd67 New translations ja-JP.yml (Polish) 2018-12-27 21:12:42 +09:00
syuilo 83c54fb6b9 New translations ja-JP.yml (Korean) 2018-12-27 21:12:38 +09:00
syuilo 5f6b0f689f New translations ja-JP.yml (Italian) 2018-12-27 21:12:32 +09:00
syuilo 1b0b96526b New translations ja-JP.yml (German) 2018-12-27 21:12:27 +09:00
syuilo edb0469787 New translations ja-JP.yml (French) 2018-12-27 21:12:23 +09:00
syuilo 3256a0914e New translations ja-JP.yml (English) 2018-12-27 21:12:18 +09:00
syuilo 3c15182f24 New translations ja-JP.yml (Chinese Simplified) 2018-12-27 21:12:12 +09:00
syuilo f7bc5e3c0b New translations ja-JP.yml (Catalan) 2018-12-27 21:12:07 +09:00
Aya Morisawa 19f327701d Fix kao 2018-12-27 21:10:40 +09:00
Aya Morisawa 6b30e371a2 Remove needless code 2018-12-27 21:09:03 +09:00
Aya Morisawa 98fd6de5a1 Resolve #3524 2018-12-27 21:07:44 +09:00
syuilo 6635f25abe New translations ja-JP.yml (Norwegian) 2018-12-27 21:03:38 +09:00
syuilo 5f93106eab New translations ja-JP.yml (Dutch) 2018-12-27 21:03:31 +09:00
syuilo 84f2994d47 New translations ja-JP.yml (Japanese, Kansai) 2018-12-27 21:03:27 +09:00
syuilo 96f5c6d616 New translations ja-JP.yml (Spanish) 2018-12-27 21:03:22 +09:00
syuilo b67923abb9 New translations ja-JP.yml (Russian) 2018-12-27 21:03:15 +09:00
syuilo 310f7b3359 New translations ja-JP.yml (Portuguese) 2018-12-27 21:03:11 +09:00
syuilo c743c45989 New translations ja-JP.yml (Polish) 2018-12-27 21:03:04 +09:00
syuilo 0322c51913 New translations ja-JP.yml (Korean) 2018-12-27 21:03:00 +09:00
syuilo b85e27c7e5 New translations ja-JP.yml (Italian) 2018-12-27 21:02:55 +09:00
syuilo aa351d1f7f New translations ja-JP.yml (German) 2018-12-27 21:02:50 +09:00
syuilo 6b48b79758 New translations ja-JP.yml (French) 2018-12-27 21:02:45 +09:00
syuilo 104ea7e277 New translations ja-JP.yml (English) 2018-12-27 21:02:41 +09:00
syuilo 97de1ed3a8 New translations ja-JP.yml (Chinese Simplified) 2018-12-27 21:02:36 +09:00
syuilo d69e9741da New translations ja-JP.yml (Catalan) 2018-12-27 21:02:30 +09:00
Aya Morisawa 0f5c737c1a Use double quotation 2018-12-27 21:00:08 +09:00
Aya Morisawa cb9960b0ac Fix i18n: is-suspended
Co-authored-by: syuilo <syuilotan@yahoo.co.jp>
2018-12-27 20:59:49 +09:00
Aya Morisawa 1404539895 Resolve #3287, resolve #3107
Co-authored-by: syuilo <syuilotan@yahoo.co.jp>
2018-12-27 20:46:23 +09:00
syuilo 2f901da58c [Client] Fix bug 2018-12-27 20:34:30 +09:00
syuilo 3637c1bfbc New translations ja-JP.yml (Norwegian) 2018-12-27 20:33:23 +09:00
syuilo 28c3edc844 New translations ja-JP.yml (Dutch) 2018-12-27 20:33:16 +09:00
syuilo 9271a8c066 New translations ja-JP.yml (Japanese, Kansai) 2018-12-27 20:33:12 +09:00
syuilo 7b16bfc736 New translations ja-JP.yml (Spanish) 2018-12-27 20:33:05 +09:00
syuilo 54450033e4 New translations ja-JP.yml (Russian) 2018-12-27 20:32:59 +09:00
syuilo fbf676d518 New translations ja-JP.yml (Portuguese) 2018-12-27 20:32:54 +09:00
syuilo 47df0bbec1 New translations ja-JP.yml (Polish) 2018-12-27 20:32:50 +09:00
syuilo 708f8b3cc3 New translations ja-JP.yml (Korean) 2018-12-27 20:32:44 +09:00
syuilo 9de163ab09 New translations ja-JP.yml (Italian) 2018-12-27 20:32:40 +09:00
syuilo e21be29131 New translations ja-JP.yml (German) 2018-12-27 20:32:35 +09:00
syuilo 1aabb725d0 New translations ja-JP.yml (French) 2018-12-27 20:32:31 +09:00
syuilo 3e17c34187 New translations ja-JP.yml (English) 2018-12-27 20:32:27 +09:00
syuilo d57de01d37 New translations ja-JP.yml (Chinese Simplified) 2018-12-27 20:32:22 +09:00
syuilo 71918fdbf0 New translations ja-JP.yml (Catalan) 2018-12-27 20:32:17 +09:00
syuilo cb8663873d Rename: 404 --> not-found 2018-12-27 20:22:54 +09:00
Aya Morisawa 0f204eebe1 Remove unused code 2018-12-27 20:10:29 +09:00
syuilo dec572a6b7 New translations ja-JP.yml (Norwegian) 2018-12-27 20:03:29 +09:00
syuilo 28848ba969 New translations ja-JP.yml (Dutch) 2018-12-27 20:03:24 +09:00
syuilo 4cfcd37a2b New translations ja-JP.yml (Japanese, Kansai) 2018-12-27 20:03:19 +09:00
syuilo 2b0d5516d1 New translations ja-JP.yml (Spanish) 2018-12-27 20:03:13 +09:00
syuilo 3e3c3c10ab New translations ja-JP.yml (Russian) 2018-12-27 20:03:08 +09:00
syuilo 3cc282db14 New translations ja-JP.yml (Portuguese) 2018-12-27 20:03:03 +09:00
syuilo 4c1c865ba9 New translations ja-JP.yml (Polish) 2018-12-27 20:02:59 +09:00
syuilo 9423c99427 New translations ja-JP.yml (Korean) 2018-12-27 20:02:54 +09:00
syuilo d1512c90f1 New translations ja-JP.yml (Italian) 2018-12-27 20:02:48 +09:00
syuilo 85c9993106 New translations ja-JP.yml (German) 2018-12-27 20:02:43 +09:00
syuilo 1d580009e4 New translations ja-JP.yml (French) 2018-12-27 20:02:38 +09:00
syuilo 22ad21597a New translations ja-JP.yml (English) 2018-12-27 20:02:32 +09:00
syuilo 76d8f66eff New translations ja-JP.yml (Chinese Simplified) 2018-12-27 20:02:28 +09:00
syuilo febdf0cbee New translations ja-JP.yml (Catalan) 2018-12-27 20:02:23 +09:00
Aya Morisawa ba05606074 Show on the CW button that there is a poll (#3769) 2018-12-27 19:58:57 +09:00
syuilo 030fe8bec7 New translations ja-JP.yml (English) 2018-12-27 19:23:07 +09:00
dependabot[bot] 4587c5a512 Update @fortawesome/free-solid-svg-icons requirement from 5.6.1 to 5.6.3 (#3754)
Updates the requirements on [@fortawesome/free-solid-svg-icons](https://github.com/FortAwesome/Font-Awesome) to permit the latest version.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/commits/5.6.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-27 18:50:19 +09:00
dependabot[bot] 96646e584b Update vue-svg-inline-loader requirement from 1.2.4 to 1.2.7 (#3764)
Updates the requirements on [vue-svg-inline-loader](https://github.com/oliverfindl/vue-svg-inline-loader) to permit the latest version.
- [Release notes](https://github.com/oliverfindl/vue-svg-inline-loader/releases)
- [Commits](https://github.com/oliverfindl/vue-svg-inline-loader/commits/v1.2.7)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-27 18:50:01 +09:00
dependabot[bot] fb2879df9c Update @types/js-yaml requirement from 3.11.2 to 3.11.4 (#3763)
Updates the requirements on [@types/js-yaml](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-27 18:49:51 +09:00
dependabot[bot] 26ea338e8e Update vue-js-modal requirement from 1.3.27 to 1.3.28 (#3766)
Updates the requirements on [vue-js-modal](https://github.com/euvl/vue-js-modal) to permit the latest version.
- [Release notes](https://github.com/euvl/vue-js-modal/releases)
- [Commits](https://github.com/euvl/vue-js-modal/commits/1.3.28)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-27 18:49:44 +09:00
dependabot[bot] 1fad5ed6f3 Update nan requirement from 2.11.1 to 2.12.1 (#3767)
Updates the requirements on [nan](https://github.com/nodejs/nan) to permit the latest version.
- [Release notes](https://github.com/nodejs/nan/releases)
- [Changelog](https://github.com/nodejs/nan/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodejs/nan/commits/v2.12.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-27 18:49:33 +09:00
syuilo 20db10516c New translations ja-JP.yml (English) 2018-12-27 18:42:12 +09:00
syuilo 00631f58ec New translations ja-JP.yml (French) 2018-12-27 18:22:13 +09:00
syuilo 35273e53bc 10.67.0 2018-12-27 07:49:48 +09:00
syuilo bfc458e935 Resolve #3758 2018-12-27 07:07:26 +09:00
dependabot[bot] bb819d42f1 Update mongodb requirement from 3.1.9 to 3.1.10 (#3762)
Updates the requirements on [mongodb](https://github.com/mongodb/node-mongodb-native) to permit the latest version.
- [Release notes](https://github.com/mongodb/node-mongodb-native/releases)
- [Changelog](https://github.com/mongodb/node-mongodb-native/blob/master/HISTORY.md)
- [Commits](https://github.com/mongodb/node-mongodb-native/commits/v3.1.10)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-27 05:46:42 +09:00
dependabot[bot] 5d76439224 Update sharp requirement from 0.21.0 to 0.21.1 (#3761)
Updates the requirements on [sharp](https://github.com/lovell/sharp) to permit the latest version.
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/master/docs/changelog.md)
- [Commits](https://github.com/lovell/sharp/commits/v0.21.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-27 05:46:00 +09:00
ibrokemypie 3d0b704af8 Add URI parameter to /api/meta (#3748)
* Add URI parameter to /api/meta
closes #3747

* Update fetch-meta.ts

* Update meta.ts
2018-12-27 04:50:35 +09:00
Acid Chicken (硫酸鶏) 05539ffc7b Update README.md [AUTOGEN] (#3743) 2018-12-27 01:33:19 +09:00
Aya Morisawa c86deab69c Introduce SonarTS (#3756) 2018-12-27 01:32:31 +09:00
Aya Morisawa 21f8dbf2de Resolve #3248
Co-authored-by: syuilo <syuilotan@yahoo.co.jp>
2018-12-27 01:26:03 +09:00
syuilo 6731f904f2 New translations ja-JP.yml (Norwegian) 2018-12-26 23:14:31 +09:00
syuilo f6e74f529e New translations ja-JP.yml (Dutch) 2018-12-26 23:14:22 +09:00
syuilo c860a2f7f3 New translations ja-JP.yml (Japanese, Kansai) 2018-12-26 23:14:17 +09:00
syuilo 7b141722ae New translations ja-JP.yml (Spanish) 2018-12-26 23:14:13 +09:00
syuilo fc516ffb7f New translations ja-JP.yml (Russian) 2018-12-26 23:14:08 +09:00
syuilo 11604593a6 New translations ja-JP.yml (Portuguese) 2018-12-26 23:14:03 +09:00
syuilo 6f3468ccd2 New translations ja-JP.yml (Polish) 2018-12-26 23:13:56 +09:00
syuilo e3be90503c New translations ja-JP.yml (Korean) 2018-12-26 23:13:50 +09:00
syuilo 22d38e0d24 New translations ja-JP.yml (Italian) 2018-12-26 23:13:46 +09:00
syuilo 8b654fb40a New translations ja-JP.yml (German) 2018-12-26 23:13:39 +09:00
syuilo 91cd9831bc New translations ja-JP.yml (French) 2018-12-26 23:13:33 +09:00
syuilo 805d72d42f New translations ja-JP.yml (English) 2018-12-26 23:13:29 +09:00
syuilo 0d4a1719a6 New translations ja-JP.yml (Chinese Simplified) 2018-12-26 23:13:23 +09:00
syuilo 32ab57e11b New translations ja-JP.yml (Catalan) 2018-12-26 23:13:16 +09:00
MeiMei 5174e16f7b Feature to show only my posts in the user page (#3753)
* Fix #3681

* Feature to show only my posts in the user page
2018-12-26 23:11:50 +09:00
Aya Morisawa 9b746f3eb5 Make reactions removable
Co-authored-by: syuilo <syuilotan@yahoo.co.jp>

Resolve #367, resolve #2260, close #3503
2018-12-26 23:05:47 +09:00
syuilo becd038660 New translations ja-JP.yml (Russian) 2018-12-26 22:31:58 +09:00
syuilo 2a6cfec0e6 New translations ja-JP.yml (Russian) 2018-12-26 22:28:10 +09:00
Aya Morisawa dfc6ef4be6 Remove trailing whitespaces 2018-12-26 19:58:04 +09:00
Aya Morisawa c8b45f4f42 Fix #3346
Co-authored-by: syuilo <syuilotan@yahoo.co.jp>
2018-12-26 19:39:51 +09:00
Aya Morisawa 09c57e6d03 Fix #3345
Co-authored-by: syuilo <syuilotan@yahoo.co.jp>
2018-12-26 19:24:38 +09:00
dependabot[bot] 5edb1da097 Update gulp-typescript requirement from 4.0.2 to 5.0.0 (#3496)
Updates the requirements on [gulp-typescript](https://github.com/ivogabe/gulp-typescript) to permit the latest version.
- [Release notes](https://github.com/ivogabe/gulp-typescript/releases)
- [Commits](https://github.com/ivogabe/gulp-typescript/commits/v5.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-26 18:34:28 +09:00
dependabot[bot] b3ad3a6535 Update jsdom requirement from 13.0.0 to 13.1.0 (#3649)
Updates the requirements on [jsdom](https://github.com/jsdom/jsdom) to permit the latest version.
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Changelog](https://github.com/jsdom/jsdom/blob/master/Changelog.md)
- [Commits](https://github.com/jsdom/jsdom/commits/13.1.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-26 18:33:50 +09:00
dependabot[bot] 3709bb23bc Update systeminformation requirement from 3.51.3 to 3.52.2 (#3669)
Updates the requirements on [systeminformation](https://github.com/sebhildebrandt/systeminformation) to permit the latest version.
- [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-26 18:33:42 +09:00
dependabot[bot] 28be5c0b81 Update tslint requirement from 5.10.0 to 5.12.0 (#3670)
Updates the requirements on [tslint](https://github.com/palantir/tslint) to permit the latest version.
- [Release notes](https://github.com/palantir/tslint/releases)
- [Changelog](https://github.com/palantir/tslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/palantir/tslint/commits/5.12.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-26 18:33:34 +09:00
dependabot[bot] 60ef74047a Update @types/file-type requirement from 5.2.2 to 10.6.0 (#3671)
Updates the requirements on [@types/file-type](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-26 18:33:28 +09:00
dependabot[bot] f81596c8d5 Update @types/webpack requirement from 4.4.20 to 4.4.21 (#3650)
Updates the requirements on [@types/webpack](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-26 18:33:20 +09:00
dependabot[bot] 075b7e3060 Update vue-cropperjs requirement from 2.2.2 to 3.0.0 (#3617)
Updates the requirements on [vue-cropperjs](https://github.com/Agontuk/vue-cropperjs) to permit the latest version.
- [Release notes](https://github.com/Agontuk/vue-cropperjs/releases)
- [Changelog](https://github.com/Agontuk/vue-cropperjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Agontuk/vue-cropperjs/commits/v3.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-26 18:33:08 +09:00
dependabot[bot] cc7d6198ec Update hard-source-webpack-plugin requirement from 0.12.0 to 0.13.1 (#3611)
Updates the requirements on [hard-source-webpack-plugin](https://github.com/mzgoddard/hard-source-webpack-plugin) to permit the latest version.
- [Release notes](https://github.com/mzgoddard/hard-source-webpack-plugin/releases)
- [Changelog](https://github.com/mzgoddard/hard-source-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mzgoddard/hard-source-webpack-plugin/commits/v0.13.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-26 18:32:58 +09:00
dependabot[bot] 5766c2ce1b Update @fortawesome/free-solid-svg-icons requirement from 5.5.0 to 5.6.1 (#3610)
Updates the requirements on [@fortawesome/free-solid-svg-icons](https://github.com/FortAwesome/Font-Awesome) to permit the latest version.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/commits/5.6.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-26 18:32:50 +09:00
dependabot[bot] 03fed08c03 Update @fortawesome/free-brands-svg-icons requirement (#3598)
Updates the requirements on [@fortawesome/free-brands-svg-icons](https://github.com/FortAwesome/Font-Awesome) to permit the latest version.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/commits/5.6.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-26 18:32:43 +09:00
Acid Chicken (硫酸鶏) 4662641feb Fix #3745 (#3746) 2018-12-26 18:32:16 +09:00
MeiMei 00e2ce9489 Fix #3715 (#3752) 2018-12-26 06:21:09 +09:00
syuilo c2ec81f93a New translations ja-JP.yml (French) 2018-12-26 05:31:49 +09:00
syuilo 47561a6f8b New translations ja-JP.yml (French) 2018-12-26 05:21:51 +09:00
MeiMei c81eb49f9e Supports emoji in notifications (#3751) 2018-12-26 05:15:02 +09:00
syuilo 205c0d44d5 New translations ja-JP.yml (French) 2018-12-26 05:11:57 +09:00
syuilo dc1bdbaaa5 New translations ja-JP.yml (French) 2018-12-26 05:01:48 +09:00
syuilo d619a92a37 New translations ja-JP.yml (French) 2018-12-26 04:52:05 +09:00
syuilo 59ad529162 New translations ja-JP.yml (French) 2018-12-26 04:41:54 +09:00
syuilo c4c44e04fd New translations ja-JP.yml (French) 2018-12-26 04:32:01 +09:00
syuilo fae58a9ab0 New translations ja-JP.yml (French) 2018-12-26 04:21:58 +09:00
Acid Chicken (硫酸鶏) fa03c172f2 Fix typo 2018-12-25 20:02:37 +09:00
Acid Chicken (硫酸鶏) 89ac15b4de Fix typo
split は不規則動詞
2018-12-25 16:49:35 +09:00
Acid Chicken (硫酸鶏) 10d3b81251 Fix build fails 2018-12-25 13:39:55 +09:00
syuilo 71dceca225 Merge pull request #3648 from syuilo/l10n_develop
New Crowdin translations
2018-12-25 12:24:26 +09:00
syuilo 40de631d95 New translations ja-JP.yml (English) 2018-12-25 12:22:01 +09:00
ibrokemypie 6985c39874 Make activity view in admin scrollable (#3741)
I can't think of any reason why this isnt currently the case as the extra lines are still there, just not displayed, meaning theres no difference in performance/memory usage
Also means that sometimes entries are cut off which is weird
Also, sometimes there is reason to wish to view older entries that may have scrolled off the page/keep reading something which was pushed too far down.
2018-12-25 12:13:50 +09:00
Aya Morisawa 0938ea3964 Use join instead of reduce 2018-12-24 17:02:15 +09:00
syuilo 4b4c19b242 New translations ja-JP.yml (Korean) 2018-12-24 08:11:46 +09:00
syuilo d8620187ec 10.66.2 2018-12-24 05:40:33 +09:00
Zero King 520849d070 Update translation placeholder (#3735) 2018-12-24 05:36:02 +09:00
syuilo b6a028a8ed [API] Fix #3737 2018-12-24 05:31:20 +09:00
syuilo 7db799a0ac New translations ja-JP.yml (Norwegian) 2018-12-24 01:33:08 +09:00
syuilo 1ab776c867 New translations ja-JP.yml (Dutch) 2018-12-24 01:33:04 +09:00
syuilo f4c9f63548 New translations ja-JP.yml (Japanese, Kansai) 2018-12-24 01:32:57 +09:00
syuilo 08da9d70cd New translations ja-JP.yml (Spanish) 2018-12-24 01:32:53 +09:00
syuilo 96173e5c0b New translations ja-JP.yml (Russian) 2018-12-24 01:32:48 +09:00
syuilo b37cc70742 New translations ja-JP.yml (Portuguese) 2018-12-24 01:32:43 +09:00
syuilo 96ee4299c7 New translations ja-JP.yml (Polish) 2018-12-24 01:32:38 +09:00
syuilo 6072b02f12 New translations ja-JP.yml (Korean) 2018-12-24 01:32:33 +09:00
syuilo 6ccbca0741 New translations ja-JP.yml (Italian) 2018-12-24 01:32:29 +09:00
syuilo 360394fd5c New translations ja-JP.yml (German) 2018-12-24 01:32:24 +09:00
syuilo dcb45aa953 New translations ja-JP.yml (French) 2018-12-24 01:32:20 +09:00
syuilo a8fcc1aad9 New translations ja-JP.yml (English) 2018-12-24 01:32:15 +09:00
syuilo 4d69cd86f1 New translations ja-JP.yml (Chinese Simplified) 2018-12-24 01:32:11 +09:00
syuilo 6e14e58b89 New translations ja-JP.yml (Catalan) 2018-12-24 01:32:06 +09:00
Zero King af5839bb59 Fix translation location (#3734) 2018-12-24 01:25:28 +09:00
MeiMei a53e0d9f73 Fix error in featuredNotes (#3730) 2018-12-23 23:23:56 +09:00
MeiMei 49921f2dcf Fix: can not update remote Misskey user (#3731) 2018-12-23 23:23:17 +09:00
syuilo 70d2d61b9a New translations ja-JP.yml (French) 2018-12-23 18:11:51 +09:00
syuilo 9abaf80f6b New translations ja-JP.yml (Chinese Simplified) 2018-12-23 17:51:56 +09:00
syuilo 25948fc3c9 New translations ja-JP.yml (Chinese Simplified) 2018-12-23 17:42:42 +09:00
Zero King 6b947c2139 Fix mention links (#3728)
canonical already starts with @, so remove the extra @.
2018-12-23 14:35:18 +09:00
MeiMei 98acf919f1 ダイレクト投稿でユーザーが指定されていなかったらrejectする (#3724) 2018-12-23 04:17:42 +09:00
MeiMei c9c2853150 ダイレクトでメンションでもユーザーを指定できるように (#3722) 2018-12-23 03:44:18 +09:00
syuilo 2bc708f8e6 Fix #3717 (#3723) 2018-12-23 03:41:28 +09:00
syuilo 874b8fc3c2 Fix indent 2018-12-23 03:31:11 +09:00
syuilo 7d6aac3431 Fix space 2018-12-23 03:27:26 +09:00
MeiMei e2fc7decad 本文からメンション等を展開しないオプション (#3721) 2018-12-23 03:25:33 +09:00
Acid Chicken (硫酸鶏) 21bed71f5e Rename PULL_REQUEST_TEMPLATE.md to .github/PULL_REQUEST_TEMPLATE.md 2018-12-22 20:43:44 +09:00
syuilo 747a5694f8 New translations ja-JP.yml (French) 2018-12-22 13:02:00 +09:00
syuilo 479a0a2deb New translations ja-JP.yml (French) 2018-12-22 12:52:26 +09:00
syuilo 14aef6ec89 New translations ja-JP.yml (English) 2018-12-22 01:16:40 +09:00
syuilo f0d2b3f449 New translations ja-JP.yml (English) 2018-12-22 01:02:28 +09:00
syuilo 3b974428fc 10.66.1 2018-12-22 00:59:40 +09:00
Aya Morisawa 580191fb17 Improve MFM bracket matching
Co-authored-by: syuilo <syuilotan@yahoo.co.jp>
2018-12-22 00:44:38 +09:00
MeiMei be0cb88b6c Fix sharedInbox location (#3711)
* Fix sharedInbox location

* Perform update Following

* Fix comment
2018-12-22 00:12:34 +09:00
MeiMei 95c4e4497e Fix tag not found (#3710) 2018-12-21 21:46:50 +09:00
syuilo 2ec445f83e 10.66.0 2018-12-21 16:26:46 +09:00
syuilo 51b915428e [Client] Fix #3693 2018-12-21 16:22:34 +09:00
Acid Chicken (硫酸鶏) 1395cf89ce Feed (#3698)
* wip

* Implement feed

* Update feed.ts

* Update index.ts

* Update feed.ts
2018-12-21 11:54:39 +09:00
Aya Morisawa 2a8f984db7 Fix comment 2018-12-21 11:28:30 +09:00
MeiMei decf2d396f Fix processing icon (#3705) 2018-12-21 02:30:49 +09:00
MeiMei f7964da899 Fix: ap/show does not return on error (#3704) 2018-12-21 00:09:02 +09:00
MeiMei c8607ff7b6 Tune polls/recommendation (#3703) 2018-12-20 22:56:12 +09:00
Aya Morisawa e9f8897fe2 Refactor MFM
Co-authored-by: syuilo syuilotan@yahoo.co.jp
2018-12-20 19:42:10 +09:00
ibrokemypie e0b107a3a0 Fix overlap of birthday label on datepicker (#3697) 2018-12-20 17:01:29 +09:00
syuilo abf2c89931 New translations ja-JP.yml (Korean) 2018-12-20 07:51:43 +09:00
syuilo 1d3e6a7197 10.65.0 2018-12-20 04:37:47 +09:00
syuilo 288bf195e9 New translations ja-JP.yml (English) 2018-12-20 04:22:50 +09:00
syuilo 7e3cc11cc4 New translations ja-JP.yml (Norwegian) 2018-12-20 04:13:09 +09:00
syuilo 4e07e94af0 New translations ja-JP.yml (Dutch) 2018-12-20 04:13:03 +09:00
syuilo 9cb49c9204 New translations ja-JP.yml (Japanese, Kansai) 2018-12-20 04:12:59 +09:00
syuilo 580dd729e5 New translations ja-JP.yml (Spanish) 2018-12-20 04:12:54 +09:00
syuilo 49ab77c86e New translations ja-JP.yml (Russian) 2018-12-20 04:12:49 +09:00
syuilo f98914b9f1 New translations ja-JP.yml (Portuguese) 2018-12-20 04:12:43 +09:00
syuilo f3f3599b28 New translations ja-JP.yml (Polish) 2018-12-20 04:12:38 +09:00
syuilo f67b1beee4 New translations ja-JP.yml (Korean) 2018-12-20 04:12:32 +09:00
syuilo 8395d0f1ba New translations ja-JP.yml (Italian) 2018-12-20 04:12:27 +09:00
syuilo af203bee93 New translations ja-JP.yml (German) 2018-12-20 04:12:23 +09:00
syuilo 760fb79dad New translations ja-JP.yml (French) 2018-12-20 04:12:18 +09:00
syuilo ee9d4119c2 New translations ja-JP.yml (English) 2018-12-20 04:12:13 +09:00
syuilo 90027efcbf New translations ja-JP.yml (Chinese Simplified) 2018-12-20 04:12:07 +09:00
syuilo 1848de1dc4 New translations ja-JP.yml (Catalan) 2018-12-20 04:11:58 +09:00
syuilo 1c93fcb1c4 Fix #3683 2018-12-20 04:11:10 +09:00
syuilo e3389e7899 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-12-20 04:08:22 +09:00
syuilo 454632d785 Resolve #3687 2018-12-20 04:08:13 +09:00
syuilo c9bca7dc85 Update CONTRIBUTING.md 2018-12-20 03:44:19 +09:00
syuilo 710ba526fa Better cw detection 2018-12-20 03:22:27 +09:00
syuilo aa47b6732d [Doc] Clean up 2018-12-20 03:19:44 +09:00
syuilo 20f83420ca Update CONTRIBUTING.md 2018-12-20 03:02:19 +09:00
syuilo d09a68ef11 Update CONTRIBUTING.md 2018-12-20 03:01:02 +09:00
syuilo b545be5799 Fix wrong comment 2018-12-20 02:47:24 +09:00
MeiMei 4fc377584f Fix tag length limit from AP (#3688) 2018-12-20 02:20:56 +09:00
syuilo a5f09c90dd [Client] Resolve #3686 2018-12-20 01:09:35 +09:00
syuilo ba407c3eb0 New translations ja-JP.yml (French) 2018-12-20 01:03:08 +09:00
tamaina d059d7f972 open処理中はopenの処理をしないように (#3661)
* autocomplettimeout

* fix

* fix

* Update autocomplete.ts

* Update autocomplete.ts
2018-12-20 00:02:28 +09:00
MeiMei c03e2dfbc0 Change naming (#3678)
* Change naming

* x to a
2018-12-19 22:38:27 +09:00
MeiMei 45c5e7b967 Hide hidden contents in welcome timeline (#3682) 2018-12-19 22:18:58 +09:00
Acid Chicken (硫酸鶏) c81a94ff75 Resolve #3676 (#3677) 2018-12-19 21:20:25 +09:00
MeiMei acc6f54557 Update remote Emoji (#3680) 2018-12-19 21:19:43 +09:00
Aya Morisawa 8025b121af Add Predicate type 2018-12-19 17:08:09 +09:00
Aya Morisawa 78ec06bda3 Add relation types 2018-12-19 17:00:07 +09:00
syuilo 6ef83d9c59 Update deck.notes.vue 2018-12-19 11:23:46 +09:00
syuilo fca4ceef21 [Client] デッキのTLにUIの動きを減らすオプションが適用されていなかったのを修正 2018-12-19 11:22:27 +09:00
syuilo 00f979f0e6 Fix bug 2018-12-19 11:16:29 +09:00
Aya Morisawa 556677be7a Refactor 2018-12-19 10:23:57 +09:00
Aya Morisawa 624fd093f2 Fix comment 2018-12-19 10:02:58 +09:00
Aya Morisawa 2ee438dece Add comments for prelude/array.ts 2018-12-19 09:54:45 +09:00
Aya Morisawa 534de24406 Use consistent naming convention 2018-12-19 09:14:05 +09:00
syuilo 014edce1b9 New translations ja-JP.yml (Korean) 2018-12-19 08:52:01 +09:00
syuilo ac1f3de4c6 New translations ja-JP.yml (Norwegian) 2018-12-19 07:33:01 +09:00
syuilo dced228cb0 New translations ja-JP.yml (Dutch) 2018-12-19 07:32:55 +09:00
syuilo a92244cc12 New translations ja-JP.yml (Japanese, Kansai) 2018-12-19 07:32:50 +09:00
syuilo 0717688933 New translations ja-JP.yml (Spanish) 2018-12-19 07:32:43 +09:00
syuilo 87d54b7d40 New translations ja-JP.yml (Russian) 2018-12-19 07:32:36 +09:00
syuilo ed51f5c7de New translations ja-JP.yml (Portuguese) 2018-12-19 07:32:31 +09:00
syuilo 66e2db0d52 New translations ja-JP.yml (Polish) 2018-12-19 07:32:26 +09:00
syuilo 03be4826df New translations ja-JP.yml (Korean) 2018-12-19 07:32:22 +09:00
syuilo c9d5aef04f New translations ja-JP.yml (Italian) 2018-12-19 07:32:18 +09:00
syuilo 106cb3fe3e New translations ja-JP.yml (German) 2018-12-19 07:32:12 +09:00
syuilo 48320f8536 New translations ja-JP.yml (French) 2018-12-19 07:32:08 +09:00
syuilo 1a0845dc0a New translations ja-JP.yml (English) 2018-12-19 07:32:04 +09:00
syuilo 185d09f3ed New translations ja-JP.yml (Chinese Simplified) 2018-12-19 07:32:00 +09:00
syuilo 8e25fb6cb7 New translations ja-JP.yml (Catalan) 2018-12-19 07:31:55 +09:00
syuilo e88ce1746d リスト関連の操作を強化
Resolve #2069
Resolve #2051
Resolve #2807
Resolve #3647
2018-12-19 07:22:01 +09:00
syuilo b8aad35009 Fix error 2018-12-19 06:47:47 +09:00
syuilo 47bd485a39 Clean up 2018-12-19 06:09:31 +09:00
syuilo ad869d7469 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-12-19 06:05:47 +09:00
syuilo d15cce5337 [Client] Show more images 2018-12-19 06:05:44 +09:00
syuilo 37daff6d61 [Client] Fix #2764 2018-12-19 06:04:59 +09:00
MeiMei 5417e40f59 Send original URL for quote (#3668) 2018-12-19 05:07:54 +09:00
Acid Chicken (硫酸鶏) 0fed33bfdb Create PULL_REQUEST_TEMPLATE.md (#3552)
* Create PULL_REQUEST_TEMPLATE.md

* Update PULL_REQUEST_TEMPLATE.md
2018-12-19 04:48:49 +09:00
MeiMei 5dddc75d09 Add AP emojis endpoint (#3667) 2018-12-19 04:23:08 +09:00
syuilo 081578c604 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-12-19 01:11:08 +09:00
syuilo 6c47bf5b76 [Client] Resolve #3662 2018-12-19 01:10:53 +09:00
syuilo 936bb1bcd0 New translations ja-JP.yml (Norwegian) 2018-12-19 01:04:21 +09:00
syuilo d5241d9a3e New translations ja-JP.yml (Dutch) 2018-12-19 01:04:15 +09:00
syuilo 05b4430c92 New translations ja-JP.yml (Japanese, Kansai) 2018-12-19 01:04:09 +09:00
syuilo 292e911de2 New translations ja-JP.yml (Spanish) 2018-12-19 01:04:04 +09:00
syuilo 1c4ba2c037 New translations ja-JP.yml (Russian) 2018-12-19 01:03:59 +09:00
syuilo 452db13d0c New translations ja-JP.yml (Portuguese) 2018-12-19 01:03:54 +09:00
syuilo c3f64b395b New translations ja-JP.yml (Polish) 2018-12-19 01:03:49 +09:00
syuilo 3fa6bf93a4 New translations ja-JP.yml (Korean) 2018-12-19 01:03:44 +09:00
syuilo a13d76bec5 New translations ja-JP.yml (Italian) 2018-12-19 01:03:39 +09:00
syuilo 05cee078d0 New translations ja-JP.yml (German) 2018-12-19 01:03:33 +09:00
syuilo 706d3f3f95 New translations ja-JP.yml (French) 2018-12-19 01:03:27 +09:00
syuilo c5cf034b5d New translations ja-JP.yml (English) 2018-12-19 01:03:22 +09:00
syuilo 3a04aa93f9 New translations ja-JP.yml (Chinese Simplified) 2018-12-19 01:03:16 +09:00
syuilo 838cdbedbd New translations ja-JP.yml (Catalan) 2018-12-19 01:03:09 +09:00
MeiMei 9e85291cd3 Add example nginx configuration (#3659)
* Sample Nginx configuration

* nginxによせる

* 非Debian系ではsites-enabledがない
2018-12-19 01:00:57 +09:00
syuilo 7f77517fc8 [Client] Resolve #3658 2018-12-19 00:57:28 +09:00
syuilo b2f288dcac [Client] Fix #3657 2018-12-19 00:45:00 +09:00
syuilo 52b59e9d7b [Client] Fix #3655 2018-12-19 00:41:53 +09:00
syuilo 80c74b1fa7 Improve readability 2018-12-19 00:40:29 +09:00
syuilo 91811ea500 Clean up 2018-12-19 00:40:13 +09:00
syuilo 57150fd910 Improve readability 2018-12-19 00:39:28 +09:00
syuilo cddbbdf5d0 clean up 2018-12-19 00:39:04 +09:00
syuilo 423dc2349b [Client] Improve performance 2018-12-19 00:25:35 +09:00
syuilo 5229bbd55d New translations ja-JP.yml (Korean) 2018-12-18 07:55:13 +09:00
syuilo 28311b9a2b New translations ja-JP.yml (French) 2018-12-17 23:02:47 +09:00
syuilo 663d17a485 New translations ja-JP.yml (French) 2018-12-17 22:54:39 +09:00
syuilo 08d005dfd9 New translations ja-JP.yml (French) 2018-12-17 22:44:05 +09:00
syuilo 02edbc131b New translations ja-JP.yml (French) 2018-12-17 22:33:42 +09:00
syuilo 0556a2a2da Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-12-17 20:18:09 +09:00
syuilo 65d943e42a Fix #3646 2018-12-17 20:17:21 +09:00
Acid Chicken (硫酸鶏) 3bcb344ecb Re: #3457 (#3614)
* Update parser.ts

* Update user.ts

* Update search.ts

* Update parser.ts

* Update parser.ts

* Update parser.ts

* Update parser.ts

* Update parser.ts

* Update parser.ts

* Update mfm.ts

* Update parser.ts

* Merge branch 'develop' into 3440-mk2

* Fix typo

* Update parser.ts

* Update mfm.ts

* Update mfm.ts
2018-12-17 19:11:38 +09:00
Acid Chicken (硫酸鶏) 82d721d60b Refactor Reversi (#3584)
* Update core.ts

* Update core.ts

* Create functional-syntax.ts

* Update core.ts

* Update functional-syntax.ts

* Update core.ts

* Delete functional-syntax.ts
2018-12-17 19:10:38 +09:00
syuilo 48dc56e834 10.64.2 2018-12-17 17:27:07 +09:00
Acid Chicken (硫酸鶏) 2c33bd6e31 Update README.md [AUTOGEN] (#3641) 2018-12-17 17:26:02 +09:00
syuilo b6524616bc Clean up 2018-12-17 17:21:45 +09:00
syuilo 7e2b70f912 [Client] UIの動きを減らすオプションが一部のアニメーションに適用されなかったのを修正
Resolve #3632
2018-12-17 17:21:36 +09:00
syuilo 4f071a66b6 10.64.1 2018-12-17 03:33:22 +09:00
syuilo 39f2303429 Merge pull request #3631 from syuilo/l10n_develop
New Crowdin translations
2018-12-17 03:31:49 +09:00
syuilo cacf072027 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-12-17 03:31:31 +09:00
Acid Chicken (硫酸鶏) 6ab1fdfe1a Update README.md [AUTOGEN] (#3639) 2018-12-17 03:31:19 +09:00
syuilo 6e5c93f926 [Client] Add animation 🎨 2018-12-17 03:29:57 +09:00
syuilo 1670737075 [API] Resolve #3637 2018-12-17 01:43:34 +09:00
syuilo fee235c4e4 Update README.md 2018-12-16 17:24:52 +09:00
syuilo 7a39d489f2 New translations ja-JP.yml (Norwegian) 2018-12-16 16:23:07 +09:00
syuilo 7c634218d1 New translations ja-JP.yml (Dutch) 2018-12-16 16:23:02 +09:00
syuilo 2704c5be73 New translations ja-JP.yml (Japanese, Kansai) 2018-12-16 16:22:58 +09:00
syuilo 489b51ba9f New translations ja-JP.yml (Spanish) 2018-12-16 16:22:52 +09:00
syuilo 21807c29f1 New translations ja-JP.yml (Russian) 2018-12-16 16:22:48 +09:00
syuilo 3bc62fe3eb New translations ja-JP.yml (Portuguese) 2018-12-16 16:22:43 +09:00
syuilo ba0e3c4a5f New translations ja-JP.yml (Polish) 2018-12-16 16:22:38 +09:00
syuilo 9ec1fb5e37 New translations ja-JP.yml (Korean) 2018-12-16 16:22:33 +09:00
syuilo d708409462 New translations ja-JP.yml (Italian) 2018-12-16 16:22:29 +09:00
syuilo 07d05d4f86 New translations ja-JP.yml (German) 2018-12-16 16:22:24 +09:00
syuilo bbdb2ebb40 New translations ja-JP.yml (French) 2018-12-16 16:22:20 +09:00
syuilo f7908ba098 New translations ja-JP.yml (English) 2018-12-16 16:22:15 +09:00
syuilo f2fda3075e New translations ja-JP.yml (Chinese Simplified) 2018-12-16 16:22:11 +09:00
syuilo 1338a68979 New translations ja-JP.yml (Catalan) 2018-12-16 16:22:05 +09:00
syuilo e7da505fb3 [Client] Bug fix and clean up 2018-12-16 16:12:41 +09:00
syuilo 5a9228372f New translations ja-JP.yml (Korean) 2018-12-16 13:31:39 +09:00
syuilo c4a6ba9097 New translations ja-JP.yml (Korean) 2018-12-16 12:13:35 +09:00
syuilo d5871b408b 10.64.0 2018-12-16 11:36:44 +09:00
syuilo 7b3338e373 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-12-16 11:32:30 +09:00
syuilo d18ee12d2f [Client] Add some animations 🎨 2018-12-16 11:32:20 +09:00
dependabot[bot] ca9cc97940 Update minio requirement from 7.0.1 to 7.0.2 (#3606)
Updates the requirements on [minio](https://github.com/minio/minio-js) to permit the latest version.
- [Release notes](https://github.com/minio/minio-js/releases)
- [Commits](https://github.com/minio/minio-js/commits/7.0.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-16 10:30:33 +09:00
syuilo a70070ac7d Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-12-16 10:30:06 +09:00
syuilo 069d99b320 Update dependency 🚀 2018-12-16 10:29:55 +09:00
syuilo 37d350dcad Merge pull request #3601 from syuilo/l10n_develop
New Crowdin translations
2018-12-16 10:24:04 +09:00
syuilo 8653e09b59 [Client] Add particle effect 2018-12-16 10:20:46 +09:00
syuilo 7cd2d59576 [Client] Fix bug 2018-12-16 09:03:07 +09:00
Acid Chicken (硫酸鶏) a0839de38f Add 'twitter:creator' meta data in user pages (#3618)
* Update user.pug

* Update user.pug

* Update note.pug

* Update user.pug

* Update note.pug

* Update note.pug
2018-12-16 08:49:38 +09:00
syuilo b7c5c71c6f [Client] Resolve #2951
あと検索フォームでサジェストを有効に
2018-12-16 08:45:10 +09:00
syuilo adab0adbdd New translations ja-JP.yml (English) 2018-12-16 07:31:43 +09:00
MeiMei 2faa58928f Format uptimes (#3629)
* Format uptime

* 逆だわ

* ザ

* 1個多い

* Fix comment
2018-12-16 07:06:43 +09:00
MeiMei ffb80efe21 Return 404 for invalid Object ID (#3627)
* Update activitypub.ts

* Update activitypub.ts

* Update featured.ts

* Update followers.ts

* Update following.ts

* Update outbox.ts

* Fix following, outbox
2018-12-16 01:44:59 +09:00
syuilo 6f959218ef Update analog-clock.vue 2018-12-15 23:34:46 +09:00
syuilo be1125dcb9 OGP向けにインスタンスのバナー画像を提供するように 2018-12-15 23:19:04 +09:00
Acid Chicken (硫酸鶏) 9ab34c2301 Update index.ts (#3624) 2018-12-15 20:54:34 +09:00
syuilo 0166d81d9e New translations ja-JP.yml (Polish) 2018-12-15 18:31:49 +09:00
syuilo 0b26efbd2f New translations ja-JP.yml (French) 2018-12-15 18:01:50 +09:00
syuilo 2cbaedf946 New translations ja-JP.yml (Norwegian) 2018-12-15 17:13:24 +09:00
syuilo b66924fbe8 New translations ja-JP.yml (Dutch) 2018-12-15 17:13:19 +09:00
syuilo 8c91148954 New translations ja-JP.yml (Japanese, Kansai) 2018-12-15 17:13:13 +09:00
syuilo be0eff3dda New translations ja-JP.yml (Spanish) 2018-12-15 17:13:08 +09:00
syuilo 85903ac9c6 New translations ja-JP.yml (Russian) 2018-12-15 17:13:04 +09:00
syuilo dbdd778dc7 New translations ja-JP.yml (Portuguese) 2018-12-15 17:12:59 +09:00
syuilo fc50dfd8d5 New translations ja-JP.yml (Polish) 2018-12-15 17:12:54 +09:00
syuilo f444e132ee New translations ja-JP.yml (Korean) 2018-12-15 17:12:50 +09:00
syuilo 68f562c323 New translations ja-JP.yml (Italian) 2018-12-15 17:12:44 +09:00
syuilo 820ea69613 New translations ja-JP.yml (German) 2018-12-15 17:12:40 +09:00
syuilo 6f4b3853a1 New translations ja-JP.yml (French) 2018-12-15 17:12:33 +09:00
syuilo a706ad0e80 New translations ja-JP.yml (English) 2018-12-15 17:12:26 +09:00
syuilo 820116affc New translations ja-JP.yml (Chinese Simplified) 2018-12-15 17:12:22 +09:00
syuilo 52650342be New translations ja-JP.yml (Catalan) 2018-12-15 17:12:16 +09:00
syuilo 85ddabdc65 Update ja-JP.yml 2018-12-15 17:09:05 +09:00
syuilo 0730cc4fa4 🎨 2018-12-15 17:01:19 +09:00
syuilo 17b6ab0ef0 🎨 2018-12-15 16:48:28 +09:00
syuilo 4e208b85bb New translations ja-JP.yml (Polish) 2018-12-15 08:51:47 +09:00
syuilo 00f8b29f6d New translations ja-JP.yml (Polish) 2018-12-15 08:41:45 +09:00
syuilo 9cf0fcadb1 New translations ja-JP.yml (Polish) 2018-12-15 08:31:50 +09:00
syuilo c595efeead New translations ja-JP.yml (Polish) 2018-12-15 08:21:59 +09:00
syuilo b56c6793a1 New translations ja-JP.yml (Polish) 2018-12-15 08:12:15 +09:00
syuilo ebceffba1e Resolve #2165 2018-12-15 00:09:04 +09:00
syuilo 3ae42d9b85 🎨 2018-12-14 23:35:07 +09:00
syuilo 796237b3c6 Implement admin drive page 2018-12-14 19:09:11 +09:00
syuilo cb7a97ee4c New translations ja-JP.yml (Korean) 2018-12-14 07:32:03 +09:00
syuilo 0cf758b6d1 New translations ja-JP.yml (French) 2018-12-14 02:03:02 +09:00
syuilo d28fca320e New translations ja-JP.yml (French) 2018-12-14 01:42:26 +09:00
MeiMei 8bd17703c3 Fix reversi settings bot switch (#3609) 2018-12-13 13:40:10 +09:00
和風ドレッシング a78eebc43f ていねい (#3608)
「古い」という表現でキレる方もいるので、丁寧な言葉づかいに変更
2018-12-13 09:42:14 +09:00
syuilo 79fb5246df New translations ja-JP.yml (English) 2018-12-13 08:01:55 +09:00
syuilo 458b8c78dc New translations ja-JP.yml (French) 2018-12-13 04:12:31 +09:00
syuilo 64e0cbd6fc New translations ja-JP.yml (French) 2018-12-13 04:04:32 +09:00
Acid Chicken (硫酸鶏) 7fe937026b Update html.ts (#3603) 2018-12-13 01:33:18 +09:00
syuilo 656cec65b9 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-12-13 01:18:29 +09:00
syuilo 8045bbff1c 🎨 2018-12-13 01:18:17 +09:00
MeiMei c1a7a21746 Hide unavailable integration settings (#3604) 2018-12-12 23:21:02 +09:00
Acid Chicken (硫酸鶏) f3ee63fcbe Update url-preview.vue (#3602) 2018-12-12 21:19:52 +09:00
MeiMei 7645c212a3 No @ for account name (#3586)
* No @ for account name

* Use @ for GitHub
2018-12-12 17:33:08 +09:00
syuilo 8b38e2ea58 New translations ja-JP.yml (Norwegian) 2018-12-12 13:12:57 +09:00
syuilo c9eb6a8919 New translations ja-JP.yml (Dutch) 2018-12-12 13:12:53 +09:00
syuilo 9a41fd4734 New translations ja-JP.yml (Japanese, Kansai) 2018-12-12 13:12:47 +09:00
syuilo 70d96ee076 New translations ja-JP.yml (Spanish) 2018-12-12 13:12:43 +09:00
syuilo 3b6fb3959b New translations ja-JP.yml (Russian) 2018-12-12 13:12:36 +09:00
syuilo 484d705320 New translations ja-JP.yml (Portuguese) 2018-12-12 13:12:30 +09:00
syuilo 786031be66 New translations ja-JP.yml (Polish) 2018-12-12 13:12:25 +09:00
syuilo bc0027ce43 New translations ja-JP.yml (Korean) 2018-12-12 13:12:21 +09:00
syuilo 3e7c6d9bdc New translations ja-JP.yml (Italian) 2018-12-12 13:12:15 +09:00
syuilo 5463e3e55e New translations ja-JP.yml (German) 2018-12-12 13:12:11 +09:00
syuilo 84a880086e New translations ja-JP.yml (French) 2018-12-12 13:12:06 +09:00
syuilo 89419b7136 New translations ja-JP.yml (English) 2018-12-12 13:12:01 +09:00
syuilo 9106ec74f7 New translations ja-JP.yml (Chinese Simplified) 2018-12-12 13:11:57 +09:00
syuilo ebf9a0921d New translations ja-JP.yml (Catalan) 2018-12-12 13:11:53 +09:00
syuilo c237f49016 10.63.1 2018-12-12 13:07:16 +09:00
syuilo 709290d2da Improve mention display 2018-12-12 13:06:05 +09:00
syuilo eb3180f3b6 Fix bug 2018-12-12 13:05:37 +09:00
syuilo 681997509c Merge pull request #3599 from syuilo/l10n_develop
New Crowdin translations
2018-12-12 12:22:59 +09:00
MeiMei 79ff5888fd Fix htmlToMfm (#3600) 2018-12-12 11:47:07 +09:00
MeiMei 9ee9cf8d81 Fix URL after deleting remote file (#3597)
* Fix URL after deleting remote file

* expired only

* delete space
2018-12-12 11:46:35 +09:00
Acid Chicken (硫酸鶏) ee3c0f6f18 Update settings.2fa.vue (#3593) 2018-12-12 10:07:30 +09:00
syuilo 9dd463bff4 New translations ja-JP.yml (Korean) 2018-12-12 07:53:00 +09:00
MeiMei df297d0031 Fix fields (#3596) 2018-12-12 02:46:40 +09:00
Acid Chicken (硫酸鶏) d18d1cb958 Update settings.2fa.vue (#3595) 2018-12-11 23:41:27 +09:00
syuilo 5bc0570888 Update CHANGELOG.md 2018-12-11 21:31:58 +09:00
syuilo 8b43d75eaf 10.63.0 2018-12-11 21:20:26 +09:00
syuilo 89b37bd73d Merge pull request #3571 from syuilo/l10n_develop
New Crowdin translations
2018-12-11 21:19:57 +09:00
syuilo 69f246ce7f Fix bug 2018-12-11 21:17:57 +09:00
syuilo 6a97f0b7f6 [Client] Fix bug 2018-12-11 20:59:25 +09:00
syuilo d885b872f3 Fix bug 2018-12-11 20:47:07 +09:00
Aya Morisawa 125849673a Use for-of instead of forEach (#3583)
Co-authored-by: syuilo <syuilotan@yahoo.co.jp>
Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
2018-12-11 20:36:55 +09:00
syuilo 30c53e9ee0 Fix error 2018-12-11 20:33:52 +09:00
syuilo 981fb9e8f3 New translations ja-JP.yml (English) 2018-12-11 20:32:25 +09:00
syuilo 9fac22d880 New translations ja-JP.yml (Norwegian) 2018-12-11 20:23:11 +09:00
syuilo b8f034064a New translations ja-JP.yml (Dutch) 2018-12-11 20:23:07 +09:00
syuilo 6068227434 New translations ja-JP.yml (Japanese, Kansai) 2018-12-11 20:23:02 +09:00
syuilo 69cda49c88 New translations ja-JP.yml (Spanish) 2018-12-11 20:22:58 +09:00
syuilo 039d821d20 New translations ja-JP.yml (Russian) 2018-12-11 20:22:53 +09:00
syuilo 44d93bc408 New translations ja-JP.yml (Portuguese) 2018-12-11 20:22:48 +09:00
syuilo cfa76ac6f9 New translations ja-JP.yml (Polish) 2018-12-11 20:22:44 +09:00
syuilo 0ec2d16522 New translations ja-JP.yml (Korean) 2018-12-11 20:22:39 +09:00
syuilo 6bcac1fe14 New translations ja-JP.yml (Italian) 2018-12-11 20:22:35 +09:00
syuilo bc9427d000 New translations ja-JP.yml (German) 2018-12-11 20:22:30 +09:00
syuilo 07c043361e New translations ja-JP.yml (French) 2018-12-11 20:22:26 +09:00
syuilo e676a9a501 New translations ja-JP.yml (English) 2018-12-11 20:22:22 +09:00
syuilo 09e654c6d2 New translations ja-JP.yml (Chinese Simplified) 2018-12-11 20:22:17 +09:00
syuilo 549cb1ba87 New translations ja-JP.yml (Catalan) 2018-12-11 20:22:13 +09:00
dependabot[bot] c633827e5e Update typescript requirement from 3.1.6 to 3.2.2 (#3585)
Updates the requirements on [typescript](https://github.com/Microsoft/TypeScript) to permit the latest version.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/commits/v3.2.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-11 20:21:03 +09:00
Acid Chicken (硫酸鶏) 08142ead67 Resolve #3581 (#3589)
* Update ja-JP.yml

* Create 404.vue

* Update script.ts

* Update script.ts

* Update script.ts

* Update script.ts

* Update script.ts

* Update script.ts

* Update 404.vue

* Update meta.ts

* Update instance.vue

* Update update-meta.ts
2018-12-11 20:19:13 +09:00
MeiMei 638d81b66e Show user fields (#3590) 2018-12-11 20:18:12 +09:00
syuilo 4c83c2f64d New translations ja-JP.yml (Norwegian) 2018-12-11 18:25:19 +09:00
syuilo bf56f90fdc New translations ja-JP.yml (Dutch) 2018-12-11 18:25:14 +09:00
syuilo d8412aad7a New translations ja-JP.yml (Japanese, Kansai) 2018-12-11 18:25:09 +09:00
syuilo c136741710 New translations ja-JP.yml (Spanish) 2018-12-11 18:25:05 +09:00
syuilo 4fe8454da0 New translations ja-JP.yml (Russian) 2018-12-11 18:25:00 +09:00
syuilo 3f2161dadd New translations ja-JP.yml (Portuguese) 2018-12-11 18:24:55 +09:00
syuilo 3db516aa1a New translations ja-JP.yml (Polish) 2018-12-11 18:24:50 +09:00
syuilo 367bbbe605 New translations ja-JP.yml (Korean) 2018-12-11 18:24:45 +09:00
syuilo 5b70ff561c New translations ja-JP.yml (Italian) 2018-12-11 18:24:40 +09:00
syuilo 4486527e5d New translations ja-JP.yml (German) 2018-12-11 18:24:36 +09:00
syuilo 147e23d332 New translations ja-JP.yml (French) 2018-12-11 18:24:31 +09:00
syuilo ee20e6950e New translations ja-JP.yml (English) 2018-12-11 18:24:26 +09:00
syuilo 1d217154ef New translations ja-JP.yml (Chinese Simplified) 2018-12-11 18:24:22 +09:00
syuilo 27d304a1ab New translations ja-JP.yml (Catalan) 2018-12-11 18:24:17 +09:00
Acid Chicken (硫酸鶏) 1d1a373ca8 Update ja-JP.yml 2018-12-11 18:12:18 +09:00
syuilo bca3c6f8bf 🎨 2018-12-11 04:29:47 +09:00
syuilo d83d661535 New translations ja-JP.yml (French) 2018-12-11 00:02:10 +09:00
Acid Chicken (硫酸鶏) e16906afc3 Refactor /.autogen (#3551)
* Create patreon.jq

* Create check_pr.jq

* Rename check_pr.jq to .autogen/check_pr.jq

* Create next_url.jq

* Update autogen.sh

* Rename autogen.sh to update_readme_patreon.sh
2018-12-10 23:22:52 +09:00
syuilo a6dc0f3684 Fix #3325 2018-12-10 23:13:50 +09:00
Aya Morisawa 6120474548 Use && and || to eliminate if-statement (#3559)
Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
2018-12-10 17:08:48 +09:00
syuilo 121dd86299 [Client] Fix #3396 2018-12-10 12:31:04 +09:00
syuilo 5251d9f668 New translations ja-JP.yml (Korean) 2018-12-10 07:32:10 +09:00
syuilo 7ae3f569de New translations ja-JP.yml (Polish) 2018-12-10 04:42:02 +09:00
syuilo 142ebead59 New translations ja-JP.yml (Polish) 2018-12-10 04:31:59 +09:00
syuilo e196086c64 New translations ja-JP.yml (Polish) 2018-12-10 04:11:59 +09:00
syuilo 8c6ed98505 New translations ja-JP.yml (English) 2018-12-10 03:51:43 +09:00
syuilo 98a2953c9c Fix bug 2018-12-10 01:44:43 +09:00
syuilo 61d224695b New translations ja-JP.yml (Polish) 2018-12-10 01:02:02 +09:00
Aya Morisawa 6967def6c8 Use primitive type string instead of String (#3578) 2018-12-09 23:26:32 +09:00
syuilo 68c0600a5c New translations ja-JP.yml (Polish) 2018-12-09 22:12:14 +09:00
syuilo b8163bd0e1 New translations ja-JP.yml (Polish) 2018-12-09 22:02:27 +09:00
syuilo 8c25b9dfad New translations ja-JP.yml (Polish) 2018-12-09 21:51:59 +09:00
syuilo bf34f67583 New translations ja-JP.yml (Polish) 2018-12-09 21:42:34 +09:00
syuilo 0c63f410d6 New translations ja-JP.yml (Polish) 2018-12-09 21:32:06 +09:00
syuilo 069077ace4 New translations ja-JP.yml (Polish) 2018-12-09 21:22:17 +09:00
syuilo 5be947ea4d New translations ja-JP.yml (Polish) 2018-12-09 21:12:01 +09:00
syuilo b41ffa75b7 New translations ja-JP.yml (Polish) 2018-12-09 21:02:34 +09:00
syuilo 48df08d4dc New translations ja-JP.yml (Norwegian) 2018-12-09 14:32:46 +09:00
syuilo 4de9a08e55 New translations ja-JP.yml (Dutch) 2018-12-09 14:32:41 +09:00
syuilo 3f46b5259b New translations ja-JP.yml (Japanese, Kansai) 2018-12-09 14:32:35 +09:00
syuilo 2faa8ea97c New translations ja-JP.yml (Spanish) 2018-12-09 14:32:30 +09:00
syuilo 514690cf18 New translations ja-JP.yml (Russian) 2018-12-09 14:32:26 +09:00
syuilo f4f78c1898 New translations ja-JP.yml (Portuguese) 2018-12-09 14:32:22 +09:00
syuilo 2d24befb15 New translations ja-JP.yml (Polish) 2018-12-09 14:32:17 +09:00
syuilo 184d88838c New translations ja-JP.yml (Korean) 2018-12-09 14:32:11 +09:00
syuilo 4490503d59 New translations ja-JP.yml (Italian) 2018-12-09 14:32:06 +09:00
syuilo 99750435ae New translations ja-JP.yml (German) 2018-12-09 14:32:02 +09:00
syuilo fae920e578 New translations ja-JP.yml (French) 2018-12-09 14:31:56 +09:00
syuilo 0243b6d13b New translations ja-JP.yml (English) 2018-12-09 14:31:51 +09:00
syuilo 12bc725d68 New translations ja-JP.yml (Chinese Simplified) 2018-12-09 14:31:46 +09:00
syuilo b1a7b781ec New translations ja-JP.yml (Catalan) 2018-12-09 14:31:40 +09:00
277 changed files with 5135 additions and 2170 deletions
+3
View File
@@ -0,0 +1,3 @@
.[]
.head
.label
+2
View File
@@ -0,0 +1,2 @@
.links
.next
+39
View File
@@ -0,0 +1,39 @@
(
.data |
map(
select(
.relationships
.currently_entitled_tiers
.data[]
)
) |
map(
.relationships
.user
.data
.id
)
) as $data |
.included |
map(
select(
.id as $id |
$data |
contains(
[
$id
]
)
)
) |
map(
.attributes |
[
.full_name,
.thumb_url,
.url
] |
@tsv
) |
.[] |
@text
@@ -5,7 +5,7 @@
# __MISSKEY_HEAD=acid-chicken:patch-autogen
# __MISSKEY_REPO=syuilo/misskey
# __MISSKEY_BRANCH=develop
test "$(curl -LSs -w '\n' -- "https://api.github.com/repos/$REPO/pulls?access_token=$__MISSKEY_GITHUB_TOKEN" | jq -r '.[].head.label' | grep $__MISSKEY_HEAD)" && exit 1
test "$(curl -LSs -w '\n' -- "https://api.github.com/repos/$REPO/pulls?access_token=$__MISSKEY_GITHUB_TOKEN" | jq -r -f check_pr.jq | grep $__MISSKEY_HEAD)" && exit 1
cd "$(dirname $0)/.." && \
touch null.cache && \
rm *.cache && \
@@ -30,7 +30,7 @@ while :
touch patreon.cache && \
rm patreon.cache && \
cat patreon.raw.cache | \
jq -r '(.data|map(select(.relationships.currently_entitled_tiers.data[]))|map(.relationships.user.data.id))as$data|.included|map(select(.id as$id|$data|contains([$id])))|map(.attributes|[.full_name,.thumb_url,.url]|@tsv)|.[]|@text' >> patreon.cache && \
jq -r -f patreon.jq >> patreon.cache && \
echo '<table><tr>' >> patreon.md.cache && \
cat patreon.cache | \
awk -F'\t' '{print $2,$1}' | \
@@ -43,7 +43,7 @@ while :
xargs -I% echo '<td><a href="%</a></td>' >> patreon.md.cache && \
echo '</tr></table>' >> patreon.md.cache || \
exit 1
new_url="$(cat patreon.raw.cache | jq -r '.links.next')"
new_url="$(cat patreon.raw.cache | jq -r -f next_url.jq)"
test "$new_url" = 'null' && \
break || \
URL="$url"
-8
View File
@@ -108,13 +108,5 @@ autoAdmin: true
# port: 9200
# pass: null
# ServiceWorker
#sw:
# # Public key of VAPID
# public_key: example-sw-public-key
#
# # Private key of VAPID
# private_key: example-sw-private-key
# Clustering
#clusterLimit: 1
+13
View File
@@ -0,0 +1,13 @@
# Summary
<!--
-
- * Please describe your changes here *
-
- If you are going to resolve some issue, please add this context.
- Resolve #ISSUE_NUMBER
-
- If you are going to fix some bug issue, please add this context.
- Fix #ISSUE_NUMBER
-
-->
+108
View File
@@ -1,6 +1,114 @@
ChangeLog
=========
10.70.0
-------
* フォローしているユーザーからのフォローを自動承認するオプション
* 「非公開」の公開範囲を廃止
* Renote数の表示を廃止
* 投稿のフィルタリングを強化
* デザインの調整
10.69.0
-------
* 通知の管理を強化
* ユーザビリティの強化
* デザインの調整
10.68.0
-------
* 特定ユーザーにメンション付きで新規投稿ができるボタンを追加
* 自分の投稿にリアクションできないように
* 数式に文法エラーがあるとき、数式のソースをそのまま表示するように
* CWボタンにアンケートの有無を表記するように
* デスクトップ版で設定を新しいタブで開くように
* モバイル版で検索ができない問題を修正
* i18nの修正
10.67.0
-------
* トークのメッセージを削除できるように
* リアクションを取り消せるように
* Misskey以外のソフトウェアからの「Like」アクティビティをプリンではなく「いいね」として扱うように
* i18nの修正
* バグ修正
* など
10.66.2
-------
* i18nの修正
* ドライブのファイル一覧取得APIでファイルサイズによるソートが機能していなかった問題を修正
* リモートユーザーの更新時に、各ピン留め投稿の取得失敗は無視するように
* リモートMisskeyユーザーの情報が登録/更新出来なくなっていたのを修正
* メンションのリンク先URLに余計な@がプリフィクスされていたのを修正
* ダイレクトでリプライする際、リプライ先のユーザーは自動的に公開先として追加するように
* ダイレクトでメンションでもユーザーを指定できるように
10.66.1
-------
* ActivityPubのsharedInboxに関して修正
* MFMでのカッコの判定を改善
* バグ修正
10.66.0
-------
* ユーザーごとのRSSフィードを提供するように
* リストのユーザーがすべて表示できない問題を修正
* デザインの調整
* パフォーマンスの改善
10.65.0
-------
* 検索で投稿やユーザーのURLを入力した際にそれをフェッチして表示するように
* リストのリネームと削除をできるように
* リストからユーザーを削除できるように
* リモートの絵文字を更新するように
* ActivityPubのための絵文字エンドポイントを実装
* 管理者がドライブのファイルのNSFWを設定できるように
* ServiceWorkerの設定を管理者ページで行えるように
* メンションの判定を改善
* リモートの投稿を引用した際にオリジナルのURLを挿入するように
* クライアントのパフォーマンス改善
* CWの内容がタブタイトルに表示されるのを修正
* アカウントを作成したときにログイン状態にならない問題を修正
* 時計の針にテーマカラーが適用されていなかったのを修正
* 一部の日時の表示が日本語で表示されていたのを修正
* プロフィールの写真欄に画像以外のファイルが含まれる問題を修正
* メンションが含まれる投稿に返信する際、フォームに予めそれらのメンションがセットされた状態にならない問題を修正
* デッキのTLにUIの動きを減らすオプションが適用されていなかったのを修正
* ログイン画面のタイムラインに隠した投稿が表示される問題を修正
* サジェストが複数開いてしまう問題を修正
* APから来たタグに登録時の長さ制限が適用されていなかったのを修正
10.64.2
-------
* UIの動きを減らすオプションが一部のアニメーションに適用されなかったのを修正
10.64.1
-------
* レートリミットの調整
* アニメーションの調整
10.64.0
-------
* いくつかのアニメーションを追加
* OGP向けにインスタンスのバナー画像を提供するように
* 管理者ページでドライブのファイルを表示できるように
* ユーザビリティの強化
* バグ修正
10.63.1
-------
* メンションの表示を改善
* バグ修正
10.63.0
-------
* ActivityPubのユーザーフィールドをユーザーページに表示
* 404ページの実装
* パフォーマンスの向上
* バグ修正
10.62.2
-------
* バグ修正
+13
View File
@@ -25,3 +25,16 @@ Misskey uses [vue-i18n](https://github.com/kazupon/vue-i18n).
## Continuous integration
Misskey uses CircleCI for automated test.
Configuration files are located in `/.circleci`.
## Glossary
### AP
Stands for _**A**ctivity**P**ub_.
### MFM
Stands for _**M**isskey **F**lavored **M**arkdown_.
### Mk
Stands for _**M**iss**k**ey_.
### SW
Stands for _**S**ervice**W**orker_.
+11 -13
View File
@@ -3,9 +3,9 @@
[![Misskey](/assets/title.png)](https://misskey.xyz/)
================================================================
[![CircleCI](https://circleci.com/gh/syuilo/misskey.svg?style=svg)](https://circleci.com/gh/syuilo/misskey)
[![][dependencies-badge]][dependencies-link]
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![CircleCI](https://img.shields.io/circleci/project/github/syuilo/misskey.svg?style=for-the-badge)](https://circleci.com/gh/syuilo/misskey)
[![Dependencies](https://img.shields.io/david/syuilo/misskey.svg?style=for-the-badge)](https://david-dm.org/syuilo/misskey)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge)](http://makeapullrequest.com)
**Sophisticated microblogging platform, evolving forever.**
@@ -77,48 +77,48 @@ Please see [Contribution guide](./CONTRIBUTING.md).
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/13376668/71f3cf87ec6c4393a44b1b9df5ee3d12/1?token-time=2145916800&token-hash=7pSmWqgMfMSJHVIEcNsuuQoKeU3TRluew5p0EGTzWA4%3D" alt="Arctic"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12731202/0995c46cdcb54153ab5f073f5869b70a/1?token-time=2145916800&token-hash=Yd60FK_SWfQO56SeiJpy1tDHOnCV4xdEywQe8gn5_Wo%3D" alt="negao"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12913507/f7181eacafe8469a93033d85f5969c29/2?token-time=2145916800&token-hash=mgPdX9TqZxEg4TTPuc477dxhIgYk9246qafjWZEqZ7g%3D" alt="Melilot"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12999811/5f349fafcce44dd1824a8b1ebbec4564/2?token-time=2145916800&token-hash=rwZ8qvbm_kpA4ib3kc07tVKupXeySpY5ATQFGxfL9v0%3D" alt="Xeltica"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12999811/5f349fafcce44dd1824a8b1ebbec4564/3?token-time=2145916800&token-hash=ybYtxfpte1b-rGg6Zecpys2ZdZDtwR_UNJHQjt-3eoU%3D" alt="Xeltica"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/3384329/8b713330cb27404ea6e9fac50ff96efe/1?token-time=2145916800&token-hash=0eu4-m1gTWA9PhptVZt6rdKcusqcD7RB87rJT23VVFI%3D" alt="べすれい"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12021162/963128bb8d14476dbd8407943db8f31a/1?token-time=2145916800&token-hash=GgJ_NmUB6_nnRNLVGUWjV-WX91On7BOu59LKncYV9fE%3D" alt="gutfuckllc"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/11357794/923ce94cd8c44ba788ee931907881839/1?token-time=2145916800&token-hash=I8lJVM8LeW6TSo5W6uIIRZ42cw83zp1wK_FsbzY0mcQ%3D" alt="mydarkstar"></td>
</tr><tr>
<td><a href="https://www.patreon.com/weepjp">weep</a></td>
<td><a href="https://www.patreon.com/user?u=13376668">Arctic</a></td>
<td><a href="https://www.patreon.com/negao">negao</a></td>
<td><a href="https://www.patreon.com/user?u=12913507">Melilot</a></td>
<td><a href="https://www.patreon.com/AxellaMC">Xeltica</a></td>
<td><a href="https://www.patreon.com/Xeltica">Xeltica</a></td>
<td><a href="https://www.patreon.com/user?u=3384329">べすれい</a></td>
<td><a href="https://www.patreon.com/gutfuckllc">gutfuckllc</a></td>
<td><a href="https://www.patreon.com/mydarkstar">mydarkstar</a></td>
</tr></table>
<table><tr>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/11357794/923ce94cd8c44ba788ee931907881839/1?token-time=2145916800&token-hash=I8lJVM8LeW6TSo5W6uIIRZ42cw83zp1wK_FsbzY0mcQ%3D" alt="mydarkstar"></td>
<td><img src="https://c8.patreon.com/2/100/12718187" alt="Peter G."></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/13039004/509d0c412eb14ae08d6a812a3054f7d6/1?token-time=2145916800&token-hash=zwSu01tOtn5xTUucDZHuPsCxF2HBEMVs9ROJKTlEV_o%3D" alt="nemu"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/5881381/6235ca5d3fb04c8e95ef5b4ff2abcc18/3?token-time=2145916800&token-hash=qsdn0-e6yLaLI6hUX9JAkyTR6a5UdnSp7T1foniBvGQ%3D" alt="YUKIMOCHI"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/8241184/39e18850e87a449e9c9a71acb3310ebd/2?token-time=2145916800&token-hash=iUXOQzRyJDv3PJxwS7Mjwg1459dzh2trOq6NFtXu_OM%3D" alt="Acid Chicken"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/13034746/c711c7f58e204ecfbc2fd646bc8a4eee/1?token-time=2145916800&token-hash=UERBN4OyP7Nh5XwwdDg0N0IE5cD6_qUQMO81Z5Wizso%3D" alt="Hiratake"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/10789744/97175095d8f04c0f86225ff47cb98d40/1?token-time=2145916800&token-hash=P4BIzCX2I1CkEP66ottfhsC8Wr6BUSamjA-vq3pLqFI%3D" alt="Naoki Hirayama"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/4503830/ccf2cc867ea64de0b524bb2e24b9a1cb/1?token-time=2145916800&token-hash=S1zP0QyLU52Dqq6dtc9qNYyWfW86XrYHiR4NMbeOrnA%3D" alt="dansup"></td>
</tr><tr>
<td><a href="https://www.patreon.com/mydarkstar">mydarkstar</a></td>
<td><a href="https://www.patreon.com/user?u=12718187">Peter G.</a></td>
<td><a href="https://www.patreon.com/user?u=13039004">nemu</a></td>
<td><a href="https://www.patreon.com/yukimochi">YUKIMOCHI</a></td>
<td><a href="https://www.patreon.com/acid_chicken">Acid Chicken</a></td>
<td><a href="https://www.patreon.com/hiratake">Hiratake</a></td>
<td><a href="https://www.patreon.com/spinlock">Naoki Hirayama</a></td>
<td><a href="https://www.patreon.com/dansup">dansup</a></td>
</tr></table>
<table><tr>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/4503830/ccf2cc867ea64de0b524bb2e24b9a1cb/1?token-time=2145916800&token-hash=S1zP0QyLU52Dqq6dtc9qNYyWfW86XrYHiR4NMbeOrnA%3D" alt="dansup"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/619786/32cf01444db24e578cd1982c197f6fc6/1?token-time=2145916800&token-hash=tB1e_r8RlZ5sFL0KV_e8dugapxatNBRK1Z3h67TO1g8%3D" alt="Gargron"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/5731881/4b6038e6cda34c04b83a5fcce3806a93/1?token-time=2145916800&token-hash=VZUtwrjQa8Jml4twCjHYQQZ64wHEY4oIlGl7Kc-VYUQ%3D" alt="Nokotaro Takeda"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12531784/93a45137841849329ba692da92ac7c60/1?token-time=2145916800&token-hash=tMosUojzUYJCH_3t--tvYA-SMCyrS__hzSndyaRSnbo%3D" alt="Takashi Shibuya"></td>
</tr><tr>
<td><a href="https://www.patreon.com/dansup">dansup</a></td>
<td><a href="https://www.patreon.com/mastodon">Gargron</a></td>
<td><a href="https://www.patreon.com/takenoko">Nokotaro Takeda</a></td>
<td><a href="https://www.patreon.com/user?u=12531784">Takashi Shibuya</a></td>
</tr></table>
**Last updated:** Thu, 06 Dec 2018 14:22:05 UTC
**Last updated:** Tue, 25 Dec 2018 04:58:06 UTC
<!-- PATREON_END -->
:four_leaf_clover: Copyright
@@ -130,9 +130,7 @@ Misskey is an open-source software licensed under the [GNU AGPLv3](LICENSE).
[![][agpl-3.0-badge]][AGPL-3.0]
[agpl-3.0]: https://www.gnu.org/licenses/agpl-3.0.en.html
[agpl-3.0-badge]: https://img.shields.io/badge/license-AGPL--3.0-444444.svg?style=flat-square
[dependencies-link]: https://david-dm.org/syuilo/misskey
[dependencies-badge]: https://img.shields.io/david/syuilo/misskey.svg?style=flat-square
[agpl-3.0-badge]: https://img.shields.io/badge/license-AGPL--3.0-444444.svg?style=for-the-badge
[backer-url]: #backers
[backer-badge]: https://opencollective.com/misskey/backers/badge.svg
+70
View File
@@ -0,0 +1,70 @@
# Sample nginx configuration for Misskey
#
# 1. Replace example.tld to your domain
# 2. Copy to /etc/nginx/sites-available/ and then symlink from /etc/nginx/sites-ebabled/
# or copy to /etc/nginx/conf.d/
# For WebSocket
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off;
server {
listen 80;
listen [::]:80;
server_name example.tld;
# For SSL domain validation
root /var/www/html;
location /.well-known/acme-challenge/ { allow all; }
location /.well-known/pki-validation/ { allow all; }
location / { return 301 https://$server_name$request_uri; }
}
server {
listen 443 http2;
listen [::]:443 http2;
server_name example.tld;
ssl on;
ssl_session_cache shared:ssl_session_cache:10m;
# To use Let's Encrypt certificate
ssl_certificate /etc/letsencrypt/live/example.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.tld/privkey.pem;
# To use Debian/Ubuntu's self-signed certificate (For testing or before issuing a certificate)
#ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
#ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
# SSL protocol settings
ssl_protocols TLSv1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES128-SHA;
ssl_prefer_server_ciphers on;
# Change to your upload limit
client_max_body_size 80m;
# Proxy to Node
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_http_version 1.1;
proxy_redirect off;
# For WebSocket
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# Cache settings
proxy_cache cache1;
proxy_cache_lock on;
proxy_cache_use_stale updating;
add_header X-Cache $upstream_cache_status;
}
}
-10
View File
@@ -47,16 +47,6 @@ As root:
4. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` Checkout to the [latest release](https://github.com/syuilo/misskey/releases/latest)
5. `npm install` Install misskey dependencies.
*(optional)* Generate VAPID keys
----------------------------------------------------------------
If you want to enable ServiceWorker, you need to generate VAPID keys:
Unless you have set your global node_modules location elsewhere, you need to run this as root.
``` shell
npm install web-push -g
web-push generate-vapid-keys
```
*5.* Configure Misskey
----------------------------------------------------------------
1. `cp .config/example.yml .config/default.yml` Copy the `.config/example.yml` and rename it to `default.yml`.
-10
View File
@@ -47,16 +47,6 @@ En mode root :
4. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` Télécharge la [version la plus récente](https://github.com/syuilo/misskey/releases/latest)
5. `npm install` Installez les dépendances de misskey.
*(optionnel)* Génération des clés VAPID
----------------------------------------------------------------
Si vous désirez activer ServiceWorker, vous devez générer les clés VAPID :
Unless you have set your global node_modules location elsewhere, vous devez lancer ceci en mode root.
``` shell
npm install web-push -g
web-push generate-vapid-keys
```
*5.* Création du fichier de configuration
----------------------------------------------------------------
1. `cp .config/example.yml .config/default.yml` Copiez le fichier `.config/example.yml` et renommez-le `default.yml`.
-9
View File
@@ -53,15 +53,6 @@ adduser --disabled-password --disabled-login misskey
4. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` [最新のリリース](https://github.com/syuilo/misskey/releases/latest)を確認
5. `npm install` Misskeyの依存パッケージをインストール
*(オプション)* VAPIDキーペアの生成
----------------------------------------------------------------
ServiceWorkerを有効にする場合、VAPIDキーペアを生成する必要があります:
``` shell
npm install web-push -g
web-push generate-vapid-keys
```
*5.* 設定ファイルを作成する
----------------------------------------------------------------
1. `cp .config/example.yml .config/default.yml` `.config/example.yml`をコピーし名前を`default.yml`にする。
+1 -51
View File
@@ -11,14 +11,12 @@ import tslint from 'gulp-tslint';
const cssnano = require('gulp-cssnano');
const stylus = require('gulp-stylus');
import * as uglifyComposer from 'gulp-uglify/composer';
import pug = require('gulp-pug');
import * as rimraf from 'rimraf';
import chalk from 'chalk';
const imagemin = require('gulp-imagemin');
import * as rename from 'gulp-rename';
import * as mocha from 'gulp-mocha';
import * as replace from 'gulp-replace';
import * as htmlmin from 'gulp-htmlmin';
const uglifyes = require('uglify-es');
const locales = require('./locales');
@@ -34,8 +32,6 @@ if (isDebug) {
console.warn(chalk.yellow.bold(' built script will not be compressed.'));
}
const constants = require('./src/const.json');
gulp.task('build', [
'build:ts',
'build:copy',
@@ -109,7 +105,7 @@ gulp.task('default', ['build']);
gulp.task('build:client', [
'build:ts',
'build:client:script',
'build:client:pug',
'build:client:styles',
'copy:client'
]);
@@ -148,52 +144,6 @@ gulp.task('copy:client', [
.pipe(gulp.dest('./built/client/assets/'))
);
gulp.task('build:client:pug', [
'copy:client',
'build:client:script',
'build:client:styles'
], () =>
gulp.src('./src/client/app/base.pug')
.pipe(pug({
locals: {
themeColor: constants.themeColor
}
}))
.pipe(htmlmin({
// 真理値属性の簡略化 e.g.
// <input value="foo" readonly="readonly"> to
// <input value="foo" readonly>
collapseBooleanAttributes: true,
// テキストの一部かもしれない空白も削除する e.g.
// <div> <p> foo </p> </div> to
// <div><p>foo</p></div>
collapseWhitespace: true,
// タグ間の改行を保持する
preserveLineBreaks: true,
// (できる場合は)属性のクォーテーション削除する e.g.
// <p class="foo-bar" id="moo" title="blah blah">foo</p> to
// <p class=foo-bar id=moo title="blah blah">foo</p>
removeAttributeQuotes: true,
// 省略可能なタグを省略する e.g.
// <html><p>yo</p></html> ro
// <p>yo</p>
removeOptionalTags: true,
// 属性の値がデフォルトと同じなら省略する e.g.
// <input type="text"> to
// <input>
removeRedundantAttributes: true,
// CSSも圧縮する
minifyCSS: true
}))
.pipe(gulp.dest('./built/client/app/'))
);
gulp.task('locales', () =>
gulp.src('./locales/*.yml')
.pipe(yaml({ schema: 'DEFAULT_SAFE_SCHEMA' }))
+64 -17
View File
@@ -90,7 +90,6 @@ common:
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
local-public: "公開 (ローカルのみ)"
local-home: "ホーム (ローカルのみ)"
local-followers: "フォロワー (ローカルのみ)"
@@ -111,7 +110,6 @@ common:
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
@@ -122,14 +120,15 @@ common:
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ"
use-os-default-emojis: "OS標準の絵文字を使用"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
error:
title: '問題が発生しました'
retry: 'やり直す'
title: "問題が発生しました"
retry: "やり直す"
reversi:
drawn: "引き分け"
my-turn: "あなたのターンです"
@@ -165,6 +164,7 @@ common:
hashtags: "ハッシュタグ"
dev: "アプリの作成に失敗しました。再度お試しください。"
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
permission-ask: "このアプリは次の権限を要求しています:"
@@ -299,6 +299,7 @@ common/views/components/cw-button.vue:
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
poll: "アンケート"
common/views/components/messaging.vue:
search-user: "ユーザーを探す"
you: "あなた"
@@ -328,6 +329,7 @@ common/views/components/nav.vue:
develop: "開発者"
feedback: "フィードバック"
common/views/components/note-menu.vue:
mention: "メンション"
detail: "詳細"
copy-link: "リンクをコピー"
favorite: "お気に入り"
@@ -403,6 +405,13 @@ common/views/components/stream-indicator.vue:
connecting: "接続中"
reconnecting: "再接続中"
connected: "接続完了"
common/views/components/notification-settings.vue:
title: "通知"
mark-as-read-all-notifications: "すべての通知を既読にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
mark-as-read-all-talk-messages: "すべてのトークを既読にする"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
@@ -432,7 +441,6 @@ common/views/components/visibility-chooser.vue:
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
local-public: "公開 (ローカルのみ)"
local-public-desc: "リモートへは公開しない"
local-home: "ホーム (ローカルのみ)"
@@ -461,6 +469,7 @@ common/views/components/profile-editor.vue:
is-bot: "このアカウントはBotです"
is-locked: "フォローを承認制にする"
careful-bot: "Botからのフォローだけ承認制にする"
auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
advanced: "その他"
privacy: "プライバシー"
save: "保存"
@@ -471,6 +480,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
delete: "リストを削除"
remove-user: "このリストから削除"
delete-are-you-sure: "リスト「$1」を削除しますか?"
deleted: "削除しました"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
@@ -520,9 +536,11 @@ common/views/widgets/tips.vue:
tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
tips-line21: "APIを利用してbotの開発なども行えます"
tips-line23: "まゆかわいいよまゆ"
tips-line23: "かわいいよ"
tips-line24: "Misskeyは2014年にサービスを開始しました"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/not-found.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォロー中"
@@ -658,10 +676,12 @@ desktop/views/components/note-detail.vue:
location: "位置情報"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
desktop/views/components/note.vue:
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -791,8 +811,6 @@ desktop/views/components/settings.vue:
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
cache-cleared: "キャッシュを削除しました"
cache-cleared-desc: "ページを再度読み込みしてください。"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
about: "Misskeyについて"
operator: "このサーバーの運営者"
update: "Misskey Update"
@@ -845,13 +863,13 @@ common/views/components/api-settings.vue:
token: "Token:"
enter-password: "パスワードを入力してください"
console:
title: 'APIコンソール'
endpoint: 'エンドポイント'
parameter: 'パラメータ'
title: "APIコンソール"
endpoint: "エンドポイント"
parameter: "パラメータ"
credential-info: "「i」パラメータは自動で付与されます。"
send: '送信'
sending: '応答待ち'
response: '結果'
send: "送信"
sending: "応答待ち"
response: "結果"
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはありません"
common/views/components/drive-settings.vue:
@@ -881,6 +899,11 @@ desktop/views/components/sub-note-content.vue:
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@@ -963,6 +986,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -1021,6 +1045,12 @@ admin/views/instance.vue:
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
enable-serviceworker: "ServiceWorkerを有効にする"
serviceworker-info: "プッシュ通知を行うには有効する必要があります。"
vapid-publickey: "VAPID公開鍵"
vapid-privatekey: "VAPID秘密鍵"
vapid-info: "ServiceWorkerを有効にする場合、VAPIDキーペアを生成する必要があります。シェルで次のようにします:"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1046,6 +1076,22 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
mark-as-sensitive: "閲覧注意に設定"
unmark-as-sensitive: "閲覧注意を解除"
admin/views/users.vue:
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
@@ -1177,6 +1223,7 @@ desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
is-bot: "このアカウントはBotです"
years-old: "{age}歳"
year: "年"
@@ -1186,6 +1233,7 @@ desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
with-media: "メディア"
my-posts: "私の投稿"
empty: "このユーザーはまだ何も投稿していないようです。"
desktop/views/widgets/messaging.vue:
title: "メッセージ"
@@ -1408,7 +1456,6 @@ mobile/views/pages/settings.vue:
signout: "サインアウト"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
password: "パスワード"
mobile/views/pages/user.vue:
follows-you: "フォローされています"
@@ -1418,7 +1465,6 @@ mobile/views/pages/user.vue:
overview: "概要"
timeline: "タイムライン"
media: "メディア"
is-suspended: "このユーザーは凍結されています。"
mute: "ミュート"
unmute: "ミュート解除"
block: "ブロック"
@@ -1472,6 +1518,7 @@ deck/deck.user-column.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
images: "画像"
activity: "アクティビティ"
timeline: "タイムライン"
+64 -17
View File
@@ -90,7 +90,6 @@ common:
followers-desc: "Nur für diejenigen sichtbar, die dir folgen"
specified: "Direkt"
specified-desc: "Nur für bestimmte Benutzer posten"
private: "Privat"
local-public: "公開 (ローカルのみ)"
local-home: "ホーム (ローカルのみ)"
local-followers: "フォロワー (ローカルのみ)"
@@ -111,7 +110,6 @@ common:
i-like-sushi: "Ich bevorzuge Sushi anstelle von Pudding"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "Verifizierter Benutzer"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
@@ -122,14 +120,15 @@ common:
reduce-motion: "Animationen der Benutzeroberfläche reduzieren"
this-setting-is-this-device-only: "Nur auf diesem Gerät"
use-os-default-emojis: "OS標準の絵文字を使用"
do-not-use-in-production: 'Dies ist eine Entwicklungsversion. Nicht in einer Produktionsumgebung verwenden.'
do-not-use-in-production: "Dies ist eine Entwicklungsversion. Nicht in einer Produktionsumgebung verwenden."
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
error:
title: '問題が発生しました'
retry: 'Erneut versuchen'
title: "問題が発生しました"
retry: "Erneut versuchen"
reversi:
drawn: "Unentschieden"
my-turn: "Du bist am Zug"
@@ -165,6 +164,7 @@ common:
hashtags: "Hashtags"
dev: "Fehler beim Erstellen der Applikation. Bitte versuche es erneut."
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
permission-ask: "このアプリは次の権限を要求しています:"
@@ -299,6 +299,7 @@ common/views/components/cw-button.vue:
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
poll: "アンケート"
common/views/components/messaging.vue:
search-user: "Einen Nutzer suchen"
you: "Du"
@@ -328,6 +329,7 @@ common/views/components/nav.vue:
develop: "Entwickler"
feedback: "Feedback"
common/views/components/note-menu.vue:
mention: "メンション"
detail: "詳細"
copy-link: "リンクをコピー"
favorite: "Diese Notiz favorisieren"
@@ -403,6 +405,13 @@ common/views/components/stream-indicator.vue:
connecting: "Verbindung wird hergestellt"
reconnecting: "Erneut verbinden"
connected: "Verbindung hergestellt"
common/views/components/notification-settings.vue:
title: "通知"
mark-as-read-all-notifications: "すべての通知を既読にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
mark-as-read-all-talk-messages: "すべてのトークを既読にする"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
@@ -432,7 +441,6 @@ common/views/components/visibility-chooser.vue:
followers-desc: "Nur für diejenigen sichtbar, die dir folgen"
specified: "Direkt"
specified-desc: "Poste nur für bestimmte Benutzer"
private: "Privat"
local-public: "公開 (ローカルのみ)"
local-public-desc: "リモートへは公開しない"
local-home: "ホーム (ローカルのみ)"
@@ -461,6 +469,7 @@ common/views/components/profile-editor.vue:
is-bot: "このアカウントはBotです"
is-locked: "フォローを承認制にする"
careful-bot: "Botからのフォローだけ承認制にする"
auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
advanced: "その他"
privacy: "プライバシー"
save: "保存"
@@ -471,6 +480,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
delete: "リストを削除"
remove-user: "このリストから削除"
delete-are-you-sure: "リスト「$1」を削除しますか?"
deleted: "削除しました"
common/views/widgets/broadcast.vue:
fetching: "Laden"
no-broadcasts: "Keine Broadcasts"
@@ -520,9 +536,11 @@ common/views/widgets/tips.vue:
tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
tips-line21: "APIを利用してbotの開発なども行えます"
tips-line23: "まゆかわいいよまゆ"
tips-line23: "かわいいよ"
tips-line24: "Misskeyは2014年にサービスを開始しました"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/not-found.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォロー中"
@@ -658,10 +676,12 @@ desktop/views/components/note-detail.vue:
location: "Ort"
renote: "Anmerkung"
add-reaction: "Reaktion hinzufügen"
undo-reaction: "リアクション解除"
desktop/views/components/note.vue:
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -791,8 +811,6 @@ desktop/views/components/settings.vue:
cache-warn: "Der Cache deines Benutzerkontos (Info, Beiträge, Antworten, Direktnachrichten, Einstellungen), die lokal im Browser gespeichert sind werden gelöscht.\nDu musst die Seite aktualisieren nachdem du aufgeräumt hast."
cache-cleared: "キャッシュを削除しました"
cache-cleared-desc: "ページを再度読み込みしてください。"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
about: "Misskeyについて"
operator: "このサーバーの運営者"
update: "Misskey Update"
@@ -845,13 +863,13 @@ common/views/components/api-settings.vue:
token: "Token:"
enter-password: "パスワードを入力してください"
console:
title: 'APIコンソール'
endpoint: 'エンドポイント'
parameter: 'パラメータ'
title: "APIコンソール"
endpoint: "エンドポイント"
parameter: "パラメータ"
credential-info: "「i」パラメータは自動で付与されます。"
send: '送信'
sending: '応答待ち'
response: '結果'
send: "送信"
sending: "応答待ち"
response: "結果"
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはありません"
common/views/components/drive-settings.vue:
@@ -881,6 +899,11 @@ desktop/views/components/sub-note-content.vue:
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "Taskmanager"
desktop/views/components/timeline.vue:
@@ -963,6 +986,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -1021,6 +1045,12 @@ admin/views/instance.vue:
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
enable-serviceworker: "ServiceWorkerを有効にする"
serviceworker-info: "プッシュ通知を行うには有効する必要があります。"
vapid-publickey: "VAPID公開鍵"
vapid-privatekey: "VAPID秘密鍵"
vapid-info: "ServiceWorkerを有効にする場合、VAPIDキーペアを生成する必要があります。シェルで次のようにします:"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1046,6 +1076,22 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
mark-as-sensitive: "閲覧注意に設定"
unmark-as-sensitive: "閲覧注意を解除"
admin/views/users.vue:
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
@@ -1177,6 +1223,7 @@ desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
is-bot: "このアカウントはBotです"
years-old: "{age}歳"
year: "年"
@@ -1186,6 +1233,7 @@ desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
with-media: "メディア"
my-posts: "私の投稿"
empty: "このユーザーはまだ何も投稿していないようです。"
desktop/views/widgets/messaging.vue:
title: "メッセージ"
@@ -1408,7 +1456,6 @@ mobile/views/pages/settings.vue:
signout: "サインアウト"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
password: "パスワード"
mobile/views/pages/user.vue:
follows-you: "フォローされています"
@@ -1418,7 +1465,6 @@ mobile/views/pages/user.vue:
overview: "概要"
timeline: "タイムライン"
media: "メディア"
is-suspended: "このユーザーは凍結されています。"
mute: "ミュート"
unmute: "ミュート解除"
block: "ブロック"
@@ -1472,6 +1518,7 @@ deck/deck.user-column.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
images: "画像"
activity: "アクティビティ"
timeline: "タイムライン"
+70 -23
View File
@@ -8,7 +8,7 @@ common:
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?"
intro:
title: "What is Misskey?"
about: "Misskey is a open-source <b>decentralized microblogging service</b>. Sophisticated fully customizable Ui, varieties of reaction for posts, free file storage providing integrated management system and other advancing functions are available. Also, network system called “Fediverse” enables us to communicate with users on other SNSs. Like, if you post something, then your posts will sent not only to Misskey but also mastodon. Just imagine that the planet is sending a microwave to other planet to communication."
about: "Misskey is an open-source <b>decentralized microblogging service</b>. Sophisticated fully customizable UI, varieties of reactions for posts, free file storage providing an integrated management system and other advanced functions are available. In addition, Misskey connects to a network system called the “Fediverse” enables us to communicate with users on other SNSs. For example, when you post something it will be sent not only to Misskey but also Mastodon and Pleroma. Just imagine that the planet is sending a radio transmission to other planet to communicate."
features: "Features"
rich-contents: "Post"
rich-contents-desc: "Just post your idea, hot topics and anything you want to share. You may want to decorate your words, attach your favorite pictures, send files including movies and create a poll - those are the things you can do on Misskey!"
@@ -90,7 +90,6 @@ common:
followers-desc: "Post to followers only"
specified: "Direct"
specified-desc: "Post to specified users only"
private: "Private"
local-public: "Public (Only local)"
local-home: "Home (Only local)"
local-followers: "Followers (Only local)"
@@ -111,7 +110,6 @@ common:
i-like-sushi: "I prefer sushi rather than pudding"
show-reversi-board-labels: "Show row and column labels in Reversi"
use-white-black-reversi-stones: "Use white-black stone in reversi"
use-contrast-reversi-stones: "Make the stone color clear in reversi"
verified-user: "Verified account"
disable-animated-mfm: "Disable animated texts in a post"
suggest-recent-hashtags: "Suggest recently used hashtags within the post composition area"
@@ -122,14 +120,15 @@ common:
reduce-motion: "Reduce motion in UI"
this-setting-is-this-device-only: "Only for this device"
use-os-default-emojis: "Use the OS default Emojis"
do-not-use-in-production: 'This is a development build. Do not use in production.'
do-not-use-in-production: "This is a development build. Do not use in production."
user-suspended: "This user has been suspended."
is-remote-user: "This user information is copied."
is-remote-post: "This post information is a copy."
view-on-remote: "View it on remote"
renoted-by: "Renoted by {user}"
error:
title: 'Something happened :('
retry: 'Retry'
title: "Something happened :("
retry: "Retry"
reversi:
drawn: "Draw"
my-turn: "Your turn"
@@ -165,6 +164,7 @@ common:
hashtags: "Hashtags"
dev: "Failed to create the application. Please try again."
ai-chan-kawaii: "Ai-chan kawaii!"
you: "You"
auth/views/form.vue:
share-access: "Would you allow <i>{name}</i> to access your account?"
permission-ask: "This application requires the following permissions:"
@@ -299,6 +299,7 @@ common/views/components/cw-button.vue:
show: "See more"
chars: "{count} chars"
files: "{count} files"
poll: "Poll"
common/views/components/messaging.vue:
search-user: "Find a user"
you: "You"
@@ -328,6 +329,7 @@ common/views/components/nav.vue:
develop: "Developers"
feedback: "Feedback"
common/views/components/note-menu.vue:
mention: "Mentions"
detail: "Details"
copy-link: "Copy link"
favorite: "Favorite this note"
@@ -335,7 +337,7 @@ common/views/components/note-menu.vue:
pin: "Pin to your profile"
unpin: "Unpin"
delete: "Delete"
delete-confirm: "Delete this post?"
delete-confirm: "Are you sure you want to delete this post?"
remote: "Show original note"
common/views/components/poll.vue:
vote-to: "Vote for '{}'"
@@ -403,6 +405,13 @@ common/views/components/stream-indicator.vue:
connecting: "Connecting"
reconnecting: "Reconnecting"
connected: "Connected"
common/views/components/notification-settings.vue:
title: "Notifications"
mark-as-read-all-notifications: "Mark all notifications as read"
mark-as-read-all-unread-notes: "Mark all posts as read"
mark-as-read-all-talk-messages: "Mark all conversations as read"
auto-watch: "Automatically watch out for posts"
auto-watch-desc: "Automatically receive notifications about posts you react to, or respond to."
common/views/components/integration-settings.vue:
title: "Service cooperation"
connect: "Connect"
@@ -416,7 +425,7 @@ common/views/components/github-setting.vue:
connect: "Link your GitHub account"
disconnect: "Disconnect"
common/views/components/discord-setting.vue:
description: "Once you connect your Discord account to your Misskey account, you will be able to see information about your Discord account on your profile, and you will be able to sign-in using Discord."
description: "Once you connect your Discord account to your Misskey account, you will be able to see information from your Discord account on your profile, and you will be able to sign-in using Discord."
connected-to: "You are connected to this Discord account"
detail: "Details…"
reconnect: "Reconnect"
@@ -432,7 +441,6 @@ common/views/components/visibility-chooser.vue:
followers-desc: "Post to Followers only"
specified: "Direct"
specified-desc: "Post to specified users only"
private: "Private"
local-public: "Local (Public)"
local-public-desc: "Do not publish to remote"
local-home: "Home (Only local)"
@@ -461,6 +469,7 @@ common/views/components/profile-editor.vue:
is-bot: "This account is a Bot"
is-locked: "Follower requests require approval"
careful-bot: "Follower requests from bots require approval"
auto-accept-followed: "Automatically approve follows from the people you follow"
advanced: "Other"
privacy: "Privacy"
save: "Save"
@@ -471,6 +480,13 @@ common/views/components/profile-editor.vue:
email-address: "Email Address"
email-verified: "Your email has been verified."
email-not-verified: "Email address is not confirmed. Please check your inbox."
common/views/components/user-list-editor.vue:
users: "User"
rename: "Rename list"
delete: "Delete list"
remove-user: "Remove from this list"
delete-are-you-sure: "Delete list \"$1\"?"
deleted: "Deleted successfully"
common/views/widgets/broadcast.vue:
fetching: "Checking"
no-broadcasts: "No announcements"
@@ -520,9 +536,11 @@ common/views/widgets/tips.vue:
tips-line19: "Several windows can be detached outside the browser."
tips-line20: "The percentage of the calendar widget shows the percentage of time elapsed."
tips-line21: "You can also use the API to develop bots."
tips-line23: "Mayu is so cute with its eyebrows."
tips-line23: "Ai-chan kawaii!"
tips-line24: "Misskey has been running since 2014."
tips-line25: "In a browser compatible with notification features, you can receive notifications in case Misskey is not open"
common/views/pages/not-found.vue:
page-not-found: "The page has not been found"
common/views/pages/follow.vue:
signed-in-as: "Signed in as {}"
following: "Following"
@@ -658,10 +676,12 @@ desktop/views/components/note-detail.vue:
location: "Location"
renote: "Repost"
add-reaction: "Add a reaction"
undo-reaction: "Reverse reaction"
desktop/views/components/note.vue:
reply: "Reply"
renote: "Renote"
add-reaction: "Add a reaction"
undo-reaction: "Reverse reaction"
detail: "Details"
private: "This post is private"
deleted: "This post has been deleted"
@@ -791,8 +811,6 @@ desktop/views/components/settings.vue:
cache-warn: "The cache of account info/posts/replies/messages/settings stored in the browser will be deleted. You need to reload the page after cleaning up."
cache-cleared: "Cache cleared"
cache-cleared-desc: "Please reload the page."
auto-watch: "Automatic watch"
auto-watch-desc: "Receive notifications about the post/reply/reaction automatically."
about: "About Misskey"
operator: "The admin of this instance"
update: "Misskey Update"
@@ -845,13 +863,13 @@ common/views/components/api-settings.vue:
token: "Token:"
enter-password: "Enter the password"
console:
title: 'API console'
endpoint: 'Endpoint'
parameter: 'Parameters'
title: "API console"
endpoint: "Endpoint"
parameter: "Parameters"
credential-info: "Parameter \"i\" is not required at this console."
send: 'Send'
sending: 'Sending'
response: 'Result'
send: "Send"
sending: "Sending"
response: "Result"
desktop/views/components/settings.apps.vue:
no-apps: "No linked applications"
common/views/components/drive-settings.vue:
@@ -881,6 +899,11 @@ desktop/views/components/sub-note-content.vue:
deleted: "This post has been deleted"
media-count: "{} media attached"
poll: "Poll"
desktop/views/components/settings.tags.vue:
title: "Tags"
query: "Query (optional)"
add: "Add"
save: "Save"
desktop/views/components/taskmanager.vue:
title: "Task Manager"
desktop/views/components/timeline.vue:
@@ -963,6 +986,7 @@ admin/views/instance.vue:
instance-description: "Instance description"
host: "Host"
banner-url: "Banner image URL"
error-image-url: "Error image URL"
languages: "Language of this instance"
languages-desc: "You can add more than one, separated by spaces."
maintainer-config: "Administrator information"
@@ -989,8 +1013,8 @@ admin/views/instance.vue:
enable-github-integration: "Enable connection to GitHub"
github-integration-client-id: "Client ID"
github-integration-client-secret: "Client Secret"
discord-integration-config: "Setting of Discord Integration"
discord-integration-info: "The callback URL is set on {url}."
discord-integration-config: "Discord Integration settings"
discord-integration-info: "The callback URL is set to {url}."
enable-discord-integration: "Enable Discord connection"
discord-integration-client-id: "Client ID"
discord-integration-client-secret: "Client Secret"
@@ -1006,7 +1030,7 @@ admin/views/instance.vue:
save: "Save"
saved: "Saved"
user-recommendation-config: "Recommended users"
enable-external-user-recommendation: "Enable to external user recommendation"
enable-external-user-recommendation: "Enable external user recommendations"
external-user-recommendation-engine: "Engine"
external-user-recommendation-engine-desc: "Example: https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-timeout: "Timeout"
@@ -1021,6 +1045,12 @@ admin/views/instance.vue:
smtp-port: "SMTP Port"
smtp-user: "SMTP User"
smtp-pass: "SMTP Password"
serviceworker-config: "ServiceWorker"
enable-serviceworker: "Enable ServiceWorker"
serviceworker-info: "Must be enabled for push notifications."
vapid-publickey: "VAPID public key"
vapid-privatekey: "VAPID private key"
vapid-info: "If you want to enable ServiceWorker, you need to generate VAPID keys. Unless you have set your global node_modules location elsewhere, you need to run this as root:"
admin/views/charts.vue:
title: "Chart"
per-day: "per Day"
@@ -1046,6 +1076,22 @@ admin/views/charts.vue:
network-requests: "Requests"
network-time: "Response time"
network-usage: "Traffic"
admin/views/drive.vue:
sort:
title: "Sort"
createdAtAsc: "Age - Oldest First"
createdAtDesc: "Age - Newest First"
sizeAsc: "Size - Smallest First"
sizeDesc: "Size - Largest First"
origin:
title: "Origin"
combined: "Local + Remote"
local: "Local"
remote: "Remote"
delete: "Delete"
deleted: "Deleted successfully"
mark-as-sensitive: "Mark as 'sensitive'"
unmark-as-sensitive: "Unmark as 'sensitive'"
admin/views/users.vue:
operation: "Operations"
username-or-userid: "Username or user ID"
@@ -1177,6 +1223,7 @@ desktop/views/pages/user/user.header.vue:
posts: "Notes"
following: "Following"
followers: "Followers"
mention: "Mentions"
is-bot: "This account is a Bot"
years-old: "{age} years old"
year: "/"
@@ -1186,6 +1233,7 @@ desktop/views/pages/user/user.timeline.vue:
default: "Posts"
with-replies: "Posts and replies"
with-media: "Media"
my-posts: "My posts"
empty: "This user doesn't seem to have posted anything yet."
desktop/views/widgets/messaging.vue:
title: "Message"
@@ -1408,7 +1456,6 @@ mobile/views/pages/settings.vue:
signout: "Sign out"
sound: "Sounds"
enable-sounds: "Enable sounds"
mark-as-read-all-unread-notes: "Mark all posts as read"
password: "Password"
mobile/views/pages/user.vue:
follows-you: "Follows you"
@@ -1418,7 +1465,6 @@ mobile/views/pages/user.vue:
overview: "Overview"
timeline: "Timeline"
media: "Media"
is-suspended: "This account has been suspended."
mute: "Mute"
unmute: "Unmute"
block: "Block"
@@ -1472,6 +1518,7 @@ deck/deck.user-column.vue:
posts: "Posts"
following: "Following"
followers: "Followers"
mention: "Mentions"
images: "Images"
activity: "Activity"
timeline: "Timeline"
+64 -17
View File
@@ -90,7 +90,6 @@ common:
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
local-public: "公開 (ローカルのみ)"
local-home: "ホーム (ローカルのみ)"
local-followers: "フォロワー (ローカルのみ)"
@@ -111,7 +110,6 @@ common:
i-like-sushi: "Prefiero sushi a pudín"
show-reversi-board-labels: "Mostrar etiquetas de filas y columnas en Reversi"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "Hacer el color de la piedra claro en Reversi"
verified-user: "Cuenta verificada"
disable-animated-mfm: "Desactivar texto animado en una publicación"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
@@ -122,14 +120,15 @@ common:
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ"
use-os-default-emojis: "OS標準の絵文字を使用"
do-not-use-in-production: 'Esto está en desarrollo, no usarlo para producción.'
do-not-use-in-production: "Esto está en desarrollo, no usarlo para producción."
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
error:
title: '問題が発生しました'
retry: 'やり直す'
title: "問題が発生しました"
retry: "やり直す"
reversi:
drawn: "Empatado"
my-turn: "Mi turno"
@@ -165,6 +164,7 @@ common:
hashtags: "Etiquetas"
dev: "アプリの作成に失敗しました。再度お試しください。"
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
permission-ask: "La aplicación requiere los siguientes permisos:"
@@ -299,6 +299,7 @@ common/views/components/cw-button.vue:
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
poll: "アンケート"
common/views/components/messaging.vue:
search-user: "Encuentra un usuario"
you: "Tu"
@@ -328,6 +329,7 @@ common/views/components/nav.vue:
develop: "Desarrolladores"
feedback: "Opiniones"
common/views/components/note-menu.vue:
mention: "メンション"
detail: "Detalles"
copy-link: "Copiar enlace"
favorite: "Me gusta esta nota"
@@ -403,6 +405,13 @@ common/views/components/stream-indicator.vue:
connecting: "Conectando"
reconnecting: "Reconectando"
connected: "Conectado"
common/views/components/notification-settings.vue:
title: "通知"
mark-as-read-all-notifications: "すべての通知を既読にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
mark-as-read-all-talk-messages: "すべてのトークを既読にする"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
@@ -432,7 +441,6 @@ common/views/components/visibility-chooser.vue:
followers-desc: "Piblica solo para tus seguidores"
specified: "Directo"
specified-desc: "Publica solo para los seguidores que quieras"
private: "Privada"
local-public: "公開 (ローカルのみ)"
local-public-desc: "リモートへは公開しない"
local-home: "ホーム (ローカルのみ)"
@@ -461,6 +469,7 @@ common/views/components/profile-editor.vue:
is-bot: "このアカウントはBotです"
is-locked: "フォローを承認制にする"
careful-bot: "Botからのフォローだけ承認制にする"
auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
advanced: "その他"
privacy: "プライバシー"
save: "保存"
@@ -471,6 +480,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
delete: "リストを削除"
remove-user: "このリストから削除"
delete-are-you-sure: "リスト「$1」を削除しますか?"
deleted: "削除しました"
common/views/widgets/broadcast.vue:
fetching: "Recuperando"
no-broadcasts: "Sin emisión"
@@ -520,9 +536,11 @@ common/views/widgets/tips.vue:
tips-line19: "Algunas ventanas pueden ser separadas fuera del navegador"
tips-line20: "El porcentaje mostrando en el accesorio de calendario indica el porcentaje de tiempo transcurrido."
tips-line21: "También puedes usar la API para desarrollar tus propios bots."
tips-line23: "Mayu is tan bonito con sus cejas."
tips-line23: "藍かわいいよ藍"
tips-line24: "Misskey inició en 2014."
tips-line25: "Puedes recibir notificaciones incluso si Misskey no está abierto en un navegador compatible."
common/views/pages/not-found.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "Autenticado como {}"
following: "Siguiendo"
@@ -658,10 +676,12 @@ desktop/views/components/note-detail.vue:
location: "Localización"
renote: "Republicar"
add-reaction: "Agregar una reacción"
undo-reaction: "リアクション解除"
desktop/views/components/note.vue:
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -791,8 +811,6 @@ desktop/views/components/settings.vue:
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
cache-cleared: "キャッシュを削除しました"
cache-cleared-desc: "ページを再度読み込みしてください。"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
about: "Misskeyについて"
operator: "このサーバーの運営者"
update: "Misskey Update"
@@ -845,13 +863,13 @@ common/views/components/api-settings.vue:
token: "Token:"
enter-password: "パスワードを入力してください"
console:
title: 'APIコンソール'
endpoint: 'エンドポイント'
parameter: 'パラメータ'
title: "APIコンソール"
endpoint: "エンドポイント"
parameter: "パラメータ"
credential-info: "「i」パラメータは自動で付与されます。"
send: '送信'
sending: '応答待ち'
response: '結果'
send: "送信"
sending: "応答待ち"
response: "結果"
desktop/views/components/settings.apps.vue:
no-apps: "No hay aplicaciones asociadas"
common/views/components/drive-settings.vue:
@@ -881,6 +899,11 @@ desktop/views/components/sub-note-content.vue:
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@@ -963,6 +986,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -1021,6 +1045,12 @@ admin/views/instance.vue:
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
enable-serviceworker: "ServiceWorkerを有効にする"
serviceworker-info: "プッシュ通知を行うには有効する必要があります。"
vapid-publickey: "VAPID公開鍵"
vapid-privatekey: "VAPID秘密鍵"
vapid-info: "ServiceWorkerを有効にする場合、VAPIDキーペアを生成する必要があります。シェルで次のようにします:"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1046,6 +1076,22 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
mark-as-sensitive: "閲覧注意に設定"
unmark-as-sensitive: "閲覧注意を解除"
admin/views/users.vue:
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
@@ -1177,6 +1223,7 @@ desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
is-bot: "このアカウントはBotです"
years-old: "{age}歳"
year: "年"
@@ -1186,6 +1233,7 @@ desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
with-media: "メディア"
my-posts: "私の投稿"
empty: "このユーザーはまだ何も投稿していないようです。"
desktop/views/widgets/messaging.vue:
title: "メッセージ"
@@ -1408,7 +1456,6 @@ mobile/views/pages/settings.vue:
signout: "サインアウト"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
password: "パスワード"
mobile/views/pages/user.vue:
follows-you: "フォローされています"
@@ -1418,7 +1465,6 @@ mobile/views/pages/user.vue:
overview: "概要"
timeline: "タイムライン"
media: "メディア"
is-suspended: "このユーザーは凍結されています。"
mute: "ミュート"
unmute: "ミュート解除"
block: "ブロック"
@@ -1472,6 +1518,7 @@ deck/deck.user-column.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
images: "画像"
activity: "アクティビティ"
timeline: "タイムライン"
+175 -128
View File
@@ -8,23 +8,23 @@ common:
about: "Merci davoir choisis Misskey. Misskey est une <b>plateforme de microblogage distribuée</b> née sur Terre et fait partie du Fédiverse (un univers composé de diverses plateformes de réseaux sociaux organisées), elle est connectée mutuellement avec dautres plateformes de réseaux sociaux. Désirez-vous prendre une pause, un court instant, loin de lagitation de la ville et plonger dans un Internet dun nouveau genre ?"
intro:
title: "Cest quoi Misskey ?"
about: "Misskey est un <b>réseau social de Microblogage</b> open source. Il offre une interface utilisateur riche et hautement personnalisable, une variété de réactions aux publications et un lecteur pour la gestion centralisée de fichiers. De plus, comme il est possible de se connecter au reste du du Fédiverse, vous pouvez interagir avec d'autres plateformes fédérées. Par exemple, si vous publiez quelque chose, la note sera transmise non seulement aux utilisateurs de Misskey, mais aussi à d'autres plateformes de réseaux sociaux dans le Fédiverse. Imaginez que vous puissiez transmettre des ondes radio d'une planète vers l'autre."
about: "Misskey est un <b>réseau social de Microblogage</b> open source. Il offre une interface utilisateur riche et hautement personnalisable, une variété de réactions aux publications et un lecteur pour la gestion centralisée de fichiers. De plus, comme il est possible de se connecter au reste du Fédiverse, vous pouvez interagir avec d'autres plateformes fédérées. Par exemple, si vous publiez quelque chose, la note sera transmise non seulement aux utilisateurs de Misskey, mais aussi à d'autres plateformes de réseaux sociaux dans le Fédiverse. Imaginez que vous puissiez transmettre des ondes radio d'une planète vers l'autre."
features: "Options"
rich-contents: "Notes"
rich-contents-desc: "Partagez vos idées, les événements et les sujets qui vous tiennent à cœur ainsi que tout autre chose que vous souhaitez partager avec les autres. Si vous le désirez, vous pouvez décorer vos messages en utilisant une syntaxe différente ou en y joignant des sondages et des fichiers, tels que les photos ou les vidéos que vous aimez."
reaction: "Réactions"
reaction-desc: "Une manière simple d'exprimer vos émotions. Misskey peut attacher diverses réactions aux publications des autres utilisateurs. Si vous goûtez aux réactions sur Misskey une fois, vous ne pourrez plus être en mesure de retourner vers une autre plateforme de réseaux sociaux n'offrant que des \"J'aime\"."
reaction-desc: "Une manière simple d'exprimer vos émotions. Misskey peut attacher diverses réactions aux publications des autres utilisateurs. Si vous essayez les réactions sur Misskey, vous ne pourrez plus retourner sur une autre plateforme de réseaux sociaux n'offrant que des « J'aime »."
ui: "Interface utilisateur"
ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。"
drive: "Drive"
drive-desc: "以前投稿したことのある画像をまた投稿したくなったことはありませんか?もしくは、アップロードしたファイルをフォルダ分けして整理したくなったことはありませんか?Misskeyの根幹に組み込まれたドライブ機能によってそれらが解決します。ファイルの共有も簡単です。"
outro: "Découvrez vous-même les fonctionnalités de Misskey. Étant donné que Misskey est un réseaux social fédéré, vous pouvez essayer dautres instances afin de trouver vos ami·e·s si la présente instance ne vous correspond pas. Bonne chance et amusez-vous bien!"
outro: "Découvrez vous-même les fonctionnalités de Misskey. Étant donné que Misskey est un réseau social fédéré, vous pouvez essayer dautres instances afin de trouver vos amis si la présente instance ne vous correspond pas. Bonne chance et amusez-vous bien!"
adblock:
detected: "Veuillez désactiver votre bloqueur de publicités"
warning: "<strong>Misskey nutilise pas de publicités</strong>, mais quelques options peuvent être non disponibles ou fonctionneraient mal si un bloqueur de publicités est activé."
application-authorization: "Autorisations de lapplication"
close: "Fermer"
do-not-copy-paste: "Veuillez ne pas entrer ou coller le code ici. Le compte peut être compromis."
do-not-copy-paste: "Veuillez ne pas entrer ou coller le code ici. Le compte pourrait être compromis."
load-more: "Charger plus"
enter-password: "Veuillez entrer le mot de passe"
got-it: "Jai compris !"
@@ -33,25 +33,25 @@ common:
paragraph: "<p>ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。</p><p>一部のウィジェットは、<strong><strong>右</strong>クリック</strong>することで表示を変更することができます。</p><p>ウィジェットを削除するには、ヘッダーの<strong>「ゴミ箱」</strong>と書かれたエリアにウィジェットをドラッグ&ドロップします。</p><p>カスタマイズを終了するには、右上の「完了」をクリックします。</p>"
gotit: "Compris !"
notification:
file-uploaded: "Le fichier a été transféré !"
file-uploaded: "Le fichier a été téléversé !"
message-from: "Message de {} :"
reversi-invited: "Invité à jouer"
reversi-invited-by: "Invité par {} :"
notified-by: "Notifié par {} :"
reply-from: "Réponse de {} :"
quoted-by: "Cité·e par {} :"
quoted-by: "Cité par {} :"
time:
unknown: "inconnu"
future: "à linstant"
just_now: "à l'instant"
seconds_ago: "Il y a {} seconde·s"
seconds_ago: "Il y a {} seconde(s)"
minutes_ago: "Il y a {} min"
hours_ago: "Il y a {} h"
days_ago: "Il y a {} jours"
weeks_ago: "Il y a {} semaines·s"
days_ago: "Il y a {} j"
weeks_ago: "Il y a {} semaines"
months_ago: "Il y a {} mois"
years_ago: "Il y a {} an·s"
month-and-day: "{day}/{month}"
years_ago: "Il y a {} an(s)"
month-and-day: "{day}-{month}"
trash: "Corbeille"
drive: "Drive"
messaging: "Conversations"
@@ -86,11 +86,10 @@ common:
public: "Public"
home: "Principal"
home-desc: "Publier sur le fil principal uniquement"
followers: "Abonné·e·s"
followers-desc: "Publier à vos abonné·e·s uniquement"
followers: "Abonnés"
followers-desc: "Publier à vos abonnés uniquement"
specified: "Direct"
specified-desc: "Publier uniquement aux utilisateurs·rices mentionnés·es"
private: "Privé"
specified-desc: "Publier uniquement aux utilisateurs mentionnés"
local-public: "Local (Public)"
local-home: "Accueil (local uniquement)"
local-followers: "Local (Abonnés)"
@@ -111,7 +110,6 @@ common:
i-like-sushi: "Je préfère les sushis plutôt que le pudding"
show-reversi-board-labels: "Afficher les étiquettes des lignes et colonnes dans Reversi"
use-white-black-reversi-stones: "Jouer avec des pions noirs et blancs sur Reversi"
use-contrast-reversi-stones: "Icône avec contraste sur Reversi"
verified-user: "Compte vérifié"
disable-animated-mfm: "Désactiver les textes animés dans les publications"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
@@ -122,14 +120,15 @@ common:
reduce-motion: "Réduire les animations dans linterface utilisateur"
this-setting-is-this-device-only: "Uniquement sur cet appareil"
use-os-default-emojis: "Utiliser les émojis standards du système"
do-not-use-in-production: 'Il sagit dune version de développement. Ne pas utiliser dans un environnement de production.'
is-remote-user: "Ces informations appartiennent à un·e utilisateur·rice distant·e."
do-not-use-in-production: "Il sagit dune version de développement. Ne pas utiliser dans un environnement de production."
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "Ces informations appartiennent à un utilisateur distant."
is-remote-post: "Ceci est une publication distante."
view-on-remote: " Consulter le profil complet"
renoted-by: "Renoté par {user}"
error:
title: 'Une erreur est survenue'
retry: 'Réessayer'
title: "Une erreur est survenue"
retry: "Réessayer"
reversi:
drawn: "Partie nulle"
my-turn: "Cest votre tour"
@@ -151,20 +150,21 @@ common:
memo: "Pense-bête"
trends: "Tendances"
photo-stream: "Flux de photos"
posts-monitor: "Graph des publications"
posts-monitor: "Graphe des publications"
slideshow: "Diaporama"
version: "Version"
broadcast: "Diffusion"
notifications: "Notifications"
users: "Utilisateur·rice·s"
users: "Utilisateurs recommandés"
polls: "Sondages"
post-form: "Champs de publication"
server: "Info sur le serveur"
server: "Infos sur le serveur"
nav: "Navigation"
tips: "Conseils"
hashtags: "Hashtags"
dev: "Échec lors de la création de lapplication. Veuillez réessayer."
ai-chan-kawaii: "Ai-Chan est mignonne !"
you: "Vous"
auth/views/form.vue:
share-access: "Désirez-vous autoriser <i>{name}</i> à avoir accès à votre compte?"
permission-ask: "Cette application nécessite les autorisations suivantes :"
@@ -201,16 +201,16 @@ common/views/components/games/reversi/reversi.game.vue:
can-put-everywhere: "Peut poser partout"
common/views/components/games/reversi/reversi.index.vue:
title: "Misskey Reversi"
sub-title: "Jouer à Reversi avec vos ami·e·s !"
sub-title: "Jouer à Reversi avec vos amis !"
invite: "Inviter"
rule: "Comment jouer ?"
rule-desc: "Reversi est un jeu qui se joue sur un tablier et dans lequel les joueurs placent des pions sur ce dernier, à tour de rôle avec l'adversaire. Le but du jeu est d'avoir plus de pions de sa couleur que l'adversaire à la fin de la partie, celle-ci s'achevant lorsque aucun des deux joueurs ne peut plus jouer de coup légal, généralement lorsque les 64 cases sont occupées."
mode-invite: "Inviter"
mode-invite-desc: "Inviter un·e joueur·se."
mode-invite-desc: "Inviter un joueur."
invitations: "Vous avez reçu une invitation !"
my-games: "Mes jeux"
all-games: "Tous les jeux"
enter-username: "Saisir un nom d'utilisateur·rice"
enter-username: "Saisir un nom d'utilisateur"
game-state:
ended: "Terminée"
playing: "En cours"
@@ -297,10 +297,11 @@ common/views/components/theme.vue:
common/views/components/cw-button.vue:
hide: "Masquer"
show: "Voir plus"
chars: "{count}文字"
files: "{count}ファイル"
chars: "{count} caractères"
files: "{count} fichiers"
poll: "アンケート"
common/views/components/messaging.vue:
search-user: "Trouver un·e utilisateur·trice"
search-user: "Trouver un utilisateur"
you: "Vous"
no-history: "Pas d'historique"
common/views/components/messaging-room.vue:
@@ -323,11 +324,12 @@ common/views/components/nav.vue:
stats: "Statistiques"
status: "Statut"
wiki: "Wiki"
donors: "Donateur·rice·s"
donors: "Donateurs"
repository: "Dépôt"
develop: "Développeurs"
feedback: "Suggestions"
common/views/components/note-menu.vue:
mention: "メンション"
detail: "Détails"
copy-link: "Copier le lien"
favorite: "Mettre cette note en favoris"
@@ -340,7 +342,7 @@ common/views/components/note-menu.vue:
common/views/components/poll.vue:
vote-to: "Voter pour '{}'"
vote-count: "{} votes"
total-users: "{} utilisateur·rice·s ont voté·e·s"
total-users: "{} utilisateurs ont voté"
vote: "Vote"
show-result: "Montrer les résultats"
voted: "Voté"
@@ -363,7 +365,7 @@ common/views/components/emoji-picker.vue:
symbols: "Symboles"
flags: "Drapeaux"
common/views/components/signin.vue:
username: "Nom d'utilisateur·rice"
username: "Nom d'utilisateur"
password: "Mot de passe"
token: "Jeton"
signing-in: "Connexion…"
@@ -375,8 +377,8 @@ common/views/components/signin.vue:
login-failed: "Échec dauthentification. Veuillez vérifier que votre nom dutilisateur et mot de passe sont corrects."
common/views/components/signup.vue:
invitation-code: "Code dinvitation"
invitation-info: "Si vous navez pas de code dinvitation, contactez un·e <a href=\"{}\">administrateur·rice</a>."
username: "Nom d'utilisateur·rice"
invitation-info: "Si vous navez pas de code dinvitation, contactez un <a href=\"{}\">administrateur</a>."
username: "Nom d'utilisateur"
checking: "Vérification…"
available: "Disponible"
unavailable: "Non disponible"
@@ -403,6 +405,13 @@ common/views/components/stream-indicator.vue:
connecting: "Connexion en cours"
reconnecting: "Reconnexion en cours"
connected: "Connecté"
common/views/components/notification-settings.vue:
title: "通知"
mark-as-read-all-notifications: "すべての通知を既読にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
mark-as-read-all-talk-messages: "すべてのトークを既読にする"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
common/views/components/integration-settings.vue:
title: "Intégrations"
connect: "Connecter"
@@ -418,7 +427,7 @@ common/views/components/github-setting.vue:
common/views/components/discord-setting.vue:
description: "Si vous liez votre compte Discord à votre compte Misskey, vous serez en mesure de voir votre compte Twitter s'afficher sur votre profil, vous aurez aussi la possibilité de vous connecter à Misskey en utilisant votre compte Discord."
connected-to: "Vous êtes connecté à votre compte Discord"
detail: "Détails …"
detail: "Détails…"
reconnect: "Reconnecter"
connect: "Lier votre compte Discord"
disconnect: "Déconnecter"
@@ -428,17 +437,16 @@ common/views/components/visibility-chooser.vue:
public: "Public"
home: "Accueil"
home-desc: "Publier sur le fil d'Accueil uniquement"
followers: "Abonné·e·s"
followers-desc: "Publier à vos abonné·e·s uniquement"
followers: "Abonnés"
followers-desc: "Publier à vos abonnés uniquement"
specified: "Direct"
specified-desc: "Publier uniquement aux utilisateurs·rices mentionné·e·s"
private: "Privé"
specified-desc: "Publier uniquement aux utilisateurs mentionnés"
local-public: "Local (Public)"
local-public-desc: "Ne pas publier pour les distants"
local-home: "Accueil (local uniquement)"
local-followers: "Local (Abonnés)"
common/views/components/trends.vue:
count: "{} utilisateurs·rices mentionnés·es"
count: "{} utilisateurs mentionnés"
empty: "Aucune tendance"
common/views/components/language-settings.vue:
title: "Langue "
@@ -461,16 +469,24 @@ common/views/components/profile-editor.vue:
is-bot: "Ce compte est un Bot"
is-locked: "Demandes dabonnements requièrent lapprobation"
careful-bot: "Les demandes dabonnements venant de Bots requièrent lapprobation"
auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
advanced: "Avancé"
privacy: "Vie privée"
save: "Mettre à jour le profil"
saved: "Profil mis à jour avec succès"
uploading: "En cours d'envoi …"
uploading: "En cours d'envoi…"
upload-failed: "Échec de l'envoi"
email: "Paramètres de messagerie"
email-address: "Adresse de courrier électronique"
email-verified: "Ladresse du courrier électronique a été vérifiée."
email-not-verified: "Adresse de courriel nest pas confirmée. Veuillez vérifier votre boite de réception."
common/views/components/user-list-editor.vue:
users: "Utilisateur"
rename: "Renommer la liste"
delete: "Supprimer la liste"
remove-user: "Retirer de cette liste"
delete-are-you-sure: "Voulez-vous vraiment supprimer la liste « $1 » ?"
deleted: "Supprimé"
common/views/widgets/broadcast.vue:
fetching: "Récupération"
no-broadcasts: "Aucune annonce"
@@ -478,7 +494,7 @@ common/views/widgets/broadcast.vue:
next: "Suivant"
common/views/widgets/calendar.vue:
year: "Année {}"
month: "Mois {}"
month: "{},"
day: "{}"
today: "Aujourdhui:"
this-month: "Ce mois-ci :"
@@ -487,7 +503,7 @@ common/views/widgets/photo-stream.vue:
title: "Flux de photos"
no-photos: "Pas de photo"
common/views/widgets/posts-monitor.vue:
title: "Graph des publications"
title: "Graphe des publications"
toggle: "Basculer entre les vues"
common/views/widgets/hashtags.vue:
title: "Hashtags"
@@ -504,7 +520,7 @@ common/views/widgets/slideshow.vue:
no-image: "Il n'y a aucune image dans ce dossier"
common/views/widgets/tips.vue:
tips-line1: "<kbd>t</kbd>でタイムラインにフォーカスできます"
tips-line2: "<kbd>p</kbd>または<kbd>n</kbd>で投稿フォームを開きます"
tips-line2: "Ouvre la fenêtre de publication en appuyant sur <kbd>p</kbd> ou <kbd>n</kbd>."
tips-line3: "Vous pouvez glisser et déposer des fichiers sur la fenêtre de la note"
tips-line4: "Vous pouvez coller des images à partir du presse-papier sur la fenêtre de la note"
tips-line5: "Vous pouvez téléverser des fichiers sur le Drive en faisant un glisser-déposer"
@@ -515,28 +531,30 @@ common/views/widgets/tips.vue:
tips-line10: "タイムマシンウィジェットを利用すると、簡単に過去のタイムラインに遡れます"
tips-line11: "Vous pouvez épingler des notes sur votre page en cliquant sur « … »"
tips-line13: "Tous les fichiers attachés à cette publication sont sauvegardés dans le Drive"
tips-line14: "ホームのカスタマイズ中、ウィジェットを右クリックしてデザインを変更できます"
tips-line14: "Lorsque vous personnalisez la disposition de votre page daccueil, vous pouvez effectuer un clique droit sur un widget pour changer son apparence."
tips-line17: "Vous pouvez mettre un texte en surbrillance en le mettant entre ** **"
tips-line19: "Plusieurs fenêtres peuvent être détachées en dehors du navigateur."
tips-line20: "Pourcentage sur le widget calendrier qui indique le pourcentage de temps passé"
tips-line21: "Vous pouvez aussi utiliser l'API pour développer des Bots."
tips-line23: "Mayu est mignonne avec ses sourcils."
tips-line23: "藍かわいいよ藍"
tips-line24: "Misskey est fonctionnel depuis 2014"
tips-line25: "Vous pouvez recevoir les notifications de Misskey dans un navigateur web compatible"
common/views/pages/not-found.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "Connecté·e en tant que {}"
signed-in-as: "Connecté en tant que {}"
following: "Suit"
follow: "Suivre"
request-pending: "Demande dabonnement en attente"
follow-processing: "Demande en attente"
follow-request: "Demande dabonnement"
desktop:
banner-crop-title: "Découpez la partie qui apparaitra comme bannière"
banner-crop-title: "Découpez la partie qui apparaîtra comme bannière"
banner: "Bannière"
uploading-banner: "Téléversement d'une nouvelle bannière"
banner-updated: "Mise à jour de la bannière avec succès"
choose-banner: "Choisir une bannière"
avatar-crop-title: "Découpez la partie qui apparaitra comme avatar"
avatar-crop-title: "Découpez la partie qui apparaîtra comme avatar"
avatar: "Avatar"
uploading-avatar: "Téléversement du nouvel avatar"
avatar-updated: "Mise à jour de lavatar avec succès"
@@ -551,12 +569,12 @@ desktop/views/components/activity.vue:
title: "Activité"
toggle: "Afficher les vues"
desktop/views/components/calendar.vue:
title: "{month} / {year}"
title: "{month} - {year}"
prev: "Mois précédent"
next: "Mois suivant"
go: "Cliquez pour naviguer"
desktop/views/components/choose-file-from-drive-window.vue:
chosen-files: "{count} fichier·s sélectionné·s"
chosen-files: "{count} fichier(s) sélectionné(s)"
upload: "Téléverser des fichiers à partir de votre ordinateur"
cancel: "Annuler"
ok: "OK"
@@ -604,21 +622,21 @@ desktop/views/components/drive.vue:
search: "Rechercher"
empty-draghover: "Drop Welcome!"
empty-drive: "Votre Drive est vide"
empty-drive-description: "Vous pouvez également uploader le fichier en faisant un clic droit et en choisissant 'Uploader' ou tout simplement en faisant glisser votre fichier."
empty-drive-description: "Vous pouvez également téléverser le fichier en faisant un clic droit et en choisissant « Téléverser » ou tout simplement en faisant glisser votre fichier."
empty-folder: "Ce dossier est vide"
unable-to-process: "L'opération n'a pas pu être complétée"
circular-reference-detected: "Le dossier de destination est un sous-dossier du dossier que vous souhaitez déplacer."
unhandled-error: "Erreur inconnue"
url-upload: "Téléverser via une URL"
url-of-file: "URL de l'image que vous souhaitez uploader."
url-upload-requested: "Upload requested"
may-take-time: "L'upload de votre fichier peut prendre un certain temps."
url-of-file: "URL de l'image que vous souhaitez téléverser."
url-upload-requested: "Téléversement demandé"
may-take-time: "Le téléversement de votre fichier peut prendre un certain temps."
create-folder: "Créer un dossier"
folder-name: "Nom du dossier"
contextmenu:
create-folder: "Créer un dossier"
upload: "Transférer un fichier"
url-upload: "Transférer à partir dune URL"
upload: "Téléverser un fichier"
url-upload: "Téléverser à partir dune URL"
desktop/views/components/media-image.vue:
sensitive: "Le contenu est NSFW"
click-to-show: "Cliquer pour afficher"
@@ -626,16 +644,16 @@ desktop/views/components/media-video.vue:
sensitive: "Le contenu est NSFW"
click-to-show: "Cliquer pour afficher"
desktop/views/components/followers-window.vue:
followers: "{} abonné·e·s"
followers: "{} abonnés"
desktop/views/components/followers.vue:
empty: "Il semble que vous navez pas encore dabonné·e·s."
empty: "Il semble que vous n'avez pas encore d'abonnés."
desktop/views/components/following-window.vue:
following: "Suit {}"
desktop/views/components/following.vue:
empty: "Vous ne suivez aucun compte."
desktop/views/components/friends-maker.vue:
title: "Utilisateurs·rices recommandé·e·s :"
empty: "Impossible de trouver des utilisateurs·trices à recommander."
title: "Utilisateurs recommandés :"
empty: "Impossible de trouver des utilisateurs à recommander."
fetching: "Chargement"
refresh: "Plus"
close: "Fermer"
@@ -658,10 +676,12 @@ desktop/views/components/note-detail.vue:
location: "Géolocalisation"
renote: "Republier"
add-reaction: "Ajouter votre reaction"
undo-reaction: "リアクション解除"
desktop/views/components/note.vue:
reply: "Répondre"
renote: "Partager"
add-reaction: "Ajouter votre réaction"
undo-reaction: "リアクション解除"
detail: "Détails"
private: "Cette publication est privée"
deleted: "Cette publication a été supprimée"
@@ -674,8 +694,8 @@ desktop/views/components/post-form.vue:
add-visible-user: "+Ajouter un utilisateur"
attach-location-information: "Attacher des informations de localisation"
hide-contents: "Masquer les contenus"
reply-placeholder: "Répondre à cette note …"
quote-placeholder: "Citer cette note …"
reply-placeholder: "Répondre à cette note…"
quote-placeholder: "Citer cette note…"
submit: "Publier"
reply: "Répondre"
renote: "Republier"
@@ -685,7 +705,7 @@ desktop/views/components/post-form.vue:
note-failed: "La note à échoué"
reply-failed: "La réponse a échoué"
renote-failed: "Échec lors de la republication"
posting: "Publication …"
posting: "Publication…"
attach-media-from-local: "Joindre un média depuis votre appareil"
attach-media-from-drive: "Joindre un média depuis votre Drive"
attach-cancel: "Annuler le fichier attaché"
@@ -694,17 +714,17 @@ desktop/views/components/post-form.vue:
text-remain: "{} caractères restants"
recent-tags: "Récent"
local-only-message: "Ce message sera publié uniquement sur le fil local"
click-to-tagging: "Cliquer pour tagguer"
click-to-tagging: "Cliquer pour taguer"
visibility: "Visibilité"
geolocation-alert: "Votre appareil ne prend pas en charge les services de localisation"
error: "Erreur"
enter-username: "Saisir un nom d'utilisateur …"
enter-username: "Saisir un nom d'utilisateur…"
annotations: "内容への注釈 (オプション)"
desktop/views/components/post-form-window.vue:
note: "Nouvelle note"
reply: "Répondre"
attaches: "{} media joint(s)"
uploading-media: "Transfert du média {}"
uploading-media: "Téléversement du média {}"
desktop/views/components/progress-dialog.vue:
waiting: "En attente"
desktop/views/components/renote-form.vue:
@@ -712,7 +732,7 @@ desktop/views/components/renote-form.vue:
cancel: "Annuler"
renote: "Republier"
renote-home: "Renote (Home)"
reposting: "Republication en cours …"
reposting: "Republication en cours…"
success: "Republié !"
failure: "La renote a échoué"
desktop/views/components/renote-form-window.vue:
@@ -791,14 +811,12 @@ desktop/views/components/settings.vue:
cache-warn: "Le nettoyage du cache du compte supprime les informations stockées dans le navigateur comme les messages, les réponses ainsi que dautres données (y compris les paramètres de configuration). Après le nettoyage, vous devez recharger la page."
cache-cleared: "Cache nettoyé"
cache-cleared-desc: "Veuillez recharger la page."
auto-watch: "Montre automatique"
auto-watch-desc: "Recevez automatiquement les notifications de publications, réponses et réactions."
about: "À propose de Misskey"
operator: "L'admin de cette instance"
update: "Mise à jour de Misskey"
version: "Version :"
latest-version: "Dernière version :"
update-checking: "Vérification des mises à jour en cours …"
update-checking: "Vérification des mises à jour en cours…"
do-update: "Rechercher des mises à jour"
update-settings: "Paramètres avancés"
prevent-update: "Reporter les mises à jour (non recommandé)"
@@ -808,7 +826,7 @@ desktop/views/components/settings.vue:
update-available: "Nouvelle version disponible !"
update-available-desc: "Les mises à jour seront appliquées une fois la page est rechargée."
advanced-settings: "Réglages avancés"
debug-mode: "Activer le mode debug"
debug-mode: "Activer le mode débogage"
debug-mode-desc: "Ce paramètre est stocké dans le navigateur."
experimental: "Activer les fonctionnalités expérimentales"
experimental-desc: "Lactivation des fonctionnalités expérimentales peuvent rendre le client Misskey instable. Ce paramètre est stocké dans le navigateur."
@@ -831,27 +849,27 @@ desktop/views/components/settings.2fa.vue:
enter-password: "Entrez un mot de passe"
authenticator: "Vous devez au préalable installer Google Authenticator sur votre appareil:"
howtoinstall: "Comment installer"
scan: "Ensuite scannez le QR code afficher sur votre écran:"
done: "Veuillez entrer le token qui s'affiche sur votre appareil:"
scan: "Ensuite, scannez le code QR affiché sur votre écran :"
done: "Veuillez entrer le token qui s'affiche sur votre appareil :"
submit: "Envoyer"
success: "Sauvegarde des paramètres avec succès !"
failed: "Lopération a échoué. Veuillez vous assurer que le jeton a été saisi correctement."
info: "À partir de maintenant, à chaque fois que vous vous connectez entrez votre mot de passe ainsi que le jeton généré sur votre appareil."
common/views/components/api-settings.vue:
intro: "Pour accéder à l'API, définissez ce jeton comme la clé de \"i\" dans les paramètres de requête."
intro: "Pour accéder à l'API, définissez ce jeton comme la clé de « i » dans les paramètres de requête."
caution: "Merci de ne pas introduire ce jeton dans aucune application ou le divulguer à quiconque. Ceci risque de compromettre votre compte."
regeneration-of-token: "Si votre jeton est compromis, vous pouvez le régénérer."
regenerate-token: "Régénérer le jeton"
token: "Jeton :"
enter-password: "Entrez le mot de passe"
console:
title: 'Console API'
endpoint: 'Point de terminaison'
parameter: 'Paramètres'
credential-info: "Le paramètre \"i\" est requis dans la console."
send: 'Envoyer'
sending: 'Envoi en cours'
response: 'Résultat'
title: "Console API"
endpoint: "Point de terminaison"
parameter: "Paramètres"
credential-info: "Le paramètre « i » est requis dans la console."
send: "Envoyer"
sending: "Envoi en cours"
response: "Résultat"
desktop/views/components/settings.apps.vue:
no-apps: "Aucune application autorisée"
common/views/components/drive-settings.vue:
@@ -862,8 +880,8 @@ common/views/components/mute-and-block.vue:
mute-and-block: "Silencés / Bloqués"
mute: "Mettre en sourdine"
block: "En cours blocage"
no-muted-users: "Aucun utilisateur·rice nest mis·e en sourdine"
no-blocked-users: "Aucun utilisateur·rice nest bloqué·e"
no-muted-users: "Aucun utilisateur nest mis en sourdine"
no-blocked-users: "Aucun utilisateur nest bloqué"
word-mute: "Filtre de mots"
muted-words: "Mots masqués"
muted-words-description: "Description des mots mis en sourdine"
@@ -875,12 +893,17 @@ common/views/components/password-settings.vue:
enter-new-password-again: "Entrez à nouveau le nouveau mot de passe"
not-match: "Les nouveaux mots de passe ne sont pas identiques"
changed: "Mot de passe modifié avec succès"
failed: "パスワード変更に失敗しました"
failed: "Échec lors de la modification du mot de passe"
desktop/views/components/sub-note-content.vue:
private: "cette publication est privée"
deleted: "cette publication a été supprimée"
media-count: "{} médias attachés"
poll: "Sondage"
desktop/views/components/settings.tags.vue:
title: "Étiquettes"
query: "Requête (optionnelle)"
add: "Ajouter"
save: "Enregistrer"
desktop/views/components/taskmanager.vue:
title: "Gestionnaire de tâches"
desktop/views/components/timeline.vue:
@@ -929,11 +952,11 @@ desktop/views/components/user-lists-window.vue:
desktop/views/components/user-preview.vue:
notes: "Publications"
following: "Abonné à"
followers: "Abonné·e·s"
followers: "Abonnés"
desktop/views/components/users-list.vue:
all: "Tout"
iknow: "Vous connaissez"
fetching: "Chargement ..."
fetching: "Chargement..."
desktop/views/components/users-list-item.vue:
followed: "vous suit"
desktop/views/components/window.vue:
@@ -944,7 +967,7 @@ admin/views/index.vue:
instance: "Instance"
emoji: "Émoji"
moderators: "Modérateurs"
users: "Utilisateur·rice·s"
users: "Utilisateurs"
federation: "Fédération"
announcements: "Annonces"
hashtags: "Hashtags"
@@ -962,7 +985,8 @@ admin/views/instance.vue:
instance-name: "Nom de linstance"
instance-description: "Description de linstance"
host: "Hôte"
banner-url: "Url de limage de la bannière"
banner-url: "URL de limage de la bannière"
error-image-url: "URL de limage derreur"
languages: "Langue de linstance"
languages-desc: "Vous pouvez en définir plus dune, séparées par des espaces."
maintainer-config: "Informations de ladministrateur"
@@ -980,17 +1004,17 @@ admin/views/instance.vue:
recaptcha-site-key: "Clé reCAPTCHA du site"
recaptcha-secret-key: "Clé secrète reCAPTCHA"
twitter-integration-config: "Paramètres de connexion à Twitter"
twitter-integration-info: "コールバックURLは {url} に設定します。"
enable-twitter-integration: "Activer la connection à Twitter"
twitter-integration-info: "L'URL de callback est {url}."
enable-twitter-integration: "Activer la connexion à Twitter"
twitter-integration-consumer-key: "Clé du consommateur"
twitter-integration-consumer-secret: "Secret du consommateur"
github-integration-config: "Paramètres dauthentification GitHub"
github-integration-info: "コールバックURLは {url} に設定します。"
github-integration-info: "L'URL de callback est {url}."
enable-github-integration: "Activer lauthentification avec Github"
github-integration-client-id: "ID client"
github-integration-client-secret: "Secret client"
discord-integration-config: "Paramètres dauthentification Discord"
discord-integration-info: "コールバックURLは {url} に設定します。"
discord-integration-info: "L'URL de callback est {url}."
enable-discord-integration: "Activer lauthentification avec Discord"
discord-integration-client-id: "ID client"
discord-integration-client-secret: "Secret client"
@@ -1005,8 +1029,8 @@ admin/views/instance.vue:
invite: "Inviter"
save: "Sauvegarder"
saved: "Enregistré"
user-recommendation-config: "Utilisateur·rice·s"
enable-external-user-recommendation: "Activer la recommandation des utilisateur·trice·s distant·e·s"
user-recommendation-config: "Utilisateurs"
enable-external-user-recommendation: "Activer la recommandation des utilisateurs distants"
external-user-recommendation-engine: "Moteur"
external-user-recommendation-engine-desc: "Exemple: https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-timeout: "Délai dexpiration"
@@ -1021,13 +1045,19 @@ admin/views/instance.vue:
smtp-port: "Port SMTP"
smtp-user: "Utilisateur SMTP"
smtp-pass: "Mot de passe SMTP"
serviceworker-config: "ServiceWorker"
enable-serviceworker: "Activer ServiceWorker"
serviceworker-info: "Devrait être activé pour les notifications push."
vapid-publickey: "Clé Publique VAPID"
vapid-privatekey: "Clé privée VAPID"
vapid-info: "ServiceWorkerを有効にする場合、VAPIDキーペアを生成する必要があります。シェルで次のようにします:"
admin/views/charts.vue:
title: "Graph"
title: "Graphe"
per-day: "par jour"
per-hour: "par heure"
federation: "Fédération"
notes: "Publications"
users: "Utilisateur·rice·s"
users: "Utilisateurs"
drive: "Lecteur"
network: "Réseau"
charts:
@@ -1037,8 +1067,8 @@ admin/views/charts.vue:
local-notes: "Nombre des publications : augmentation/diminution (Local)"
remote-notes: "Nombre de publications : augmentation/diminution (distants)"
notes-total: "Total des publications"
users: "Nombre dutilisateur·rice·s : augmentation/diminution"
users-total: "Nombre total des utilisateur·rice·s"
users: "Nombre dutilisateurs : augmentation/diminution"
users-total: "Nombre total des utilisateurs"
drive: "Capacité utilisée comme stockage : augmentation/diminution"
drive-total: "Utilisation totale du lecteur"
drive-files: "Le nombre de fichiers sur l'espace de stockage : augmentation/diminution"
@@ -1046,29 +1076,45 @@ admin/views/charts.vue:
network-requests: "Requêtes"
network-time: "Temps de réponse"
network-usage: "Traffic"
admin/views/drive.vue:
sort:
title: "Tri"
createdAtAsc: "Âge - Du plus ancien"
createdAtDesc: "Âge - Du plus récent"
sizeAsc: "Taille - Ascendant"
sizeDesc: "Taille - Volumineux en premier"
origin:
title: "Origine"
combined: "Locaux et distants combinés"
local: "Local"
remote: "Distant"
delete: "Supprimer"
deleted: "Supprimé"
mark-as-sensitive: "Marquer comme sensible"
unmark-as-sensitive: "Ne pas marquer comme sensible"
admin/views/users.vue:
operation: "Actions"
username-or-userid: "Nom dutilisateur·rice ou ID utilisateur"
user-not-found: "Utilisateur·rice non trouvé·e"
user-not-found: "Utilisateur non trouvé"
lookup: "Recherche"
reset-password: "Réinitialiser mot de passe"
password-updated: "Le mot de passe est « {password} »"
suspend: "Suspendre"
suspended: "Suspendu·e avec succès."
suspended: "Suspendu avec succès."
unsuspend: "Suspension levée"
unsuspended: "La suspension de lutilisateur·rice a été levée avec succès"
unsuspended: "La suspension de lutilisateur a été levée avec succès"
verify: "Vérification du compte"
verified: "Le compte a été vérifié"
unverify: "Ôter la vérification du compte"
unverify: "Enlever la vérification du compte"
unverified: "Ce compte n'est plus vérifié"
users:
title: "Utilisateur·rice·s"
title: "Utilisateurs"
sort:
title: "Trier par"
createdAtAsc: "Date dinscription (Ascendant)"
createdAtDesc: "Date dinscription (Descendant)"
updatedAtAsc: "Mis à jour récemment (Ascendant)"
updatedAtDesc: "更新日時が新しい順"
updatedAtDesc: "Mis à jour récemment (descendant)"
origin:
title: "Origine"
combined: "Locaux + distants"
@@ -1145,11 +1191,11 @@ desktop/views/pages/share.vue:
desktop/views/pages/tag.vue:
no-posts-found: "Aucune publication contenant « {q} » na été trouvée."
desktop/views/pages/user-list.users.vue:
users: "Utilisateurs·rices"
users: "Utilisateurs"
add-user: "Ajouter un utilisateur"
username: "Nom d'utilisateur"
desktop/views/pages/user/user.followers-you-know.vue:
title: "Abonné·e·s que vous connaissez"
title: "Abonnés que vous connaissez"
loading: "Chargement en cours"
no-users: "Aucun abonné connu"
desktop/views/pages/user/user.friends.vue:
@@ -1176,16 +1222,18 @@ desktop/views/pages/user/user.profile.vue:
desktop/views/pages/user/user.header.vue:
posts: "Notes"
following: "Suit"
followers: "Abonné·e·s"
followers: "Abonnés"
mention: "メンション"
is-bot: "Ce compte est un Bot"
years-old: "{age} ans"
year: "/"
month: "/"
day: "/"
day: "-"
desktop/views/pages/user/user.timeline.vue:
default: "Publications"
with-replies: "Publications et réponses"
with-media: "Média"
my-posts: "Mes Messages"
empty: "Cet utilisateur n'a rien posté encore."
desktop/views/widgets/messaging.vue:
title: "Messagerie"
@@ -1207,7 +1255,7 @@ desktop/views/widgets/trends.vue:
refresh: "Afficher d'autres"
nothing: "Rien"
desktop/views/widgets/users.vue:
title: "Utilisateurs·rices"
title: "Utilisateurs"
refresh: "Afficher d'autres"
no-one: "Personne"
mobile/views/components/drive.vue:
@@ -1246,14 +1294,14 @@ mobile/views/components/media-video.vue:
sensitive: "Le contenu est NSFW"
click-to-show: "Cliquer pour afficher"
common/views/components/follow-button.vue:
following: "Abonné·e"
following: "Abonné"
follow: " Suivre"
request-pending: "Demande en attente"
follow-processing: "En cours dabonnement"
follow-request: "Demande dabonnement"
mobile/views/components/friends-maker.vue:
title: "Abonnez-vous à"
empty: "Impossible de trouver des utilisateurs·trices à recommander."
empty: "Impossible de trouver des utilisateurs à recommander."
fetching: "Chargement"
refresh: "Voir plus"
close: "Fermer"
@@ -1282,7 +1330,7 @@ mobile/views/components/post-form.vue:
submit: "Publier"
reply: "Répondre"
renote: "Republier"
quote-placeholder: "Citer ce billet ... (Facultatif)"
quote-placeholder: "Citer ce billet... (Facultatif)"
reply-placeholder: "Répondre à cette note"
cw-placeholder: "Commenter le contenu (optionnel)"
location-alert: "Votre appareil ne prend pas en charge les services de localisation"
@@ -1312,7 +1360,7 @@ mobile/views/components/ui.nav.vue:
admin: "Admin"
about: "À propos de Misskey"
mobile/views/components/user-timeline.vue:
no-notes: "Il semble que cet·te utilisateur·rice na rien publié pour le moment."
no-notes: "Il semble que cet utilisateur na rien publié pour le moment."
no-notes-with-media: "Aucune notes avec des médias"
mobile/views/components/users-list.vue:
all: "Tout"
@@ -1325,9 +1373,9 @@ mobile/views/pages/user-lists.vue:
mobile/views/pages/signup.vue:
lets-start: "Votre compte est prêt ! 📦"
mobile/views/pages/followers.vue:
followers-of: "Abonné·e·s de {name}"
followers-of: "Abonnés de {name}"
mobile/views/pages/following.vue:
following-of: "Abonné·e·s de {name}"
following-of: "Abonnés de {name}"
mobile/views/pages/home.vue:
home: "Accueil"
local: "Local"
@@ -1341,7 +1389,7 @@ mobile/views/pages/welcome.vue:
signup: "S'enregistrer"
mobile/views/pages/widgets.vue:
dashboard: "Tableau de bord"
widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
widgets-hints: "Vous pouvez ajouter, supprimer et réarranger les widgets. Faites glisser « 三 » pour déplacer le widget. Appuyez sur « x » pour supprimer le widget. Certains widgets peuvent changer dapparence en cliquant dessus."
add-widget: "Ajouter"
customization-tips: "Conseils de personnalisation"
mobile/views/pages/widgets/activity.vue:
@@ -1367,7 +1415,7 @@ mobile/views/pages/search.vue:
mobile/views/pages/selectdrive.vue:
select-file: "Choisissez un fichier"
mobile/views/pages/settings.vue:
signed-in-as: "Connecté·e en tant que {}"
signed-in-as: "Connecté en tant que {}"
design: "Affichage et design"
dark-mode: "Mode nuit"
i-am-under-limited-internet: "J'ai un accès Internet limité"
@@ -1392,7 +1440,7 @@ mobile/views/pages/settings.vue:
remember-note-visibility: "Se souvenir du mode de visibilité de la publication"
web-search-engine: "Moteur de recherche Web"
web-search-engine-desc: "Exemple: https://www.google.com/?#q={{query}}"
disable-via-mobile: "Ne pas mentionner que ma publication provient d'un 'périphérique mobile'"
disable-via-mobile: "Ne pas mentionner que ma publication provient d'un « périphérique mobile »"
load-raw-images: "Afficher les photos jointes en haute qualité"
load-remote-media: "Afficher les médias sur le serveur distant"
update: "Mise à jour de Misskey"
@@ -1408,17 +1456,15 @@ mobile/views/pages/settings.vue:
signout: "Déconnexion"
sound: "Sons"
enable-sounds: "Activer les sons"
mark-as-read-all-unread-notes: "Marquer toutes les publications comme lues"
password: "Mot de Passe"
mobile/views/pages/user.vue:
follows-you: "Vous suit"
following: "Abonnements"
followers: "Abonné·e·s"
followers: "Abonnés"
notes: "Notes"
overview: "Aperçu"
timeline: "Fil d'actualité"
media: "Média"
is-suspended: "This account has been suspended."
mute: "Mettre en sourdine"
unmute: "Enlever la sourdine"
block: "Bloquer"
@@ -1433,13 +1479,13 @@ mobile/views/pages/user/home.vue:
activity: "Activité"
keywords: "Mot clés"
domains: "Domaines"
frequently-replied-users: "Utilisateurs·rices mentionné·e·s souvent"
followers-you-know: "Abonné·e·s que vous connaissez"
frequently-replied-users: "Utilisateurs mentionnés souvent"
followers-you-know: "Abonnés que vous connaissez"
last-used-at: "Dernière connexion il y a"
mobile/views/pages/user/home.followers-you-know.vue:
no-users: "Aucun utilisateur·rice connu·e"
no-users: "Aucun utilisateur connu"
mobile/views/pages/user/home.friends.vue:
no-users: "Aucun utilisateur·rice connu·e"
no-users: "Aucun utilisateur connu"
mobile/views/pages/user/home.notes.vue:
no-notes: "Pas de notes"
mobile/views/pages/user/home.photos.vue:
@@ -1471,7 +1517,8 @@ deck/deck.tl-column.vue:
deck/deck.user-column.vue:
posts: "Notes"
following: "Suit"
followers: "Abonné·e·s"
followers: "Abonnés"
mention: "メンション"
images: "Images"
activity: "Activité"
timeline: "Fil dactualité"
@@ -1490,7 +1537,7 @@ docs:
require-credential: "Ce point de communication nécessite une authentification."
require-permission: "Ce point de communication nécessite la permission {permission}."
has-limit: "Il ya un taux limite."
duration-limit: "直近{duration}ミリ秒の間のこのエンドポイントへのリクエスト数の合計が{max}を超える場合はリクエストできません。"
duration-limit: "Si vous avez envoyé plus de {max} requêtes en {duration} millisecondes, vous ne serez pas en mesure d'envoyer d'autres requêtes."
min-interval-limit: "Vous ne pourrez pas effectuer une nouvelle requête si {interval} millisecondes ne se sont pas écoulées depuis la dernière demande."
show-src: "Vous pouvez voir le code source ce point de communication."
show-src-link: "Consulter le code sur GitHub"
+64 -17
View File
@@ -90,7 +90,6 @@ common:
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
local-public: "公開 (ローカルのみ)"
local-home: "ホーム (ローカルのみ)"
local-followers: "フォロワー (ローカルのみ)"
@@ -111,7 +110,6 @@ common:
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
@@ -122,14 +120,15 @@ common:
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ"
use-os-default-emojis: "OS標準の絵文字を使用"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
error:
title: '問題が発生しました'
retry: 'やり直す'
title: "問題が発生しました"
retry: "やり直す"
reversi:
drawn: "引き分け"
my-turn: "あなたのターンです"
@@ -165,6 +164,7 @@ common:
hashtags: "ハッシュタグ"
dev: "アプリの作成に失敗しました。再度お試しください。"
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
permission-ask: "このアプリは次の権限を要求しています:"
@@ -299,6 +299,7 @@ common/views/components/cw-button.vue:
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
poll: "アンケート"
common/views/components/messaging.vue:
search-user: "ユーザーを探す"
you: "あなた"
@@ -328,6 +329,7 @@ common/views/components/nav.vue:
develop: "開発者"
feedback: "フィードバック"
common/views/components/note-menu.vue:
mention: "メンション"
detail: "詳細"
copy-link: "リンクをコピー"
favorite: "お気に入り"
@@ -403,6 +405,13 @@ common/views/components/stream-indicator.vue:
connecting: "接続中"
reconnecting: "再接続中"
connected: "接続完了"
common/views/components/notification-settings.vue:
title: "通知"
mark-as-read-all-notifications: "すべての通知を既読にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
mark-as-read-all-talk-messages: "すべてのトークを既読にする"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
@@ -432,7 +441,6 @@ common/views/components/visibility-chooser.vue:
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
local-public: "公開 (ローカルのみ)"
local-public-desc: "リモートへは公開しない"
local-home: "ホーム (ローカルのみ)"
@@ -461,6 +469,7 @@ common/views/components/profile-editor.vue:
is-bot: "このアカウントはBotです"
is-locked: "フォローを承認制にする"
careful-bot: "Botからのフォローだけ承認制にする"
auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
advanced: "その他"
privacy: "プライバシー"
save: "保存"
@@ -471,6 +480,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
delete: "リストを削除"
remove-user: "このリストから削除"
delete-are-you-sure: "リスト「$1」を削除しますか?"
deleted: "削除しました"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
@@ -520,9 +536,11 @@ common/views/widgets/tips.vue:
tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
tips-line21: "APIを利用してbotの開発なども行えます"
tips-line23: "まゆかわいいよまゆ"
tips-line23: "かわいいよ"
tips-line24: "Misskeyは2014年にサービスを開始しました"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/not-found.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォロー中"
@@ -658,10 +676,12 @@ desktop/views/components/note-detail.vue:
location: "位置情報"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
desktop/views/components/note.vue:
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -791,8 +811,6 @@ desktop/views/components/settings.vue:
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
cache-cleared: "キャッシュを削除しました"
cache-cleared-desc: "ページを再度読み込みしてください。"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
about: "Misskeyについて"
operator: "このサーバーの運営者"
update: "Misskey Update"
@@ -845,13 +863,13 @@ common/views/components/api-settings.vue:
token: "Token:"
enter-password: "パスワードを入力してください"
console:
title: 'APIコンソール'
endpoint: 'エンドポイント'
parameter: 'パラメータ'
title: "APIコンソール"
endpoint: "エンドポイント"
parameter: "パラメータ"
credential-info: "「i」パラメータは自動で付与されます。"
send: '送信'
sending: '応答待ち'
response: '結果'
send: "送信"
sending: "応答待ち"
response: "結果"
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはありません"
common/views/components/drive-settings.vue:
@@ -881,6 +899,11 @@ desktop/views/components/sub-note-content.vue:
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@@ -963,6 +986,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -1021,6 +1045,12 @@ admin/views/instance.vue:
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
enable-serviceworker: "ServiceWorkerを有効にする"
serviceworker-info: "プッシュ通知を行うには有効する必要があります。"
vapid-publickey: "VAPID公開鍵"
vapid-privatekey: "VAPID秘密鍵"
vapid-info: "ServiceWorkerを有効にする場合、VAPIDキーペアを生成する必要があります。シェルで次のようにします:"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1046,6 +1076,22 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
mark-as-sensitive: "閲覧注意に設定"
unmark-as-sensitive: "閲覧注意を解除"
admin/views/users.vue:
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
@@ -1177,6 +1223,7 @@ desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
is-bot: "このアカウントはBotです"
years-old: "{age}歳"
year: "年"
@@ -1186,6 +1233,7 @@ desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
with-media: "メディア"
my-posts: "私の投稿"
empty: "このユーザーはまだ何も投稿していないようです。"
desktop/views/widgets/messaging.vue:
title: "メッセージ"
@@ -1408,7 +1456,6 @@ mobile/views/pages/settings.vue:
signout: "サインアウト"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
password: "パスワード"
mobile/views/pages/user.vue:
follows-you: "フォローされています"
@@ -1418,7 +1465,6 @@ mobile/views/pages/user.vue:
overview: "概要"
timeline: "タイムライン"
media: "メディア"
is-suspended: "このユーザーは凍結されています。"
mute: "ミュート"
unmute: "ミュート解除"
block: "ブロック"
@@ -1472,6 +1518,7 @@ deck/deck.user-column.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
images: "画像"
activity: "アクティビティ"
timeline: "タイムライン"
+63 -19
View File
@@ -96,7 +96,6 @@ common:
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
local-public: "公開 (ローカルのみ)"
local-home: "ホーム (ローカルのみ)"
local-followers: "フォロワー (ローカルのみ)"
@@ -119,7 +118,6 @@ common:
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
@@ -131,16 +129,16 @@ common:
this-setting-is-this-device-only: "このデバイスのみ"
use-os-default-emojis: "OS標準の絵文字を使用"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
error:
title: '問題が発生しました'
retry: 'やり直す'
title: "問題が発生しました"
retry: "やり直す"
reversi:
drawn: "引き分け"
@@ -179,6 +177,7 @@ common:
dev: "アプリの作成に失敗しました。再度お試しください。"
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
@@ -324,6 +323,7 @@ common/views/components/cw-button.vue:
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
poll: "アンケート"
common/views/components/messaging.vue:
search-user: "ユーザーを探す"
@@ -359,6 +359,7 @@ common/views/components/nav.vue:
feedback: "フィードバック"
common/views/components/note-menu.vue:
mention: "メンション"
detail: "詳細"
copy-link: "リンクをコピー"
favorite: "お気に入り"
@@ -443,6 +444,14 @@ common/views/components/stream-indicator.vue:
reconnecting: "再接続中"
connected: "接続完了"
common/views/components/notification-settings.vue:
title: "通知"
mark-as-read-all-notifications: "すべての通知を既読にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
mark-as-read-all-talk-messages: "すべてのトークを既読にする"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
@@ -476,7 +485,6 @@ common/views/components/visibility-chooser.vue:
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
local-public: "公開 (ローカルのみ)"
local-public-desc: "リモートへは公開しない"
local-home: "ホーム (ローカルのみ)"
@@ -508,6 +516,7 @@ common/views/components/profile-editor.vue:
is-bot: "このアカウントはBotです"
is-locked: "フォローを承認制にする"
careful-bot: "Botからのフォローだけ承認制にする"
auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
advanced: "その他"
privacy: "プライバシー"
save: "保存"
@@ -519,6 +528,14 @@ common/views/components/profile-editor.vue:
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
delete: "リストを削除"
remove-user: "このリストから削除"
delete-are-you-sure: "リスト「$1」を削除しますか?"
deleted: "削除しました"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
@@ -576,10 +593,13 @@ common/views/widgets/tips.vue:
tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
tips-line21: "APIを利用してbotの開発なども行えます"
tips-line23: "まゆかわいいよまゆ"
tips-line23: "かわいいよ"
tips-line24: "Misskeyは2014年にサービスを開始しました"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/not-found.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォロー中"
@@ -739,11 +759,13 @@ desktop/views/components/note-detail.vue:
location: "位置情報"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
desktop/views/components/note.vue:
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -888,9 +910,6 @@ desktop/views/components/settings.vue:
cache-cleared: "キャッシュを削除しました"
cache-cleared-desc: "ページを再度読み込みしてください。"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
about: "Misskeyについて"
operator: "このサーバーの運営者"
@@ -948,13 +967,13 @@ common/views/components/api-settings.vue:
token: "Token:"
enter-password: "パスワードを入力してください"
console:
title: 'APIコンソール'
endpoint: 'エンドポイント'
parameter: 'パラメータ'
title: "APIコンソール"
endpoint: "エンドポイント"
parameter: "パラメータ"
credential-info: "「i」パラメータは自動で付与されます。"
send: '送信'
sending: '応答待ち'
response: '結果'
send: "送信"
sending: "応答待ち"
response: "結果"
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはありません"
@@ -1094,6 +1113,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -1152,6 +1172,12 @@ admin/views/instance.vue:
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
enable-serviceworker: "ServiceWorkerを有効にする"
serviceworker-info: "プッシュ通知を行うには有効する必要があります。"
vapid-publickey: "VAPID公開鍵"
vapid-privatekey: "VAPID秘密鍵"
vapid-info: "ServiceWorkerを有効にする場合、VAPIDキーペアを生成する必要があります。シェルで次のようにします:"
admin/views/charts.vue:
title: "チャート"
@@ -1179,6 +1205,23 @@ admin/views/charts.vue:
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
mark-as-sensitive: "閲覧注意に設定"
unmark-as-sensitive: "閲覧注意を解除"
admin/views/users.vue:
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
@@ -1328,6 +1371,7 @@ desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
is-bot: "このアカウントはBotです"
years-old: "{age}歳"
year: "年"
@@ -1338,6 +1382,7 @@ desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
with-media: "メディア"
my-posts: "私の投稿"
empty: "このユーザーはまだ何も投稿していないようです。"
desktop/views/widgets/messaging.vue:
@@ -1606,7 +1651,6 @@ mobile/views/pages/settings.vue:
signout: "サインアウト"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
password: "パスワード"
mobile/views/pages/user.vue:
@@ -1617,7 +1661,6 @@ mobile/views/pages/user.vue:
overview: "概要"
timeline: "タイムライン"
media: "メディア"
is-suspended: "このユーザーは凍結されています。"
mute: "ミュート"
unmute: "ミュート解除"
block: "ブロック"
@@ -1679,6 +1722,7 @@ deck/deck.user-column.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
images: "画像"
activity: "アクティビティ"
timeline: "タイムライン"
+64 -17
View File
@@ -90,7 +90,6 @@ common:
followers-desc: "自分のフォロワー以外に見せんとって"
specified: "ダイレクト"
specified-desc: "今から言うユーザー以外に見せんとってや"
private: "非公開"
local-public: "公開 (ローカルだけ)"
local-home: "ホーム (ローカルだけ)"
local-followers: "フォロワー (ローカルだけ)"
@@ -111,7 +110,6 @@ common:
i-like-sushi: "寿司(のほうがプリンよりむしろ)ウマい、タコ焼きはあらへんけど。"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示や!"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストをつけんで!"
verified-user: "アメちゃん付きアカウント"
disable-animated-mfm: "投稿内のちょろちょろ動いてんのを止める"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
@@ -122,14 +120,15 @@ common:
reduce-motion: "UI、動き過ぎや、静かにしてや"
this-setting-is-this-device-only: "このデバイスのみ"
use-os-default-emojis: "OSにもとから入っとる絵文字使う"
do-not-use-in-production: '開発ビルドや。本番環境で使わんといて!知らんで!'
do-not-use-in-production: "開発ビルドや。本番環境で使わんといて!知らんで!"
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "ちゃんとした情報見せてや!"
renoted-by: "{user}がRenote"
error:
title: '問題が起こったわ'
retry: 'もっぺん'
title: "問題が起こったわ"
retry: "もっぺん"
reversi:
drawn: "おあいこ"
my-turn: "あんさんのターンや"
@@ -165,6 +164,7 @@ common:
hashtags: "ハッシュタグ"
dev: "アプリの作成あかんかったわ。もっぺんやってみて。"
ai-chan-kawaii: "藍ちゃめっさべっぴんさんや"
you: "あなた"
auth/views/form.vue:
share-access: "あんたのアカウントに<i>{name}</i>がアクセスしようとしてるで?ええか?"
permission-ask: "このアプリは次の権限を要求してんで:"
@@ -299,6 +299,7 @@ common/views/components/cw-button.vue:
show: "見たいやろ?"
chars: "{count}文字"
files: "{count}ファイル"
poll: "アンケート"
common/views/components/messaging.vue:
search-user: "ユーザーを探す"
you: "あんさん"
@@ -328,6 +329,7 @@ common/views/components/nav.vue:
develop: "開発者"
feedback: "フィードバック"
common/views/components/note-menu.vue:
mention: "メンション"
detail: "もっと"
copy-link: "リンクをコピー"
favorite: "お気に入り"
@@ -403,6 +405,13 @@ common/views/components/stream-indicator.vue:
connecting: "つないどるで"
reconnecting: "つなぎ直すで"
connected: "つないだわ"
common/views/components/notification-settings.vue:
title: "通知"
mark-as-read-all-notifications: "すべての通知を既読にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
mark-as-read-all-talk-messages: "すべてのトークを既読にする"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "つなげる"
@@ -432,7 +441,6 @@ common/views/components/visibility-chooser.vue:
followers-desc: "自分のフォロワー以外に見せんとって"
specified: "ダイレクト"
specified-desc: "今から言うユーザー以外に見せんとってや"
private: "非公開"
local-public: "公開 (ローカルだけ)"
local-public-desc: "リモートには見せへん"
local-home: "ホーム (ローカルだけ)"
@@ -461,6 +469,7 @@ common/views/components/profile-editor.vue:
is-bot: "このアカウントはBotやで"
is-locked: "他人のフォローは許可してからや!"
careful-bot: "Botからのフォローだけは許可制や"
auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
advanced: "その他"
privacy: "プライバシーってなんや?オカンの年齢か?"
save: "保存"
@@ -471,6 +480,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "このメールアドレスOKや!"
email-not-verified: "メールアドレスが確認されとらん。メールボックスもっぺん見てくれへん?"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
delete: "リストを削除"
remove-user: "このリストから削除"
delete-are-you-sure: "リスト「$1」を削除しますか?"
deleted: "削除しました"
common/views/widgets/broadcast.vue:
fetching: "見てみるわ…"
no-broadcasts: "お知らせはあらへんで"
@@ -520,9 +536,11 @@ common/views/widgets/tips.vue:
tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができんで"
tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示してんねん"
tips-line21: "APIをつこてbotの開発なども行えるで"
tips-line23: "ウチのタコちゃんかわええやろ…今の突っ込むところや!"
tips-line23: "藍かわいいよ藍"
tips-line24: "Misskeyは2014年にサービスを開始したんよ"
tips-line25: "対応ブラウザやったらMisskeyを開いとらんでも通知を受け取れんで"
common/views/pages/not-found.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォローしとる"
@@ -658,10 +676,12 @@ desktop/views/components/note-detail.vue:
location: "ここおるで:"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
desktop/views/components/note.vue:
reply: "返す"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
detail: "もっと"
private: "この投稿は見せられへんわ"
deleted: "この投稿なんか無くなってもうたわ"
@@ -791,8 +811,6 @@ desktop/views/components/settings.vue:
cache-warn: "お掃除するとな、ブラウザが覚えてくれとるアカウントのあれこれや書きかけの投稿・返信・メッセージや設定情報なんかのデータが全部飛んでいくんや。これやったらページ再読込しといてな。"
cache-cleared: "キャッシュお掃除したで"
cache-cleared-desc: "もっぺんページ読みこみ直してくれや"
auto-watch: "投稿勝手にウォッチしといてや"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を勝手に受け取るようにすんで。"
about: "Misskeyってなんや?"
operator: "このサーバー誰のや"
update: "Misskey Update"
@@ -845,13 +863,13 @@ common/views/components/api-settings.vue:
token: "Token:"
enter-password: "パスワードを入れてや"
console:
title: 'APIコンソール'
endpoint: 'エンドポイント'
parameter: 'パラメータ'
title: "APIコンソール"
endpoint: "エンドポイント"
parameter: "パラメータ"
credential-info: "「i」パラメータは勝手に付くで。"
send: '送る'
sending: '応答待っとる'
response: 'こんなん返ってきたわ'
send: "送る"
sending: "応答待っとる"
response: "こんなん返ってきたわ"
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはあらへんで"
common/views/components/drive-settings.vue:
@@ -881,6 +899,11 @@ desktop/views/components/sub-note-content.vue:
deleted: "この投稿なんか無くなってもうたわ"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@@ -963,6 +986,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できるで。"
maintainer-config: "管理者情報"
@@ -1021,6 +1045,12 @@ admin/views/instance.vue:
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
enable-serviceworker: "ServiceWorkerを有効にする"
serviceworker-info: "プッシュ通知を行うには有効する必要があります。"
vapid-publickey: "VAPID公開鍵"
vapid-privatekey: "VAPID秘密鍵"
vapid-info: "ServiceWorkerを有効にする場合、VAPIDキーペアを生成する必要があります。シェルで次のようにします:"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1046,6 +1076,22 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
mark-as-sensitive: "閲覧注意に設定"
unmark-as-sensitive: "閲覧注意を解除"
admin/views/users.vue:
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
@@ -1177,6 +1223,7 @@ desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
is-bot: "このアカウントはBotや"
years-old: "{age}歳"
year: "年"
@@ -1186,6 +1233,7 @@ desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
with-media: "メディア"
my-posts: "私の投稿"
empty: "このユーザーはまだ何も投稿しとらんようや。"
desktop/views/widgets/messaging.vue:
title: "メッセージ"
@@ -1408,7 +1456,6 @@ mobile/views/pages/settings.vue:
signout: "さいなら"
sound: "サウンド"
enable-sounds: "サウンド鳴らす"
mark-as-read-all-unread-notes: "全部もう読んだわ"
password: "パスワード"
mobile/views/pages/user.vue:
follows-you: "フォローされとるで"
@@ -1418,7 +1465,6 @@ mobile/views/pages/user.vue:
overview: "こんなやつ"
timeline: "タイムライン"
media: "メディア"
is-suspended: "このユーザーはあかんわ。凍結されとる。"
mute: "ミュート"
unmute: "ミュートやめたる"
block: "ブロック"
@@ -1472,6 +1518,7 @@ deck/deck.user-column.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
images: "画像"
activity: "アクティビティ"
timeline: "タイムライン"
+65 -18
View File
@@ -90,7 +90,6 @@ common:
followers-desc: "자신의 팔로워에게만 공개"
specified: "다이렉트"
specified-desc: "지정한 사용자에게만 공개"
private: "비공개"
local-public: "공개 (로컬 한정)"
local-home: "홈 (로컬 한정)"
local-followers: "팔로워 (로컬 한정)"
@@ -111,7 +110,6 @@ common:
i-like-sushi: "저는 (푸딩보다 차라리) 초밥이 좋아요"
show-reversi-board-labels: "리버시 보드의 행과 열 레이블을 표시"
use-white-black-reversi-stones: "리버시에 흑백 돌을 사용"
use-contrast-reversi-stones: "리버시 아이콘의 대비를 높이기"
verified-user: "공식 계정"
disable-animated-mfm: "글의 문자 애니메이션을 비활성화"
suggest-recent-hashtags: "최근 해시태그를 글 작성란에 표시"
@@ -122,14 +120,15 @@ common:
reduce-motion: "UI의 애니메이션 줄이기"
this-setting-is-this-device-only: "이 장치만"
use-os-default-emojis: "운영체제의 기본 이모지 사용"
do-not-use-in-production: '이것은 개발 빌드입니다. 프로덕션 환경에서 사용하지 마십시오.'
do-not-use-in-production: "이것은 개발 빌드입니다. 프로덕션 환경에서 사용하지 마십시오."
user-suspended: "이 사용자는 정지된 상태입니다."
is-remote-user: "이 유저 정보는 복사본입니다."
is-remote-post: "이 글 정보는 복사본입니다."
view-on-remote: "정확한 정보 보기"
renoted-by: "{user}이(가) 리노트"
error:
title: '오류가 발생했습니다'
retry: '다시 시도'
title: "오류가 발생했습니다"
retry: "다시 시도"
reversi:
drawn: "무승부"
my-turn: "당신의 차례입니다"
@@ -165,6 +164,7 @@ common:
hashtags: "해시태그"
dev: "앱을 만드는 데 실패했습니다. 다시 시도하시기 바랍니다."
ai-chan-kawaii: "아이쨩 귀여워"
you: "당신"
auth/views/form.vue:
share-access: "<i>{name}</i>가 당신의 계정에 엑세스하도록 허용하시겠습니까?"
permission-ask: "이 앱은 다음의 권한을 요청합니다:"
@@ -299,6 +299,7 @@ common/views/components/cw-button.vue:
show: "더 보기"
chars: "{count}문자"
files: "{count}파일"
poll: "투표"
common/views/components/messaging.vue:
search-user: "사용자 찾기"
you: "당신"
@@ -328,6 +329,7 @@ common/views/components/nav.vue:
develop: "개발자"
feedback: "피드백"
common/views/components/note-menu.vue:
mention: "멘션"
detail: "상세"
copy-link: "링크 복사"
favorite: "이 노트 즐겨찾기"
@@ -354,7 +356,7 @@ common/views/components/reaction-picker.vue:
choose-reaction: "반응 선택"
common/views/components/emoji-picker.vue:
custom-emoji: "커스텀 이모지"
people: ""
people: "사람들"
animals-and-nature: "동물 & 자연"
food-and-drink: "음식 & 음료"
activity: "활동"
@@ -403,6 +405,13 @@ common/views/components/stream-indicator.vue:
connecting: "연결중"
reconnecting: "다시 연결 중"
connected: "연결 완료"
common/views/components/notification-settings.vue:
title: "알림"
mark-as-read-all-notifications: "모든 알림을 읽은 상태로 표시"
mark-as-read-all-unread-notes: "모든 글을 읽은 상태로 표시"
mark-as-read-all-talk-messages: "모든 대화를 읽은 상태로 표시"
auto-watch: "글 자동 감시"
auto-watch-desc: "리액션, 답글, 게시물에 대한 알림을 자동으로 받을 수 있도록 합니다."
common/views/components/integration-settings.vue:
title: "서비스 연계"
connect: "접속"
@@ -432,7 +441,6 @@ common/views/components/visibility-chooser.vue:
followers-desc: "자신의 팔로워에게만 공개"
specified: "다이렉트"
specified-desc: "지정한 사용자에게만 공개"
private: "비공개"
local-public: "공개 (로컬 한정)"
local-public-desc: "원격에는 공개하지 않음"
local-home: "홈 (로컬 한정)"
@@ -461,6 +469,7 @@ common/views/components/profile-editor.vue:
is-bot: "이 계정은 Bot입니다"
is-locked: "팔로우를 수동으로 승인"
careful-bot: "Bot의 팔로우만 수동으로 승인"
auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
advanced: "기타"
privacy: "프라이버시"
save: "저장"
@@ -471,6 +480,13 @@ common/views/components/profile-editor.vue:
email-address: "메일 주소"
email-verified: "매일 주소가 확인되었습니다"
email-not-verified: "메일 주소가 확인되지 않았습니다. 받은 편지함을 확인하여 주시기 바랍니다."
common/views/components/user-list-editor.vue:
users: "사용자"
rename: "리스트 이름 바꾸기"
delete: "리스트 삭제"
remove-user: "이 리스트에서 제거"
delete-are-you-sure: "리스트 \"$1\"을 삭제하시겠습니까?"
deleted: "삭제하였습니다"
common/views/widgets/broadcast.vue:
fetching: "확인중"
no-broadcasts: "공지사항이 없습니다"
@@ -520,9 +536,11 @@ common/views/widgets/tips.vue:
tips-line19: "몇몇 창은 브라우저 밖으로 분리할 수 있습니다"
tips-line20: "달력 위젯의 퍼센트는 경과된 비율을 나타냅니다"
tips-line21: "API를 사용하여 bot의 개발 등을 할 수 있습니다"
tips-line23: "마유 귀여워요 마유"
tips-line23: "아이 귀여워요 아이"
tips-line24: "Misskey는 2014년에 서비스를 시작했습니다"
tips-line25: "대응하는 브라우저인 경우 Misskey를 열어놓지 않아도 알림을 받을 수 있습니다"
common/views/pages/not-found.vue:
page-not-found: "페이지를 찾을 수 없습니다"
common/views/pages/follow.vue:
signed-in-as: "{}으로 로그인"
following: "팔로우 중"
@@ -658,10 +676,12 @@ desktop/views/components/note-detail.vue:
location: "위치 정보"
renote: "리노트"
add-reaction: "리액션 추가"
undo-reaction: "리액션 취소"
desktop/views/components/note.vue:
reply: "답글 달기"
renote: "리노트"
add-reaction: "리액션 추가"
undo-reaction: "리액션 취소"
detail: "상세"
private: "이 글은 비공개입니다"
deleted: "이 글은 삭제되었습니다"
@@ -791,8 +811,6 @@ desktop/views/components/settings.vue:
cache-warn: "지우기를 실행하면 브라우저에 저장된 계정 정보 캐시, 글이나 답글 및 메시지의 임시 저장, 그 외 데이터 (설정 정보 포함) 가 삭제 됩니다. 지우기 작업을 수행한 후 페이지를 다시 로드해야 합니다."
cache-cleared: "캐시를 삭제하였습니다"
cache-cleared-desc: "페이지를 새로고침해 주십시오."
auto-watch: "글 자동 감시"
auto-watch-desc: "리액션, 답글, 게시물에 대한 알림을 자동으로 받을 수 있도록 합니다."
about: "Misskey에 대하여"
operator: "이 서버의 운영자"
update: "Misskey Update"
@@ -845,13 +863,13 @@ common/views/components/api-settings.vue:
token: "Token:"
enter-password: "비밀번호를 입력하여 주십시오"
console:
title: 'API 콘솔'
endpoint: '엔드포인트'
parameter: '매개변수'
title: "API 콘솔"
endpoint: "엔드포인트"
parameter: "매개변수"
credential-info: "\"i\" 패러미터는 자동으로 추가됩니다."
send: '전송'
sending: '응답을 기다리는 중'
response: '결과'
send: "전송"
sending: "응답을 기다리는 중"
response: "결과"
desktop/views/components/settings.apps.vue:
no-apps: "연결된 어플리케이션이 없습니다"
common/views/components/drive-settings.vue:
@@ -881,6 +899,11 @@ desktop/views/components/sub-note-content.vue:
deleted: "이 글은 삭제되었습니다"
media-count: "{}개의 미디어"
poll: "투표"
desktop/views/components/settings.tags.vue:
title: "태그"
query: "쿼리 (생략 가능)"
add: "추가"
save: "저장"
desktop/views/components/taskmanager.vue:
title: "작업 관리자"
desktop/views/components/timeline.vue:
@@ -963,6 +986,7 @@ admin/views/instance.vue:
instance-description: "인스턴스의 소개"
host: "관리자"
banner-url: "배너 이미지 URL"
error-image-url: "오류 이미지 URL"
languages: "인스턴스의 대상 언어"
languages-desc: "공백으로 구분하여 여러 개 설정할 수 있습니다."
maintainer-config: "관리자 정보"
@@ -1021,6 +1045,12 @@ admin/views/instance.vue:
smtp-port: "SMTP 포트"
smtp-user: "SMTP 사용자"
smtp-pass: "SMTP 비밀번호"
serviceworker-config: "ServiceWorker"
enable-serviceworker: "ServiceWorker 사용"
serviceworker-info: "푸시알림을 수행하려면 사용해야 합니다."
vapid-publickey: "VAPID 공개키"
vapid-privatekey: "VAPID 개인키"
vapid-info: "ServiceWorker를 사용하는 경우 VAPID 키 쌍을 생성해야 합니다. 셸에서 다음과 같이 합니다:"
admin/views/charts.vue:
title: "차트"
per-day: "1일마다"
@@ -1046,6 +1076,22 @@ admin/views/charts.vue:
network-requests: "요청"
network-time: "응답시간"
network-usage: "통신량"
admin/views/drive.vue:
sort:
title: "정렬"
createdAtAsc: "업로드 날짜 오랜 순"
createdAtDesc: "업로드 날짜 최신순"
sizeAsc: "크기가 작은 순"
sizeDesc: "크기가 큰 순"
origin:
title: "출처"
combined: "로컬 + 리모트"
local: "로컬"
remote: "리모트"
delete: "삭제"
deleted: "삭제하였습니다"
mark-as-sensitive: "열람주의로 설정"
unmark-as-sensitive: "열람주의 해제"
admin/views/users.vue:
operation: "작업"
username-or-userid: "사용자명 혹은 사용자 ID"
@@ -1177,6 +1223,7 @@ desktop/views/pages/user/user.header.vue:
posts: "글"
following: "팔로잉"
followers: "팔로워"
mention: "멘션"
is-bot: "이 계정은 Bot입니다"
years-old: "{age}세"
year: "년"
@@ -1186,6 +1233,7 @@ desktop/views/pages/user/user.timeline.vue:
default: "글"
with-replies: "글과 답글"
with-media: "미디어"
my-posts: "내 글"
empty: "이 사용자는 아직 아무것도 게시하지 않은 것 같습니다."
desktop/views/widgets/messaging.vue:
title: "메시지"
@@ -1408,7 +1456,6 @@ mobile/views/pages/settings.vue:
signout: "로그아웃"
sound: "소리"
enable-sounds: "소리 사용"
mark-as-read-all-unread-notes: "모든 글을 읽은 상태로 표시"
password: "비밀번호"
mobile/views/pages/user.vue:
follows-you: "당신을 팔로우합니다"
@@ -1418,7 +1465,6 @@ mobile/views/pages/user.vue:
overview: "요약"
timeline: "타임라인"
media: "미디어"
is-suspended: "이 사용자는 정지된 상태입니다."
mute: "뮤트"
unmute: "뮤트 해제"
block: "차단"
@@ -1472,6 +1518,7 @@ deck/deck.user-column.vue:
posts: "글"
following: "팔로잉"
followers: "팔로워"
mention: "멘션"
images: "이미지"
activity: "활동"
timeline: "타임라인"
+65 -18
View File
@@ -90,7 +90,6 @@ common:
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
local-public: "公開 (ローカルのみ)"
local-home: "ホーム (ローカルのみ)"
local-followers: "フォロワー (ローカルのみ)"
@@ -111,7 +110,6 @@ common:
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
@@ -122,14 +120,15 @@ common:
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ"
use-os-default-emojis: "OS標準の絵文字を使用"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
error:
title: '問題が発生しました'
retry: 'やり直す'
title: "問題が発生しました"
retry: "やり直す"
reversi:
drawn: "引き分け"
my-turn: "あなたのターンです"
@@ -165,6 +164,7 @@ common:
hashtags: "ハッシュタグ"
dev: "アプリの作成に失敗しました。再度お試しください。"
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
permission-ask: "このアプリは次の権限を要求しています:"
@@ -299,6 +299,7 @@ common/views/components/cw-button.vue:
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
poll: "アンケート"
common/views/components/messaging.vue:
search-user: "Gebruiker zoeken"
you: "Jij"
@@ -328,6 +329,7 @@ common/views/components/nav.vue:
develop: "Ontwikkelaars"
feedback: "Feedback"
common/views/components/note-menu.vue:
mention: "メンション"
detail: "詳細"
copy-link: "リンクをコピー"
favorite: "Deze notitie toevoegen aan favorieten"
@@ -403,6 +405,13 @@ common/views/components/stream-indicator.vue:
connecting: "Bezig met verbinden"
reconnecting: "Bezig met herverbinden"
connected: "Verbonden"
common/views/components/notification-settings.vue:
title: "通知"
mark-as-read-all-notifications: "すべての通知を既読にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
mark-as-read-all-talk-messages: "すべてのトークを既読にする"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
@@ -432,7 +441,6 @@ common/views/components/visibility-chooser.vue:
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
local-public: "公開 (ローカルのみ)"
local-public-desc: "リモートへは公開しない"
local-home: "ホーム (ローカルのみ)"
@@ -461,6 +469,7 @@ common/views/components/profile-editor.vue:
is-bot: "このアカウントはBotです"
is-locked: "フォローを承認制にする"
careful-bot: "Botからのフォローだけ承認制にする"
auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
advanced: "その他"
privacy: "プライバシー"
save: "保存"
@@ -471,6 +480,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
delete: "リストを削除"
remove-user: "このリストから削除"
delete-are-you-sure: "リスト「$1」を削除しますか?"
deleted: "削除しました"
common/views/widgets/broadcast.vue:
fetching: "Bezig met ophalen"
no-broadcasts: "Geen uitzendingen"
@@ -520,9 +536,11 @@ common/views/widgets/tips.vue:
tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
tips-line21: "APIを利用してbotの開発なども行えます"
tips-line23: "まゆかわいいよまゆ"
tips-line23: "かわいいよ"
tips-line24: "Misskeyは2014年にサービスを開始しました"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/not-found.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォロー中"
@@ -658,10 +676,12 @@ desktop/views/components/note-detail.vue:
location: "Locatie"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
desktop/views/components/note.vue:
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -689,7 +709,7 @@ desktop/views/components/post-form.vue:
attach-media-from-local: "Media bijvoegen van je computer"
attach-media-from-drive: "Media bijvoegen uit je Drive"
attach-cancel: "Bijlage annuleren"
insert-a-kao: "v(‘ω’)v"
insert-a-kao: "v('ω')v"
create-poll: "Peiling creëren"
text-remain: "{} resterende tekens"
recent-tags: "最近"
@@ -791,8 +811,6 @@ desktop/views/components/settings.vue:
cache-warn: "De cache van je accountinformatie/berichten/antwoorden/instellingen wordt verwijderd. Je moet de pagina herladen na het opschonen."
cache-cleared: "Cache opgeschoond"
cache-cleared-desc: "Herlaad de pagina."
auto-watch: "Automatisch volgen"
auto-watch-desc: "Automatisch meldingen ontvangen over het bericht/antwoord."
about: "Over Misskey"
operator: "De administrator van deze instantie"
update: "Misskey-update"
@@ -845,13 +863,13 @@ common/views/components/api-settings.vue:
token: "Token:"
enter-password: "パスワードを入力してください"
console:
title: 'APIコンソール'
endpoint: 'エンドポイント'
parameter: 'パラメータ'
title: "APIコンソール"
endpoint: "エンドポイント"
parameter: "パラメータ"
credential-info: "「i」パラメータは自動で付与されます。"
send: '送信'
sending: '応答待ち'
response: '結果'
send: "送信"
sending: "応答待ち"
response: "結果"
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはありません"
common/views/components/drive-settings.vue:
@@ -881,6 +899,11 @@ desktop/views/components/sub-note-content.vue:
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "Peilingen"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "Taakbeheer"
desktop/views/components/timeline.vue:
@@ -963,6 +986,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -1021,6 +1045,12 @@ admin/views/instance.vue:
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
enable-serviceworker: "ServiceWorkerを有効にする"
serviceworker-info: "プッシュ通知を行うには有効する必要があります。"
vapid-publickey: "VAPID公開鍵"
vapid-privatekey: "VAPID秘密鍵"
vapid-info: "ServiceWorkerを有効にする場合、VAPIDキーペアを生成する必要があります。シェルで次のようにします:"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1046,6 +1076,22 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
mark-as-sensitive: "閲覧注意に設定"
unmark-as-sensitive: "閲覧注意を解除"
admin/views/users.vue:
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
@@ -1177,6 +1223,7 @@ desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
is-bot: "このアカウントはBotです"
years-old: "{age}歳"
year: "年"
@@ -1186,6 +1233,7 @@ desktop/views/pages/user/user.timeline.vue:
default: "Berichten"
with-replies: "Berichten en antwoorden"
with-media: "Media"
my-posts: "私の投稿"
empty: "Deze gebruiker heeft nog niks geplaatst."
desktop/views/widgets/messaging.vue:
title: "Gesprekken"
@@ -1408,7 +1456,6 @@ mobile/views/pages/settings.vue:
signout: "Uitloggen"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
password: "パスワード"
mobile/views/pages/user.vue:
follows-you: "Volgt jou"
@@ -1418,7 +1465,6 @@ mobile/views/pages/user.vue:
overview: "Overzicht"
timeline: "Tijdlijn"
media: "Media"
is-suspended: "Dit account is geschorst."
mute: "ミュート"
unmute: "ミュート解除"
block: "ブロック"
@@ -1472,6 +1518,7 @@ deck/deck.user-column.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
images: "画像"
activity: "アクティビティ"
timeline: "タイムライン"
+64 -17
View File
@@ -90,7 +90,6 @@ common:
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "Privat"
local-public: "公開 (ローカルのみ)"
local-home: "ホーム (ローカルのみ)"
local-followers: "フォロワー (ローカルのみ)"
@@ -111,7 +110,6 @@ common:
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
@@ -122,14 +120,15 @@ common:
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ"
use-os-default-emojis: "OS標準の絵文字を使用"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
error:
title: '問題が発生しました'
retry: 'やり直す'
title: "問題が発生しました"
retry: "やり直す"
reversi:
drawn: "引き分け"
my-turn: "あなたのターンです"
@@ -165,6 +164,7 @@ common:
hashtags: "ハッシュタグ"
dev: "アプリの作成に失敗しました。再度お試しください。"
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
permission-ask: "このアプリは次の権限を要求しています:"
@@ -299,6 +299,7 @@ common/views/components/cw-button.vue:
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
poll: "アンケート"
common/views/components/messaging.vue:
search-user: "ユーザーを探す"
you: "Du"
@@ -328,6 +329,7 @@ common/views/components/nav.vue:
develop: "Utviklere"
feedback: "フィードバック"
common/views/components/note-menu.vue:
mention: "メンション"
detail: "Detaljer"
copy-link: "リンクをコピー"
favorite: "Merket som favoritt"
@@ -403,6 +405,13 @@ common/views/components/stream-indicator.vue:
connecting: "Tilkobler"
reconnecting: "Kobler til på nytt"
connected: "Tilkoblet"
common/views/components/notification-settings.vue:
title: "通知"
mark-as-read-all-notifications: "すべての通知を既読にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
mark-as-read-all-talk-messages: "すべてのトークを既読にする"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
@@ -432,7 +441,6 @@ common/views/components/visibility-chooser.vue:
followers-desc: "自分のフォロワーにのみ公開"
specified: "Direkte"
specified-desc: "指定したユーザーにのみ公開"
private: "Privat"
local-public: "公開 (ローカルのみ)"
local-public-desc: "リモートへは公開しない"
local-home: "ホーム (ローカルのみ)"
@@ -461,6 +469,7 @@ common/views/components/profile-editor.vue:
is-bot: "このアカウントはBotです"
is-locked: "フォローを承認制にする"
careful-bot: "Botからのフォローだけ承認制にする"
auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
advanced: "その他"
privacy: "プライバシー"
save: "保存"
@@ -471,6 +480,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
delete: "リストを削除"
remove-user: "このリストから削除"
delete-are-you-sure: "リスト「$1」を削除しますか?"
deleted: "削除しました"
common/views/widgets/broadcast.vue:
fetching: "Henter"
no-broadcasts: "お知らせはありません"
@@ -520,9 +536,11 @@ common/views/widgets/tips.vue:
tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
tips-line21: "APIを利用してbotの開発なども行えます"
tips-line23: "まゆかわいいよまゆ"
tips-line23: "かわいいよ"
tips-line24: "Misskeyは2014年にサービスを開始しました"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/not-found.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォロー中"
@@ -658,10 +676,12 @@ desktop/views/components/note-detail.vue:
location: "Lokasjon"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
desktop/views/components/note.vue:
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -791,8 +811,6 @@ desktop/views/components/settings.vue:
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
cache-cleared: "キャッシュを削除しました"
cache-cleared-desc: "ページを再度読み込みしてください。"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
about: "Misskeyについて"
operator: "このサーバーの運営者"
update: "Misskey Update"
@@ -845,13 +863,13 @@ common/views/components/api-settings.vue:
token: "Token:"
enter-password: "パスワードを入力してください"
console:
title: 'APIコンソール'
endpoint: 'エンドポイント'
parameter: 'パラメータ'
title: "APIコンソール"
endpoint: "エンドポイント"
parameter: "パラメータ"
credential-info: "「i」パラメータは自動で付与されます。"
send: '送信'
sending: '応答待ち'
response: '結果'
send: "送信"
sending: "応答待ち"
response: "結果"
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはありません"
common/views/components/drive-settings.vue:
@@ -881,6 +899,11 @@ desktop/views/components/sub-note-content.vue:
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@@ -963,6 +986,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -1021,6 +1045,12 @@ admin/views/instance.vue:
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
enable-serviceworker: "ServiceWorkerを有効にする"
serviceworker-info: "プッシュ通知を行うには有効する必要があります。"
vapid-publickey: "VAPID公開鍵"
vapid-privatekey: "VAPID秘密鍵"
vapid-info: "ServiceWorkerを有効にする場合、VAPIDキーペアを生成する必要があります。シェルで次のようにします:"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1046,6 +1076,22 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
mark-as-sensitive: "閲覧注意に設定"
unmark-as-sensitive: "閲覧注意を解除"
admin/views/users.vue:
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
@@ -1177,6 +1223,7 @@ desktop/views/pages/user/user.header.vue:
posts: "Innlegg"
following: "Følger"
followers: "フォロワー"
mention: "メンション"
is-bot: "このアカウントはBotです"
years-old: "{age}歳"
year: "年"
@@ -1186,6 +1233,7 @@ desktop/views/pages/user/user.timeline.vue:
default: "Innlegg"
with-replies: "Innlegg og svar"
with-media: "Media"
my-posts: "私の投稿"
empty: "このユーザーはまだ何も投稿していないようです。"
desktop/views/widgets/messaging.vue:
title: "Melding"
@@ -1408,7 +1456,6 @@ mobile/views/pages/settings.vue:
signout: "サインアウト"
sound: "Lyder"
enable-sounds: "サウンドを有効にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
password: "パスワード"
mobile/views/pages/user.vue:
follows-you: "フォローされています"
@@ -1418,7 +1465,6 @@ mobile/views/pages/user.vue:
overview: "Oversikt"
timeline: "タイムライン"
media: "Media"
is-suspended: "このユーザーは凍結されています。"
mute: "ミュート"
unmute: "ミュート解除"
block: "ブロック"
@@ -1472,6 +1518,7 @@ deck/deck.user-column.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
images: "画像"
activity: "アクティビティ"
timeline: "タイムライン"
+170 -123
View File
@@ -10,14 +10,14 @@ common:
title: "Czym jest Misskey?"
about: "Misskeyはオープンソースの<b>分散型マイクロブログSNS</b>です。リッチで高度にカスタマイズできるUI、投稿へのリアクション、ファイルを一元管理できるドライブなど、先進的な機能を揃えています。また、Fediverseと呼ばれるネットワークに接続できるため、他のSNSともやり取りできます。例えば、あなたが何か投稿すると、その投稿はMisskeyだけでなく他のSNSにも伝わります。ちょうどある惑星から他の惑星に電波を発信している様子をイメージしてください。"
features: "特徴"
rich-contents: "投稿"
rich-contents-desc: "自分の考え、話題の出来事、皆と共有したいことについて発信してください。必要であれば、様々な構文を使って投稿を装飾したり、好きな画像、動画などのファイルやアンケートを添付することもできます。"
rich-contents: "Wpis"
rich-contents-desc: "Po prostu opublikuj swój pomysł, gorące tematy i wszystko, co chcesz udostępnić. Możesz ozdobić swoje słowa, dołączyć swoje ulubione zdjęcia, wysłać pliki, w tym filmy i utworzyć ankietę - to są rzeczy, które możesz zrobić w Misskey!"
reaction: "Reakcje"
reaction-desc: "あなたの気持ちを伝える最も簡単な方法です。Misskeyは、他のユーザーの投稿に様々なリアクションを付けることができます。いちどMisskeyのリアクション機能を体験してしまうと、もう「いいね」の概念しか存在しないSNSには戻れなくなるかもしれません。"
ui: "Interfejs"
ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。"
drive: "Dysk"
drive-desc: "以前投稿したことのある画像をまた投稿したくなったことはありませんか?もしくは、アップロードしたファイルをフォルダ分けして整理したくなったことはありませんか?Misskeyの根幹に組み込まれたドライブ機能によってそれらが解決します。ファイルの共有も簡単です。"
drive-desc: "Chcesz opublikować zdjęcie, które już przesłałeś? Chcesz uporządkować, nazwać i utworzyć folder dla przesłanych plików? Dysk Misskey to najlepsze rozwiązanie dla Ciebie. Bardzo łatwo udostępniać swoje pliki online."
outro: "他にもMisskeyにしかない機能はまだまだあるので、ぜひあなた自身の目で確かめてください。Misskeyは分散型SNSなので、このインスタンスが気に入らなければ他のインスタンスを試すこともできます。それでは、GLHF!"
adblock:
detected: "Spróbuj wyłączyć blokadę reklam."
@@ -72,7 +72,7 @@ common:
friday: "Piątek"
saturday: "Sobota"
reactions:
like: "いいね"
like: "Lubię"
love: "Kocham"
laugh: "Śmieszne"
hmm: "Hmm…?"
@@ -90,7 +90,6 @@ common:
followers-desc: "Widoczny tylko dla osób, które Cię śledzą"
specified: "Bezpośredni"
specified-desc: "Tylko dla określonych użytkowników"
private: "Prywatny"
local-public: "Publiczny (tylko lokalnie)"
local-home: "ホーム (ローカルのみ)"
local-followers: "Dla śledzących (tylko lokalnie)"
@@ -111,32 +110,32 @@ common:
i-like-sushi: "Wolę sushi od puddingu"
show-reversi-board-labels: "Pokazuj podpisy wierszy i kolumn w Reversi"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
verified-user: "Zweryfikowane konto"
disable-animated-mfm: "Wyłącz animowany tekst we wpisach"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-show-nsfw: "Zawszę pokazuj zawartość NSFW"
always-mark-nsfw: "Zawsze oznaczaj posty z multimediami jako NSFW"
show-full-acct: "ユーザー名のホストを省略しない"
show-via: "viaを表示する"
reduce-motion: "UIの動きを減らす"
reduce-motion: "Zredukuj ruch w UI"
this-setting-is-this-device-only: "このデバイスのみ"
use-os-default-emojis: "Użyj domyślnych Emoji systemowych"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "Informacje o użytkowniku są kopiowane."
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
renoted-by: "{user} udostępnił(a)"
error:
title: 'Coś poszło nie tak'
retry: 'Ponów próbę'
title: "Coś poszło nie tak"
retry: "Ponów próbę"
reversi:
drawn: "Remis"
my-turn: "Twoja kolej"
opponent-turn: "Kolej na przeciwnika"
turn-of: "{name}のターンです"
past-turn-of: "{name}のターン"
won: "{name}の勝ち"
won: "{name} wygrał(a)"
black: "Czarny"
white: "Biały"
total: "Łącznie"
@@ -165,6 +164,7 @@ common:
hashtags: "Hashtagi"
dev: "アプリの作成に失敗しました。再度お試しください。"
ai-chan-kawaii: "藍ちゃかわいい"
you: "Ty"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
permission-ask: "Ta aplikacja wymaga następujących uprawnień:"
@@ -262,7 +262,7 @@ common/views/components/media-banner.vue:
common/views/components/theme.vue:
light-theme: "非ダークモード時に使用するテーマ"
dark-theme: "ダークモード時に使用するテーマ"
light-themes: "明るいテーマ"
light-themes: "Jasny Motyw"
dark-themes: "Ciemny motyw"
install-a-theme: "Zainstaluj motyw"
theme-code: "Kod motywu"
@@ -277,28 +277,29 @@ common/views/components/theme.vue:
base-theme-light: "Jasny"
base-theme-dark: "Ciemny"
theme-name: "Nazwa motywu"
preview-created-theme: "プレビュー"
preview-created-theme: "Pokaż podgląd"
invalid-theme: "テーマが正しくありません。"
already-installed: "既にそのテーマはインストールされています。"
already-installed: "Ten motyw jest już zainstalowany"
saved: "Zapisano"
manage-themes: "Zarządzanie motywami"
builtin-themes: "標準テーマ"
my-themes: "マイテーマ"
installed-themes: "インストールされたテーマ"
builtin-themes: "Standardowe motywy"
my-themes: "Moje motywy"
installed-themes: "Zainstalowane motywy"
select-theme: "テーマを選択してください"
uninstall: "アンインストール"
uninstalled: "「{}」をアンインストールしました"
uninstall: "Odinstaluj"
uninstalled: "\"{}\" został odinstalowany"
author: "Author"
desc: "Opis"
export: "エクスポート"
import: "インポート"
import: "Importuj"
import-by-code: "lub wklej kod"
theme-name-required: "テーマ名は必須です。"
theme-name-required: "Nazwa motywu jest obowiązkowa."
common/views/components/cw-button.vue:
hide: "Ukryj"
show: "Pokaż więcej"
chars: "{count}文字"
files: "{count}ファイル"
chars: "{count} znaków"
files: "{count} plików"
poll: "アンケート"
common/views/components/messaging.vue:
search-user: "Znajdź użytkownika"
you: "Ty"
@@ -328,6 +329,7 @@ common/views/components/nav.vue:
develop: "Autorzy"
feedback: "Podziel się opinią"
common/views/components/note-menu.vue:
mention: "メンション"
detail: "Szczegóły"
copy-link: "Skopiuj adres"
favorite: "Dodaj do ulubionych"
@@ -353,15 +355,15 @@ common/views/components/poll-editor.vue:
common/views/components/reaction-picker.vue:
choose-reaction: "Wybierz reakcję"
common/views/components/emoji-picker.vue:
custom-emoji: "カスタム絵文字"
custom-emoji: "Niestandardowe Emoji"
people: "Ludzie"
animals-and-nature: "動物&自然"
food-and-drink: "食べ物&飲み物"
activity: "アクティビティ"
travel-and-places: "場所"
objects: ""
symbols: "記号"
flags: ""
animals-and-nature: "Zwierzęta i Natura"
food-and-drink: "Żywność i napoje"
activity: "Aktywność"
travel-and-places: "Podróże i Miejsca"
objects: "Rzeczy"
symbols: "Symbole"
flags: "Flagi"
common/views/components/signin.vue:
username: "Nazwa użytkownika"
password: "Hasło"
@@ -403,23 +405,30 @@ common/views/components/stream-indicator.vue:
connecting: "Łączenie"
reconnecting: "Ponowne łączenie"
connected: "Połączono"
common/views/components/notification-settings.vue:
title: "通知"
mark-as-read-all-notifications: "すべての通知を既読にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
mark-as-read-all-talk-messages: "すべてのトークを既読にする"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
connect: "Połącz"
disconnect: "切断する"
connected-to: "次のアカウントに接続されています"
common/views/components/github-setting.vue:
description: "お使いのGitHubアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでGitHubアカウント情報が表示されるようになったり、GitHubを用いた便利なサインインを利用できるようになります。"
connected-to: "次のGitHubアカウントに接続されています"
detail: "詳細..."
reconnect: "再接続する"
detail: "Więcej..."
reconnect: "Połącz ponownie"
connect: "GitHubと接続する"
disconnect: "切断する"
common/views/components/discord-setting.vue:
description: "お使いのDiscordアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでDiscordアカウント情報が表示されるようになったり、Discordを用いた便利なサインインを利用できるようになります。"
connected-to: "次のDiscordアカウントに接続されています"
detail: "詳細..."
reconnect: "再接続する"
detail: "Szczegóły…"
reconnect: "Połącz ponownie"
connect: "Discordと接続する"
disconnect: "切断する"
common/views/components/uploader.vue:
@@ -432,19 +441,18 @@ common/views/components/visibility-chooser.vue:
followers-desc: "Widoczny tylko dla osób, które Cię śledzą"
specified: "Bezpośredni"
specified-desc: "Tylko dla określonych użytkowników"
private: "Prywatny"
local-public: "公開 (ローカルのみ)"
local-public-desc: "リモートへは公開しない"
local-home: "ホーム (ローカルのみ)"
local-followers: "フォロワー (ローカルのみ)"
local-followers: "Dla śledzących (tylko lokalnie)"
common/views/components/trends.vue:
count: "{}人が投稿"
empty: "トレンドなし"
common/views/components/language-settings.vue:
title: "Język"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
pick-language: "Wybierz język"
recommended: "Zalecane"
auto: "Automatyczny"
specify-language: "言語を指定"
info: "Musisz odświeżyć stronę, aby zmiany zostały uwzględnione."
common/views/components/profile-editor.vue:
@@ -461,6 +469,7 @@ common/views/components/profile-editor.vue:
is-bot: "To konto jest prowadzone przez bota"
is-locked: "Żądanania śledzenia wymagają zatwierdzenia"
careful-bot: "Botからのフォローだけ承認制にする"
auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
advanced: "Inne"
privacy: "Prywatność"
save: "Zapisz"
@@ -468,9 +477,16 @@ common/views/components/profile-editor.vue:
uploading: "アップロード中"
upload-failed: "アップロードに失敗しました"
email: "メール設定"
email-address: "メールアドレス"
email-address: "Adres e-mail"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
delete: "リストを削除"
remove-user: "このリストから削除"
delete-are-you-sure: "リスト「$1」を削除しますか?"
deleted: "削除しました"
common/views/widgets/broadcast.vue:
fetching: "Sprawdzanie"
no-broadcasts: "Brak transmisji"
@@ -520,9 +536,11 @@ common/views/widgets/tips.vue:
tips-line19: "Część okien może zostać odłączona z przeglądarki."
tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
tips-line21: "Możesz też używać API, aby tworzyć boty."
tips-line23: "まゆかわいいよまゆ"
tips-line23: "かわいいよ"
tips-line24: "Misskey zaczął działać w 2014."
tips-line25: "Możesz otrzymywać powiadomienia nawet jeżeli Misskey nie jest otwarty w obsługiwanej przeglądarce."
common/views/pages/not-found.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "Zalogowany jako {}"
following: "Śledzisz"
@@ -556,7 +574,7 @@ desktop/views/components/calendar.vue:
next: "Następny miesiąc"
go: "Naciśnij, aby przejść"
desktop/views/components/choose-file-from-drive-window.vue:
chosen-files: "{count}ファイル選択中"
chosen-files: "Wybrano {count} Plik(ów)"
upload: "Wyślij pliki z Twojego komputera"
cancel: "Anuluj"
ok: "OK"
@@ -574,7 +592,7 @@ desktop/views/components/drive-window.vue:
desktop/views/components/drive.file.vue:
avatar: "Awatar"
banner: "Baner"
nsfw: "閲覧注意"
nsfw: "NSFW"
contextmenu:
rename: "Zmień nazwę"
mark-as-sensitive: "Oznacz jako zawartość wrażliwą"
@@ -656,13 +674,15 @@ desktop/views/components/note-detail.vue:
private: "ten wpis jest prywatny"
deleted: "ten wpis został usunięty"
location: "Informacje o lokalizacji"
renote: "Udostępnienie"
renote: "Udostępnij"
add-reaction: "Dodaj reakcję"
undo-reaction: "リアクション解除"
desktop/views/components/note.vue:
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
detail: "詳細"
reply: "Odpowiedz"
renote: "Udostępnij"
add-reaction: "Dodaj reakcję"
undo-reaction: "リアクション解除"
detail: "Szczegóły"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
desktop/views/components/notes.vue:
@@ -727,7 +747,7 @@ desktop/views/components/settings.vue:
notification: "Powiadomienia"
apps: "Aplikacje"
tags: "Hashtagi"
mute-and-block: "ミュート/ブロック"
mute-and-block: "Wycisz / Zablokuj"
blocking: "ブロック"
security: "Bezpieczeństwo"
signin: "Historia logowań"
@@ -741,9 +761,9 @@ desktop/views/components/settings.vue:
fetch-on-scroll-desc: "Po przewinięciu na dół strony automatycznie zostaną załadowane nowe treści."
note-visibility: "Widoczność wpisów"
default-note-visibility: "Domyślna widoczność"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: ": https://www.google.com/?#q={{query}}"
remember-note-visibility: "Zapamiętaj widoczność wpisów"
web-search-engine: "Wyszukiwarka internetowa"
web-search-engine-desc: "Np: https://www.google.com/?#q={{query}}"
auto-popout: "Automatycznie pojawiające się okna"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "Ustawienia zaawansowane"
@@ -751,36 +771,36 @@ desktop/views/components/settings.vue:
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
deck-nav: "デッキ内ナビゲーション"
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
deck-default: "デッキをデフォルトのUIにする"
deck-default: "Użyj Talię jako domyślne UI"
display: "Wygląd i wyświetlanie"
customize: "Dostosuj stronę główną"
wallpaper: "壁紙"
wallpaper: "Tapeta"
choose-wallpaper: "Wybierz tło"
delete-wallpaper: "Usuń tło"
dark-mode: "Tryb ciemny"
use-shadow: "UIに影を使用"
rounded-corners: "UIの角を丸める"
use-shadow: "Użyj cieni w UI"
rounded-corners: "Zaokrąglaj rogi w UI"
circle-icons: "Używaj okrągłych ikon"
contrasted-acct: "ユーザー名にコントラストを付ける"
post-form-on-timeline: "Wyświetlaj formularz tworzenia wpisu w górnej części osi czasu"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "Pokazuj cel odpowiedzi"
timeline: "タイムライン"
timeline: "Oś czasu"
show-my-renotes: "Pokazuj moje udostępnienia na osi czasu"
show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
show-renoted-my-notes: "Pokazuj moje udostępnione wpisy na osi czasu"
show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
show-maps: "Automatycznie pokazuj mapę"
remain-deleted-note: "削除された投稿を表示し続ける"
deck-column-align: "デッキのカラムの配置"
deck-column-align-center: "中央"
deck-column-align-left: ""
deck-column-align-left: "Lewo"
deck-column-align-flexible: "Elastyczne"
deck-column-width: "デッキのカラムの幅"
deck-column-width-narrow: ""
deck-column-width-narrower: "やや狭"
deck-column-width-normal: "普通"
deck-column-width-wider: "やや広"
deck-column-width-wide: ""
deck-column-width: "Szerokość kolumn w talii"
deck-column-width-narrow: "Wąska"
deck-column-width-narrower: "Trochę wąska"
deck-column-width-normal: "Normalna"
deck-column-width-wider: "Trochę szeroka"
deck-column-width-wide: "Szeroka"
sound: "Dźwięk"
enable-sounds: "Włącz dźwięk"
enable-sounds-desc: "Odtwarzaj dźwięk przy wstawianiu wpisów, wysyłaniu lub otrzymywaniu wiadomości. Opcja ta jest zapamiętywana przez przeglądarkę."
@@ -791,8 +811,6 @@ desktop/views/components/settings.vue:
cache-warn: "Pamięć podręczna informacji o koncie/wpisów/odpowiedzi/wiadomości/ustawień przechowywanych w przeglądarce zostanie usunięta. Będziesz musiał odświeżyć stronę po wyczyszczeniu."
cache-cleared: "Wyczyszczono pamięć podręczną"
cache-cleared-desc: "Proszę odświeżyć stronę."
auto-watch: "Automatycznie nasłuchuj"
auto-watch-desc: "Otrzymuj natychmiastowo informacje o wpisach/odpowiedziach/reakcjach."
about: "O Misskey"
operator: "Administrator instancji"
update: "Aktualizacja Misskey"
@@ -815,10 +833,10 @@ desktop/views/components/settings.vue:
tools: "Narzędzia"
task-manager: "Menedżer zadań"
third-parties: "Autorzy trzeci"
navbar-position: "ナビゲーションバーの位置"
navbar-position-top: ""
navbar-position-left: ""
navbar-position-right: ""
navbar-position: "Pozycja paska nawigacji"
navbar-position-top: "Góra"
navbar-position-left: "Lewo"
navbar-position-right: "Prawo"
desktop/views/components/settings.2fa.vue:
intro: "Jeżeli skonfigurujesz uwierzytelnianie dwuetapowe, aby zablokować się będziesz potrzebować (oprócz hasła) kodu ze skonfigurowanego urządzenia (np. smartfonu), co zwiększy bezpieczeństwo."
detail: "Zobacz szczegóły…"
@@ -838,38 +856,38 @@ desktop/views/components/settings.2fa.vue:
failed: "Nie udało się skonfigurować uwierzytelniania dwuetapowego, upewnij się że wprowadziłeś prawidłowy token."
info: "Od teraz, wprowadzaj token wyświetlany na urządzeniu przy każdym logowaniu do Misskey."
common/views/components/api-settings.vue:
intro: "APIを利用するには、上記のトークンを「i」というキーでパラメータに付加してリクエストします。"
intro: "Aby uzyskać dostęp do API, ustaw ten token jako klucz 'i' parametrów żądań."
caution: "アカウントを不正利用される可能性があるため、このトークンは第三者に教えないでください(アプリなどにも入力しないでください)。"
regeneration-of-token: "万が一このトークンが漏れたりその可能性がある場合はトークンを再生成できます。"
regenerate-token: "トークンを再生成"
regeneration-of-token: "W przypadku wycieku tokenu, możesz wygenerować nowy."
regenerate-token: "Wygeneruj nowy token"
token: "Token:"
enter-password: "Wprowadź hasło"
console:
title: 'Konsola API'
endpoint: 'エンドポイント'
parameter: 'Parametry'
title: "Konsola API"
endpoint: "エンドポイント"
parameter: "Parametry"
credential-info: "「i」パラメータは自動で付与されます。"
send: 'Wyślij'
sending: '応答待ち'
response: '結果'
send: "Wyślij"
sending: "応答待ち"
response: "結果"
desktop/views/components/settings.apps.vue:
no-apps: "Brak zautoryzowanych aplikacji"
common/views/components/drive-settings.vue:
max: "容量"
in-use: "使用中"
max: "Max"
in-use: "użyto"
stats: "Statystyki"
common/views/components/mute-and-block.vue:
mute-and-block: "Wyczisz / Zablokuj"
mute-and-block: "Wycisz / Zablokuj"
mute: "Wycisz"
block: "ブロック"
block: "Zablokuj"
no-muted-users: "Brak wyciszonych użytkowników"
no-blocked-users: "Brak zablokowanych użytkowników"
word-mute: "Wyciszenie słowa"
muted-words: "ミュートされたキーワード"
muted-words: "Wyciszone słowa kluczowe"
muted-words-description: "スペースで区切るとAND指定になり、改行で区切るとOR指定になります"
save: "Zapisz"
common/views/components/password-settings.vue:
reset: "パスワードを変更する"
reset: "Zmień hasło"
enter-current-password: "現在のパスワードを入力してください"
enter-new-password: "新しいパスワードを入力してください"
enter-new-password-again: "もう一度新しいパスワードを入力してください"
@@ -881,6 +899,11 @@ desktop/views/components/sub-note-content.vue:
deleted: "ten wpis został usunięty"
media-count: "{}zawartości multimedialnej"
poll: "Ankieta"
desktop/views/components/settings.tags.vue:
title: "Tagi"
query: "クエリ (省略可)"
add: "Dodaj"
save: "Zapisz"
desktop/views/components/taskmanager.vue:
title: "Menedżer zadań"
desktop/views/components/timeline.vue:
@@ -892,8 +915,8 @@ desktop/views/components/timeline.vue:
messages: "Wiadomości"
list: "Listy"
hashtag: "Hashtag"
add-tag-timeline: "ハッシュタグを追加"
add-list: "リストを追加"
add-tag-timeline: "Dodaj hashtag"
add-list: "Dodaj listę"
list-name: "リスト名"
desktop/views/components/ui.header.vue:
welcome-back: "Witaj ponownie,"
@@ -952,7 +975,7 @@ admin/views/index.vue:
admin/views/dashboard.vue:
dashboard: "ダッシュボード"
accounts: "Konta"
notes: "投稿"
notes: "Wpisy"
drive: "ドライブ"
instances: "インスタンス"
this-instance: "このインスタンス"
@@ -963,6 +986,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -1008,7 +1032,7 @@ admin/views/instance.vue:
user-recommendation-config: "Polecani użytkownicy"
enable-external-user-recommendation: "外部ユーザーレコメンデーションを有効にする"
external-user-recommendation-engine: "Silnik"
external-user-recommendation-engine-desc: ": https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-engine-desc: "Np: https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-timeout: "タイムアウト"
external-user-recommendation-timeout-desc: "ミリ秒単位 (例: 300000)"
email-config: "メールサーバーの設定"
@@ -1021,6 +1045,12 @@ admin/views/instance.vue:
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
enable-serviceworker: "ServiceWorkerを有効にする"
serviceworker-info: "プッシュ通知を行うには有効する必要があります。"
vapid-publickey: "VAPID公開鍵"
vapid-privatekey: "VAPID秘密鍵"
vapid-info: "ServiceWorkerを有効にする場合、VAPIDキーペアを生成する必要があります。シェルで次のようにします:"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1046,6 +1076,22 @@ admin/views/charts.vue:
network-requests: "Żądania"
network-time: "Czas reakcji"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "Źródło"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "Usuń"
deleted: "削除しました"
mark-as-sensitive: "閲覧注意に設定"
unmark-as-sensitive: "閲覧注意を解除"
admin/views/users.vue:
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
@@ -1079,17 +1125,17 @@ admin/views/users.vue:
admin/views/moderators.vue:
add-moderator:
title: "モデレーターの登録"
add: "登録"
add: "Zarejestruj się"
added: "モデレーターを登録しました"
admin/views/emoji.vue:
add-emoji:
title: "絵文字の登録"
name: "絵文字名"
name: "Nazwa Emoji"
name-desc: "a~z 0~9 _ の文字が使えます。"
aliases: "エイリアス"
aliases: "Aliasy"
aliases-desc: "スペースで区切って複数設定できます。"
url: "絵文字画像URL"
add: "追加"
add: "Dodaj"
info: "50KB以下のPNG画像をおすすめします。"
added: "絵文字を登録しました"
emojis:
@@ -1177,6 +1223,7 @@ desktop/views/pages/user/user.header.vue:
posts: "Wpisy"
following: "Śledzeni"
followers: "Śledzący"
mention: "メンション"
is-bot: "To konto jest botem"
years-old: "{age} lat"
year: "/"
@@ -1186,6 +1233,7 @@ desktop/views/pages/user/user.timeline.vue:
default: "Wpisy"
with-replies: "Wpisy i odpowiedzi"
with-media: "Multimedia"
my-posts: "私の投稿"
empty: "Ten użytkownik nie umieścił jeszcze niczego."
desktop/views/widgets/messaging.vue:
title: "Wiadomości"
@@ -1229,14 +1277,14 @@ mobile/views/components/drive-file-chooser.vue:
mobile/views/components/drive-folder-chooser.vue:
select-folder: "Wybierz katalog"
mobile/views/components/drive.file.vue:
nsfw: "閲覧注意"
nsfw: "NSFW"
mobile/views/components/drive.file-detail.vue:
download: "Pobierz"
rename: "Zmień nazwę"
move: "Przenieś"
hash: "Hash (md5)"
exif: "EXIF"
nsfw: "閲覧注意"
nsfw: "NSFW"
mark-as-sensitive: "閲覧注意に設定"
unmark-as-sensitive: "閲覧注意を解除"
mobile/views/components/media-image.vue:
@@ -1376,7 +1424,7 @@ mobile/views/pages/settings.vue:
timeline: "Oś czasu"
show-reply-target: "Pokazuj cel odpowiedzi"
show-my-renotes: "Pokazuj moje udostępnienia"
show-renoted-my-notes: "自分の投稿のRenoteを表示する"
show-renoted-my-notes: "Pokazuj moje udostępnione wpisy"
show-local-renotes: "ローカルの投稿のRenoteを表示する"
post-style: "Styl wpisów"
post-style-standard: "Standardowy"
@@ -1389,9 +1437,9 @@ mobile/views/pages/settings.vue:
fetch-on-scroll: "Automatycznie ładuj po przeciągnięciu w dół"
note-visibility: "Widoczność wpisów"
default-note-visibility: "Domyślna widoczność"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: ": https://www.google.com/?#q={{query}}"
remember-note-visibility: "Zapamiętaj widoczność wpisów"
web-search-engine: "Wyszukiwarka internetowa"
web-search-engine-desc: "Np: https://www.google.com/?#q={{query}}"
disable-via-mobile: "Nie oznaczaj wpisów jako „wysłane z telefonu”"
load-raw-images: "Wyświetlaj załączone zdjęcia w wysokiej jakości"
load-remote-media: "Wyświetlaj zawartość multimedialną ze zdalnych serwerów"
@@ -1408,7 +1456,6 @@ mobile/views/pages/settings.vue:
signout: "Wyloguj"
sound: "Dźwięk"
enable-sounds: "Włącz dźwięk"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
password: "Hasło"
mobile/views/pages/user.vue:
follows-you: "Śledzi Cię"
@@ -1418,13 +1465,12 @@ mobile/views/pages/user.vue:
overview: "Przegląd"
timeline: "Oś czasu"
media: "Multimedia"
is-suspended: "To konto zostało zablokowane"
mute: "Wycisz"
unmute: "ミュート解除"
block: "Zablokuj"
unblock: "Odblokuj"
years-old: "{age} lat"
push-to-list: "リストに追加"
push-to-list: "Dodaj do listy"
select-list: "Wybierz listę"
list-pushed: "{user}を{list}に追加しました"
mobile/views/pages/user/home.vue:
@@ -1445,22 +1491,22 @@ mobile/views/pages/user/home.notes.vue:
mobile/views/pages/user/home.photos.vue:
no-photos: "Brak zdjęć"
deck:
widgets: "ウィジェット"
home: "ホーム"
local: "ローカル"
hybrid: "ソーシャル"
widgets: "Widżety"
home: "Strona główna"
local: "Lokalne"
hybrid: "Społeczność"
hashtag: "Hashtag"
global: "グローバル"
global: "Globalne"
mentions: "Wspomnienia"
direct: "ダイレクト投稿"
notifications: "通知"
list: "リスト"
swap-left: "左に移動"
swap-right: "右に移動"
swap-up: "上に移動"
direct: "Bezpośrednie wpisy"
notifications: "Powiadomienia"
list: "Listy"
swap-left: "Przesuń w lewo"
swap-right: "Przesuń w prawo"
swap-up: "Przenieś w górę"
swap-down: "下に移動"
remove: "カラムを削除"
add-column: "カラムを追加"
remove: "Usuń"
add-column: "Dodaj kolumnę"
rename: "Zmień nazwę"
stack-left: "Przypnij do lewej"
pop-right: "右に出す"
@@ -1470,8 +1516,9 @@ deck/deck.tl-column.vue:
edit: "Opcje"
deck/deck.user-column.vue:
posts: "Wpisy"
following: "フォロー"
followers: "フォロワー"
following: "Śledzeni"
followers: "Śledzący"
mention: "メンション"
images: "Zdjęcia"
activity: "Aktywność"
timeline: "Oś czasu"
+64 -17
View File
@@ -90,7 +90,6 @@ common:
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
local-public: "公開 (ローカルのみ)"
local-home: "ホーム (ローカルのみ)"
local-followers: "フォロワー (ローカルのみ)"
@@ -111,7 +110,6 @@ common:
i-like-sushi: "Eu prefiro sushi a pudim"
show-reversi-board-labels: "Mostrar etiquetas de colunas e linhas no Reversi"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "Conta verificada"
disable-animated-mfm: "Desativar texto animado nas publicações"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
@@ -122,14 +120,15 @@ common:
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ"
use-os-default-emojis: "OS標準の絵文字を使用"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
error:
title: '問題が発生しました'
retry: 'やり直す'
title: "問題が発生しました"
retry: "やり直す"
reversi:
drawn: "Empatado"
my-turn: "Seu turno"
@@ -165,6 +164,7 @@ common:
hashtags: "Hashtags"
dev: "アプリの作成に失敗しました。再度お試しください。"
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
permission-ask: "Este aplicativo precisa das seguintes permissões:"
@@ -299,6 +299,7 @@ common/views/components/cw-button.vue:
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
poll: "アンケート"
common/views/components/messaging.vue:
search-user: "ユーザーを探す"
you: "Você"
@@ -328,6 +329,7 @@ common/views/components/nav.vue:
develop: "開発者"
feedback: "フィードバック"
common/views/components/note-menu.vue:
mention: "メンション"
detail: "詳細"
copy-link: "リンクをコピー"
favorite: "お気に入り"
@@ -403,6 +405,13 @@ common/views/components/stream-indicator.vue:
connecting: "接続中"
reconnecting: "再接続中"
connected: "接続完了"
common/views/components/notification-settings.vue:
title: "通知"
mark-as-read-all-notifications: "すべての通知を既読にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
mark-as-read-all-talk-messages: "すべてのトークを既読にする"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
@@ -432,7 +441,6 @@ common/views/components/visibility-chooser.vue:
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
local-public: "公開 (ローカルのみ)"
local-public-desc: "リモートへは公開しない"
local-home: "ホーム (ローカルのみ)"
@@ -461,6 +469,7 @@ common/views/components/profile-editor.vue:
is-bot: "このアカウントはBotです"
is-locked: "フォローを承認制にする"
careful-bot: "Botからのフォローだけ承認制にする"
auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
advanced: "その他"
privacy: "プライバシー"
save: "保存"
@@ -471,6 +480,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
delete: "リストを削除"
remove-user: "このリストから削除"
delete-are-you-sure: "リスト「$1」を削除しますか?"
deleted: "削除しました"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
@@ -520,9 +536,11 @@ common/views/widgets/tips.vue:
tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
tips-line21: "APIを利用してbotの開発なども行えます"
tips-line23: "まゆかわいいよまゆ"
tips-line23: "かわいいよ"
tips-line24: "Misskeyは2014年にサービスを開始しました"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/not-found.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォロー中"
@@ -658,10 +676,12 @@ desktop/views/components/note-detail.vue:
location: "位置情報"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
desktop/views/components/note.vue:
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -791,8 +811,6 @@ desktop/views/components/settings.vue:
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
cache-cleared: "キャッシュを削除しました"
cache-cleared-desc: "ページを再度読み込みしてください。"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
about: "Misskeyについて"
operator: "このサーバーの運営者"
update: "Misskey Update"
@@ -845,13 +863,13 @@ common/views/components/api-settings.vue:
token: "Token:"
enter-password: "パスワードを入力してください"
console:
title: 'APIコンソール'
endpoint: 'エンドポイント'
parameter: 'パラメータ'
title: "APIコンソール"
endpoint: "エンドポイント"
parameter: "パラメータ"
credential-info: "「i」パラメータは自動で付与されます。"
send: '送信'
sending: '応答待ち'
response: '結果'
send: "送信"
sending: "応答待ち"
response: "結果"
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはありません"
common/views/components/drive-settings.vue:
@@ -881,6 +899,11 @@ desktop/views/components/sub-note-content.vue:
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@@ -963,6 +986,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -1021,6 +1045,12 @@ admin/views/instance.vue:
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
enable-serviceworker: "ServiceWorkerを有効にする"
serviceworker-info: "プッシュ通知を行うには有効する必要があります。"
vapid-publickey: "VAPID公開鍵"
vapid-privatekey: "VAPID秘密鍵"
vapid-info: "ServiceWorkerを有効にする場合、VAPIDキーペアを生成する必要があります。シェルで次のようにします:"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1046,6 +1076,22 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
mark-as-sensitive: "閲覧注意に設定"
unmark-as-sensitive: "閲覧注意を解除"
admin/views/users.vue:
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
@@ -1177,6 +1223,7 @@ desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
is-bot: "このアカウントはBotです"
years-old: "{age}歳"
year: "年"
@@ -1186,6 +1233,7 @@ desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
with-media: "メディア"
my-posts: "私の投稿"
empty: "このユーザーはまだ何も投稿していないようです。"
desktop/views/widgets/messaging.vue:
title: "メッセージ"
@@ -1408,7 +1456,6 @@ mobile/views/pages/settings.vue:
signout: "Sair"
sound: "Sons"
enable-sounds: "Ativar sons"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
password: "パスワード"
mobile/views/pages/user.vue:
follows-you: "Te segue"
@@ -1418,7 +1465,6 @@ mobile/views/pages/user.vue:
overview: "概要"
timeline: "Linha do tempo"
media: "Mídia"
is-suspended: "Esta conta foi suspensa"
mute: "ミュート"
unmute: "ミュート解除"
block: "ブロック"
@@ -1472,6 +1518,7 @@ deck/deck.user-column.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
images: "画像"
activity: "アクティビティ"
timeline: "タイムライン"
+76 -29
View File
@@ -26,12 +26,12 @@ common:
close: "Закрыть"
do-not-copy-paste: "Пожалуйста, не вводите и не вставляйте сюда код. Аккаунту может угрожать опасность."
load-more: "Загрузить больше"
enter-password: "パスワードを入力してください"
enter-password: "Пожалуйста, введите ваш пароль"
got-it: "わかった"
customization-tips:
title: "カスタマイズのヒント"
title: "Советы по настройке"
paragraph: "<p>ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。</p><p>一部のウィジェットは、<strong><strong>右</strong>クリック</strong>することで表示を変更することができます。</p><p>ウィジェットを削除するには、ヘッダーの<strong>「ゴミ箱」</strong>と書かれたエリアにウィジェットをドラッグ&ドロップします。</p><p>カスタマイズを終了するには、右上の「完了」をクリックします。</p>"
gotit: "Got it!"
gotit: "Понятно!"
notification:
file-uploaded: "Файл отправлен!"
message-from: "Сообщение от {}:"
@@ -64,17 +64,17 @@ common:
friday: "Пт"
saturday: "Сб"
weekday:
sunday: "日曜日"
monday: "月曜日"
tuesday: "火曜日"
wednesday: "水曜日"
thursday: "木曜日"
friday: "金曜日"
saturday: "土曜日"
sunday: "Воскресенье"
monday: "Понедельник"
tuesday: "Вторник"
wednesday: "Среда"
thursday: "Четверг"
friday: "Пятница"
saturday: "Суббота"
reactions:
like: "いいね"
like: "Нравится"
love: "しゅき"
laugh: ""
laugh: "Ха-Ха"
hmm: "ふぅ~む"
surprise: "わお"
congrats: "おめでとう"
@@ -90,7 +90,6 @@ common:
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
local-public: "公開 (ローカルのみ)"
local-home: "ホーム (ローカルのみ)"
local-followers: "フォロワー (ローカルのみ)"
@@ -111,7 +110,6 @@ common:
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "Отключить анимированный текст в постах"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
@@ -122,14 +120,15 @@ common:
reduce-motion: "Уменьшить движение в интерфейсе"
this-setting-is-this-device-only: "Только для этого устройства"
use-os-default-emojis: "Использовать стандартные Emoji из ОС"
do-not-use-in-production: 'Эта сборка для разработчиков. Не используйте в продакшне.'
do-not-use-in-production: "Эта сборка для разработчиков. Не используйте в продакшне."
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
error:
title: 'Что-то пошло не так :('
retry: 'Повторить'
title: "Что-то пошло не так :("
retry: "Повторить"
reversi:
drawn: "Ничья"
my-turn: "Ваш ход"
@@ -165,6 +164,7 @@ common:
hashtags: "Хэштеги"
dev: "Не удалось создать приложение. Пожалуйста, попробуйте ещё раз."
ai-chan-kawaii: "Ai-chan kawaii!"
you: "あなた"
auth/views/form.vue:
share-access: "Вы разрешаете <i>{name}</i> получить доступ к вашему аккаунту?"
permission-ask: "このアプリは次の権限を要求しています:"
@@ -299,6 +299,7 @@ common/views/components/cw-button.vue:
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
poll: "アンケート"
common/views/components/messaging.vue:
search-user: "ユーザーを探す"
you: "あなた"
@@ -328,6 +329,7 @@ common/views/components/nav.vue:
develop: "開発者"
feedback: "フィードバック"
common/views/components/note-menu.vue:
mention: "メンション"
detail: "詳細"
copy-link: "リンクをコピー"
favorite: "お気に入り"
@@ -403,6 +405,13 @@ common/views/components/stream-indicator.vue:
connecting: "接続中"
reconnecting: "再接続中"
connected: "接続完了"
common/views/components/notification-settings.vue:
title: "通知"
mark-as-read-all-notifications: "すべての通知を既読にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
mark-as-read-all-talk-messages: "すべてのトークを既読にする"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
@@ -432,7 +441,6 @@ common/views/components/visibility-chooser.vue:
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
local-public: "公開 (ローカルのみ)"
local-public-desc: "リモートへは公開しない"
local-home: "ホーム (ローカルのみ)"
@@ -461,6 +469,7 @@ common/views/components/profile-editor.vue:
is-bot: "このアカウントはBotです"
is-locked: "フォローを承認制にする"
careful-bot: "Botからのフォローだけ承認制にする"
auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
advanced: "その他"
privacy: "プライバシー"
save: "保存"
@@ -471,6 +480,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
delete: "リストを削除"
remove-user: "このリストから削除"
delete-are-you-sure: "リスト「$1」を削除しますか?"
deleted: "削除しました"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
@@ -520,9 +536,11 @@ common/views/widgets/tips.vue:
tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
tips-line21: "APIを利用してbotの開発なども行えます"
tips-line23: "まゆかわいいよまゆ"
tips-line23: "かわいいよ"
tips-line24: "Misskeyは2014年にサービスを開始しました"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/not-found.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォロー中"
@@ -658,10 +676,12 @@ desktop/views/components/note-detail.vue:
location: "位置情報"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
desktop/views/components/note.vue:
reply: "返信"
renote: "Renote"
add-reaction: "リアクション"
undo-reaction: "リアクション解除"
detail: "詳細"
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -791,8 +811,6 @@ desktop/views/components/settings.vue:
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
cache-cleared: "キャッシュを削除しました"
cache-cleared-desc: "ページを再度読み込みしてください。"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
about: "Misskeyについて"
operator: "このサーバーの運営者"
update: "Misskey Update"
@@ -845,13 +863,13 @@ common/views/components/api-settings.vue:
token: "Token:"
enter-password: "パスワードを入力してください"
console:
title: 'APIコンソール'
endpoint: 'エンドポイント'
parameter: 'パラメータ'
title: "APIコンソール"
endpoint: "エンドポイント"
parameter: "パラメータ"
credential-info: "「i」パラメータは自動で付与されます。"
send: '送信'
sending: '応答待ち'
response: '結果'
send: "送信"
sending: "応答待ち"
response: "結果"
desktop/views/components/settings.apps.vue:
no-apps: "連携しているアプリケーションはありません"
common/views/components/drive-settings.vue:
@@ -881,6 +899,11 @@ desktop/views/components/sub-note-content.vue:
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@@ -963,6 +986,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -1021,6 +1045,12 @@ admin/views/instance.vue:
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
enable-serviceworker: "ServiceWorkerを有効にする"
serviceworker-info: "プッシュ通知を行うには有効する必要があります。"
vapid-publickey: "VAPID公開鍵"
vapid-privatekey: "VAPID秘密鍵"
vapid-info: "ServiceWorkerを有効にする場合、VAPIDキーペアを生成する必要があります。シェルで次のようにします:"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1046,6 +1076,22 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
mark-as-sensitive: "閲覧注意に設定"
unmark-as-sensitive: "閲覧注意を解除"
admin/views/users.vue:
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
@@ -1177,6 +1223,7 @@ desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
is-bot: "このアカウントはBotです"
years-old: "{age}歳"
year: "年"
@@ -1186,6 +1233,7 @@ desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
with-media: "メディア"
my-posts: "私の投稿"
empty: "このユーザーはまだ何も投稿していないようです。"
desktop/views/widgets/messaging.vue:
title: "メッセージ"
@@ -1408,7 +1456,6 @@ mobile/views/pages/settings.vue:
signout: "サインアウト"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
password: "パスワード"
mobile/views/pages/user.vue:
follows-you: "フォローされています"
@@ -1418,7 +1465,6 @@ mobile/views/pages/user.vue:
overview: "概要"
timeline: "タイムライン"
media: "メディア"
is-suspended: "このユーザーは凍結されています。"
mute: "ミュート"
unmute: "ミュート解除"
block: "ブロック"
@@ -1472,6 +1518,7 @@ deck/deck.user-column.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
mention: "メンション"
images: "画像"
activity: "アクティビティ"
timeline: "タイムライン"
+71 -24
View File
@@ -90,7 +90,6 @@ common:
followers-desc: "仅发送至粉丝"
specified: "指定用户"
specified-desc: "仅发送至指定用户"
private: "私密"
local-public: "公开(仅限本地)"
local-home: "首页(仅限本地)"
local-followers: "关注者(仅限本地)"
@@ -111,10 +110,9 @@ common:
i-like-sushi: "相比于布丁来说, 我更喜欢寿司。"
show-reversi-board-labels: "在 Reversi 中显示行和列表签"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "Make the stone color clear in Reversi"
verified-user: "认证用户"
disable-animated-mfm: "在帖子中禁用动画文本"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
suggest-recent-hashtags: "在帖子表单上显示最近流行的主题标签"
always-show-nsfw: "总是显示 NSFW 的内容"
always-mark-nsfw: "总是用 NSFW 来标记附件"
show-full-acct: "不要从用户名中忽略主机名"
@@ -122,14 +120,15 @@ common:
reduce-motion: "减弱UI中的动画效果"
this-setting-is-this-device-only: "设置仅在本设备中生效"
use-os-default-emojis: "使用设备系统默认的 emojis"
do-not-use-in-production: '这是一个开发者测试版. 请勿在生产环境中使用.'
do-not-use-in-production: "这是一个开发者测试版. 请勿在生产环境中使用."
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "该用户的信息已被复制."
is-remote-post: "该投稿已被复制."
view-on-remote: "查看准确的信息"
renoted-by: "由 {user} Renote"
error:
title: '哦不, 发生了一些问题! :('
retry: '重试'
title: "哦不, 发生了一些问题! :("
retry: "重试"
reversi:
drawn: "平局"
my-turn: "轮到你了"
@@ -165,6 +164,7 @@ common:
hashtags: "标签"
dev: "构建应用程序失败,请再试一次。"
ai-chan-kawaii: "Ai-chan kawaii!"
you: "您"
auth/views/form.vue:
share-access: "您要允许<i>{name}</i>来访问您的账户吗?"
permission-ask: "这个应用程序需要以下权限:"
@@ -298,7 +298,8 @@ common/views/components/cw-button.vue:
hide: "隐藏"
show: "查看更多"
chars: "{count}文字"
files: "{count}ファイル"
files: "{count} 个文件"
poll: "アンケート"
common/views/components/messaging.vue:
search-user: "查找用户"
you: "您"
@@ -328,6 +329,7 @@ common/views/components/nav.vue:
develop: "开发者"
feedback: "反馈"
common/views/components/note-menu.vue:
mention: "メンション"
detail: "详细信息"
copy-link: "复制链接"
favorite: "收藏这个投稿"
@@ -403,10 +405,17 @@ common/views/components/stream-indicator.vue:
connecting: "连接中"
reconnecting: "重新连接中"
connected: "已连接"
common/views/components/notification-settings.vue:
title: "通知"
mark-as-read-all-notifications: "すべての通知を既読にする"
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
mark-as-read-all-talk-messages: "すべてのトークを既読にする"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
disconnect: "切断する"
connect: "接"
disconnect: "未连接"
connected-to: "次のアカウントに接続されています"
common/views/components/github-setting.vue:
description: "当您用GitHub连接Misskey账户后,您将能够看到有关您自己的信息,并且您将能够使用GitHub登录。"
@@ -432,7 +441,6 @@ common/views/components/visibility-chooser.vue:
followers-desc: "仅发送至关注者"
specified: "直接"
specified-desc: "仅发送至指定用户"
private: "私密"
local-public: "公开(仅限本地)"
local-public-desc: "不要发布到公开"
local-home: "首页(仅限本地)"
@@ -453,7 +461,7 @@ common/views/components/profile-editor.vue:
account: "账户"
location: "位置"
description: "关于我"
language: "言"
language: "言"
birthday: "生日"
avatar: "头像"
banner: "背景"
@@ -461,6 +469,7 @@ common/views/components/profile-editor.vue:
is-bot: "整个账户是机器人"
is-locked: "关注者请求需要批准"
careful-bot: "机器人的关注者请求需要批准"
auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
advanced: "其他选项"
privacy: "隐私"
save: "保存"
@@ -471,6 +480,13 @@ common/views/components/profile-editor.vue:
email-address: "电子邮件地址"
email-verified: "电子邮件地址已验证"
email-not-verified: "电子邮件地址还没有验证哦, 请检查一下收信箱吧~"
common/views/components/user-list-editor.vue:
users: "用户"
rename: "重命名列表"
delete: "删除列表"
remove-user: "从此列表中删除"
delete-are-you-sure: "删除列表 \"$1\""
deleted: "已删除"
common/views/widgets/broadcast.vue:
fetching: "确认中"
no-broadcasts: "没有公告"
@@ -520,9 +536,11 @@ common/views/widgets/tips.vue:
tips-line19: "可以在浏览器外部分离多个窗口。"
tips-line20: "日历小部件的百分比显示经过的时间百分比。"
tips-line21: "您也可以使用API开发机器人。"
tips-line23: "Mayu的眉毛非常可爱。"
tips-line23: "藍かわいいよ藍"
tips-line24: "Misskey自2014年开始运营。"
tips-line25: "在与通知功能兼容的浏览器中,您可以在Misskey未打开的情况下接收通知"
common/views/pages/not-found.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "用 {}登录"
following: "正在关注"
@@ -658,10 +676,12 @@ desktop/views/components/note-detail.vue:
location: "位置信息"
renote: "转发"
add-reaction: "添加一个反应"
undo-reaction: "リアクション解除"
desktop/views/components/note.vue:
reply: "回复"
renote: "Renote"
add-reaction: "添加一个反应"
undo-reaction: "リアクション解除"
detail: "详细信息"
private: "这个投稿是私密的"
deleted: "投稿已删除"
@@ -778,7 +798,7 @@ desktop/views/components/settings.vue:
deck-column-width: "デッキのカラムの幅"
deck-column-width-narrow: "狭"
deck-column-width-narrower: "やや狭"
deck-column-width-normal: "普通"
deck-column-width-normal: "正常"
deck-column-width-wider: "やや広"
deck-column-width-wide: "広"
sound: "声音"
@@ -791,8 +811,6 @@ desktop/views/components/settings.vue:
cache-warn: "将删除存储在浏览器中的帐户信息/帖子/回复/消息/设置的缓存。 清理完毕后需要刷新页面。"
cache-cleared: "已清除缓存"
cache-cleared-desc: "请刷新页面。"
auto-watch: "自动查看帖子"
auto-watch-desc: "自动接收有关帖子/回复/反应的通知。"
about: "关于 Misskey"
operator: "网站运营者"
update: "更新 Misskey"
@@ -845,13 +863,13 @@ common/views/components/api-settings.vue:
token: "令牌:"
enter-password: "请输入您的密码"
console:
title: 'API 控制台'
endpoint: '端点'
parameter: '参数'
title: "API 控制台"
endpoint: "端点"
parameter: "参数"
credential-info: "此控制台不需要参数“i”。"
send: '发送'
sending: '等待回应'
response: '结果'
send: "发送"
sending: "等待回应"
response: "结果"
desktop/views/components/settings.apps.vue:
no-apps: "没有已连接的应用程序"
common/views/components/drive-settings.vue:
@@ -875,12 +893,17 @@ common/views/components/password-settings.vue:
enter-new-password-again: "请再次输入新密码"
not-match: "新密码不匹配"
changed: "密码已更改"
failed: "パスワード変更に失敗しました"
failed: "更改密码失败"
desktop/views/components/sub-note-content.vue:
private: "这个帖子是私密的"
deleted: "帖子已删除"
media-count: "附加{}媒体"
poll: "投票"
desktop/views/components/settings.tags.vue:
title: "标签"
query: "查询 (可选)"
add: "添加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "任务管理器"
desktop/views/components/timeline.vue:
@@ -963,6 +986,7 @@ admin/views/instance.vue:
instance-description: "实例介绍"
host: "主机名"
banner-url: "背景图片地址"
error-image-url: "无效的图像URL"
languages: "实例语言"
languages-desc: "您可以添加多个,以空格分隔。"
maintainer-config: "管理员信息"
@@ -1021,6 +1045,12 @@ admin/views/instance.vue:
smtp-port: "SMTP 端口"
smtp-user: "SMTP 用户名"
smtp-pass: "SMTP 密码"
serviceworker-config: "ServiceWorker"
enable-serviceworker: "启用ServiceWorker"
serviceworker-info: "プッシュ通知を行うには有効する必要があります。"
vapid-publickey: "VAPID公钥"
vapid-privatekey: "VAPID私钥"
vapid-info: "如果您想要启用ServiceWorker,那么您需要生成VAPID秘钥。除非您已经在其他地方设置了全局node_modules位置,否则您需要将其作为root用户运行:"
admin/views/charts.vue:
title: "历史记录"
per-day: "每天"
@@ -1046,6 +1076,22 @@ admin/views/charts.vue:
network-requests: "请求"
network-time: "响应时间"
network-usage: "网络流量"
admin/views/drive.vue:
sort:
title: "排序"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "源自"
combined: "本地+远程"
local: "本地"
remote: "远程"
delete: "删除"
deleted: "已删除"
mark-as-sensitive: "标记为“敏感”"
unmark-as-sensitive: "取消标记为“敏感”"
admin/views/users.vue:
operation: "操作"
username-or-userid: "用户名或用户ID"
@@ -1177,6 +1223,7 @@ desktop/views/pages/user/user.header.vue:
posts: "帖子"
following: "关注中"
followers: "关注者"
mention: "メンション"
is-bot: "这个账户是Bot"
years-old: "{age}岁"
year: "年"
@@ -1186,6 +1233,7 @@ desktop/views/pages/user/user.timeline.vue:
default: "帖子"
with-replies: "帖子与回复"
with-media: "媒体"
my-posts: "私の投稿"
empty: "看起来这个用户还没有发布什么呢。"
desktop/views/widgets/messaging.vue:
title: "信息"
@@ -1408,7 +1456,6 @@ mobile/views/pages/settings.vue:
signout: "注销"
sound: "声音"
enable-sounds: "开启声音"
mark-as-read-all-unread-notes: "将所有帖子标记为已读"
password: "密码"
mobile/views/pages/user.vue:
follows-you: "关注您"
@@ -1418,7 +1465,6 @@ mobile/views/pages/user.vue:
overview: "概观"
timeline: "时间线"
media: "媒体"
is-suspended: "此账户已被冻结。"
mute: "静音"
unmute: "取消静音"
block: "屏蔽"
@@ -1472,6 +1518,7 @@ deck/deck.user-column.vue:
posts: "帖子"
following: "关注中"
followers: "关注者"
mention: "メンション"
images: "图片"
activity: "活动"
timeline: "时间线"
+24 -24
View File
@@ -1,8 +1,8 @@
{
"name": "misskey",
"author": "syuilo <i@syuilo.com>",
"version": "10.62.2",
"clientVersion": "2.0.12609",
"version": "10.70.0",
"clientVersion": "2.0.13176",
"codename": "nighthike",
"main": "./built/index.js",
"private": true,
@@ -21,9 +21,9 @@
},
"dependencies": {
"@fortawesome/fontawesome-svg-core": "1.2.8",
"@fortawesome/free-brands-svg-icons": "5.5.0",
"@fortawesome/free-brands-svg-icons": "5.6.0",
"@fortawesome/free-regular-svg-icons": "5.5.0",
"@fortawesome/free-solid-svg-icons": "5.5.0",
"@fortawesome/free-solid-svg-icons": "5.6.3",
"@fortawesome/vue-fontawesome": "0.1.2",
"@koa/cors": "2.2.2",
"@prezzemolo/rap": "0.1.2",
@@ -35,9 +35,8 @@
"@types/deep-equal": "1.0.1",
"@types/double-ended-queue": "2.1.0",
"@types/elasticsearch": "5.0.29",
"@types/file-type": "5.2.2",
"@types/file-type": "10.6.0",
"@types/gulp": "3.8.36",
"@types/gulp-htmlmin": "1.3.32",
"@types/gulp-mocha": "0.0.32",
"@types/gulp-rename": "0.0.33",
"@types/gulp-replace": "0.0.31",
@@ -45,7 +44,7 @@
"@types/gulp-util": "3.0.34",
"@types/is-root": "1.0.0",
"@types/is-url": "1.2.28",
"@types/js-yaml": "3.11.2",
"@types/js-yaml": "3.11.4",
"@types/katex": "0.5.0",
"@types/koa": "2.0.47",
"@types/koa-bodyparser": "5.0.2",
@@ -83,12 +82,12 @@
"@types/tinycolor2": "1.4.1",
"@types/tmp": "0.0.33",
"@types/uuid": "3.4.4",
"@types/webpack": "4.4.20",
"@types/webpack": "4.4.21",
"@types/webpack-stream": "3.2.10",
"@types/websocket": "0.0.40",
"@types/ws": "6.0.1",
"animejs": "2.2.0",
"apexcharts": "2.2.4",
"apexcharts": "2.4.2",
"autobind-decorator": "2.4.0",
"autosize": "4.0.2",
"autwh": "0.1.0",
@@ -115,32 +114,31 @@
"eslint": "5.8.0",
"eslint-plugin-vue": "4.7.1",
"eventemitter3": "3.1.0",
"feed": "2.0.2",
"file-loader": "2.0.0",
"file-type": "10.6.0",
"fuckadblock": "3.2.1",
"gulp": "3.9.1",
"gulp-cssnano": "2.1.3",
"gulp-htmlmin": "5.0.1",
"gulp-imagemin": "4.1.0",
"gulp-mocha": "6.0.0",
"gulp-pug": "4.0.1",
"gulp-rename": "1.4.0",
"gulp-replace": "1.0.0",
"gulp-sourcemaps": "2.6.4",
"gulp-stylus": "2.7.0",
"gulp-tslint": "8.1.3",
"gulp-typescript": "4.0.2",
"gulp-typescript": "5.0.0",
"gulp-uglify": "3.0.1",
"gulp-util": "3.0.8",
"gulp-yaml": "2.0.2",
"hard-source-webpack-plugin": "0.12.0",
"hard-source-webpack-plugin": "0.13.1",
"html-minifier": "3.5.21",
"http-signature": "1.2.0",
"insert-text-at-cursor": "0.1.1",
"is-root": "2.0.0",
"is-url": "1.2.4",
"js-yaml": "3.12.0",
"jsdom": "13.0.0",
"jsdom": "13.1.0",
"json5": "2.1.0",
"json5-loader": "1.0.1",
"katex": "0.10.0",
@@ -158,15 +156,15 @@
"koa-views": "6.1.4",
"langmap": "0.0.16",
"loader-utils": "1.1.0",
"minio": "7.0.1",
"minio": "7.0.2",
"mkdirp": "0.5.1",
"mocha": "5.2.0",
"moji": "0.5.1",
"moment": "2.22.2",
"mongodb": "3.1.9",
"mongodb": "3.1.10",
"monk": "6.0.6",
"ms": "2.1.1",
"nan": "2.11.1",
"nan": "2.12.1",
"nested-property": "0.0.7",
"nodemailer": "4.7.0",
"nprogress": "0.2.0",
@@ -195,7 +193,7 @@
"rndstr": "1.0.0",
"s-age": "1.1.2",
"seedrandom": "2.4.4",
"sharp": "0.21.0",
"sharp": "0.21.1",
"showdown": "1.9.0",
"showdown-highlightjs-extension": "0.1.2",
"speakeasy": "2.0.0",
@@ -204,7 +202,7 @@
"stylus": "0.54.5",
"stylus-loader": "3.0.2",
"summaly": "2.2.0",
"systeminformation": "3.51.3",
"systeminformation": "3.52.2",
"syuilo-password-strength": "0.0.1",
"terser-webpack-plugin": "1.1.0",
"textarea-caret": "3.1.0",
@@ -212,8 +210,9 @@
"tmp": "0.0.33",
"ts-loader": "5.3.1",
"ts-node": "7.0.1",
"tslint": "5.10.0",
"typescript": "3.1.6",
"tslint": "5.12.0",
"tslint-sonarts": "1.8.0",
"typescript": "3.2.2",
"typescript-eslint-parser": "21.0.2",
"uglify-es": "3.3.9",
"url-loader": "1.1.2",
@@ -222,14 +221,15 @@
"vue": "2.5.17",
"vue-color": "2.7.0",
"vue-content-loading": "1.5.3",
"vue-cropperjs": "2.2.2",
"vue-cropperjs": "3.0.0",
"vue-i18n": "8.3.2",
"vue-js-modal": "1.3.27",
"vue-js-modal": "1.3.28",
"vue-loader": "15.4.2",
"vue-marquee-text-component": "1.1.0",
"vue-router": "3.0.2",
"vue-sequential-entrance": "1.1.3",
"vue-style-loader": "4.1.2",
"vue-svg-inline-loader": "1.2.4",
"vue-svg-inline-loader": "1.2.7",
"vue-template-compiler": "2.5.17",
"vuedraggable": "2.17.0",
"vuewordcloud": "18.7.11",
+6 -7
View File
@@ -64,9 +64,8 @@ export default abstract class Chart<T> {
const keys = {
span: -1,
date: -1
};
if (grouped)
keys.group = -1;
} as { [key: string]: 1 | -1; };
if (grouped) keys.group = -1;
this.collection.createIndex(keys, { unique: true });
}
@@ -75,14 +74,14 @@ export default abstract class Chart<T> {
const query: Obj = {};
const dive = (x: Obj, path: string) => {
Object.entries(x).forEach(([k, v]) => {
for (const [k, v] of Object.entries(x)) {
const p = path ? `${path}.${k}` : k;
if (typeof v === 'number') {
query[p] = v;
} else {
dive(v, p);
}
});
}
};
dive(x, path);
@@ -335,14 +334,14 @@ export default abstract class Chart<T> {
* にする
*/
const dive = (x: Obj, path?: string) => {
Object.entries(x).forEach(([k, v]) => {
for (const [k, v] of Object.entries(x)) {
const p = path ? `${path}.${k}` : k;
if (typeof v == 'object') {
dive(v, p);
} else {
nestedProperty.set(res, p, chart.map(s => nestedProperty.get(s, p)));
}
});
}
};
dive(chart[0]);
+2
View File
@@ -9,6 +9,7 @@ import './style.styl';
import init from '../init';
import Index from './views/index.vue';
import NotFound from '../common/views/pages/not-found.vue';
init(launch => {
document.title = 'Admin';
@@ -19,6 +20,7 @@ init(launch => {
base: '/admin/',
routes: [
{ path: '/', component: Index },
{ path: '*', component: NotFound }
]
});
+4 -2
View File
@@ -56,7 +56,9 @@ export default Vue.extend({
},
onLogs(logs) {
logs.reverse().forEach(log => this.onLog(log));
for (const log of logs.reverse()) {
this.onLog(log)
}
}
}
});
@@ -67,7 +69,7 @@ export default Vue.extend({
display block
padding 12px 16px 16px 16px
height 250px
overflow hidden
overflow auto
box-shadow 0 2px 4px rgba(0, 0, 0, 0.1)
background var(--adminDashboardCardBg)
border-radius 8px
+3 -1
View File
@@ -132,7 +132,9 @@ export default Vue.extend({
},
onStatsLog(statsLog) {
statsLog.reverse().forEach(stats => this.onStats(stats));
for (const stats of statsLog.reverse()) {
this.onStats(stats);
}
}
}
});
+2 -2
View File
@@ -127,12 +127,12 @@ export default Vue.extend({
this.$root.api('instances', {
sort: '+notes'
}).then(instances => {
instances.forEach(i => {
for (const i of instances) {
i.bg = randomColor({
seed: i.host,
luminosity: 'dark'
});
});
}
this.instances = instances;
});
},
+188
View File
@@ -0,0 +1,188 @@
<template>
<div class="pwnqwyet">
<ui-card>
<div slot="title"><fa :icon="faCloud"/> {{ $t('@.drive') }}</div>
<section class="fit-top">
<ui-horizon-group inputs>
<ui-select v-model="sort">
<span slot="label">{{ $t('sort.title') }}</span>
<option value="-createdAt">{{ $t('sort.createdAtAsc') }}</option>
<option value="+createdAt">{{ $t('sort.createdAtDesc') }}</option>
<option value="-size">{{ $t('sort.sizeAsc') }}</option>
<option value="+size">{{ $t('sort.sizeDesc') }}</option>
</ui-select>
<ui-select v-model="origin">
<span slot="label">{{ $t('origin.title') }}</span>
<option value="combined">{{ $t('origin.combined') }}</option>
<option value="local">{{ $t('origin.local') }}</option>
<option value="remote">{{ $t('origin.remote') }}</option>
</ui-select>
</ui-horizon-group>
<sequential-entrance animation="entranceFromTop" delay="25">
<div class="kidvdlkg" v-for="file in files">
<div @click="file._open = !file._open">
<div>
<div class="thumbnail" :style="thumbnail(file)"></div>
</div>
<div>
<header>
<b>{{ file.name }}</b>
<span class="username">@{{ file.user | acct }}</span>
</header>
<div>
<div>
<span style="margin-right:16px;">{{ file.type }}</span>
<span>{{ file.datasize | bytes }}</span>
</div>
<div><mk-time :time="file.createdAt" mode="detail"/></div>
</div>
</div>
</div>
<div v-show="file._open">
<ui-horizon-group>
<ui-button @click="toggleSensitive(file)" v-if="file.isSensitive"><fa :icon="faEye"/> {{ $t('unmark-as-sensitive') }}</ui-button>
<ui-button @click="toggleSensitive(file)" v-else><fa :icon="faEyeSlash"/> {{ $t('mark-as-sensitive') }}</ui-button>
<ui-button @click="del(file)"><fa :icon="faTrashAlt"/> {{ $t('delete') }}</ui-button>
</ui-horizon-group>
</div>
</div>
</sequential-entrance>
<ui-button v-if="existMore" @click="fetch">{{ $t('@.load-more') }}</ui-button>
</section>
</ui-card>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import i18n from '../../i18n';
import { faCloud } from '@fortawesome/free-solid-svg-icons';
import { faTrashAlt, faEye, faEyeSlash } from '@fortawesome/free-regular-svg-icons';
export default Vue.extend({
i18n: i18n('admin/views/drive.vue'),
data() {
return {
sort: '+createdAt',
origin: 'combined',
limit: 10,
offset: 0,
files: [],
existMore: false,
faCloud, faTrashAlt, faEye, faEyeSlash
};
},
watch: {
sort() {
this.files = [];
this.offset = 0;
this.fetch();
},
origin() {
this.files = [];
this.offset = 0;
this.fetch();
}
},
mounted() {
this.fetch();
},
methods: {
fetch() {
this.$root.api('admin/drive/files', {
origin: this.origin,
sort: this.sort,
offset: this.offset,
limit: this.limit + 1
}).then(files => {
if (files.length == this.limit + 1) {
files.pop();
this.existMore = true;
} else {
this.existMore = false;
}
for (const x of files) {
x._open = false;
}
this.files = this.files.concat(files);
this.offset += this.limit;
});
},
thumbnail(file: any): any {
return {
'background-color': file.properties.avgColor && file.properties.avgColor.length == 3 ? `rgb(${file.properties.avgColor.join(',')})` : 'transparent',
'background-image': `url(${file.thumbnailUrl})`
};
},
async del(file: any) {
const process = async () => {
await this.$root.api('drive/files/delete', { fileId: file.id });
this.$root.dialog({
type: 'success',
text: this.$t('deleted')
});
};
await process().catch(e => {
this.$root.dialog({
type: 'error',
text: e.toString()
});
});
},
toggleSensitive(file: any) {
this.$root.api('drive/files/update', {
fileId: file.id,
isSensitive: !file.isSensitive
});
file.isSensitive = !file.isSensitive;
},
}
});
</script>
<style lang="stylus" scoped>
.pwnqwyet
@media (min-width 500px)
padding 16px
.kidvdlkg
padding 16px 0
border-top solid 1px var(--faceDivider)
> div:first-child
display flex
cursor pointer
> div:nth-child(1)
> .thumbnail
display block
width 64px
height 64px
background-size cover
background-position center center
> div:nth-child(2)
flex 1
padding-left 16px
@media (max-width 500px)
font-size 14px
> header
word-break break-word
> .username
margin-left 8px
opacity 0.7
</style>
+41 -18
View File
@@ -24,24 +24,28 @@
<ui-card>
<div slot="title"><fa :icon="faGrin"/> {{ $t('emojis.title') }}</div>
<section v-for="emoji in emojis">
<img :src="emoji.url" :alt="emoji.name" style="width: 64px;"/>
<ui-horizon-group inputs>
<ui-input v-model="emoji.name">
<span>{{ $t('add-emoji.name') }}</span>
<section v-for="emoji in emojis" class="oryfrbft">
<div>
<img :src="emoji.url" :alt="emoji.name" style="width: 64px;"/>
</div>
<div>
<ui-horizon-group>
<ui-input v-model="emoji.name">
<span>{{ $t('add-emoji.name') }}</span>
</ui-input>
<ui-input v-model="emoji.aliases">
<span>{{ $t('add-emoji.aliases') }}</span>
</ui-input>
</ui-horizon-group>
<ui-input v-model="emoji.url">
<i slot="icon"><fa icon="link"/></i>
<span>{{ $t('add-emoji.url') }}</span>
</ui-input>
<ui-input v-model="emoji.aliases">
<span>{{ $t('add-emoji.aliases') }}</span>
</ui-input>
</ui-horizon-group>
<ui-input v-model="emoji.url">
<i slot="icon"><fa icon="link"/></i>
<span>{{ $t('add-emoji.url') }}</span>
</ui-input>
<ui-horizon-group class="fit-bottom">
<ui-button @click="updateEmoji(emoji)"><fa :icon="['far', 'save']"/> {{ $t('emojis.update') }}</ui-button>
<ui-button @click="removeEmoji(emoji)"><fa :icon="['far', 'trash-alt']"/> {{ $t('emojis.remove') }}</ui-button>
</ui-horizon-group>
<ui-horizon-group class="fit-bottom">
<ui-button @click="updateEmoji(emoji)"><fa :icon="['far', 'save']"/> {{ $t('emojis.update') }}</ui-button>
<ui-button @click="removeEmoji(emoji)"><fa :icon="['far', 'trash-alt']"/> {{ $t('emojis.remove') }}</ui-button>
</ui-horizon-group>
</div>
</section>
</ui-card>
</div>
@@ -91,7 +95,9 @@ export default Vue.extend({
fetchEmojis() {
this.$root.api('admin/emoji/list').then(emojis => {
emojis.reverse();
emojis.forEach(e => e.aliases = (e.aliases || []).join(' '));
for (const e of emojis) {
e.aliases = (e.aliases || []).join(' ');
}
this.emojis = emojis;
});
},
@@ -148,4 +154,21 @@ export default Vue.extend({
@media (min-width 500px)
padding 16px
.oryfrbft
@media (min-width 500px)
display flex
> div:first-child
@media (max-width 500px)
padding-bottom 16px
> img
vertical-align bottom
> div:last-child
flex 1
@media (min-width 500px)
padding-left 16px
</style>
+5 -4
View File
@@ -22,12 +22,11 @@
<li @click="nav('instance')" :class="{ active: page == 'instance' }"><fa icon="cog" fixed-width/>{{ $t('instance') }}</li>
<li @click="nav('moderators')" :class="{ active: page == 'moderators' }"><fa :icon="faHeadset" fixed-width/>{{ $t('moderators') }}</li>
<li @click="nav('users')" :class="{ active: page == 'users' }"><fa icon="users" fixed-width/>{{ $t('users') }}</li>
<li @click="nav('drive')" :class="{ active: page == 'drive' }"><fa icon="cloud" fixed-width/>{{ $t('@.drive') }}</li>
<!-- <li @click="nav('federation')" :class="{ active: page == 'federation' }"><fa :icon="faShareAlt" fixed-width/>{{ $t('federation') }}</li> -->
<li @click="nav('emoji')" :class="{ active: page == 'emoji' }"><fa :icon="faGrin" fixed-width/>{{ $t('emoji') }}</li>
<li @click="nav('announcements')" :class="{ active: page == 'announcements' }"><fa icon="broadcast-tower" fixed-width/>{{ $t('announcements') }}</li>
<li @click="nav('hashtags')" :class="{ active: page == 'hashtags' }"><fa icon="hashtag" fixed-width/>{{ $t('hashtags') }}</li>
<!-- <li @click="nav('drive')" :class="{ active: page == 'drive' }"><fa icon="cloud" fixed-width/>{{ $t('@.drive') }}</li> -->
</ul>
<div class="back-to-misskey">
<a href="/"><fa :icon="faArrowLeft"/> {{ $t('back-to-misskey') }}</a>
@@ -45,7 +44,7 @@
<div v-if="page == 'emoji'"><x-emoji/></div>
<div v-if="page == 'announcements'"><x-announcements/></div>
<div v-if="page == 'hashtags'"><x-hashtags/></div>
<div v-if="page == 'drive'"></div>
<div v-if="page == 'drive'"><x-drive/></div>
<div v-if="page == 'update'"></div>
</div>
</main>
@@ -63,6 +62,7 @@ import XEmoji from "./emoji.vue";
import XAnnouncements from "./announcements.vue";
import XHashtags from "./hashtags.vue";
import XUsers from "./users.vue";
import XDrive from "./drive.vue";
import { faHeadset, faArrowLeft, faShareAlt } from '@fortawesome/free-solid-svg-icons';
import { faGrin } from '@fortawesome/free-regular-svg-icons';
@@ -79,7 +79,8 @@ export default Vue.extend({
XEmoji,
XAnnouncements,
XHashtags,
XUsers
XUsers,
XDrive,
},
provide: {
isMobile
+43 -11
View File
@@ -7,6 +7,7 @@
<ui-input v-model="name">{{ $t('instance-name') }}</ui-input>
<ui-textarea v-model="description">{{ $t('instance-description') }}</ui-textarea>
<ui-input v-model="bannerUrl"><i slot="icon"><fa icon="link"/></i>{{ $t('banner-url') }}</ui-input>
<ui-input v-model="errorImageUrl"><i slot="icon"><fa icon="link"/></i>{{ $t('error-image-url') }}</ui-input>
<ui-input v-model="languages"><i slot="icon"><fa icon="language"/></i>{{ $t('languages') }}<span slot="desc">{{ $t('languages-desc') }}</span></ui-input>
</section>
<section class="fit-bottom">
@@ -31,8 +32,10 @@
<header><fa :icon="faShieldAlt"/> {{ $t('recaptcha-config') }}</header>
<ui-switch v-model="enableRecaptcha">{{ $t('enable-recaptcha') }}</ui-switch>
<ui-info>{{ $t('recaptcha-info') }}</ui-info>
<ui-input v-model="recaptchaSiteKey" :disabled="!enableRecaptcha"><i slot="icon"><fa icon="key"/></i>{{ $t('recaptcha-site-key') }}</ui-input>
<ui-input v-model="recaptchaSecretKey" :disabled="!enableRecaptcha"><i slot="icon"><fa icon="key"/></i>{{ $t('recaptcha-secret-key') }}</ui-input>
<ui-horizon-group inputs>
<ui-input v-model="recaptchaSiteKey" :disabled="!enableRecaptcha"><i slot="icon"><fa icon="key"/></i>{{ $t('recaptcha-site-key') }}</ui-input>
<ui-input v-model="recaptchaSecretKey" :disabled="!enableRecaptcha"><i slot="icon"><fa icon="key"/></i>{{ $t('recaptcha-secret-key') }}</ui-input>
</ui-horizon-group>
</section>
<section>
<header><fa :icon="faGhost"/> {{ $t('proxy-account-config') }}</header>
@@ -54,6 +57,15 @@
</ui-horizon-group>
<ui-switch v-model="smtpSecure" :disabled="!enableEmail">{{ $t('smtp-secure') }}<span slot="desc">{{ $t('smtp-secure-info') }}</span></ui-switch>
</section>
<section>
<header><fa :icon="faBolt"/> {{ $t('serviceworker-config') }}</header>
<ui-switch v-model="enableServiceWorker">{{ $t('enable-serviceworker') }}<span slot="desc">{{ $t('serviceworker-info') }}</span></ui-switch>
<ui-info>{{ $t('vapid-info') }}<br><code>npm i web-push -g<br>web-push generate-vapid-keys</code></ui-info>
<ui-horizon-group inputs class="fit-bottom">
<ui-input v-model="swPublicKey" :disabled="!enableServiceWorker"><i slot="icon"><fa icon="key"/></i>{{ $t('vapid-publickey') }}</ui-input>
<ui-input v-model="swPrivateKey" :disabled="!enableServiceWorker"><i slot="icon"><fa icon="key"/></i>{{ $t('vapid-privatekey') }}</ui-input>
</ui-horizon-group>
</section>
<section>
<header>summaly Proxy</header>
<ui-input v-model="summalyProxy">URL</ui-input>
@@ -81,9 +93,11 @@
<div slot="title"><fa :icon="['fab', 'twitter']"/> {{ $t('twitter-integration-config') }}</div>
<section>
<ui-switch v-model="enableTwitterIntegration">{{ $t('enable-twitter-integration') }}</ui-switch>
<ui-horizon-group>
<ui-input v-model="twitterConsumerKey" :disabled="!enableTwitterIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('twitter-integration-consumer-key') }}</ui-input>
<ui-input v-model="twitterConsumerSecret" :disabled="!enableTwitterIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('twitter-integration-consumer-secret') }}</ui-input>
</ui-horizon-group>
<ui-info>{{ $t('twitter-integration-info', { url: `${url}/api/tw/cb` }) }}</ui-info>
<ui-input v-model="twitterConsumerKey" :disabled="!enableTwitterIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('twitter-integration-consumer-key') }}</ui-input>
<ui-input v-model="twitterConsumerSecret" :disabled="!enableTwitterIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('twitter-integration-consumer-secret') }}</ui-input>
<ui-button @click="updateMeta">{{ $t('save') }}</ui-button>
</section>
</ui-card>
@@ -92,9 +106,11 @@
<div slot="title"><fa :icon="['fab', 'github']"/> {{ $t('github-integration-config') }}</div>
<section>
<ui-switch v-model="enableGithubIntegration">{{ $t('enable-github-integration') }}</ui-switch>
<ui-horizon-group>
<ui-input v-model="githubClientId" :disabled="!enableGithubIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('github-integration-client-id') }}</ui-input>
<ui-input v-model="githubClientSecret" :disabled="!enableGithubIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('github-integration-client-secret') }}</ui-input>
</ui-horizon-group>
<ui-info>{{ $t('github-integration-info', { url: `${url}/api/gh/cb` }) }}</ui-info>
<ui-input v-model="githubClientId" :disabled="!enableGithubIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('github-integration-client-id') }}</ui-input>
<ui-input v-model="githubClientSecret" :disabled="!enableGithubIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('github-integration-client-secret') }}</ui-input>
<ui-button @click="updateMeta">{{ $t('save') }}</ui-button>
</section>
</ui-card>
@@ -103,9 +119,11 @@
<div slot="title"><fa :icon="['fab', 'discord']"/> {{ $t('discord-integration-config') }}</div>
<section>
<ui-switch v-model="enableDiscordIntegration">{{ $t('enable-discord-integration') }}</ui-switch>
<ui-horizon-group>
<ui-input v-model="discordClientId" :disabled="!enableDiscordIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('discord-integration-client-id') }}</ui-input>
<ui-input v-model="discordClientSecret" :disabled="!enableDiscordIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('discord-integration-client-secret') }}</ui-input>
</ui-horizon-group>
<ui-info>{{ $t('discord-integration-info', { url: `${url}/api/dc/cb` }) }}</ui-info>
<ui-input v-model="discordClientId" :disabled="!enableDiscordIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('discord-integration-client-id') }}</ui-input>
<ui-input v-model="discordClientSecret" :disabled="!enableDiscordIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('discord-integration-client-secret') }}</ui-input>
<ui-button @click="updateMeta">{{ $t('save') }}</ui-button>
</section>
</ui-card>
@@ -117,7 +135,7 @@ import Vue from 'vue';
import i18n from '../../i18n';
import { url, host } from '../../config';
import { toUnicode } from 'punycode';
import { faHeadset, faShieldAlt, faGhost, faUserPlus } from '@fortawesome/free-solid-svg-icons';
import { faHeadset, faShieldAlt, faGhost, faUserPlus, faBolt } from '@fortawesome/free-solid-svg-icons';
import { faEnvelope as farEnvelope } from '@fortawesome/free-regular-svg-icons';
export default Vue.extend({
@@ -132,6 +150,7 @@ export default Vue.extend({
disableRegistration: false,
disableLocalTimeline: false,
bannerUrl: null,
errorImageUrl: null,
name: null,
description: null,
languages: null,
@@ -164,7 +183,10 @@ export default Vue.extend({
smtpPort: null,
smtpUser: null,
smtpPass: null,
faHeadset, faShieldAlt, faGhost, faUserPlus, farEnvelope
enableServiceWorker: false,
swPublicKey: null,
swPrivateKey: null,
faHeadset, faShieldAlt, faGhost, faUserPlus, farEnvelope, faBolt
};
},
@@ -172,7 +194,10 @@ export default Vue.extend({
this.$root.getMeta().then(meta => {
this.maintainerName = meta.maintainer.name;
this.maintainerEmail = meta.maintainer.email;
this.disableRegistration = meta.disableRegistration;
this.disableLocalTimeline = meta.disableLocalTimeline;
this.bannerUrl = meta.bannerUrl;
this.errorImageUrl = meta.errorImageUrl;
this.name = meta.name;
this.description = meta.description;
this.languages = meta.langs.join(' ');
@@ -204,6 +229,9 @@ export default Vue.extend({
this.smtpPort = meta.smtpPort;
this.smtpUser = meta.smtpUser;
this.smtpPass = meta.smtpPass;
this.enableServiceWorker = meta.enableServiceWorker;
this.swPublicKey = meta.swPublickey;
this.swPrivateKey = meta.swPrivateKey;
});
},
@@ -226,6 +254,7 @@ export default Vue.extend({
disableRegistration: this.disableRegistration,
disableLocalTimeline: this.disableLocalTimeline,
bannerUrl: this.bannerUrl,
errorImageUrl: this.errorImageUrl,
name: this.name,
description: this.description,
langs: this.languages.split(' '),
@@ -256,7 +285,10 @@ export default Vue.extend({
smtpHost: this.smtpHost,
smtpPort: parseInt(this.smtpPort, 10),
smtpUser: this.smtpUser,
smtpPass: this.smtpPass
smtpPass: this.smtpPass,
enableServiceWorker: this.enableServiceWorker,
swPublicKey: this.swPublicKey,
swPrivateKey: this.swPrivateKey
}).then(() => {
this.$root.dialog({
type: 'success',
+19 -14
View File
@@ -38,25 +38,27 @@
<option value="remote">{{ $t('users.origin.remote') }}</option>
</ui-select>
</ui-horizon-group>
<div class="kofvwchc" v-for="user in users">
<div>
<a :href="user | userPage(null, true)">
<mk-avatar class="avatar" :user="user" :disable-link="true"/>
</a>
</div>
<div>
<header>
<b><mk-user-name :user="user"/></b>
<span class="username">@{{ user | acct }}</span>
</header>
<sequential-entrance animation="entranceFromTop" delay="25">
<div class="kofvwchc" v-for="user in users">
<div>
<span>{{ $t('users.updatedAt') }}: <mk-time :time="user.updatedAt" mode="detail"/></span>
<a :href="user | userPage(null, true)">
<mk-avatar class="avatar" :user="user" :disable-link="true"/>
</a>
</div>
<div>
<span>{{ $t('users.createdAt') }}: <mk-time :time="user.createdAt" mode="detail"/></span>
<header>
<b><mk-user-name :user="user"/></b>
<span class="username">@{{ user | acct }}</span>
</header>
<div>
<span>{{ $t('users.updatedAt') }}: <mk-time :time="user.updatedAt" mode="detail"/></span>
</div>
<div>
<span>{{ $t('users.createdAt') }}: <mk-time :time="user.createdAt" mode="detail"/></span>
</div>
</div>
</div>
</div>
</sequential-entrance>
<ui-button v-if="existMore" @click="fetchUsers">{{ $t('@.load-more') }}</ui-button>
</section>
</ui-card>
@@ -274,6 +276,9 @@ export default Vue.extend({
flex 1
padding-left 16px
@media (max-width 500px)
font-size 14px
> header
> .username
margin-left 8px
+16
View File
@@ -10,3 +10,19 @@
opacity: 0;
transform: scaleY(0);
}
.entranceFromTop {
animation-duration: 0.5s;
animation-name: entranceFromTop;
}
@keyframes entranceFromTop {
from {
opacity: 0;
transform: translateY(-64px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
+2
View File
@@ -9,6 +9,7 @@ import './style.styl';
import init from '../init';
import Index from './views/index.vue';
import NotFound from '../common/views/pages/not-found.vue';
/**
* init
@@ -20,6 +21,7 @@ init(launch => {
base: '/auth/',
routes: [
{ path: '/:token', component: Index },
{ path: '*', component: NotFound }
]
});
+3 -3
View File
@@ -17,9 +17,9 @@
//#region Apply theme
const theme = localStorage.getItem('theme');
if (theme) {
Object.entries(JSON.parse(theme)).forEach(([k, v]) => {
for (const [k, v] of Object.entries(JSON.parse(theme))) {
document.documentElement.style.setProperty(`--${k}`, v.toString());
});
}
}
//#endregion
@@ -160,7 +160,7 @@
navigator.serviceWorker.controller.postMessage('clear');
navigator.serviceWorker.getRegistrations().then(registrations => {
registrations.forEach(registration => registration.unregister());
for (const registration of registrations) registration.unregister();
});
} catch (e) {
console.error(e);
+5 -6
View File
@@ -1,6 +1,6 @@
import Vue from 'vue';
export default function<T extends object>(data: {
export default function <T extends object>(data: {
name: string;
props?: () => T;
}) {
@@ -53,11 +53,10 @@ export default function<T extends object>(data: {
mergeProps() {
if (data.props) {
const defaultProps = data.props();
Object.keys(defaultProps).forEach(prop => {
if (!this.props.hasOwnProperty(prop)) {
Vue.set(this.props, prop, defaultProps[prop]);
}
});
for (const prop of Object.keys(defaultProps)) {
if (this.props.hasOwnProperty(prop)) continue;
Vue.set(this.props, prop, defaultProps[prop]);
}
}
},
+3 -3
View File
@@ -28,15 +28,15 @@ const getKeyMap = keymap => Object.entries(keymap).map(([patterns, callback]): a
shift: false
} as pattern;
part.trim().split('+').forEach(key => {
key = key.trim().toLowerCase();
const keys = part.trim().split('+').map(x => x.trim().toLowerCase());
for (const key of keys) {
switch (key) {
case 'ctrl': pattern.ctrl = true; break;
case 'alt': pattern.alt = true; break;
case 'shift': pattern.shift = true; break;
default: pattern.which = keyCode(key).map(k => k.toLowerCase());
}
});
}
return pattern;
});
@@ -14,9 +14,10 @@ export default async function($root: any, force = false, silent = false) {
navigator.serviceWorker.controller.postMessage('clear');
}
navigator.serviceWorker.getRegistrations().then(registrations => {
registrations.forEach(registration => registration.unregister());
});
const registrations = await navigator.serviceWorker.getRegistrations();
for (const registration of registrations) {
registration.unregister();
}
} catch (e) {
console.error(e);
}
@@ -22,7 +22,7 @@ export default function(type, data): Notification {
case 'unreadMessagingMessage':
return {
title: '%i18n:common.notification.message-from%'.split("{}")[0] + `${getUserName(data.user)}` + '%i18n:common.notification.message-from%'.split("{}")[1] ,
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
};
@@ -30,7 +30,7 @@ export default function(type, data): Notification {
case 'reversiInvited':
return {
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],
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: '%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
};
case 'reply':
return {
title: '%i18n:common.notification.reply-from%'.split("{}")[0] + `${getUserName(data.user)}` + '%i18n:common.notification.reply-from%'.split("{}")[1],
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: '%i18n:common.notification.quoted-by%'.split("{}")[0] + `${getUserName(data.user)}` + '%i18n:common.notification.quoted-by%'.split("{}")[1],
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
};
@@ -0,0 +1,25 @@
/**
* Format like the uptime command
*/
export default function(sec) {
if (!sec) return sec;
const day = Math.floor(sec / 86400);
const tod = sec % 86400;
// Days part in string: 2 days, 1 day, null
const d = day >= 2 ? `${day} days` : day >= 1 ? `${day} day` : null;
// Time part in string: 1 sec, 1 min, 1:01
const t
= tod < 60 ? `${Math.floor(tod)} sec`
: tod < 3600 ? `${Math.floor(tod / 60)} min`
: `${Math.floor(tod / 60 / 60)}:${Math.floor((tod / 60) % 60).toString().padStart(2, '0')}`;
let str = '';
if (d) str += `${d}, `;
str += t;
return str;
}
+2 -2
View File
@@ -3,8 +3,8 @@
export default (data: ArrayBuffer) => {
//const buf = new Buffer(data);
//const hash = crypto.createHash("md5");
//const hash = crypto.createHash('md5');
//hash.update(buf);
//return hash.digest("hex");
//return hash.digest('hex');
return '';
};
@@ -1,11 +0,0 @@
/**
* 中央値を求めます
* @param samples サンプル
*/
export default function(samples) {
if (!samples.length) return 0;
const numbers = samples.slice(0).sort((a, b) => a - b);
const middle = Math.floor(numbers.length / 2);
const isEven = numbers.length % 2 === 0;
return isEven ? (numbers[middle] + numbers[middle - 1]) / 2 : numbers[middle];
}
+14 -2
View File
@@ -65,6 +65,10 @@ export default (opts: Opts = {}) => ({
return this.isRenote ? this.note.renote : this.note;
},
isMyNote(): boolean {
return this.$store.getters.isSignedIn && (this.$store.state.i.id === this.appearNote.userId);
},
reactionsCount(): number {
return this.appearNote.reactionCounts
? sum(Object.values(this.appearNote.reactionCounts))
@@ -80,8 +84,8 @@ export default (opts: Opts = {}) => ({
const ast = parse(this.appearNote.text);
// TODO: 再帰的にURL要素がないか調べる
return unique(ast
.filter(t => ((t.name == 'url' || t.name == 'link') && t.props.url && !t.props.silent))
.map(t => t.props.url));
.filter(t => ((t.node.type == 'url' || t.node.type == 'link') && t.node.props.url && !t.node.props.silent))
.map(t => t.node.props.url));
} else {
return null;
}
@@ -138,6 +142,14 @@ export default (opts: Opts = {}) => ({
});
},
undoReact(note) {
const oldReaction = note.myReaction;
if (!oldReaction) return;
this.$root.api('notes/reactions/delete', {
noteId: note.id
});
},
favorite() {
this.$root.api('notes/favorites/create', {
noteId: this.appearNote.id
@@ -95,6 +95,7 @@ export default prop => ({
Vue.set(this.$_ns_target.reactionCounts, reaction, 0);
}
// Increment the count
this.$_ns_target.reactionCounts[reaction]++;
if (body.userId == this.$store.state.i.id) {
@@ -103,6 +104,26 @@ export default prop => ({
break;
}
case 'unreacted': {
const reaction = body.reaction;
if (this.$_ns_target.reactionCounts == null) {
return;
}
if (this.$_ns_target.reactionCounts[reaction] == null) {
return;
}
// Decrement the count
if (this.$_ns_target.reactionCounts[reaction] > 0) this.$_ns_target.reactionCounts[reaction]--;
if (body.userId == this.$store.state.i.id) {
Vue.set(this.$_ns_target, 'myReaction', null);
}
break;
}
case 'pollVoted': {
if (body.userId == this.$store.state.i.id) return;
const choice = body.choice;
@@ -2,27 +2,17 @@ export default function(me, settings, note) {
const isMyNote = note.userId == me.id;
const isPureRenote = note.renoteId != null && note.text == null && note.fileIds.length == 0 && note.poll == null;
if (settings.showMyRenotes === false) {
if (isMyNote && isPureRenote) {
return true;
}
}
const includesMutedWords = (text: string) =>
text
? settings.mutedWords.some(q => q.length > 0 && !q.some(word => !text.includes(word)))
: false;
if (settings.showRenotedMyNotes === false) {
if (isPureRenote && (note.renote.userId == me.id)) {
return true;
}
}
if (settings.showLocalRenotes === false) {
if (isPureRenote && (note.renote.user.host == null)) {
return true;
}
}
if (!isMyNote && note.text && settings.mutedWords.some(q => q.length > 0 && !q.some(word => !note.text.includes(word)))) {
return true;
}
return false;
return (
(!isMyNote && note.reply && includesMutedWords(note.reply.text)) ||
(!isMyNote && note.renote && includesMutedWords(note.renote.text)) ||
(settings.showMyRenotes === false && isMyNote && isPureRenote) ||
(settings.showRenotedMyNotes === false && isPureRenote && note.renote.userId == me.id) ||
(settings.showLocalRenotes === false && isPureRenote && note.renote.user.host == null) ||
(!isMyNote && includesMutedWords(note.text))
);
}
+2 -2
View File
@@ -111,9 +111,9 @@ export default class Stream extends EventEmitter {
connections = [this.nonSharedConnections.find(c => c.id === id)];
}
connections.filter(c => c != null).forEach(c => {
for (const c of connections.filter(c => c != null)) {
c.emit(body.type, body.body);
});
}
} else {
this.emit(type, body);
}
@@ -32,7 +32,7 @@
<script lang="ts">
import Vue from 'vue';
import { themeColor } from '../../../config';
import * as tinycolor from 'tinycolor2';
export default Vue.extend({
props: {
@@ -75,7 +75,7 @@ export default Vue.extend({
return this.dark ? '#fff' : '#777';
},
hHandColor(): string {
return themeColor;
return tinycolor(getComputedStyle(document.documentElement).getPropertyValue('--primary')).toHexString();
},
ms(): number {
@@ -57,18 +57,18 @@ const emjdb: EmojiDef[] = lib.map((x: any) => ({
url: `https://twemoji.maxcdn.com/2/svg/${char2file(x[1].char)}.svg`
}));
lib.forEach((x: any) => {
for (const x of lib as any) {
if (x[1].keywords) {
x[1].keywords.forEach(k => {
for (const k of x[1].keywords) {
emjdb.push({
emoji: x[1].char,
name: k,
aliasOf: x[0],
url: `https://twemoji.maxcdn.com/2/svg/${char2file(x[1].char)}.svg`
});
});
}
}
});
}
emjdb.sort((a, b) => a.name.length - b.name.length);
@@ -120,7 +120,7 @@ export default Vue.extend({
const customEmojis = (this.$root.getMetaSync() || { emojis: [] }).emojis || [];
const emojiDefinitions: EmojiDef[] = [];
customEmojis.forEach(x => {
for (const x of customEmojis) {
emojiDefinitions.push({
name: x.name,
emoji: `:${x.name}:`,
@@ -129,7 +129,7 @@ export default Vue.extend({
});
if (x.aliases) {
x.aliases.forEach(alias => {
for (const alias of x.aliases) {
emojiDefinitions.push({
name: alias,
aliasOf: x.name,
@@ -137,9 +137,9 @@ export default Vue.extend({
url: x.url,
isCustomEmoji: true
});
});
}
}
});
}
emojiDefinitions.sort((a, b) => a.name.length - b.name.length);
@@ -148,9 +148,9 @@ export default Vue.extend({
this.textarea.addEventListener('keydown', this.onKeydown);
Array.from(document.querySelectorAll('body *')).forEach(el => {
for (const el of Array.from(document.querySelectorAll('body *'))) {
el.addEventListener('mousedown', this.onMousedown);
});
}
this.$nextTick(() => {
this.exec();
@@ -166,18 +166,18 @@ export default Vue.extend({
beforeDestroy() {
this.textarea.removeEventListener('keydown', this.onKeydown);
Array.from(document.querySelectorAll('body *')).forEach(el => {
for (const el of Array.from(document.querySelectorAll('body *'))) {
el.removeEventListener('mousedown', this.onMousedown);
});
}
},
methods: {
exec() {
this.select = -1;
if (this.$refs.suggests) {
Array.from(this.items).forEach(el => {
for (const el of Array.from(this.items)) {
el.removeAttribute('data-selected');
});
}
}
if (this.type == 'user') {
@@ -316,9 +316,9 @@ export default Vue.extend({
},
applySelect() {
Array.from(this.items).forEach(el => {
for (const el of Array.from(this.items)) {
el.removeAttribute('data-selected');
});
}
this.items[this.select].setAttribute('data-selected', 'true');
(this.items[this.select] as any).focus();
@@ -1,11 +1,7 @@
<template>
<button class="nrvgflfuaxwgkxoynpnumyookecqrrvh" @click="toggle">
<b>{{ value ? this.$t('hide') : this.$t('show') }}</b>
<span v-if="!value">
<span v-if="note.text">{{ this.$t('chars', { count: length(note.text) }) | number }}</span>
<span v-if="note.text && note.files && note.files.length > 0"> / </span>
<span v-if="note.files && note.files.length > 0">{{ this.$t('files', { count: note.files.length }) }}</span>
</span>
<span v-if="!value">{{ this.label }}</span>
</button>
</template>
@@ -13,6 +9,7 @@
import Vue from 'vue';
import i18n from '../../../i18n';
import { length } from 'stringz';
import { concat } from '../../../../../prelude/array';
export default Vue.extend({
i18n: i18n('common/views/components/cw-button.vue'),
@@ -28,6 +25,16 @@ export default Vue.extend({
}
},
computed: {
label(): string {
return concat([
this.note.text ? [this.$t('chars', { count: length(this.note.text) })] : [],
this.note.files && this.note.files.length !== 0 ? [this.$t('files', { count: this.note.files.length }) ] : [],
this.note.poll != null ? [this.$t('poll')] : []
] as string[][]).join(' / ');
}
},
methods: {
length,
@@ -114,11 +114,11 @@ export default Vue.extend({
},
onScroll(e) {
const section = this.categories.forEach(x => {
for (const x of this.categories) {
const top = e.target.scrollTop;
const el = this.$refs[x.ref][0];
x.isActive = el.offsetTop <= top && el.offsetTop + el.offsetHeight > top;
});
}
},
chosen(emoji) {
@@ -48,7 +48,7 @@ export default Vue.extend({
iconAndText(): any[] {
return (
(this.hasPendingFollowRequestFromYou && this.user.isLocked) ? ['hourglass-half', this.$t('request-pending')] :
(this.hasPendingFollowRequestFromYou && !this.user.isLocked) ? ['hourglass-start', this.$t('follow-processing')] :
(this.hasPendingFollowRequestFromYou && !this.user.isLocked) ? ['spinner', this.$t('follow-processing')] :
(this.isFollowing) ? ['minus', this.$t('following')] :
(!this.isFollowing && this.user.isLocked) ? ['plus', this.$t('follow-request')] :
(!this.isFollowing && !this.user.isLocked) ? ['plus', this.$t('follow')] :
@@ -15,7 +15,9 @@ export default Vue.extend({
},
computed: {
compiledFormula(): any {
return katex.renderToString(this.formula);
return katex.renderToString(this.formula, {
throwOnError: false
} as any);
}
}
});
@@ -31,8 +31,8 @@
@click="set(i)"
:title="`${String.fromCharCode(65 + o.transformPosToXy(i)[0])}${o.transformPosToXy(i)[1] + 1}`">
<template v-if="!$store.state.settings.games.reversi.useWhiteBlackStones">
<img v-if="stone === true" :src="blackUser.avatarUrl" alt="black" :class="{ contrast: $store.state.settings.games.reversi.useContrastStones }">
<img v-if="stone === false" :src="whiteUser.avatarUrl" alt="white" :class="{ contrast: $store.state.settings.games.reversi.useContrastStones }">
<img v-if="stone === true" :src="blackUser.avatarUrl" alt="black">
<img v-if="stone === false" :src="whiteUser.avatarUrl" alt="white">
</template>
<template v-if="$store.state.settings.games.reversi.useWhiteBlackStones">
<fa v-if="stone === true" :icon="fasCircle"/>
@@ -185,9 +185,9 @@ export default Vue.extend({
loopedBoard: this.game.settings.loopedBoard
});
this.game.logs.forEach(log => {
for (const log of this.game.logs) {
this.o.put(log.color, log.pos);
});
}
this.logs = this.game.logs;
this.logPos = this.logs.length;
@@ -287,9 +287,9 @@ export default Vue.extend({
loopedBoard: this.game.settings.loopedBoard
});
this.game.logs.forEach(log => {
for (const log of this.game.logs) {
this.o.put(log.color, log.pos, true);
});
}
this.logs = this.game.logs;
this.logPos = this.logs.length;
@@ -430,13 +430,6 @@ export default Vue.extend({
width 100%
height 100%
&.contrast
&[alt="black"]
filter brightness(.5)
&[alt="white"]
filter brightness(2)
> .graph
display grid
grid-template-columns repeat(61, 1fr)
@@ -60,7 +60,7 @@
<div>
<template v-for="item in form">
<ui-switch v-if="item.type == 'switch'" v-model="item.value" :key="item.id" :text="item.label" @change="onChangeForm(item)">{{ item.desc || '' }}</ui-switch>
<ui-switch v-if="item.type == 'switch'" v-model="item.value" :key="item.id" @change="onChangeForm(item)">{{ item.label || item.desc || '' }}</ui-switch>
<div class="card" v-if="item.type == 'radio'" :key="item.id">
<header>
@@ -1,22 +1,22 @@
<template>
<ui-card>
<ui-card v-if="enableTwitterIntegration || enableDiscordIntegration || enableGithubIntegration">
<div slot="title"><fa icon="share-alt"/> {{ $t('title') }}</div>
<section>
<section v-if="enableTwitterIntegration">
<header><fa :icon="['fab', 'twitter']"/> Twitter</header>
<p v-if="$store.state.i.twitter">{{ $t('connected-to') }}: <a :href="`https://twitter.com/${$store.state.i.twitter.screenName}`" target="_blank">@{{ $store.state.i.twitter.screenName }}</a></p>
<ui-button v-if="$store.state.i.twitter" @click="disconnectTwitter">{{ $t('disconnect') }}</ui-button>
<ui-button v-else @click="connectTwitter">{{ $t('connect') }}</ui-button>
</section>
<section>
<section v-if="enableDiscordIntegration">
<header><fa :icon="['fab', 'discord']"/> Discord</header>
<p v-if="$store.state.i.discord">{{ $t('connected-to') }}: <a :href="`https://discordapp.com/users/${$store.state.i.discord.id}`" target="_blank">@{{ $store.state.i.discord.username }}#{{ $store.state.i.discord.discriminator }}</a></p>
<ui-button v-if="$store.state.i.discord" @click="disconnectDiscord">{{ $t('disconnect') }}</ui-button>
<ui-button v-else @click="connectDiscord">{{ $t('connect') }}</ui-button>
</section>
<section>
<section v-if="enableGithubIntegration">
<header><fa :icon="['fab', 'github']"/> GitHub</header>
<p v-if="$store.state.i.github">{{ $t('connected-to') }}: <a :href="`https://github.com/${$store.state.i.github.login}`" target="_blank">@{{ $store.state.i.github.login }}</a></p>
<ui-button v-if="$store.state.i.github" @click="disconnectGithub">{{ $t('disconnect') }}</ui-button>
@@ -39,14 +39,32 @@ export default Vue.extend({
twitterForm: null,
discordForm: null,
githubForm: null,
enableTwitterIntegration: false,
enableDiscordIntegration: false,
enableGithubIntegration: false,
};
},
created() {
this.$root.getMeta().then(meta => {
this.enableTwitterIntegration = meta.enableTwitterIntegration;
this.enableDiscordIntegration = meta.enableDiscordIntegration;
this.enableGithubIntegration = meta.enableGithubIntegration;
});
},
mounted() {
document.cookie = `i=${this.$store.state.i.token}`;
this.$watch('$store.state.i', () => {
if (this.$store.state.i.twitter) {
if (this.twitterForm) this.twitterForm.close();
}
if (this.$store.state.i.discord) {
if (this.discordForm) this.discordForm.close();
}
if (this.$store.state.i.github) {
if (this.githubForm) this.githubForm.close();
}
}, {
deep: true
});
@@ -0,0 +1,70 @@
<template>
<router-link class="ldlomzub" :to="`/${ canonical }`" v-user-preview="canonical">
<span class="me" v-if="isMe">{{ $t('@.you') }}</span>
<span class="main">
<span class="username">@{{ username }}</span>
<span class="host" :class="{ fade: $store.state.settings.contrastedAcct }" v-if="(host != localHost) || $store.state.settings.showFullAcct">@{{ toUnicode(host) }}</span>
</span>
</router-link>
</template>
<script lang="ts">
import Vue from 'vue';
import i18n from '../../../i18n';
import { toUnicode } from 'punycode';
import { host as localHost } from '../../../config';
export default Vue.extend({
i18n: i18n(),
props: {
username: {
type: String,
required: true
},
host: {
type: String,
required: true
}
},
data() {
return {
localHost
};
},
computed: {
canonical(): string {
return `@${this.username}@${toUnicode(this.host)}`;
},
isMe(): boolean {
return this.$store.getters.isSignedIn && this.canonical.toLowerCase() === `@${this.$store.state.i.username}@${toUnicode(localHost)}`.toLowerCase();
}
},
methods: {
toUnicode
}
});
</script>
<style lang="stylus" scoped>
.ldlomzub
color var(--mfmMention)
> .me
pointer-events none
user-select none
padding 0 4px
background var(--primary)
border solid 1px var(--primary)
border-radius 4px 0 0 4px
color var(--primaryForeground)
& + .main
padding 0 4px
border solid 1px var(--primary)
border-radius 0 4px 4px 0
> .main
> .host.fade
opacity 0.5
</style>
@@ -1,5 +1,5 @@
<template>
<div class="onchrpzrvnoruiaenfcqvccjfuupzzwv" :class="{ big: $root.isMobile }">
<div class="onchrpzrvnoruiaenfcqvccjfuupzzwv" :class="{ isMobile: $root.isMobile }">
<div class="backdrop" ref="backdrop" @click="close"></div>
<div class="popover" :class="{ hukidasi }" ref="popover">
<template v-for="item, i in items">
@@ -125,8 +125,10 @@ export default Vue.extend({
position initial
&.big
&.isMobile
> .popover
border none
> button
font-size 15px
@@ -9,7 +9,7 @@
@keypress="onKeypress"
@paste="onPaste"
:placeholder="$t('input-message-here')"
v-autocomplete="'text'"
v-autocomplete="{ model: 'text' }"
></textarea>
<div class="file" @click="file = null" v-if="file">{{ file.name }}</div>
<mk-uploader ref="uploader" @uploaded="onUploaded"/>
@@ -85,7 +85,7 @@ export default Vue.extend({
}
} else {
if (items[0].kind == 'file') {
alert('%i18n:only-one-file-attached%');
alert(this.$t('only-one-file-attached'));
}
}
},
@@ -107,7 +107,7 @@ export default Vue.extend({
return;
} else if (e.dataTransfer.files.length > 1) {
e.preventDefault();
alert('%i18n:only-one-file-attached%');
alert(this.$t('only-one-file-attached'));
return;
}
@@ -3,9 +3,9 @@
<mk-avatar class="avatar" :user="message.user" target="_blank"/>
<div class="content">
<div class="balloon" :data-no-text="message.text == null">
<!-- <button class="delete-button" v-if="isMe" :title="$t('@.delete')">
<img src="/assets/desktop/messaging/delete.png" alt="Delete"/>
</button> -->
<button class="delete-button" v-if="isMe" :title="$t('@.delete')" @click="del">
<img src="/assets/desktop/remove.png" alt="Delete"/>
</button>
<div class="content" v-if="!message.isDeleted">
<misskey-flavored-markdown class="text" v-if="message.text" ref="text" :text="message.text" :i="$store.state.i"/>
<div class="file" v-if="message.file">
@@ -16,7 +16,7 @@
</a>
</div>
</div>
<div class="content" v-if="message.isDeleted">
<div class="content" v-else>
<p class="is-deleted">{{ $t('deleted') }}</p>
</div>
</div>
@@ -52,12 +52,19 @@ export default Vue.extend({
if (this.message.text) {
const ast = parse(this.message.text);
return unique(ast
.filter(t => ((t.name == 'url' || t.name == 'link') && t.props.url && !t.silent))
.map(t => t.props.url));
.filter(t => ((t.node.type == 'url' || t.node.type == 'link') && t.node.props.url && !t.node.props.silent))
.map(t => t.node.props.url));
} else {
return null;
}
}
},
methods: {
del() {
this.$root.api('messaging/messages/delete', {
messageId: this.message.id
});
}
}
});
</script>
@@ -79,6 +79,7 @@ export default Vue.extend({
this.connection.on('message', this.onMessage);
this.connection.on('read', this.onRead);
this.connection.on('deleted', this.onDeleted);
if (this.isNaked) {
window.addEventListener('scroll', this.onScroll, { passive: true });
@@ -196,12 +197,19 @@ export default Vue.extend({
onRead(ids) {
if (!Array.isArray(ids)) ids = [ids];
ids.forEach(id => {
for (const id of ids) {
if (this.messages.some(x => x.id == id)) {
const exist = this.messages.map(x => x.id).indexOf(id);
this.messages[exist].isRead = true;
}
});
}
},
onDeleted(id) {
const msg = this.messages.find(m => m.id === id);
if (msg) {
this.messages = this.messages.filter(m => m.id !== msg.id);
}
},
isBottom() {
@@ -248,13 +256,13 @@ export default Vue.extend({
onVisibilitychange() {
if (document.hidden) return;
this.messages.forEach(message => {
for (const message of this.messages) {
if (message.userId !== this.$store.state.i.id && !message.isRead) {
this.connection.send('read', {
id: message.id
});
}
});
}
}
}
});
@@ -103,10 +103,10 @@ export default Vue.extend({
this.messages.unshift(message);
},
onRead(ids) {
ids.forEach(id => {
for (const id of ids) {
const found = this.messages.find(m => m.id == id);
if (found) found.isRead = true;
});
}
},
search() {
if (this.q == '') {
+31 -49
View File
@@ -1,23 +1,19 @@
import Vue, { VNode } from 'vue';
import { length } from 'stringz';
import { Node } from '../../../../../mfm/parser';
import { MfmForest } from '../../../../../mfm/parser';
import parse from '../../../../../mfm/parse';
import MkUrl from './url.vue';
import MkMention from './mention.vue';
import { concat, sum } from '../../../../../prelude/array';
import MkFormula from './formula.vue';
import MkGoogle from './google.vue';
import { toUnicode } from 'punycode';
import syntaxHighlight from '../../../../../mfm/syntax-highlight';
import { host } from '../../../config';
import { preorderF, countNodesF } from '../../../../../prelude/tree';
function getTextCount(tokens: Node[]): number {
const rootCount = sum(tokens.filter(x => x.name === 'text').map(x => length(x.props.text)));
const childrenCount = sum(tokens.filter(x => x.children).map(x => getTextCount(x.children)));
return rootCount + childrenCount;
}
function getChildrenCount(tokens: Node[]): number {
const countTree = tokens.filter(x => x.children).map(x => getChildrenCount(x.children));
return countTree.length + sum(countTree);
function sumTextsLength(ts: MfmForest): number {
const textNodes = preorderF(ts).filter(n => n.type === 'text');
return sum(textNodes.map(x => length(x.props.text)));
}
export default Vue.component('misskey-flavored-markdown', {
@@ -26,10 +22,6 @@ export default Vue.component('misskey-flavored-markdown', {
type: String,
required: true
},
ast: {
type: [],
required: false
},
shouldBreak: {
type: Boolean,
default: true
@@ -54,17 +46,15 @@ export default Vue.component('misskey-flavored-markdown', {
render(createElement) {
if (this.text == null || this.text == '') return;
const ast = this.ast == null ?
parse(this.text, this.plainText) : // Parse text to ast
this.ast as Node[];
const ast = parse(this.text, this.plainText);
let bigCount = 0;
let motionCount = 0;
const genEl = (ast: Node[]) => concat(ast.map((token): VNode[] => {
switch (token.name) {
const genEl = (ast: MfmForest) => concat(ast.map((token): VNode[] => {
switch (token.node.type) {
case 'text': {
const text = token.props.text.replace(/(\r\n|\n|\r)/g, '\n');
const text = token.node.props.text.replace(/(\r\n|\n|\r)/g, '\n');
if (this.shouldBreak) {
const x = text.split('\n')
@@ -94,7 +84,7 @@ export default Vue.component('misskey-flavored-markdown', {
case 'big': {
bigCount++;
const isLong = getTextCount(token.children) > 10 || getChildrenCount(token.children) > 5;
const isLong = sumTextsLength(token.children) > 10 || countNodesF(token.children) > 5;
const isMany = bigCount > 3;
return (createElement as any)('strong', {
attrs: {
@@ -121,7 +111,7 @@ export default Vue.component('misskey-flavored-markdown', {
case 'motion': {
motionCount++;
const isLong = getTextCount(token.children) > 10 || getChildrenCount(token.children) > 5;
const isLong = sumTextsLength(token.children) > 10 || countNodesF(token.children) > 5;
const isMany = motionCount > 3;
return (createElement as any)('span', {
attrs: {
@@ -138,7 +128,7 @@ export default Vue.component('misskey-flavored-markdown', {
return [createElement(MkUrl, {
key: Math.random(),
props: {
url: token.props.url,
url: token.node.props.url,
target: '_blank',
style: 'color:var(--mfmLink);'
}
@@ -149,40 +139,32 @@ export default Vue.component('misskey-flavored-markdown', {
return [createElement('a', {
attrs: {
class: 'link',
href: token.props.url,
href: token.node.props.url,
target: '_blank',
title: token.props.url,
title: token.node.props.url,
style: 'color:var(--mfmLink);'
}
}, genEl(token.children))];
}
case 'mention': {
const host = token.props.host == null && this.author && this.author.host != null ? this.author.host : token.props.host;
const canonical = host != null ? `@${token.props.username}@${toUnicode(host)}` : `@${token.props.username}`;
return (createElement as any)('router-link', {
return [createElement(MkMention, {
key: Math.random(),
attrs: {
to: `/${canonical}`,
// TODO
//dataIsMe: (this as any).i && getAcct((this as any).i) == getAcct(token),
style: 'color:var(--mfmMention);'
},
directives: [{
name: 'user-preview',
value: canonical
}]
}, canonical);
props: {
host: (token.node.props.host == null && this.author && this.author.host != null ? this.author.host : token.node.props.host) || host,
username: token.node.props.username
}
})];
}
case 'hashtag': {
return [createElement('router-link', {
key: Math.random(),
attrs: {
to: `/tags/${encodeURIComponent(token.props.hashtag)}`,
to: `/tags/${encodeURIComponent(token.node.props.hashtag)}`,
style: 'color:var(--mfmHashtag);'
}
}, `#${token.props.hashtag}`)];
}, `#${token.node.props.hashtag}`)];
}
case 'blockCode': {
@@ -191,7 +173,7 @@ export default Vue.component('misskey-flavored-markdown', {
}, [
createElement('code', {
domProps: {
innerHTML: syntaxHighlight(token.props.code)
innerHTML: syntaxHighlight(token.node.props.code)
}
})
])];
@@ -200,7 +182,7 @@ export default Vue.component('misskey-flavored-markdown', {
case 'inlineCode': {
return [createElement('code', {
domProps: {
innerHTML: syntaxHighlight(token.props.code)
innerHTML: syntaxHighlight(token.node.props.code)
}
})];
}
@@ -234,8 +216,8 @@ export default Vue.component('misskey-flavored-markdown', {
return [createElement('mk-emoji', {
key: Math.random(),
attrs: {
emoji: token.props.emoji,
name: token.props.name
emoji: token.node.props.emoji,
name: token.node.props.name
},
props: {
customEmojis: this.customEmojis || customEmojis,
@@ -249,7 +231,7 @@ export default Vue.component('misskey-flavored-markdown', {
return [createElement(MkFormula, {
key: Math.random(),
props: {
formula: token.props.formula
formula: token.node.props.formula
}
})];
}
@@ -259,13 +241,13 @@ export default Vue.component('misskey-flavored-markdown', {
return [createElement(MkGoogle, {
key: Math.random(),
props: {
q: token.props.query
q: token.node.props.query
}
})];
}
default: {
console.log('unknown ast type:', token.name);
console.log('unknown ast type:', token.node.type);
return [];
}
@@ -18,8 +18,7 @@
<span class="visibility" v-if="note.visibility != 'public'">
<fa v-if="note.visibility == 'home'" icon="home"/>
<fa v-if="note.visibility == 'followers'" icon="unlock"/>
<fa v-if="note.visibility == 'specified'" icon="envelope"/>
<fa v-if="note.visibility == 'private'" icon="lock"/>
<fa v-if="note.visibility == 'specified'" icon="lock"/>
</span>
<span class="localOnly" v-if="note.localOnly == true"><fa icon="heart"/></span>
</div>
@@ -17,6 +17,13 @@ export default Vue.extend({
computed: {
items(): any[] {
return concat(intersperse([null], [
[
[{
icon: 'at',
text: this.$t('mention'),
action: this.mention
}]
],
[
[{
icon: 'info-circle',
@@ -66,6 +73,10 @@ export default Vue.extend({
},
methods: {
mention() {
this.$post({ mention: this.note.user });
},
detail() {
this.$router.push(`/notes/${this.note.id}`);
},
@@ -0,0 +1,44 @@
<template>
<ui-card>
<div slot="title"><fa :icon="['far', 'bell']"/> {{ $t('notification') }}</div>
<section>
<ui-switch v-model="$store.state.i.settings.autoWatch" @change="onChangeAutoWatch">
{{ $t('auto-watch') }}<span slot="desc">{{ $t('auto-watch-desc') }}</span>
</ui-switch>
<section>
<ui-button @click="readAllNotifications">{{ $t('mark-as-read-all-notifications') }}</ui-button>
<ui-button @click="readAllUnreadNotes">{{ $t('mark-as-read-all-unread-notes') }}</ui-button>
<ui-button @click="readAllMessagingMessages">{{ $t('mark-as-read-all-talk-messages') }}</ui-button>
</section>
</section>
</ui-card>
</template>
<script lang="ts">
import Vue from 'vue';
import i18n from '../../../i18n';
export default Vue.extend({
i18n: i18n('common/views/components/notification-settings.vue'),
methods: {
onChangeAutoWatch(v) {
this.$root.api('i/update', {
autoWatch: v
});
},
readAllUnreadNotes() {
this.$root.api('i/read_all_unread_notes');
},
readAllMessagingMessages() {
this.$root.api('i/read_all_messaging_messages');
},
readAllNotifications() {
this.$root.api('notifications/mark_all_as_read');
}
}
});
</script>
File diff suppressed because one or more lines are too long
@@ -55,12 +55,12 @@ export default Vue.extend({
noteId: this.note.id,
choice: id
}).then(() => {
this.poll.choices.forEach(c => {
for (const c of this.poll.choices) {
if (c.id == id) {
c.votes++;
Vue.set(c, 'isVoted', true);
}
});
}
this.showResult = true;
});
}
@@ -24,7 +24,7 @@
</ui-input>
<ui-input v-model="birthday" type="date">
<span>{{ $t('birthday') }}</span>
<span slot="title">{{ $t('birthday') }}</span>
<span slot="prefix"><fa icon="birthday-cake"/></span>
</ui-input>
@@ -69,7 +69,8 @@
<div>
<ui-switch v-model="isLocked" @change="save(false)">{{ $t('is-locked') }}</ui-switch>
<ui-switch v-model="carefulBot" @change="save(false)">{{ $t('careful-bot') }}</ui-switch>
<ui-switch v-model="carefulBot" :disabled="isLocked" @change="save(false)">{{ $t('careful-bot') }}</ui-switch>
<ui-switch v-model="autoAcceptFollowed" :disabled="!isLocked && !carefulBot" @change="save(false)">{{ $t('auto-accept-followed') }}</ui-switch>
</div>
</section>
@@ -118,6 +119,7 @@ export default Vue.extend({
isBot: false,
isLocked: false,
carefulBot: false,
autoAcceptFollowed: false,
saving: false,
avatarUploading: false,
bannerUploading: false
@@ -156,6 +158,7 @@ export default Vue.extend({
this.isBot = this.$store.state.i.isBot;
this.isLocked = this.$store.state.i.isLocked;
this.carefulBot = this.$store.state.i.carefulBot;
this.autoAcceptFollowed = this.$store.state.i.autoAcceptFollowed;
},
methods: {
@@ -217,7 +220,8 @@ export default Vue.extend({
isCat: !!this.isCat,
isBot: !!this.isBot,
isLocked: !!this.isLocked,
carefulBot: !!this.carefulBot
carefulBot: !!this.carefulBot,
autoAcceptFollowed: !!this.autoAcceptFollowed
}).then(i => {
this.saving = false;
this.$store.state.i.avatarId = i.avatarId;
@@ -4,16 +4,16 @@
<div class="popover" :class="{ compact, big }" ref="popover">
<p v-if="!compact">{{ title }}</p>
<div ref="buttons" :class="{ showFocus }">
<button @click="react('like')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="1" :title="$t('@.reactions.like')"><mk-reaction-icon reaction='like'/></button>
<button @click="react('love')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="2" :title="$t('@.reactions.love')"><mk-reaction-icon reaction='love'/></button>
<button @click="react('laugh')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="3" :title="$t('@.reactions.laugh')"><mk-reaction-icon reaction='laugh'/></button>
<button @click="react('hmm')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="4" :title="$t('@.reactions.hmm')"><mk-reaction-icon reaction='hmm'/></button>
<button @click="react('surprise')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="5" :title="$t('@.reactions.surprise')"><mk-reaction-icon reaction='surprise'/></button>
<button @click="react('congrats')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="6" :title="$t('@.reactions.congrats')"><mk-reaction-icon reaction='congrats'/></button>
<button @click="react('angry')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="7" :title="$t('@.reactions.angry')"><mk-reaction-icon reaction='angry'/></button>
<button @click="react('confused')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="8" :title="$t('@.reactions.confused')"><mk-reaction-icon reaction='confused'/></button>
<button @click="react('rip')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="9" :title="$t('@.reactions.rip')"><mk-reaction-icon reaction='rip'/></button>
<button @click="react('pudding')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="10" :title="$t('@.reactions.pudding')"><mk-reaction-icon reaction='pudding'/></button>
<button @click="react('like')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="1" :title="$t('@.reactions.like')" v-particle><mk-reaction-icon reaction="like"/></button>
<button @click="react('love')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="2" :title="$t('@.reactions.love')" v-particle><mk-reaction-icon reaction="love"/></button>
<button @click="react('laugh')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="3" :title="$t('@.reactions.laugh')" v-particle><mk-reaction-icon reaction="laugh"/></button>
<button @click="react('hmm')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="4" :title="$t('@.reactions.hmm')" v-particle><mk-reaction-icon reaction="hmm"/></button>
<button @click="react('surprise')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="5" :title="$t('@.reactions.surprise')" v-particle><mk-reaction-icon reaction="surprise"/></button>
<button @click="react('congrats')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="6" :title="$t('@.reactions.congrats')" v-particle><mk-reaction-icon reaction="congrats"/></button>
<button @click="react('angry')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="7" :title="$t('@.reactions.angry')" v-particle><mk-reaction-icon reaction="angry"/></button>
<button @click="react('confused')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="8" :title="$t('@.reactions.confused')" v-particle><mk-reaction-icon reaction="confused"/></button>
<button @click="react('rip')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="9" :title="$t('@.reactions.rip')" v-particle><mk-reaction-icon reaction="rip"/></button>
<button @click="react('pudding')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="10" :title="$t('@.reactions.pudding')" v-particle><mk-reaction-icon reaction="pudding"/></button>
</div>
</div>
</div>
@@ -1,35 +1,130 @@
<template>
<div class="mk-reactions-viewer">
<div class="mk-reactions-viewer" :class="{ isMe }">
<template v-if="reactions">
<span :class="{ reacted: note.myReaction == 'like' }" @click="react('like')" v-if="reactions.like"><mk-reaction-icon reaction="like"/><span>{{ reactions.like }}</span></span>
<span :class="{ reacted: note.myReaction == 'love' }" @click="react('love')" v-if="reactions.love"><mk-reaction-icon reaction="love"/><span>{{ reactions.love }}</span></span>
<span :class="{ reacted: note.myReaction == 'laugh' }" @click="react('laugh')" v-if="reactions.laugh"><mk-reaction-icon reaction="laugh"/><span>{{ reactions.laugh }}</span></span>
<span :class="{ reacted: note.myReaction == 'hmm' }" @click="react('hmm')" v-if="reactions.hmm"><mk-reaction-icon reaction="hmm"/><span>{{ reactions.hmm }}</span></span>
<span :class="{ reacted: note.myReaction == 'surprise' }" @click="react('surprise')" v-if="reactions.surprise"><mk-reaction-icon reaction="surprise"/><span>{{ reactions.surprise }}</span></span>
<span :class="{ reacted: note.myReaction == 'congrats' }" @click="react('congrats')" v-if="reactions.congrats"><mk-reaction-icon reaction="congrats"/><span>{{ reactions.congrats }}</span></span>
<span :class="{ reacted: note.myReaction == 'angry' }" @click="react('angry')" v-if="reactions.angry"><mk-reaction-icon reaction="angry"/><span>{{ reactions.angry }}</span></span>
<span :class="{ reacted: note.myReaction == 'confused' }" @click="react('confused')" v-if="reactions.confused"><mk-reaction-icon reaction="confused"/><span>{{ reactions.confused }}</span></span>
<span :class="{ reacted: note.myReaction == 'rip' }" @click="react('rip')" v-if="reactions.rip"><mk-reaction-icon reaction="rip"/><span>{{ reactions.rip }}</span></span>
<span :class="{ reacted: note.myReaction == 'pudding' }" @click="react('pudding')" v-if="reactions.pudding"><mk-reaction-icon reaction="pudding"/><span>{{ reactions.pudding }}</span></span>
<span :class="{ reacted: note.myReaction == 'like' }" @click="toggleReaction('like')" v-if="reactions.like" v-particle="!isMe"><mk-reaction-icon reaction="like" ref="like"/><span>{{ reactions.like }}</span></span>
<span :class="{ reacted: note.myReaction == 'love' }" @click="toggleReaction('love')" v-if="reactions.love" v-particle="!isMe"><mk-reaction-icon reaction="love" ref="love"/><span>{{ reactions.love }}</span></span>
<span :class="{ reacted: note.myReaction == 'laugh' }" @click="toggleReaction('laugh')" v-if="reactions.laugh" v-particle="!isMe"><mk-reaction-icon reaction="laugh" ref="laugh"/><span>{{ reactions.laugh }}</span></span>
<span :class="{ reacted: note.myReaction == 'hmm' }" @click="toggleReaction('hmm')" v-if="reactions.hmm" v-particle="!isMe"><mk-reaction-icon reaction="hmm" ref="hmm"/><span>{{ reactions.hmm }}</span></span>
<span :class="{ reacted: note.myReaction == 'surprise' }" @click="toggleReaction('surprise')" v-if="reactions.surprise" v-particle="!isMe"><mk-reaction-icon reaction="surprise" ref="surprise"/><span>{{ reactions.surprise }}</span></span>
<span :class="{ reacted: note.myReaction == 'congrats' }" @click="toggleReaction('congrats')" v-if="reactions.congrats" v-particle="!isMe"><mk-reaction-icon reaction="congrats" ref="congrats"/><span>{{ reactions.congrats }}</span></span>
<span :class="{ reacted: note.myReaction == 'angry' }" @click="toggleReaction('angry')" v-if="reactions.angry" v-particle="!isMe"><mk-reaction-icon reaction="angry" ref="angry"/><span>{{ reactions.angry }}</span></span>
<span :class="{ reacted: note.myReaction == 'confused' }" @click="toggleReaction('confused')" v-if="reactions.confused" v-particle="!isMe"><mk-reaction-icon reaction="confused" ref="confused"/><span>{{ reactions.confused }}</span></span>
<span :class="{ reacted: note.myReaction == 'rip' }" @click="toggleReaction('rip')" v-if="reactions.rip" v-particle="!isMe"><mk-reaction-icon reaction="rip" ref="rip"/><span>{{ reactions.rip }}</span></span>
<span :class="{ reacted: note.myReaction == 'pudding' }" @click="toggleReaction('pudding')" v-if="reactions.pudding" v-particle="!isMe"><mk-reaction-icon reaction="pudding" ref="pudding"/><span>{{ reactions.pudding }}</span></span>
</template>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import Icon from './reaction-icon.vue';
import * as anime from 'animejs';
export default Vue.extend({
props: ['note'],
props: {
note: {
type: Object,
required: true
}
},
computed: {
reactions(): number {
reactions(): any {
return this.note.reactionCounts;
},
isMe(): boolean {
return this.$store.getters.isSignedIn && (this.$store.state.i.id === this.note.userId);
}
},
watch: {
'reactions.like'() {
this.anime('like');
},
'reactions.love'() {
this.anime('love');
},
'reactions.laugh'() {
this.anime('laugh');
},
'reactions.hmm'() {
this.anime('hmm');
},
'reactions.surprise'() {
this.anime('surprise');
},
'reactions.congrats'() {
this.anime('congrats');
},
'reactions.angry'() {
this.anime('angry');
},
'reactions.confused'() {
this.anime('confused');
},
'reactions.rip'() {
this.anime('rip');
},
'reactions.pudding'() {
this.anime('pudding');
}
},
methods: {
react(reaction: string) {
this.$root.api('notes/reactions/create', {
noteId: this.note.id,
reaction: reaction
toggleReaction(reaction: string) {
if (this.isMe) return;
const oldReaction = this.note.myReaction;
if (oldReaction) {
this.$root.api('notes/reactions/delete', {
noteId: this.note.id
}).then(() => {
if (oldReaction !== reaction) {
this.$root.api('notes/reactions/create', {
noteId: this.note.id,
reaction: reaction
});
}
});
} else {
this.$root.api('notes/reactions/create', {
noteId: this.note.id,
reaction: reaction
});
}
},
anime(reaction: string) {
if (this.$store.state.device.reduceMotion) return;
if (document.hidden) return;
this.$nextTick(() => {
const rect = this.$refs[reaction].$el.getBoundingClientRect();
const x = rect.left;
const y = rect.top;
const icon = new Icon({
parent: this,
propsData: {
reaction: reaction
}
}).$mount();
icon.$el.style.position = 'absolute';
icon.$el.style.zIndex = 100;
icon.$el.style.top = (y + window.scrollY) + 'px';
icon.$el.style.left = (x + window.scrollX) + 'px';
icon.$el.style.fontSize = window.getComputedStyle(this.$refs[reaction].$el).fontSize;
document.body.appendChild(icon.$el);
anime({
targets: icon.$el,
opacity: [1, 0],
translateY: [0, -64],
duration: 1000,
easing: 'linear',
complete: () => {
icon.destroyDom();
}
});
});
}
}
@@ -43,12 +138,20 @@ export default Vue.extend({
&:empty
display none
&.isMe
> span
cursor default !important
&:hover
background var(--reactionViewerButtonBg) !important
> span
display inline-block
height 32px
margin-right 6px
padding 0 6px
border-radius 4px
cursor pointer
*
user-select none
@@ -61,7 +164,6 @@ export default Vue.extend({
color var(--primaryForeground)
&:not(.reacted)
cursor pointer
background var(--reactionViewerButtonBg)
&:hover
@@ -13,8 +13,7 @@
<span class="visibility" v-if="note.visibility != 'public'">
<fa v-if="note.visibility == 'home'" icon="home"/>
<fa v-if="note.visibility == 'followers'" icon="unlock"/>
<fa v-if="note.visibility == 'specified'" icon="envelope"/>
<fa v-if="note.visibility == 'private'" icon="lock"/>
<fa v-if="note.visibility == 'specified'" icon="lock"/>
</span>
<span class="localOnly" v-if="note.localOnly == true"><fa icon="heart"/></span>
</div>
@@ -26,6 +26,7 @@ import { toUnicode } from 'punycode';
export default Vue.extend({
i18n: i18n('common/views/components/signin.vue'),
props: {
withAvatar: {
type: Boolean,
@@ -33,6 +34,7 @@ export default Vue.extend({
default: true
}
},
data() {
return {
signing: false,
@@ -45,11 +47,13 @@ export default Vue.extend({
meta: null
};
},
created() {
this.$root.getMeta().then(meta => {
this.meta = meta;
});
},
methods: {
onUsernameChange() {
this.$root.api('users/show', {
@@ -60,6 +64,7 @@ export default Vue.extend({
this.user = null;
});
},
onSubmit() {
this.signing = true;
@@ -80,8 +85,6 @@ export default Vue.extend({
</script>
<style lang="stylus" scoped>
.mk-signin
color #555
@@ -50,6 +50,7 @@ import { toUnicode } from 'punycode';
export default Vue.extend({
i18n: i18n('common/views/components/signup.vue'),
data() {
return {
host: toUnicode(host),
@@ -64,6 +65,7 @@ export default Vue.extend({
meta: null
}
},
computed: {
shouldShowProfileUrl(): boolean {
return (this.username != '' &&
@@ -72,17 +74,20 @@ export default Vue.extend({
this.usernameState != 'max-range');
}
},
created() {
this.$root.getMeta().then(meta => {
this.meta = meta;
});
},
mounted() {
const head = document.getElementsByTagName('head')[0];
const script = document.createElement('script');
script.setAttribute('src', 'https://www.google.com/recaptcha/api.js');
head.appendChild(script);
},
methods: {
onChangeUsername() {
if (this.username == '') {
@@ -111,6 +116,7 @@ export default Vue.extend({
this.usernameState = 'error';
});
},
onChangePassword() {
if (this.password == '') {
this.passwordStrength = '';
@@ -120,6 +126,7 @@ export default Vue.extend({
const strength = getPasswordStrength(this.password);
this.passwordStrength = strength > 0.7 ? 'high' : strength > 0.3 ? 'medium' : 'low';
},
onChangePasswordRetype() {
if (this.retypedPassword == '') {
this.passwordRetypeState = null;
@@ -128,6 +135,7 @@ export default Vue.extend({
this.passwordRetypeState = this.password == this.retypedPassword ? 'match' : 'not-match';
},
onSubmit() {
this.$root.api('signup', {
username: this.username,
@@ -138,8 +146,9 @@ export default Vue.extend({
this.$root.api('signin', {
username: this.username,
password: this.password
}, true).then(() => {
location.href = '/';
}, true).then(res => {
localStorage.setItem('i', res.i);
location.reload();
});
}).catch(() => {
alert(this.$t('some-error'));
@@ -154,8 +163,6 @@ export default Vue.extend({
</script>
<style lang="stylus" scoped>
.mk-signup
min-width 302px
</style>
@@ -33,14 +33,7 @@ export default Vue.extend({
return typeof this.time == 'string' ? new Date(this.time) : this.time;
},
absolute(): string {
const time = this._time;
return (
time.getFullYear() + '年' +
(time.getMonth() + 1) + '月' +
time.getDate() + '日' +
' ' +
time.getHours() + '時' +
time.getMinutes() + '分');
return this._time.toLocaleString();
},
relative(): string {
const time = this._time;
@@ -1,7 +1,7 @@
<template>
<component class="dmtdnykelhudezerjlfpbhgovrgnqqgr"
:is="link ? 'a' : 'button'"
:class="[styl, { inline, primary }]"
:class="{ inline, primary, wait }"
:type="type"
@click="$emit('click')"
@mousedown="onMousedown"
@@ -48,11 +48,11 @@ export default Vue.extend({
required: false,
default: false
},
},
data() {
return {
styl: 'fill'
};
wait: {
type: Boolean,
required: false,
default: false
},
},
mounted() {
if (this.autofocus) {
@@ -121,6 +121,24 @@ export default Vue.extend({
box-shadow none
text-decoration none
user-select none
color var(--text)
background var(--buttonBg)
&:not(:disabled):hover
background var(--buttonHoverBg)
&:not(:disabled):active
background var(--buttonActiveBg)
&.primary
color var(--primaryForeground)
background var(--primary)
&:not(:disabled):hover
background var(--primaryLighten5)
&:not(:disabled):active
background var(--primaryDarken5)
*
pointer-events none
@@ -152,35 +170,25 @@ export default Vue.extend({
&.primary
font-weight bold
&.fill
color var(--text)
background var(--buttonBg)
&.wait
background linear-gradient(
45deg,
var(--primaryDarken10) 25%,
var(--primary) 25%,
var(--primary) 50%,
var(--primaryDarken10) 50%,
var(--primaryDarken10) 75%,
var(--primary) 75%,
var(--primary)
)
background-size 32px 32px
animation stripe-bg 1.5s linear infinite
opacity 0.7
cursor wait
&:not(:disabled):hover
background var(--buttonHoverBg)
&:not(:disabled):active
background var(--buttonActiveBg)
&.primary
color var(--primaryForeground)
background var(--primary)
&:not(:disabled):hover
background var(--primaryLighten5)
&:not(:disabled):active
background var(--primaryDarken5)
&:not(.fill)
color var(--primary)
background none
&:not(:disabled):hover
color var(--primaryDarken5)
&:not(:disabled):active
background var(--primaryAlpha03)
@keyframes stripe-bg
from {background-position: 0 0;}
to {background-position: -64px 32px;}
> .ripples
position absolute
@@ -6,6 +6,7 @@
<div class="value" ref="passwordMetar"></div>
</div>
<span class="label" ref="label"><slot></slot></span>
<span class="title" ref="title"><slot name="title"></slot></span>
<div class="prefix" ref="prefix"><slot name="prefix"></slot></div>
<template v-if="type != 'file'">
<input ref="input"
@@ -281,6 +282,20 @@ root(fill)
transform-origin top left
transform scale(1)
> .title
position absolute
z-index 1
top fill ? -24px : -17px
left 0 !important
pointer-events none
font-size 16px
line-height 32px
color var(--inputLabel)
pointer-events none
//will-change transform
transform-origin top left
transform scale(.75)
> input
display block
width 100%
@@ -14,7 +14,7 @@
<header>
<h1>{{ title }}</h1>
</header>
<p>{{ description.length > 85 ? description.slice(0, 85) + '…' : description }}</p>
<p v-if="description">{{ description.length > 85 ? description.slice(0, 85) + '…' : description }}</p>
<footer>
<img class="icon" v-if="icon" :src="icon"/>
<p>{{ sitename }}</p>
@@ -170,6 +170,9 @@ export default Vue.extend({
return;
}
if (url.hostname === 'music.youtube.com')
url.hostname = 'youtube.com';
fetch(`/url?url=${encodeURIComponent(this.url)}`).then(res => {
res.json().then(info => {
if (info.url == null) return;
@@ -0,0 +1,150 @@
<template>
<div class="cudqjmnl">
<ui-card>
<div slot="title"><fa :icon="faList"/> {{ list.title }}</div>
<section>
<ui-button @click="rename"><fa :icon="faICursor"/> {{ $t('rename') }}</ui-button>
<ui-button @click="del"><fa :icon="faTrashAlt"/> {{ $t('delete') }}</ui-button>
</section>
</ui-card>
<ui-card>
<div slot="title"><fa :icon="faUsers"/> {{ $t('users') }}</div>
<section>
<sequential-entrance animation="entranceFromTop" delay="25">
<div class="phcqulfl" v-for="user in users">
<div>
<a :href="user | userPage">
<mk-avatar class="avatar" :user="user" :disable-link="true"/>
</a>
</div>
<div>
<header>
<b><mk-user-name :user="user"/></b>
<span class="username">@{{ user | acct }}</span>
</header>
<div>
<a @click="remove(user)">{{ $t('remove-user') }}</a>
</div>
</div>
</div>
</sequential-entrance>
</section>
</ui-card>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import i18n from '../../../i18n';
import { faList, faICursor, faUsers } from '@fortawesome/free-solid-svg-icons';
import { faTrashAlt } from '@fortawesome/free-regular-svg-icons';
export default Vue.extend({
i18n: i18n('common/views/components/user-list-editor.vue'),
props: {
list: {
required: true
}
},
data() {
return {
users: [],
faList, faICursor, faTrashAlt, faUsers
};
},
mounted() {
this.fetchUsers();
},
methods: {
fetchUsers() {
this.$root.api('users/show', {
userIds: this.list.userIds
}).then(users => {
this.users = users;
});
},
rename() {
this.$root.dialog({
title: this.$t('rename'),
input: {
default: this.list.title
}
}).then(({ canceled, result: title }) => {
if (canceled) return;
this.$root.api('users/lists/update', {
listId: this.list.id,
title: title
});
});
},
del() {
this.$root.dialog({
type: 'warning',
text: this.$t('delete-are-you-sure').replace('$1', this.list.title),
showCancelButton: true
}).then(({ canceled }) => {
if (canceled) return;
this.$root.api('users/lists/delete', {
listId: this.list.id
}).then(() => {
this.$root.dialog({
type: 'success',
text: this.$t('deleted')
});
}).catch(e => {
this.$root.dialog({
type: 'error',
text: e
});
});
});
},
remove(user: any) {
this.$root.api('users/lists/pull', {
listId: this.list.id,
userId: user.id
}).then(() => {
this.fetchUsers();
});
}
}
});
</script>
<style lang="stylus" scoped>
.cudqjmnl
.phcqulfl
display flex
padding 16px 0
border-top solid 1px var(--faceDivider)
> div:first-child
> a
> .avatar
width 64px
height 64px
> div:last-child
flex 1
padding-left 16px
@media (max-width 500px)
font-size 14px
> header
> .username
margin-left 8px
opacity 0.7
</style>
@@ -23,18 +23,12 @@
</div>
</div>
<div @click="choose('specified')" :class="{ active: v == 'specified' }">
<div><fa icon="envelope"/></div>
<div><fa icon="lock"/></div>
<div>
<span>{{ $t('specified') }}</span>
<span>{{ $t('specified-desc') }}</span>
</div>
</div>
<div @click="choose('private')" :class="{ active: v == 'private' }">
<div><fa icon="lock"/></div>
<div>
<span>{{ $t('private') }}</span>
</div>
</div>
<div @click="choose('local-public')" :class="{ active: v == 'local-public' }">
<div><fa icon="globe"/></div>
<div>
@@ -16,7 +16,7 @@
</div>
</header>
<div class="text">
<misskey-flavored-markdown v-if="note.text" :text="note.text" :author="note.user" :custom-emojis="note.emojis"/>
<misskey-flavored-markdown v-if="note.text" :text="note.cw != null ? note.cw : note.text" :author="note.user" :custom-emojis="note.emojis"/>
</div>
</div>
</div>
@@ -21,21 +21,24 @@ class Autocomplete {
private suggestion: any;
private textarea: any;
private vm: any;
private model: any;
private currentType: string;
private opts: {
model: string;
};
private opening: boolean;
private get text(): string {
return this.vm[this.model];
return this.vm[this.opts.model];
}
private set text(text: string) {
this.vm[this.model] = text;
this.vm[this.opts.model] = text;
}
/**
*
*/
constructor(textarea, vm, model) {
constructor(textarea, vm, opts) {
//#region BIND
this.onInput = this.onInput.bind(this);
this.complete = this.complete.bind(this);
@@ -45,7 +48,8 @@ class Autocomplete {
this.suggestion = null;
this.textarea = textarea;
this.vm = vm;
this.model = model;
this.opts = opts;
this.opening = false;
}
/**
@@ -126,6 +130,8 @@ class Autocomplete {
if (type != this.currentType) {
this.close();
}
if (this.opening) return;
this.opening = true;
this.currentType = type;
//#region サジェストを表示すべき位置を計算
@@ -141,6 +147,8 @@ class Autocomplete {
this.suggestion.x = x;
this.suggestion.y = y;
this.suggestion.q = q;
this.opening = false;
} else {
const MkAutocomplete = await import('../components/autocomplete.vue').then(m => m.default);
@@ -160,6 +168,8 @@ class Autocomplete {
// 要素追加
document.body.appendChild(this.suggestion.$el);
this.opening = false;
}
}
@@ -1,5 +1,7 @@
import Vue from 'vue';
import autocomplete from './autocomplete';
import particle from './particle';
Vue.directive('autocomplete', autocomplete);
Vue.directive('particle', particle);
@@ -0,0 +1,26 @@
import Particle from '../components/particle.vue';
export default {
bind(el, binding, vn) {
if (vn.context.$store.state.device.reduceMotion) return;
el.addEventListener('click', () => {
if (binding.value === false) return;
const rect = el.getBoundingClientRect();
const x = rect.left + (el.clientWidth / 2);
const y = rect.top + (el.clientHeight / 2);
const particle = new Particle({
parent: vn.context,
propsData: {
x,
y
}
}).$mount();
document.body.appendChild(particle.$el);
});
}
};
+1 -1
View File
@@ -22,7 +22,7 @@
:disabled="followWait">
<template v-if="!followWait">
<template v-if="user.hasPendingFollowRequestFromYou && user.isLocked"><fa icon="hourglass-half"/> {{ $t('request-pending') }}</template>
<template v-else-if="user.hasPendingFollowRequestFromYou && !user.isLocked"><fa icon="hourglass-start"/> {{ $t('follow-processing') }}</template>
<template v-else-if="user.hasPendingFollowRequestFromYou && !user.isLocked"><fa icon="spinner"/> {{ $t('follow-processing') }}</template>
<template v-else-if="user.isFollowing"><fa icon="minus"/> {{ $t('following') }}</template>
<template v-else-if="!user.isFollowing && user.isLocked"><fa icon="plus"/> {{ $t('follow-request') }}</template>
<template v-else-if="!user.isFollowing && !user.isLocked"><fa icon="plus"/> {{ $t('follow') }}</template>
@@ -0,0 +1,65 @@
<template>
<figure class="megtcxgu">
<img :src="src" alt="">
<figcaption>
<h1><span>Not found</span></h1>
<p><span>{{ $t('page-not-found') }}</span></p>
</figcaption>
</figure>
</template>
<script lang="ts">
import Vue from 'vue'
import i18n from '../../../i18n';
export default Vue.extend({
i18n: i18n('common/views/pages/not-found.vue'),
data() {
return {
src: ''
}
},
created() {
this.$root.getMeta().then(meta => {
if (meta.errorImageUrl)
this.src = meta.errorImageUrl;
});
}
})
</script>
<style lang="stylus" scoped>
.megtcxgu
align-items center
bottom 0
display flex
justify-content center
left 0
margin auto
position fixed
right 0
top 0
> img
width 500px
> figcaption
margin 8px
h1,
p
color var(--text)
display flex
flex-flow column
*
position relative
width 100%
@media (max-width: 767px)
flex-flow column
> figcaption
text-align center
</style>
@@ -164,7 +164,7 @@ export default define({
this.draw();
},
onStatsLog(statsLog) {
statsLog.forEach(stats => this.onStats(stats));
for (const stats of statsLog) this.onStats(stats);
}
}
});
@@ -121,7 +121,7 @@ export default Vue.extend({
this.memP = (stats.mem.used / stats.mem.total * 100).toFixed(0);
},
onStatsLog(statsLog) {
statsLog.reverse().forEach(stats => this.onStats(stats));
for (const stats of statsLog.reverse()) this.onStats(stats);
}
}
});
@@ -22,5 +22,5 @@ export default Vue.extend({
> p
margin 0
font-size 12px
color #505050
color var(--text)
</style>
@@ -1,13 +1,14 @@
<template>
<div class="uptimes">
<p>Uptimes</p>
<p>Process: {{ process ? process.toFixed(0) : '---' }}s</p>
<p>OS: {{ os ? os.toFixed(0) : '---' }}s</p>
<p>Process: {{ process }}</p>
<p>OS: {{ os }}</p>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import formatUptime from '../../scripts/format-uptime';
export default Vue.extend({
props: ['connection'],
@@ -25,8 +26,8 @@ export default Vue.extend({
},
methods: {
onStats(stats) {
this.process = stats.process_uptime;
this.os = stats.os_uptime;
this.process = formatUptime(stats.process_uptime);
this.os = formatUptime(stats.os_uptime);
}
}
});
@@ -39,7 +40,7 @@ export default Vue.extend({
> p
margin 0
font-size 12px
color #505050
color var(--text)
&:first-child
font-weight bold
-1
View File
@@ -16,7 +16,6 @@ export const wsUrl = url.replace('http://', 'ws://').replace('https://', 'wss://
export const lang = window.lang;
export const langs = _LANGS_;
export const locale = JSON.parse(localStorage.getItem('locale'));
export const themeColor = _THEME_COLOR_;
export const copyright = _COPYRIGHT_;
export const version = _VERSION_;
export const clientVersion = _CLIENT_VERSION_;
+8 -8
View File
@@ -1,4 +1,4 @@
import { apiUrl } from '../../config';
import { apiUrl, locale } from '../../config';
import CropWindow from '../views/components/crop-window.vue';
import ProgressDialog from '../views/components/progress-dialog.vue';
@@ -9,7 +9,7 @@ export default ($root: any) => {
const regex = RegExp('\.(jpg|jpeg|png|gif|webp|bmp|tiff)$');
if (!regex.test(file.name) ) {
$root.dialog({
title: '%fa:info-circle% %i18n:desktop.invalid-filetype%',
title: locale['desktop']['invalid-filetype'],
text: null
});
return reject('invalid-filetype');
@@ -17,7 +17,7 @@ export default ($root: any) => {
const w = $root.new(CropWindow, {
image: file,
title: '%i18n:desktop.avatar-crop-title%',
title: locale['desktop']['avatar-crop-title'],
aspectRatio: 1 / 1
});
@@ -27,11 +27,11 @@ export default ($root: any) => {
data.append('file', blob, file.name + '.cropped.png');
$root.api('drive/folders/find', {
name: '%i18n:desktop.avatar%'
name: locale['desktop']['avatar']
}).then(avatarFolder => {
if (avatarFolder.length === 0) {
$root.api('drive/folders/create', {
name: '%i18n:desktop.avatar%'
name: locale['desktop']['avatar']
}).then(iconFolder => {
resolve(upload(data, iconFolder));
});
@@ -52,7 +52,7 @@ export default ($root: any) => {
const upload = (data, folder) => new Promise((resolve, reject) => {
const dialog = $root.new(ProgressDialog, {
title: '%i18n:desktop.uploading-avatar%'
title: locale['desktop']['uploading-avatar']
});
document.body.appendChild(dialog.$el);
@@ -88,7 +88,7 @@ export default ($root: any) => {
});
$root.dialog({
title: '%fa:info-circle% %i18n:desktop.avatar-updated%',
title: locale['desktop']['avatar-updated'],
text: null
});
@@ -101,7 +101,7 @@ export default ($root: any) => {
? Promise.resolve(file)
: $root.$chooseDriveFile({
multiple: false,
title: '%fa:image% %i18n:desktop.choose-avatar%'
title: locale['desktop']['choose-avatar']
});
return selectedFile
+8 -8
View File
@@ -1,4 +1,4 @@
import { apiUrl } from '../../config';
import { apiUrl, locale } from '../../config';
import CropWindow from '../views/components/crop-window.vue';
import ProgressDialog from '../views/components/progress-dialog.vue';
@@ -9,7 +9,7 @@ export default ($root: any) => {
const regex = RegExp('\.(jpg|jpeg|png|gif|webp|bmp|tiff)$');
if (!regex.test(file.name) ) {
$root.dialog({
title: '%fa:info-circle% %i18n:desktop.invalid-filetype%',
title: locale['desktop']['invalid-filetype'],
text: null
});
return reject('invalid-filetype');
@@ -17,7 +17,7 @@ export default ($root: any) => {
const w = $root.new(CropWindow, {
image: file,
title: '%i18n:desktop.banner-crop-title%',
title: locale['desktop']['banner-crop-title'],
aspectRatio: 16 / 9
});
@@ -27,11 +27,11 @@ export default ($root: any) => {
data.append('file', blob, file.name + '.cropped.png');
$root.api('drive/folders/find', {
name: '%i18n:desktop.banner%'
name: locale['desktop']['banner']
}).then(bannerFolder => {
if (bannerFolder.length === 0) {
$root.api('drive/folders/create', {
name: '%i18n:desktop.banner%'
name: locale['desktop']['banner']
}).then(iconFolder => {
resolve(upload(data, iconFolder));
});
@@ -52,7 +52,7 @@ export default ($root: any) => {
const upload = (data, folder) => new Promise((resolve, reject) => {
const dialog = $root.new(ProgressDialog, {
title: '%i18n:desktop.uploading-banner%'
title: locale['desktop']['uploading-banner']
});
document.body.appendChild(dialog.$el);
@@ -88,7 +88,7 @@ export default ($root: any) => {
});
$root.dialog({
title: '%fa:info-circle% %i18n:desktop.banner-updated%',
title: locale['desktop']['banner-updated'],
text: null
});
@@ -101,7 +101,7 @@ export default ($root: any) => {
? Promise.resolve(file)
: $root.$chooseDriveFile({
multiple: false,
title: '%fa:image% %i18n:desktop.choose-banner%'
title: locale['desktop']['choose-banner']
});
return selectedFile

Some files were not shown because too many files have changed in this diff Show More