Compare commits

...

193 Commits

Author SHA1 Message Date
b24e32e14e 5.23.0 2018-08-14 01:32:49 +09:00
943805bdcd Merge pull request #2180 from syuilo/l10n_master
New Crowdin translations
2018-08-14 01:32:11 +09:00
a73c65da07 New translations ja.yml (French) 2018-08-14 01:11:32 +09:00
a3cf63823f Merge pull request #2189 from syuilo/patch-1
Hide unimplemented button
2018-08-13 23:53:15 +09:00
33469ff87a Hide Unimplemented button 2018-08-13 22:08:59 +09:00
23b0723168 Merge pull request #2188 from Tosuke/patch1
Create apps without authentication(#2025)
2018-08-13 12:38:02 +09:00
fda1ab3e05 Create apps without authentication(#2025) 2018-08-13 12:30:32 +09:00
490c05a869 New translations ja.yml (English) 2018-08-13 06:32:08 +09:00
f0137daebe New translations ja.yml (English) 2018-08-13 04:51:11 +09:00
b9fc0e6d71 Merge pull request #2183 from acid-chicken/patch-1
Make player height taller
2018-08-13 04:42:49 +09:00
979efee412 Update url-preview.vue 2018-08-13 04:41:12 +09:00
9e41fddea3 Merge pull request #2130 from acid-chicken/patch-player
WIP: Add player
2018-08-13 03:25:22 +09:00
8384efc8c7 Create whitelist 2018-08-13 03:23:36 +09:00
7797c86581 Merge pull request #2181 from acid-chicken/patch-1
Re: Fix #2177
2018-08-13 01:59:11 +09:00
4da8cc478f Update ui.header.vue 2018-08-13 01:58:15 +09:00
285deeec52 New translations ja.yml (Catalan) 2018-08-13 01:31:20 +09:00
2916e49422 New translations ja.yml (Portuguese) 2018-08-13 01:31:18 +09:00
41e5b9134b New translations ja.yml (Korean) 2018-08-13 01:31:16 +09:00
d0d853dcb2 New translations ja.yml (Polish) 2018-08-13 01:31:13 +09:00
be46c7e4c5 New translations ja.yml (Chinese Simplified) 2018-08-13 01:31:11 +09:00
8e0f41d608 New translations ja.yml (Italian) 2018-08-13 01:31:09 +09:00
a7b438072c New translations ja.yml (Russian) 2018-08-13 01:31:06 +09:00
99958e2fce New translations ja.yml (English) 2018-08-13 01:31:04 +09:00
b82843d359 New translations ja.yml (Spanish) 2018-08-13 01:31:02 +09:00
4dfc2dfa89 New translations ja.yml (German) 2018-08-13 01:30:59 +09:00
50c945607f New translations ja.yml (French) 2018-08-13 01:30:57 +09:00
01f28b21dd #1211 2018-08-13 01:25:50 +09:00
2cb39a8882 Fix #2097 2018-08-13 00:59:36 +09:00
6ddb6bc160 Add .vsls.json 2018-08-13 00:24:45 +09:00
92befbb4cc Fix #2177
Resolves #2177
2018-08-13 00:18:02 +09:00
ab701bb93e Merge pull request #2159 from syuilo/l10n_master
New Crowdin translations
2018-08-12 23:53:22 +09:00
7f9a88fd1c fix(package): update vue-js-modal to version 1.3.17 2018-08-12 23:13:52 +09:00
c5073b33ef Fix ActivityPub followers/specified detection 2018-08-12 20:37:35 +09:00
765b922a8b fix(package): update ts-node to version 7.0.1 2018-08-12 16:22:43 +09:00
9b7d6274fa New translations ja.yml (French) 2018-08-12 07:40:57 +09:00
26b384aef1 New translations ja.yml (French) 2018-08-12 07:30:58 +09:00
0b1e5e3e08 New translations ja.yml (French) 2018-08-12 07:20:58 +09:00
5b7506756e New translations ja.yml (French) 2018-08-12 07:11:02 +09:00
1f28a0dfeb Improve nya 2018-08-12 05:20:31 +09:00
f56ec82f6b Fix ActivityPub attachment url 2018-08-12 04:42:14 +09:00
8ccbabf5ca 5.22.1 2018-08-12 03:09:45 +09:00
7c763600b7 Fix #2162 2018-08-12 03:09:22 +09:00
499491003b New translations ja.yml (Polish) 2018-08-12 00:31:30 +09:00
3a77d871d5 Stop supporting docker 2018-08-12 00:30:58 +09:00
4ee6d0b549 Refactoring (#2160) 2018-08-12 00:01:07 +09:00
64aa733b16 New translations ja.yml (Polish) 2018-08-11 22:51:08 +09:00
c8c4ec6ad4 5.22.0 2018-08-11 21:35:22 +09:00
c9ee737078 Fix bug 2018-08-11 21:34:12 +09:00
ebc2cca0b4 New Crowdin translations (#2158) 2018-08-11 21:29:07 +09:00
fc94df06eb New Crowdin translations (#2157) 2018-08-11 21:13:38 +09:00
190a03103e New translations ja.yml (Catalan) 2018-08-11 21:11:31 +09:00
0d75ae9d9a New translations ja.yml (Portuguese) 2018-08-11 21:11:29 +09:00
3129f8f073 New translations ja.yml (Korean) 2018-08-11 21:11:27 +09:00
7f751d3f20 New translations ja.yml (Polish) 2018-08-11 21:11:25 +09:00
0b5b834f8b New translations ja.yml (Chinese Simplified) 2018-08-11 21:11:23 +09:00
0f649f7d37 New translations ja.yml (Italian) 2018-08-11 21:11:21 +09:00
a1b100d412 New translations ja.yml (Russian) 2018-08-11 21:11:19 +09:00
dd4ee1627e New translations ja.yml (English) 2018-08-11 21:11:16 +09:00
1da0fdcf78 New translations ja.yml (Spanish) 2018-08-11 21:11:14 +09:00
800eec73b8 New translations ja.yml (German) 2018-08-11 21:11:12 +09:00
166cb5e179 New translations ja.yml (French) 2018-08-11 21:11:10 +09:00
4a5e145048 Add new reaction: rip 😇 2018-08-11 21:08:34 +09:00
be68f42220 Implement messaging/messages/read 2018-08-11 21:01:39 +09:00
7942aa677f Update doc 2018-08-11 21:01:26 +09:00
2fcf9288a5 Refactoring 2018-08-11 20:53:03 +09:00
9bc17974f2 未利用時はTwitterでログインを表示しない (#2156) 2018-08-11 20:20:35 +09:00
19c872a1f3 Update url-preview.vue 2018-08-11 19:56:53 +09:00
9252c59d90 Merge branch 'master' into patch-player 2018-08-11 19:56:05 +09:00
a8f142096c Cache failed url-preview (apply to proxy/client) (#2154) 2018-08-11 18:04:59 +09:00
3c90abfb96 5.21.0 2018-08-11 12:24:16 +09:00
12037fab9b fix(package): update @types/node to version 10.5.8 (#2152) 2018-08-11 12:21:42 +09:00
73cc425093 fix(package): update request to version 2.88.0 (#2151) 2018-08-11 12:21:30 +09:00
5c97da935d New Crowdin translations (#2150) 2018-08-11 12:21:18 +09:00
0b154ac7ba Merge branch 'master' into l10n_master 2018-08-11 12:21:06 +09:00
d4eb0c8df9 New translations ja.yml (Spanish) 2018-08-11 01:42:11 +09:00
5ba6f20701 New translations ja.yml (Spanish) 2018-08-11 01:31:44 +09:00
695a082582 New translations ja.yml (Spanish) 2018-08-11 01:21:58 +09:00
a52c588f49 Merge branch 'master' of https://github.com/syuilo/misskey 2018-08-11 00:49:31 +09:00
fa469725c7 Add doc 2018-08-11 00:49:29 +09:00
a1f0cb1bc7 fix(package): update summaly to version 2.1.2 (#2149) 2018-08-11 00:44:26 +09:00
fbbd33ded2 fix(package): update file-type to version 9.0.0 2018-08-10 20:44:03 +09:00
9658e2b3fb fix(package): update element-ui to version 2.4.6 2018-08-10 20:43:56 +09:00
3d10b19727 Fix Powered by <b>Misskey</b>. (#2140) 2018-08-10 20:11:54 +09:00
ab7725ff69 良い感じにした 2018-08-10 14:33:34 +09:00
6372451d17 Fix bug 2018-08-10 14:15:12 +09:00
2c11cc3f0a 5.20.1 2018-08-10 01:04:40 +09:00
7f65f896f9 fix(package): update summaly to version 2.1.1 (#2135) 2018-08-10 01:02:20 +09:00
def823ceea Merge branch 'master' of https://github.com/syuilo/misskey 2018-08-10 00:51:43 +09:00
454d294cf3 Fix #2133 など 2018-08-10 00:51:40 +09:00
1affdbdbab fix(package): update node-sass to version 4.9.3 (#2131) 2018-08-10 00:25:25 +09:00
52286f4be8 fix(package): update summaly to version 2.1.0 (#2132) 2018-08-10 00:25:16 +09:00
1b9f293959 Update url-preview.vue
多分もう折り返す必要はないのだわ
2018-08-09 23:34:54 +09:00
7289d5b401 Add player 2018-08-09 16:44:34 +09:00
01d3f5f09d 5.20.0 2018-08-09 04:35:17 +09:00
4333ff00a0 New Crowdin translations (#2116) 2018-08-09 04:34:21 +09:00
25b88afbb7 Merge pull request #2127 from acid-chicken/acid-chicken-patch-3
Fix bug
2018-08-09 04:22:36 +09:00
6a92c19227 Update url-preview.vue 2018-08-09 04:21:25 +09:00
5bdbf98f8c New translations ja.yml (English) 2018-08-09 04:21:24 +09:00
56b69b5fb7 Merge pull request #2126 from acid-chicken/acid-chicken-patch-2
ニコニコ動画
2018-08-09 04:07:33 +09:00
ebf0479ecc Update url-preview.vue 2018-08-09 04:05:28 +09:00
196c55edbc Merge pull request #2125 from acid-chicken/acid-chicken-patch-2
Spotify
2018-08-09 03:32:55 +09:00
e724c1e7e8 Update url-preview.vue 2018-08-09 03:32:09 +09:00
4e915e96a5 New translations ja.yml (French) 2018-08-09 02:52:24 +09:00
e148f6ce5e New translations ja.yml (French) 2018-08-09 02:41:44 +09:00
652d7d2c05 New translations ja.yml (French) 2018-08-09 02:36:35 +09:00
0b0111fe23 New translations ja.yml (French) 2018-08-09 02:31:11 +09:00
869c19c666 fix(package): update style-loader to version 0.22.1 2018-08-09 00:59:39 +09:00
86a5f715d3 Merge pull request #2121 from syuilo/greenkeeper/systeminformation-3.42.9
Update systeminformation to the latest version 🚀
2018-08-08 23:18:27 +09:00
514aeac2d8 Merge pull request #2120 from syuilo/greenkeeper/vue-loader-15.3.0
Update vue-loader to the latest version 🚀
2018-08-08 23:18:16 +09:00
8980a26713 Merge pull request #2119 from syuilo/greenkeeper/style-loader-0.22.0
Update style-loader to the latest version 🚀
2018-08-08 23:18:06 +09:00
a39e2b28d1 Merge pull request #2118 from syuilo/greenkeeper/commander-2.17.1
Update commander to the latest version 🚀
2018-08-08 23:17:53 +09:00
bef617cb7c fix(package): update systeminformation to version 3.42.9 2018-08-08 05:13:03 +00:00
1dc1feca0f fix(package): update vue-loader to version 15.3.0 2018-08-07 21:34:59 +00:00
5d097fb29d New translations ja.yml (French) 2018-08-08 00:51:48 +09:00
f29fe986af New translations ja.yml (French) 2018-08-08 00:43:05 +09:00
0c774979c0 New translations ja.yml (French) 2018-08-08 00:32:08 +09:00
f0bc2ed1d7 New translations ja.yml (French) 2018-08-08 00:22:38 +09:00
b174e5e57a New translations ja.yml (English) 2018-08-07 23:21:52 +09:00
90eed0ea0d fix(package): update style-loader to version 0.22.0 2018-08-07 13:13:16 +00:00
ae50b71c07 New translations ja.yml (Polish) 2018-08-07 20:53:54 +09:00
c730e5edfa fix(package): update commander to version 2.17.1 2018-08-07 11:23:35 +00:00
b2eb50f260 New translations ja.yml (Catalan) 2018-08-07 13:31:40 +09:00
790c7f2249 New translations ja.yml (Portuguese) 2018-08-07 13:31:38 +09:00
6a0f34c283 New translations ja.yml (Korean) 2018-08-07 13:31:36 +09:00
d151445db7 New translations ja.yml (Polish) 2018-08-07 13:31:34 +09:00
18a3007273 New translations ja.yml (Chinese Simplified) 2018-08-07 13:31:31 +09:00
bea8c3c65c New translations ja.yml (Italian) 2018-08-07 13:31:29 +09:00
391ee01fe3 New translations ja.yml (Russian) 2018-08-07 13:31:26 +09:00
be7cf9f731 New translations ja.yml (English) 2018-08-07 13:31:24 +09:00
b92c2aa40e New translations ja.yml (Spanish) 2018-08-07 13:31:21 +09:00
45ebcbf785 New translations ja.yml (German) 2018-08-07 13:31:19 +09:00
5f32484be0 New translations ja.yml (French) 2018-08-07 13:31:17 +09:00
7bd33ecc72 ✌️ 2018-08-07 13:25:50 +09:00
e245122f12 New translations ja.yml (English) 2018-08-07 12:41:03 +09:00
d4f7058574 🍕 2018-08-07 12:37:17 +09:00
21570e2111 New translations ja.yml (Catalan) 2018-08-07 11:12:10 +09:00
63e1165a01 New translations ja.yml (Portuguese) 2018-08-07 11:12:07 +09:00
89b5a69127 New translations ja.yml (Korean) 2018-08-07 11:12:04 +09:00
1152a9d03a New translations ja.yml (Polish) 2018-08-07 11:12:02 +09:00
10092d4570 New translations ja.yml (Chinese Simplified) 2018-08-07 11:12:00 +09:00
429b4bec64 New translations ja.yml (Italian) 2018-08-07 11:11:58 +09:00
99f96583b6 New translations ja.yml (Russian) 2018-08-07 11:11:56 +09:00
5adb765f85 New translations ja.yml (English) 2018-08-07 11:11:54 +09:00
0eb787e0d0 New translations ja.yml (Spanish) 2018-08-07 11:11:52 +09:00
4493c856a9 New translations ja.yml (German) 2018-08-07 11:11:50 +09:00
59d3d4a749 New translations ja.yml (French) 2018-08-07 11:11:47 +09:00
980ae3dcb3 Merge pull request #2114 from gutfuckllc/devel
Localized all hiragana lines.
2018-08-07 11:09:55 +09:00
3a76113b78 Merge pull request #2109 from syuilo/l10n_master
New Crowdin translations
2018-08-07 11:09:34 +09:00
ec8105b2ae Merge pull request #2112 from syuilo/greenkeeper/@types/node-10.5.7
Update @types/node to the latest version 🚀
2018-08-07 11:09:16 +09:00
bf05785345 Merge pull request #2110 from syuilo/greenkeeper/typescript-eslint-parser-18.0.0
Update typescript-eslint-parser to the latest version 🚀
2018-08-07 11:09:07 +09:00
82346d788b Merge pull request #2115 from syuilo/greenkeeper/vue-loader-15.2.7
Update vue-loader to the latest version 🚀
2018-08-07 11:08:46 +09:00
d86cfa86e4 fix(package): update vue-loader to version 15.2.7 2018-08-07 02:05:20 +00:00
b85f13dad3 Localize mobile search.vue 2018-08-06 21:06:09 -04:00
eb8c3fe884 Localize a dev file 2018-08-06 21:03:24 -04:00
ff325d9588 Localized annotations line 2018-08-06 21:00:58 -04:00
a98392ff27 Localize "only one file attached" popup 2018-08-06 20:57:14 -04:00
22b8aab7a0 fix(package): update @types/node to version 10.5.7 2018-08-06 22:08:57 +00:00
24de518922 Localized 2 missing lines for mobile widgets.vue 2018-08-06 16:08:54 -04:00
a169c7756f Added more close buttons 2018-08-06 16:05:48 -04:00
249a7f4f68 Slight reordering 2018-08-06 16:05:32 -04:00
4f590e0a96 Localized adjective 2018-08-06 16:04:20 -04:00
f5b5b290e4 Localized copy-paste message (added common) 2018-08-06 16:02:53 -04:00
1f75cf4ace Localize missing line 2018-08-06 16:00:12 -04:00
1e4f11a979 Localize japanese adjective. 2018-08-06 15:58:09 -04:00
be12e23aa1 Localize unlocalized line. 2018-08-06 15:55:39 -04:00
790e6ceca4 Localize unlocalized line 2018-08-06 15:53:21 -04:00
a303d52990 Fix typo 2018-08-06 15:53:06 -04:00
096fab575c fix(package): update typescript-eslint-parser to version 18.0.0 2018-08-06 19:52:58 +00:00
a256393b81 Merge remote-tracking branch 'upstream/master' into devel 2018-08-06 15:45:52 -04:00
e8eee9057a New translations ja.yml (Spanish) 2018-08-07 03:51:39 +09:00
d81acae17e 5.19.0 2018-08-07 03:33:21 +09:00
313715bc75 Merge pull request #2108 from syuilo/l10n_master
New Crowdin translations
2018-08-07 03:32:25 +09:00
94dabd2038 New translations ja.yml (English) 2018-08-07 03:31:58 +09:00
a3d58e5bc7 New translations ja.yml (Catalan) 2018-08-07 03:22:45 +09:00
bfdfd026a2 New translations ja.yml (Portuguese) 2018-08-07 03:22:43 +09:00
b713f06599 New translations ja.yml (Korean) 2018-08-07 03:22:41 +09:00
2172c5edca New translations ja.yml (Polish) 2018-08-07 03:22:39 +09:00
9bc0cfacfa New translations ja.yml (Chinese Simplified) 2018-08-07 03:22:37 +09:00
546cfeadbe New translations ja.yml (Italian) 2018-08-07 03:22:33 +09:00
2413583ce9 New translations ja.yml (Russian) 2018-08-07 03:22:30 +09:00
d7510491a5 New translations ja.yml (English) 2018-08-07 03:22:28 +09:00
61db07edf4 New translations ja.yml (Spanish) 2018-08-07 03:22:25 +09:00
5c3ac8f952 New translations ja.yml (German) 2018-08-07 03:22:22 +09:00
5bfcb75ec3 New translations ja.yml (French) 2018-08-07 03:22:18 +09:00
d733a1b445 i18n 2018-08-07 03:20:26 +09:00
75c44cd349 Merge pull request #2107 from syuilo/l10n_master
New Crowdin translations
2018-08-07 00:28:13 +09:00
f4d247cfae New translations ja.yml (English) 2018-08-07 00:21:42 +09:00
4260ec713f Improve error handling 2018-08-06 21:48:23 +09:00
99f4ab7000 ✌️ 2018-08-06 21:35:49 +09:00
06390380f8 Translated mute. 2018-08-06 03:18:52 -04:00
752186066b Merge remote-tracking branch 'upstream/master' into devel 2018-08-05 16:54:54 -04:00
911762fedf Removed start.sh 2018-08-04 13:13:56 -04:00
de448fc99f Added start.sh 2018-08-04 13:13:29 -04:00
103 changed files with 951 additions and 454 deletions

4
.vsls.json Normal file
View File

@ -0,0 +1,4 @@
{
"$schema": "http://json.schemastore.org/vsls",
"gitignore": "exclude"
}

View File

@ -1,26 +0,0 @@
FROM base/archlinux
MAINTAINER Aya Morisawa
RUN rm /etc/pacman.d/mirrorlist
RUN echo 'Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
RUN echo 'Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
RUN rm /etc/localtime
RUN ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
RUN pacman -Sy --noconfirm
RUN pacman -S --noconfirm pacman
RUN pacman-db-upgrade
RUN pacman -S --noconfirm archlinux-keyring
RUN pacman -Syyu --noconfirm
RUN pacman -S --noconfirm git nodejs npm mongodb redis
COPY misskey.sh /root/misskey.sh
RUN chmod u+x /root/misskey.sh
EXPOSE 80
EXPOSE 443
EXPOSE 27017
CMD ["/root/misskey.sh"]

View File

@ -1,6 +0,0 @@
#!/bin/sh
redis-server --daemonize yes
mongod > /dev/null &
cd /root/misskey
npm start
tail -f /dev/null

View File

@ -1,29 +0,0 @@
Setup with Docker :whale:
================================================================
Ensure that the working directory is the repository root directory.
To create misskey image:
``` console
$ sudo docker build -t misskey ./docker
```
To run misskey:
``` console
$ sudo docker run --rm -i -t -p $PORT:80 -v $(pwd):/root/misskey -v $DBPATH:/data/db misskey
```
where `$PORT` is the port used to access Misskey Web from host browser
and `$DBPATH` is the path of MongoDB database on the host for data persistence.
ex:
``` console
$ sudo docker run --rm -i -t -p 80:80 -v $(pwd):/root/misskey -v /data/db:/data/db misskey
```
If you want to run misskey in production mode, add `--env NODE_ENV=production` like this:
``` console
$ sudo docker run --rm -i -t -p 80:80 -v $(pwd):/root/misskey -v /data/db:/data/db --env NODE_ENV=production misskey
```
Note that `$(pwd)` is the working directory.

View File

@ -11,6 +11,8 @@ common:
warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。" warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
application-authorization: "アプリの連携" application-authorization: "アプリの連携"
close: "閉じる" close: "閉じる"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
got-it: "わかった"
customization-tips: customization-tips:
title: "カスタマイズのヒント" title: "カスタマイズのヒント"
paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。" paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。"
@ -26,7 +28,6 @@ common:
notified-by: "{}さんから" notified-by: "{}さんから"
reply-from: "{}さんから返信:" reply-from: "{}さんから返信:"
quoted-by: "{}さんが引用:" quoted-by: "{}さんが引用:"
name: "Misskey"
time: time:
unknown: "なぞのじかん" unknown: "なぞのじかん"
future: "未来" future: "未来"
@ -38,13 +39,8 @@ common:
weeks_ago: "{}週間前" weeks_ago: "{}週間前"
months_ago: "{}ヶ月前" months_ago: "{}ヶ月前"
years_ago: "{}年前" years_ago: "{}年前"
month-and-day: "{month}月 {day}日"
trash: "ゴミ箱" trash: "ゴミ箱"
date:
full-year: "年"
month: "月"
day: "日"
hours: "時"
minutes: "分"
weekday-short: weekday-short:
sunday: "日" sunday: "日"
monday: "月" monday: "月"
@ -70,6 +66,7 @@ common:
congrats: "おめでとう" congrats: "おめでとう"
angry: "おこ" angry: "おこ"
confused: "こまこまのこまり" confused: "こまこまのこまり"
rip: "RIP"
pudding: "Pudding" pudding: "Pudding"
note-placeholders: note-placeholders:
a: "今どうしてる?" a: "今どうしてる?"
@ -172,6 +169,9 @@ common/views/components/games/reversi/reversi.vue:
common/views/components/games/reversi/reversi.game.vue: common/views/components/games/reversi/reversi.game.vue:
surrender: "投了" surrender: "投了"
surrendered: "投了により" surrendered: "投了により"
is-llotheo: "石の少ない方が勝ち(ロセオ)"
looped-map: "ループマップ"
can-put-everywhere: "どこでも置けるモード"
common/views/components/games/reversi/reversi.index.vue: common/views/components/games/reversi/reversi.index.vue:
title: "Misskey Reversi" title: "Misskey Reversi"
sub-title: "他のMisskeyユーザーとリバーシで対戦しよう" sub-title: "他のMisskeyユーザーとリバーシで対戦しよう"
@ -239,11 +239,13 @@ common/views/components/messaging-room.vue:
no-history: "これより過去の履歴はありません" no-history: "これより過去の履歴はありません"
resize-form: "ドラッグしてフォームの広さを調整" resize-form: "ドラッグしてフォームの広さを調整"
new-message: "新しいメッセージがあります" new-message: "新しいメッセージがあります"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.form.vue: common/views/components/messaging-room.form.vue:
input-message-here: "ここにメッセージを入力" input-message-here: "ここにメッセージを入力"
send: "送信" send: "送信"
attach-from-local: "PCからファイルを添付する" attach-from-local: "PCからファイルを添付する"
attach-from-drive: "ドライブからファイルを添付する" attach-from-drive: "ドライブからファイルを添付する"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.message.vue: common/views/components/messaging-room.message.vue:
is-read: "既読" is-read: "既読"
deleted: "このメッセージは削除されました" deleted: "このメッセージは削除されました"
@ -283,6 +285,8 @@ common/views/components/signin.vue:
token: "トークン" token: "トークン"
signing-in: "やってます..." signing-in: "やってます..."
signin: "サインイン" signin: "サインイン"
or: "または"
signin-with-twitter: "Twitterでログイン"
common/views/components/signup.vue: common/views/components/signup.vue:
username: "ユーザー名" username: "ユーザー名"
checking: "確認しています..." checking: "確認しています..."
@ -392,6 +396,17 @@ common/views/pages/follow.vue:
follow: "フォロー" follow: "フォロー"
request-pending: "フォロー許可待ち" request-pending: "フォロー許可待ち"
follow-request: "フォロー申請" follow-request: "フォロー申請"
desktop:
banner-crop-title: "バナーとして表示する部分を選択"
banner: "バナー"
uploading-banner: "新しいバナーをアップロードしています"
banner-updated: "バナーを更新しました"
choose-banner: "バナーにする画像を選択"
avatar-crop-title: "アバターとして表示する部分を選択"
avatar: "アバター"
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
desktop/views/components/activity.chart.vue: desktop/views/components/activity.chart.vue:
total: "Black ... Total" total: "Black ... Total"
notes: "Blue ... Notes" notes: "Blue ... Notes"
@ -526,6 +541,8 @@ desktop/views/components/notes.note.vue:
detail: "詳細" detail: "詳細"
private: "この投稿は非公開です" private: "この投稿は非公開です"
deleted: "この投稿は削除されました" deleted: "この投稿は削除されました"
hide: "隠す"
see-more: "もっと見る"
desktop/views/components/notes.vue: desktop/views/components/notes.vue:
error: "読み込みに失敗しました。" error: "読み込みに失敗しました。"
retry: "リトライ" retry: "リトライ"
@ -561,6 +578,7 @@ desktop/views/components/post-form.vue:
geolocation-alert: "お使いの端末は位置情報に対応していません" geolocation-alert: "お使いの端末は位置情報に対応していません"
error: "エラー" error: "エラー"
enter-username: "ユーザー名を入力してください" enter-username: "ユーザー名を入力してください"
annotations: "内容への注釈 (オプション)"
desktop/views/components/post-form-window.vue: desktop/views/components/post-form-window.vue:
note: "新規投稿" note: "新規投稿"
reply: "返信" reply: "返信"
@ -722,6 +740,7 @@ desktop/views/components/timeline.vue:
list: "リスト" list: "リスト"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
desktop/views/components/ui.header.account.vue: desktop/views/components/ui.header.account.vue:
profile: "プロフィール" profile: "プロフィール"
drive: "ドライブ" drive: "ドライブ"
@ -750,6 +769,7 @@ desktop/views/components/received-follow-requests-window.vue:
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "リスト" title: "リスト"
create-list: "リストを作成" create-list: "リストを作成"
list-name: "リスト名"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "投稿" notes: "投稿"
following: "フォロー" following: "フォロー"
@ -832,6 +852,8 @@ desktop/views/pages/user/user.profile.vue:
mute: "ミュートする" mute: "ミュートする"
muted: "ミュートしています" muted: "ミュートしています"
unmute: "ミュート解除" unmute: "ミュート解除"
push-to-a-list: "リストに追加"
list-pushed: "{user}を{list}に追加しました。"
desktop/views/pages/user/user.header.vue: desktop/views/pages/user/user.header.vue:
posts: "投稿" posts: "投稿"
following: "フォロー" following: "フォロー"
@ -959,6 +981,7 @@ mobile/views/components/timeline.vue:
load-more: "もっと" load-more: "もっと"
mobile/views/components/ui.header.vue: mobile/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
mobile/views/components/ui.nav.vue: mobile/views/components/ui.nav.vue:
timeline: "タイムライン" timeline: "タイムライン"
notifications: "通知" notifications: "通知"
@ -1007,6 +1030,8 @@ mobile/views/pages/welcome.vue:
mobile/views/pages/widgets.vue: mobile/views/pages/widgets.vue:
dashboard: "ダッシュボード" dashboard: "ダッシュボード"
widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。" widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
add-widget: "追加"
customization-tips: "カスタマイズのヒント"
mobile/views/pages/widgets/activity.vue: mobile/views/pages/widgets/activity.vue:
activity: "アクティビティ" activity: "アクティビティ"
mobile/views/pages/share.vue: mobile/views/pages/share.vue:
@ -1045,6 +1070,7 @@ mobile/views/pages/settings/settings.profile.vue:
mobile/views/pages/search.vue: mobile/views/pages/search.vue:
search: "検索" search: "検索"
empty: "「{}」に関する投稿は見つかりませんでした。" empty: "「{}」に関する投稿は見つかりませんでした。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
mobile/views/pages/selectdrive.vue: mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択" select-file: "ファイルを選択"
mobile/views/pages/settings.vue: mobile/views/pages/settings.vue:
@ -1139,3 +1165,5 @@ docs:
name: "名前" name: "名前"
type: "型" type: "型"
description: "説明" description: "説明"
dev/views/index.vue:
manage-apps: "アプリの管理"

View File

@ -11,6 +11,8 @@ common:
warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。" warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
application-authorization: "アプリの連携" application-authorization: "アプリの連携"
close: "閉じる" close: "閉じる"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
got-it: "わかった"
customization-tips: customization-tips:
title: "カスタマイズのヒント" title: "カスタマイズのヒント"
paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。" paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。"
@ -26,7 +28,6 @@ common:
notified-by: "{}さんから" notified-by: "{}さんから"
reply-from: "{}さんから返信:" reply-from: "{}さんから返信:"
quoted-by: "{}さんが引用:" quoted-by: "{}さんが引用:"
name: "Misskey"
time: time:
unknown: "Unbekannt" unknown: "Unbekannt"
future: "Zukunft" future: "Zukunft"
@ -38,13 +39,8 @@ common:
weeks_ago: "vor {0} Woche{0:n}" weeks_ago: "vor {0} Woche{0:n}"
months_ago: "vor {0} Monat{0:en}" months_ago: "vor {0} Monat{0:en}"
years_ago: "vor {} Jahr{0:en}" years_ago: "vor {} Jahr{0:en}"
month-and-day: "{month}月 {day}日"
trash: "ゴミ箱" trash: "ゴミ箱"
date:
full-year: "年"
month: "月"
day: "日"
hours: "時"
minutes: "分"
weekday-short: weekday-short:
sunday: "So" sunday: "So"
monday: "Mo" monday: "Mo"
@ -70,6 +66,7 @@ common:
congrats: "Glückwunsch!" congrats: "Glückwunsch!"
angry: "Wütend" angry: "Wütend"
confused: "Verwirrt" confused: "Verwirrt"
rip: "RIP"
pudding: "Pudding" pudding: "Pudding"
note-placeholders: note-placeholders:
a: "Was machst du gerade?" a: "Was machst du gerade?"
@ -172,6 +169,9 @@ common/views/components/games/reversi/reversi.vue:
common/views/components/games/reversi/reversi.game.vue: common/views/components/games/reversi/reversi.game.vue:
surrender: "投了" surrender: "投了"
surrendered: "投了により" surrendered: "投了により"
is-llotheo: "石の少ない方が勝ち(ロセオ)"
looped-map: "ループマップ"
can-put-everywhere: "どこでも置けるモード"
common/views/components/games/reversi/reversi.index.vue: common/views/components/games/reversi/reversi.index.vue:
title: "Misskey Reversi" title: "Misskey Reversi"
sub-title: "他のMisskeyユーザーとリバーシで対戦しよう" sub-title: "他のMisskeyユーザーとリバーシで対戦しよう"
@ -239,11 +239,13 @@ common/views/components/messaging-room.vue:
no-history: "Keine weitere Chronik vorhanden" no-history: "Keine weitere Chronik vorhanden"
resize-form: "Ziehen um die Größe zu verändern" resize-form: "Ziehen um die Größe zu verändern"
new-message: "Neue Nachricht" new-message: "Neue Nachricht"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.form.vue: common/views/components/messaging-room.form.vue:
input-message-here: "Nachricht hier eingeben" input-message-here: "Nachricht hier eingeben"
send: "Senden" send: "Senden"
attach-from-local: "Wähle Dateien von deinem PC aus" attach-from-local: "Wähle Dateien von deinem PC aus"
attach-from-drive: "Wähle Dateien von deinem Speicher aus" attach-from-drive: "Wähle Dateien von deinem Speicher aus"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.message.vue: common/views/components/messaging-room.message.vue:
is-read: "Gelesen" is-read: "Gelesen"
deleted: "Diese Nachricht wurde gelöscht" deleted: "Diese Nachricht wurde gelöscht"
@ -283,6 +285,8 @@ common/views/components/signin.vue:
token: "Token" token: "Token"
signing-in: "Melde an..." signing-in: "Melde an..."
signin: "Anmelden" signin: "Anmelden"
or: "または"
signin-with-twitter: "Twitterでログイン"
common/views/components/signup.vue: common/views/components/signup.vue:
username: "Benutzername" username: "Benutzername"
checking: "Überprüfung..." checking: "Überprüfung..."
@ -392,6 +396,17 @@ common/views/pages/follow.vue:
follow: "フォロー" follow: "フォロー"
request-pending: "フォロー許可待ち" request-pending: "フォロー許可待ち"
follow-request: "フォロー申請" follow-request: "フォロー申請"
desktop:
banner-crop-title: "バナーとして表示する部分を選択"
banner: "バナー"
uploading-banner: "新しいバナーをアップロードしています"
banner-updated: "バナーを更新しました"
choose-banner: "バナーにする画像を選択"
avatar-crop-title: "アバターとして表示する部分を選択"
avatar: "アバター"
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
desktop/views/components/activity.chart.vue: desktop/views/components/activity.chart.vue:
total: "Schwarz ... komplett" total: "Schwarz ... komplett"
notes: "Blau ... Hinweise" notes: "Blau ... Hinweise"
@ -526,6 +541,8 @@ desktop/views/components/notes.note.vue:
detail: "Zeige Details" detail: "Zeige Details"
private: "Dieser Beitrag ist eine privat" private: "Dieser Beitrag ist eine privat"
deleted: "Dieser Beitrag wurde entfernt" deleted: "Dieser Beitrag wurde entfernt"
hide: "隠す"
see-more: "もっと見る"
desktop/views/components/notes.vue: desktop/views/components/notes.vue:
error: "Laden fehlgeschlagen." error: "Laden fehlgeschlagen."
retry: "Erneut versuchen" retry: "Erneut versuchen"
@ -561,6 +578,7 @@ desktop/views/components/post-form.vue:
geolocation-alert: "お使いの端末は位置情報に対応していません" geolocation-alert: "お使いの端末は位置情報に対応していません"
error: "エラー" error: "エラー"
enter-username: "ユーザー名を入力してください" enter-username: "ユーザー名を入力してください"
annotations: "内容への注釈 (オプション)"
desktop/views/components/post-form-window.vue: desktop/views/components/post-form-window.vue:
note: "Neue Notiz" note: "Neue Notiz"
reply: "Antworten" reply: "Antworten"
@ -722,6 +740,7 @@ desktop/views/components/timeline.vue:
list: "Listen" list: "Listen"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
desktop/views/components/ui.header.account.vue: desktop/views/components/ui.header.account.vue:
profile: "Dein Profil" profile: "Dein Profil"
drive: "Speicher" drive: "Speicher"
@ -750,6 +769,7 @@ desktop/views/components/received-follow-requests-window.vue:
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "リスト" title: "リスト"
create-list: "リストを作成" create-list: "リストを作成"
list-name: "リスト名"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "投稿" notes: "投稿"
following: "フォロー" following: "フォロー"
@ -832,6 +852,8 @@ desktop/views/pages/user/user.profile.vue:
mute: "ミュートする" mute: "ミュートする"
muted: "ミュートしています" muted: "ミュートしています"
unmute: "ミュート解除" unmute: "ミュート解除"
push-to-a-list: "リストに追加"
list-pushed: "{user}を{list}に追加しました。"
desktop/views/pages/user/user.header.vue: desktop/views/pages/user/user.header.vue:
posts: "投稿" posts: "投稿"
following: "フォロー" following: "フォロー"
@ -959,6 +981,7 @@ mobile/views/components/timeline.vue:
load-more: "もっと" load-more: "もっと"
mobile/views/components/ui.header.vue: mobile/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
mobile/views/components/ui.nav.vue: mobile/views/components/ui.nav.vue:
timeline: "タイムライン" timeline: "タイムライン"
notifications: "通知" notifications: "通知"
@ -1007,6 +1030,8 @@ mobile/views/pages/welcome.vue:
mobile/views/pages/widgets.vue: mobile/views/pages/widgets.vue:
dashboard: "ダッシュボード" dashboard: "ダッシュボード"
widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。" widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
add-widget: "追加"
customization-tips: "カスタマイズのヒント"
mobile/views/pages/widgets/activity.vue: mobile/views/pages/widgets/activity.vue:
activity: "アクティビティ" activity: "アクティビティ"
mobile/views/pages/share.vue: mobile/views/pages/share.vue:
@ -1045,6 +1070,7 @@ mobile/views/pages/settings/settings.profile.vue:
mobile/views/pages/search.vue: mobile/views/pages/search.vue:
search: "検索" search: "検索"
empty: "「{}」に関する投稿は見つかりませんでした。" empty: "「{}」に関する投稿は見つかりませんでした。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
mobile/views/pages/selectdrive.vue: mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択" select-file: "ファイルを選択"
mobile/views/pages/settings.vue: mobile/views/pages/settings.vue:
@ -1139,3 +1165,5 @@ docs:
name: "名前" name: "名前"
type: "型" type: "型"
description: "説明" description: "説明"
dev/views/index.vue:
manage-apps: "アプリの管理"

View File

@ -11,6 +11,8 @@ common:
warning: "<strong>Misskey is not running ads</strong>, but some features may be unavailable or malfunctioning if ad blocking features are enabled." warning: "<strong>Misskey is not running ads</strong>, but some features may be unavailable or malfunctioning if ad blocking features are enabled."
application-authorization: "Application authorizations." application-authorization: "Application authorizations."
close: "Close" close: "Close"
do-not-copy-paste: "Please do not enter or paste the code here. Account may be compromised."
got-it: "Got it!"
customization-tips: customization-tips:
title: "Customization tips" title: "Customization tips"
paragraph1: "Home customization allows you to add/delete, drag and drop and rearrange widgets." paragraph1: "Home customization allows you to add/delete, drag and drop and rearrange widgets."
@ -26,7 +28,6 @@ common:
notified-by: "Notified by {}:" notified-by: "Notified by {}:"
reply-from: "Reply from {}:" reply-from: "Reply from {}:"
quoted-by: "Quoted by {}:" quoted-by: "Quoted by {}:"
name: "Misskey"
time: time:
unknown: "unknown" unknown: "unknown"
future: "future" future: "future"
@ -38,13 +39,8 @@ common:
weeks_ago: "{}week(s) ago" weeks_ago: "{}week(s) ago"
months_ago: "{}month(s) ago" months_ago: "{}month(s) ago"
years_ago: "{}year(s) ago" years_ago: "{}year(s) ago"
month-and-day: "{month}/{day}"
trash: "Trash" trash: "Trash"
date:
full-year: "Year"
month: "Month"
day: "Day"
hours: "Hour"
minutes: "Minutes"
weekday-short: weekday-short:
sunday: "S" sunday: "S"
monday: "M" monday: "M"
@ -70,6 +66,7 @@ common:
congrats: "Congrats!" congrats: "Congrats!"
angry: "Angry" angry: "Angry"
confused: "Confused" confused: "Confused"
rip: "RIP"
pudding: "Pudding" pudding: "Pudding"
note-placeholders: note-placeholders:
a: "What are you doing?" a: "What are you doing?"
@ -172,6 +169,9 @@ common/views/components/games/reversi/reversi.vue:
common/views/components/games/reversi/reversi.game.vue: common/views/components/games/reversi/reversi.game.vue:
surrender: "Surrender" surrender: "Surrender"
surrendered: "By surrender" surrendered: "By surrender"
is-llotheo: "The lesser one wins"
looped-map: "Looped map"
can-put-everywhere: "Can put everywhere"
common/views/components/games/reversi/reversi.index.vue: common/views/components/games/reversi/reversi.index.vue:
title: "Misskey Reversi" title: "Misskey Reversi"
sub-title: "Play reversi with your friends!" sub-title: "Play reversi with your friends!"
@ -207,7 +207,7 @@ common/views/components/games/reversi/reversi.room.vue:
cancel-ready: "Cancel \"Ready\"" cancel-ready: "Cancel \"Ready\""
common/views/components/connect-failed.vue: common/views/components/connect-failed.vue:
title: "Unable to connect to the server" title: "Unable to connect to the server"
description: "There is a problem with your Internet connection, or the server may be down or under maintenance. Please try again later." description: "There is a problem with your Internet connection, or the server may be down or under maintenance. Please {try again} later."
thanks: "Thank you for using Misskey." thanks: "Thank you for using Misskey."
troubleshoot: "Troubleshoot" troubleshoot: "Troubleshoot"
common/views/components/connect-failed.troubleshooter.vue: common/views/components/connect-failed.troubleshooter.vue:
@ -239,11 +239,13 @@ common/views/components/messaging-room.vue:
no-history: "There is no further history" no-history: "There is no further history"
resize-form: "Drag to resize" resize-form: "Drag to resize"
new-message: "New message" new-message: "New message"
only-one-file-attached: "Only one file can be attached to a message."
common/views/components/messaging-room.form.vue: common/views/components/messaging-room.form.vue:
input-message-here: "Enter message here" input-message-here: "Enter message here"
send: "Send" send: "Send"
attach-from-local: "Attach files from your device" attach-from-local: "Attach files from your device"
attach-from-drive: "Attach files from your Drive" attach-from-drive: "Attach files from your Drive"
only-one-file-attached: "Only one file can be attached to a message."
common/views/components/messaging-room.message.vue: common/views/components/messaging-room.message.vue:
is-read: "Read" is-read: "Read"
deleted: "This message has been deleted" deleted: "This message has been deleted"
@ -283,6 +285,8 @@ common/views/components/signin.vue:
token: "Token" token: "Token"
signing-in: "Signing in..." signing-in: "Signing in..."
signin: "Sign in" signin: "Sign in"
or: "Or"
signin-with-twitter: "Log in with Twitter"
common/views/components/signup.vue: common/views/components/signup.vue:
username: "Username" username: "Username"
checking: "Checking..." checking: "Checking..."
@ -392,6 +396,17 @@ common/views/pages/follow.vue:
follow: "Follow" follow: "Follow"
request-pending: "Pending follow request" request-pending: "Pending follow request"
follow-request: "Follow request" follow-request: "Follow request"
desktop:
banner-crop-title: "Crop the part that appears as a banner"
banner: "Banner"
uploading-banner: "Uploading a new banner"
banner-updated: "Updated the banner"
choose-banner: "Choose the banner"
avatar-crop-title: "Crop the part that appears as an avatar"
avatar: "Avatar"
uploading-avatar: "Uploading a new avatar"
avatar-updated: "Updated the avatar"
choose-avatar: "Choose an avatar image"
desktop/views/components/activity.chart.vue: desktop/views/components/activity.chart.vue:
total: "Black ... Total" total: "Black ... Total"
notes: "Blue ... Notes" notes: "Blue ... Notes"
@ -526,6 +541,8 @@ desktop/views/components/notes.note.vue:
detail: "Show details" detail: "Show details"
private: "This post is private" private: "This post is private"
deleted: "The post has been deleted" deleted: "The post has been deleted"
hide: "Hide"
see-more: "See more"
desktop/views/components/notes.vue: desktop/views/components/notes.vue:
error: "Loading failed." error: "Loading failed."
retry: "Retry" retry: "Retry"
@ -561,6 +578,7 @@ desktop/views/components/post-form.vue:
geolocation-alert: "Your device does not support geolocalization." geolocation-alert: "Your device does not support geolocalization."
error: "Error" error: "Error"
enter-username: "Please enter a username..." enter-username: "Please enter a username..."
annotations: "内容への注釈 (オプション)"
desktop/views/components/post-form-window.vue: desktop/views/components/post-form-window.vue:
note: "New note" note: "New note"
reply: "Reply" reply: "Reply"
@ -722,6 +740,7 @@ desktop/views/components/timeline.vue:
list: "Lists" list: "Lists"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "Welcome back," welcome-back: "Welcome back,"
adjective: "Ms."
desktop/views/components/ui.header.account.vue: desktop/views/components/ui.header.account.vue:
profile: "Your profile" profile: "Your profile"
drive: "Media storage" drive: "Media storage"
@ -750,6 +769,7 @@ desktop/views/components/received-follow-requests-window.vue:
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "User lists" title: "User lists"
create-list: "Create new list" create-list: "Create new list"
list-name: "List name"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "Posts" notes: "Posts"
following: "Following" following: "Following"
@ -796,7 +816,7 @@ desktop/views/pages/selectdrive.vue:
cancel: "Cancel" cancel: "Cancel"
upload: "Upload files from your device" upload: "Upload files from your device"
desktop/views/pages/search.vue: desktop/views/pages/search.vue:
not-available: "The search function can not be used." not-available: "The search feature is not available."
not-found: "No posts were found for '{}'" not-found: "No posts were found for '{}'"
desktop/views/pages/share.vue: desktop/views/pages/share.vue:
share-with: "Share with {}." share-with: "Share with {}."
@ -832,6 +852,8 @@ desktop/views/pages/user/user.profile.vue:
mute: "Mute" mute: "Mute"
muted: "Muting" muted: "Muting"
unmute: "Unmute" unmute: "Unmute"
push-to-a-list: "Add to list"
list-pushed: "You added {user} to {list}."
desktop/views/pages/user/user.header.vue: desktop/views/pages/user/user.header.vue:
posts: "Notes" posts: "Notes"
following: "Following" following: "Following"
@ -959,6 +981,7 @@ mobile/views/components/timeline.vue:
load-more: "More" load-more: "More"
mobile/views/components/ui.header.vue: mobile/views/components/ui.header.vue:
welcome-back: "Welcome back, " welcome-back: "Welcome back, "
adjective: "Ms."
mobile/views/components/ui.nav.vue: mobile/views/components/ui.nav.vue:
timeline: "Timeline" timeline: "Timeline"
notifications: "Notifications" notifications: "Notifications"
@ -1006,7 +1029,9 @@ mobile/views/pages/welcome.vue:
signup: "Sign up" signup: "Sign up"
mobile/views/pages/widgets.vue: mobile/views/pages/widgets.vue:
dashboard: "Dashboard" dashboard: "Dashboard"
widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。" widgets-hints: "You can add/delete/rearrange widgets. To move the widget, drag \"三\". Tap \"x\" to delete the widget. Some widgets can change display by tapping."
add-widget: "Add"
customization-tips: "Customization tips"
mobile/views/pages/widgets/activity.vue: mobile/views/pages/widgets/activity.vue:
activity: "Activity" activity: "Activity"
mobile/views/pages/share.vue: mobile/views/pages/share.vue:
@ -1045,6 +1070,7 @@ mobile/views/pages/settings/settings.profile.vue:
mobile/views/pages/search.vue: mobile/views/pages/search.vue:
search: "Search" search: "Search"
empty: "No posts were found for '{}'" empty: "No posts were found for '{}'"
not-found: "No posts were found for \"{}\"."
mobile/views/pages/selectdrive.vue: mobile/views/pages/selectdrive.vue:
select-file: "Choose files" select-file: "Choose files"
mobile/views/pages/settings.vue: mobile/views/pages/settings.vue:
@ -1139,3 +1165,5 @@ docs:
name: "Name" name: "Name"
type: "Type" type: "Type"
description: "Description" description: "Description"
dev/views/index.vue:
manage-apps: "Manage apps"

View File

@ -11,6 +11,8 @@ common:
warning: "<strong>Misskey no tiene anuncios publicitarios.</strong> Sin embargo, algunas características podrían no estar disponibles si el bloqueador de publicidad está habilitado." warning: "<strong>Misskey no tiene anuncios publicitarios.</strong> Sin embargo, algunas características podrían no estar disponibles si el bloqueador de publicidad está habilitado."
application-authorization: "Autorizaciones de la aplicación." application-authorization: "Autorizaciones de la aplicación."
close: "Cerrar" close: "Cerrar"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
got-it: "¡Listo!"
customization-tips: customization-tips:
title: "Consejos de personalización" title: "Consejos de personalización"
paragraph1: "Customización de inicio le permite agregar, borrar, o reorganizar los accesorios." paragraph1: "Customización de inicio le permite agregar, borrar, o reorganizar los accesorios."
@ -26,7 +28,6 @@ common:
notified-by: "Notificado por {}:" notified-by: "Notificado por {}:"
reply-from: "Respuesta de {}:" reply-from: "Respuesta de {}:"
quoted-by: "Citado por {}:" quoted-by: "Citado por {}:"
name: "Misskey"
time: time:
unknown: "Desconocido" unknown: "Desconocido"
future: "Futuro" future: "Futuro"
@ -38,13 +39,8 @@ common:
weeks_ago: "Hace {} semana(s)" weeks_ago: "Hace {} semana(s)"
months_ago: "Hace {} mes(es)" months_ago: "Hace {} mes(es)"
years_ago: "Hace {} año(s)" years_ago: "Hace {} año(s)"
month-and-day: "{day} de {month}"
trash: "Papelera" trash: "Papelera"
date:
full-year: "Año"
month: "Mes"
day: "Día"
hours: "horas"
minutes: "minutos"
weekday-short: weekday-short:
sunday: "domingo" sunday: "domingo"
monday: "lunes" monday: "lunes"
@ -70,6 +66,7 @@ common:
congrats: "felicidades" congrats: "felicidades"
angry: "enfadado" angry: "enfadado"
confused: "confundido" confused: "confundido"
rip: "RIP"
pudding: "Chafado" pudding: "Chafado"
note-placeholders: note-placeholders:
a: "¿Qué haces?" a: "¿Qué haces?"
@ -88,7 +85,7 @@ common:
i-like-sushi: "Prefiero sushi a pudín" i-like-sushi: "Prefiero sushi a pudín"
show-reversi-board-labels: "Mostrar etiquetas de filas y columnas en Reversi" show-reversi-board-labels: "Mostrar etiquetas de filas y columnas en Reversi"
verified-user: "Usuario verificado" verified-user: "Usuario verificado"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする" disable-animated-mfm: "Desactivar texto animado en una publicación"
reversi: reversi:
drawn: "Empatado" drawn: "Empatado"
my-turn: "Mi turno" my-turn: "Mi turno"
@ -170,23 +167,26 @@ common/views/components/games/reversi/reversi.vue:
waiting-for: "Esperando por {}" waiting-for: "Esperando por {}"
cancel: "Cancelar" cancel: "Cancelar"
common/views/components/games/reversi/reversi.game.vue: common/views/components/games/reversi/reversi.game.vue:
surrender: "投了" surrender: "Rendirse"
surrendered: "投了により" surrendered: "Por rendirse"
is-llotheo: "石の少ない方が勝ち(ロセオ)"
looped-map: "ループマップ"
can-put-everywhere: "どこでも置けるモード"
common/views/components/games/reversi/reversi.index.vue: common/views/components/games/reversi/reversi.index.vue:
title: "Misskey Reversi" title: "Misskey Reversi"
sub-title: "他のMisskeyユーザーとリバーシで対戦しよう" sub-title: "¡Juega Reversi con tus amigos!"
invite: "招待" invite: "Invitar"
rule: "遊び方" rule: "Cómo jugar"
rule-desc: "リバーシは、相手と交互に石をボードに置いて、相手の石を挟んで自分の色に変えてゆき、最終的に残った石が多い方が勝ちというボードゲームです。" rule-desc: "リバーシは、相手と交互に石をボードに置いて、相手の石を挟んで自分の色に変えてゆき、最終的に残った石が多い方が勝ちというボードゲームです。"
mode-invite: "招待" mode-invite: "Invitar"
mode-invite-desc: "指定したユーザーと対戦するモードです。" mode-invite-desc: "Invitar un usuario al juego."
invitations: "対局の招待があります!" invitations: "¡Has recibido una invitación!"
my-games: "自分の対局" my-games: "Mis juegos"
all-games: "みんなの対局" all-games: "Todos los juegos"
enter-username: "ユーザー名を入力してください" enter-username: "Ingresar nombre de usuario"
game-state: game-state:
ended: "終了" ended: "Finalizado"
playing: "進行中" playing: "En progreso"
common/views/components/games/reversi/reversi.room.vue: common/views/components/games/reversi/reversi.room.vue:
settings-of-the-game: "Configuración de juego" settings-of-the-game: "Configuración de juego"
choose-map: "Elije un mapa" choose-map: "Elije un mapa"
@ -198,7 +198,7 @@ common/views/components/games/reversi/reversi.room.vue:
looped-map: "Mapa en bucle" looped-map: "Mapa en bucle"
can-put-everywhere: "Puedes colocar donde quieras" can-put-everywhere: "Puedes colocar donde quieras"
settings-of-the-bot: "Configuración de bot" settings-of-the-bot: "Configuración de bot"
this-game-is-started-soon: "ゲームは数秒後に開始されます" this-game-is-started-soon: "El juego comenzará pronto"
waiting-for-other: "Esperando a que se prepare el adversario" waiting-for-other: "Esperando a que se prepare el adversario"
waiting-for-me: "Esperando por la preparación" waiting-for-me: "Esperando por la preparación"
waiting-for-both: "Esperando por ti" waiting-for-both: "Esperando por ti"
@ -239,11 +239,13 @@ common/views/components/messaging-room.vue:
no-history: "El historial se ha acabado" no-history: "El historial se ha acabado"
resize-form: "Arrastra para redimensionar" resize-form: "Arrastra para redimensionar"
new-message: "Nuevo mensaje" new-message: "Nuevo mensaje"
only-one-file-attached: "Un único archivo se puede conectar al mensaje"
common/views/components/messaging-room.form.vue: common/views/components/messaging-room.form.vue:
input-message-here: "Escribe el mensaje aquí" input-message-here: "Escribe el mensaje aquí"
send: "Enviar" send: "Enviar"
attach-from-local: "Adjunta ficheros desde tu PC" attach-from-local: "Adjunta ficheros desde tu PC"
attach-from-drive: "Adjunta ficheros desde tu disco" attach-from-drive: "Adjunta ficheros desde tu disco"
only-one-file-attached: "Un único archivo se puede conectar al mensaje"
common/views/components/messaging-room.message.vue: common/views/components/messaging-room.message.vue:
is-read: "Leer" is-read: "Leer"
deleted: "El mensaje se ha borrado" deleted: "El mensaje se ha borrado"
@ -283,6 +285,8 @@ common/views/components/signin.vue:
token: "Identificador" token: "Identificador"
signing-in: "Entrando..." signing-in: "Entrando..."
signin: "Entra" signin: "Entra"
or: "O"
signin-with-twitter: "Ingresar con Twitter"
common/views/components/signup.vue: common/views/components/signup.vue:
username: "Usuario" username: "Usuario"
checking: "Comprobando..." checking: "Comprobando..."
@ -377,46 +381,57 @@ common/views/widgets/tips.vue:
tips-line9: "Misskey está hecho bajo licencia AGPLv3" tips-line9: "Misskey está hecho bajo licencia AGPLv3"
tips-line10: "Usando el accesorio de Máquina del Tiempo puedes encontrar publicaciones antiguas" tips-line10: "Usando el accesorio de Máquina del Tiempo puedes encontrar publicaciones antiguas"
tips-line11: "Puedes resaltar publicaciones en la página de usuario haciendo click en \"...\"" tips-line11: "Puedes resaltar publicaciones en la página de usuario haciendo click en \"...\""
tips-line13: "投稿に添付したファイルは全てドライブに保存されます" tips-line13: "Todos los archivos añadidos a la publicación se han guardado en tu unidad."
tips-line14: "ホームのカスタマイズ中、ウィジェットを右クリックしてデザインを変更できます" tips-line14: "Cuando personalizas el inicio puedas dar click derecho a un accesorio y cambiar el diseño."
tips-line17: "「**」でテキストを囲むと**強調表示**されます" tips-line17: "Al colocar ** delante y luego del texto, lo estarás destacando en negrillas"
tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます" tips-line19: "Algunas ventanas pueden ser separadas fuera del navegador"
tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています" tips-line20: "El porcentaje mostrando en el accesorio de calendario indica el porcentaje de tiempo transcurrido."
tips-line21: "APIを利用してbotの開発なども行えます" tips-line21: "También puedes usar la API para desarrollar tus propios bots."
tips-line23: "まゆかわいいよまゆ" tips-line23: "Mayu is tan bonito con sus cejas."
tips-line24: "Misskeyは2014年にサービスを開始しました" tips-line24: "Misskey inició en 2014."
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます" tips-line25: "Puedes recibir notificaciones incluso si Misskey no está abierto en un navegador compatible."
common/views/pages/follow.vue: common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中" signed-in-as: "Autenticado como {}"
following: "フォロー中" following: "Siguiendo"
follow: "フォロー" follow: "Seguir"
request-pending: "フォロー許可待ち" request-pending: "Solicitud pendiente"
follow-request: "フォロー申請" follow-request: "Solicitar suscripción"
desktop:
banner-crop-title: "Corta la parte que aparece como un banner"
banner: "Banner"
uploading-banner: "Cargando un nuevo banner"
banner-updated: "Banner actualizado"
choose-banner: "Escoge un banner"
avatar-crop-title: "Corta la parte que aparece como un avatar"
avatar: "Avatar"
uploading-avatar: "Cargando un nuevo avatar"
avatar-updated: "Avatar actualizado"
choose-avatar: "Escoge una imagen de avatar"
desktop/views/components/activity.chart.vue: desktop/views/components/activity.chart.vue:
total: "Black ... Total" total: "Negro ... Total"
notes: "Blue ... Notes" notes: "Azul ... Notas"
replies: "Red ... Replies" replies: "Rojo ... Respuestas"
renotes: "Green ... Renotes" renotes: "Verde ... Republicaciones"
desktop/views/components/activity.vue: desktop/views/components/activity.vue:
title: "アクティビティ" title: "Actividad"
toggle: "表示を切り替え" toggle: "Alternar vistas"
desktop/views/components/calendar.vue: desktop/views/components/calendar.vue:
title: "{1} {2}" title: "{1} / {2}"
prev: "前の月" prev: "Mes anterior"
next: "次の月" next: "Próximo mes"
go: "クリックして時間遡行" go: "Click para navegar"
desktop/views/components/choose-file-from-drive-window.vue: desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "ファイル選択中" choose-file: "Escoger archivos"
upload: "PCからドライブにファイルをアップロード" upload: "Cargar archivos de tu dispositivo"
cancel: "キャンセル" cancel: "Cancelar"
ok: "決定" ok: "OK"
choose-prompt: "ファイルを選択" choose-prompt: "Escoger archivos"
desktop/views/components/choose-folder-from-drive-window.vue: desktop/views/components/choose-folder-from-drive-window.vue:
cancel: "キャンセル" cancel: "Cancelar"
ok: "決定" ok: "OK"
choose-prompt: "Escoge una Carpeta" choose-prompt: "Escoge una Carpeta"
desktop/views/components/crop-window.vue: desktop/views/components/crop-window.vue:
skip: "クロップをスキップ" skip: "Ignorar el cortado"
cancel: "Cancelar" cancel: "Cancelar"
ok: "OK" ok: "OK"
desktop/views/components/drive-window.vue: desktop/views/components/drive-window.vue:
@ -427,8 +442,8 @@ desktop/views/components/drive.file.vue:
banner: "Banner" banner: "Banner"
contextmenu: contextmenu:
rename: "Renombrar" rename: "Renombrar"
mark-as-sensitive: "閲覧注意に設定" mark-as-sensitive: "Marcar como 'sensible'"
unmark-as-sensitive: "閲覧注意を解除" unmark-as-sensitive: "Desmarcar como 'sensible'"
copy-url: "Copia la URL" copy-url: "Copia la URL"
download: "Descargar" download: "Descargar"
else-files: "Otros" else-files: "Otros"
@ -473,8 +488,8 @@ desktop/views/components/drive.vue:
upload: "Subir fichero" upload: "Subir fichero"
url-upload: "Subir desde una URL" url-upload: "Subir desde una URL"
desktop/views/components/media-image.vue: desktop/views/components/media-image.vue:
sensitive: "閲覧注意" sensitive: "El contenido es NSFW (no seguro para ver en el trabajo, 'not safe for work')"
click-to-show: "クリックして表示" click-to-show: "Click para mostrar"
desktop/views/components/media-video.vue: desktop/views/components/media-video.vue:
sensitive: "閲覧注意" sensitive: "閲覧注意"
click-to-show: "クリックして表示" click-to-show: "クリックして表示"
@ -526,6 +541,8 @@ desktop/views/components/notes.note.vue:
detail: "Mostrar detalles" detail: "Mostrar detalles"
private: "Esta publicación es privada" private: "Esta publicación es privada"
deleted: "Esta publicación ha sido borrada" deleted: "Esta publicación ha sido borrada"
hide: "隠す"
see-more: "もっと見る"
desktop/views/components/notes.vue: desktop/views/components/notes.vue:
error: "Error al cargar." error: "Error al cargar."
retry: "Reintentar" retry: "Reintentar"
@ -561,6 +578,7 @@ desktop/views/components/post-form.vue:
geolocation-alert: "Tu dispositivo no tiene soporte de geolocalización." geolocation-alert: "Tu dispositivo no tiene soporte de geolocalización."
error: "Error" error: "Error"
enter-username: "Por favor escribe un nombre de usuario..." enter-username: "Por favor escribe un nombre de usuario..."
annotations: "内容への注釈 (オプション)"
desktop/views/components/post-form-window.vue: desktop/views/components/post-form-window.vue:
note: "Nota nueva" note: "Nota nueva"
reply: "Responder" reply: "Responder"
@ -638,26 +656,26 @@ desktop/views/components/settings.vue:
version: "バージョン:" version: "バージョン:"
latest-version: "最新のバージョン:" latest-version: "最新のバージョン:"
update-checking: "アップデートを確認中" update-checking: "アップデートを確認中"
do-update: "アップデートを確認" do-update: "Chequear por actualizaciones"
update-settings: "詳細設定" update-settings: "Configuración avanzada"
prevent-update: "アップデートを延期する(非推奨)" prevent-update: "Posponer actualizaciones (no recomendado)"
prevent-update-desc: "この設定をオンにしてもアップデートが反映される場合があります。この設定はこのデバイスのみ有効です。" prevent-update-desc: "Incluso si activas esta configuración, algunas actualizaciones podrían aplicarse. Esta configuración está habilitada sólo para este dispositivo."
no-updates: "利用可能な更新はありません" no-updates: "No hay actualizaciones disponibles"
no-updates-desc: "お使いのMisskeyは最新です。" no-updates-desc: "Tu Misskey está actualizado"
update-available: "新しいバージョンが利用可能です" update-available: "Una nueva versión está disponible"
update-available-desc: "ページを再度読み込みすると更新が適用されます。" update-available-desc: "Las actualizaciones se aplicarán cuando actualices la página nuevamente."
advanced-settings: "高度な設定" advanced-settings: "Avanzado"
debug-mode: "デバッグモードを有効にする" debug-mode: "Habilitar modo de depuración"
debug-mode-desc: "この設定はブラウザに記憶されます。" debug-mode-desc: "Esta configuración se ha guardado en el navegador."
experimental: "実験的機能を有効にする" experimental: "Habilitar herramientas experimentales"
experimental-desc: "実験的機能を有効にするとMisskeyの動作が不安定になる可能性があります。この設定はブラウザに記憶されます。" experimental-desc: "Activar esto puede hacer que tu cliente de Misskey se vuelva inestable. La configuración se ha guardado en el navegador."
tools: "ツール" tools: "Herramientas"
task-manager: "タスクマネージャ" task-manager: "Navegador de tareas"
third-parties: "サードパーティ" third-parties: "Servicios externos"
desktop/views/components/settings.2fa.vue: desktop/views/components/settings.2fa.vue:
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。" intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
detail: "詳細..." detail: "Ver detalles..."
url: "https://www.google.co.jp/intl/ja/landing/2step/" url: "https://www.google.com/landing/2step/"
caution: "Si pierdes acceso al dispositivo, no podrás conectarte a Misskey." caution: "Si pierdes acceso al dispositivo, no podrás conectarte a Misskey."
register: "Registrar un dispositivo" register: "Registrar un dispositivo"
already-registered: "Un dispositivo ya fue registrado" already-registered: "Un dispositivo ya fue registrado"
@ -690,19 +708,19 @@ desktop/views/components/settings.password.vue:
reset: "Cambiar contraseña" reset: "Cambiar contraseña"
enter-current-password: "Ingresar contraseña actual" enter-current-password: "Ingresar contraseña actual"
enter-new-password: "Ingresar nueva contraseña" enter-new-password: "Ingresar nueva contraseña"
enter-new-password-again: "もう一度新しいパスワードを入力してください" enter-new-password-again: "Ingresar nueva contraseña de nuevo"
not-match: "新しいパスワードが一致しません" not-match: "Las nuevas contraseñas no se corresponden consigo mismas"
changed: "パスワードを変更しました" changed: "Contraseña actualizada"
desktop/views/components/settings.profile.vue: desktop/views/components/settings.profile.vue:
avatar: "アイコン" avatar: "Avatar"
choice-avatar: "画像を選択" choice-avatar: "Escoger una imagen"
name: "名前" name: "Nombre"
location: "場所" location: "Localización"
description: "自己紹介" description: "Descripción"
birthday: "誕生日" birthday: "Fecha de nacimiento"
save: "保存" save: "Perfil actualizado"
locked-account: "アカウントの保護" locked-account: "Protege tu cuenta"
is-locked: "投稿を非公開にする" is-locked: "Crear una nota privada"
other: "その他" other: "その他"
is-bot: "このアカウントはBotです" is-bot: "このアカウントはBotです"
is-cat: "このアカウントはCatです" is-cat: "このアカウントはCatです"
@ -722,6 +740,7 @@ desktop/views/components/timeline.vue:
list: "リスト" list: "リスト"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
desktop/views/components/ui.header.account.vue: desktop/views/components/ui.header.account.vue:
profile: "プロフィール" profile: "プロフィール"
drive: "ドライブ" drive: "ドライブ"
@ -750,6 +769,7 @@ desktop/views/components/received-follow-requests-window.vue:
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "リスト" title: "リスト"
create-list: "リストを作成" create-list: "リストを作成"
list-name: "リスト名"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "投稿" notes: "投稿"
following: "フォロー" following: "フォロー"
@ -832,6 +852,8 @@ desktop/views/pages/user/user.profile.vue:
mute: "ミュートする" mute: "ミュートする"
muted: "ミュートしています" muted: "ミュートしています"
unmute: "ミュート解除" unmute: "ミュート解除"
push-to-a-list: "リストに追加"
list-pushed: "{user}を{list}に追加しました。"
desktop/views/pages/user/user.header.vue: desktop/views/pages/user/user.header.vue:
posts: "投稿" posts: "投稿"
following: "フォロー" following: "フォロー"
@ -959,6 +981,7 @@ mobile/views/components/timeline.vue:
load-more: "もっと" load-more: "もっと"
mobile/views/components/ui.header.vue: mobile/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
mobile/views/components/ui.nav.vue: mobile/views/components/ui.nav.vue:
timeline: "タイムライン" timeline: "タイムライン"
notifications: "通知" notifications: "通知"
@ -1007,6 +1030,8 @@ mobile/views/pages/welcome.vue:
mobile/views/pages/widgets.vue: mobile/views/pages/widgets.vue:
dashboard: "ダッシュボード" dashboard: "ダッシュボード"
widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。" widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
add-widget: "追加"
customization-tips: "カスタマイズのヒント"
mobile/views/pages/widgets/activity.vue: mobile/views/pages/widgets/activity.vue:
activity: "アクティビティ" activity: "アクティビティ"
mobile/views/pages/share.vue: mobile/views/pages/share.vue:
@ -1045,6 +1070,7 @@ mobile/views/pages/settings/settings.profile.vue:
mobile/views/pages/search.vue: mobile/views/pages/search.vue:
search: "検索" search: "検索"
empty: "「{}」に関する投稿は見つかりませんでした。" empty: "「{}」に関する投稿は見つかりませんでした。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
mobile/views/pages/selectdrive.vue: mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択" select-file: "ファイルを選択"
mobile/views/pages/settings.vue: mobile/views/pages/settings.vue:
@ -1139,3 +1165,5 @@ docs:
name: "名前" name: "名前"
type: "型" type: "型"
description: "説明" description: "説明"
dev/views/index.vue:
manage-apps: "アプリの管理"

View File

@ -11,6 +11,8 @@ common:
warning: "<strong>Misskey n'utilise pas de publicités</strong>, mais quelques options peuvent être non disponibles ou fonctionneraient mal si un bloqueur de publicités est activé." warning: "<strong>Misskey n'utilise 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: "Permissions de l'application" application-authorization: "Permissions de l'application"
close: "Fermer" close: "Fermer"
do-not-copy-paste: "Veuillez ne pas entrer ou coller le code ici. Le compte peut être compromis."
got-it: "J'ai compris !"
customization-tips: customization-tips:
title: "Conseils de personnalisation" title: "Conseils de personnalisation"
paragraph1: "La personnalisation à la maison vous permet d'ajouter / supprimer, glisser et déposer et réorganiser les widgets." paragraph1: "La personnalisation à la maison vous permet d'ajouter / supprimer, glisser et déposer et réorganiser les widgets."
@ -26,7 +28,6 @@ common:
notified-by: "Notifié par {} :" notified-by: "Notifié par {} :"
reply-from: "Réponse de {} :" reply-from: "Réponse de {} :"
quoted-by: "Cité·e par {} :" quoted-by: "Cité·e par {} :"
name: "Misskey"
time: time:
unknown: "inconnu" unknown: "inconnu"
future: "future" future: "future"
@ -38,13 +39,8 @@ common:
weeks_ago: "Il y a {} semaines·s" weeks_ago: "Il y a {} semaines·s"
months_ago: "Il y a {} mois" months_ago: "Il y a {} mois"
years_ago: "Il y a {} an·s" years_ago: "Il y a {} an·s"
month-and-day: "{month}/{day}"
trash: "Corbeille" trash: "Corbeille"
date:
full-year: "Année "
month: "Mois"
day: "Jour"
hours: "heures"
minutes: "minutes"
weekday-short: weekday-short:
sunday: "D" sunday: "D"
monday: "L" monday: "L"
@ -70,6 +66,7 @@ common:
congrats: "Félicitations !" congrats: "Félicitations !"
angry: "En colère" angry: "En colère"
confused: "Confus" confused: "Confus"
rip: "RIP"
pudding: "Pudding" pudding: "Pudding"
note-placeholders: note-placeholders:
a: "Que faîtes vous maintenant ?" a: "Que faîtes vous maintenant ?"
@ -172,6 +169,9 @@ common/views/components/games/reversi/reversi.vue:
common/views/components/games/reversi/reversi.game.vue: common/views/components/games/reversi/reversi.game.vue:
surrender: "Se rendre" surrender: "Se rendre"
surrendered: "Par abandon" surrendered: "Par abandon"
is-llotheo: "石の少ない方が勝ち(ロセオ)"
looped-map: "Carte en boucle"
can-put-everywhere: "どこでも置けるモード"
common/views/components/games/reversi/reversi.index.vue: common/views/components/games/reversi/reversi.index.vue:
title: "Misskey Reversi" title: "Misskey Reversi"
sub-title: "Jouer à Reversi avec vos amis·es !" sub-title: "Jouer à Reversi avec vos amis·es !"
@ -206,7 +206,7 @@ common/views/components/games/reversi/reversi.room.vue:
ready: "Prêt" ready: "Prêt"
cancel-ready: "Annuler \"Je suis prêt\"" cancel-ready: "Annuler \"Je suis prêt\""
common/views/components/connect-failed.vue: common/views/components/connect-failed.vue:
title: "Impossible de se connecter au server." title: "Échec de connexion au serveur"
description: "Il y a soit un problème avec votre connexion internet, soit le serveur est hors-ligne ou en maintenance. Veuillez {ressayer} plus tard." description: "Il y a soit un problème avec votre connexion internet, soit le serveur est hors-ligne ou en maintenance. Veuillez {ressayer} plus tard."
thanks: "On vous remercie d'utiliser Misskey." thanks: "On vous remercie d'utiliser Misskey."
troubleshoot: "dépanner" troubleshoot: "dépanner"
@ -216,7 +216,7 @@ common/views/components/connect-failed.troubleshooter.vue:
checking-network: "Vérification de la connexion au réseau" checking-network: "Vérification de la connexion au réseau"
internet: "Connexion Internet" internet: "Connexion Internet"
checking-internet: "Vérification de la connexion internet" checking-internet: "Vérification de la connexion internet"
server: "Connexion au server" server: "Connexion au serveur"
checking-server: "Vérification de la connexion au serveur" checking-server: "Vérification de la connexion au serveur"
finding: "Recherche d'un problème" finding: "Recherche d'un problème"
no-network: "Aucune connexion au réseau" no-network: "Aucune connexion au réseau"
@ -224,9 +224,9 @@ common/views/components/connect-failed.troubleshooter.vue:
no-internet: "Aucune connexion internet." no-internet: "Aucune connexion internet."
no-internet-desc: "Veuillez vérifier que vous êtes bien connecté à internet." no-internet-desc: "Veuillez vérifier que vous êtes bien connecté à internet."
no-server: "Impossible de se connecter au serveur" no-server: "Impossible de se connecter au serveur"
no-server-desc: "Votre connexion est OK, mais il a été impossible de vous connecter au serveur de Misskey. Il y a des chances que le serveur soit hors-ligne ou en maintenance, veuillez ressayer plus tard." no-server-desc: "Votre connexion semble correcte, mais il a été impossible de vous connecter au serveur de Misskey. Il se peut que le serveur soit hors-ligne ou en maintenance, veuillez ressayer plus tard."
success: "Connexion au serveur de Misskey reussie!" success: "Connexion au serveur de Misskey réussie !"
success-desc: "La connexion au serveur a été reussie. Veuillez recharger la page." success-desc: "Succès de la connexion au serveur de Misskey. Veuillez recharger la page."
flush: "Vider le cache" flush: "Vider le cache"
set-version: "Choisissez une version" set-version: "Choisissez une version"
common/views/components/messaging.vue: common/views/components/messaging.vue:
@ -239,11 +239,13 @@ common/views/components/messaging-room.vue:
no-history: "Il n'y a pas plus d'historique" no-history: "Il n'y a pas plus d'historique"
resize-form: "Faites glisser pour redimensionner" resize-form: "Faites glisser pour redimensionner"
new-message: "Nouveau message" new-message: "Nouveau message"
only-one-file-attached: "Un seul fichier uniquement peut être joint au message"
common/views/components/messaging-room.form.vue: common/views/components/messaging-room.form.vue:
input-message-here: "Tapez ici votre message" input-message-here: "Tapez ici votre message"
send: "Envoyer" send: "Envoyer"
attach-from-local: "Joindre un fichier depuis votre PC" attach-from-local: "Joindre un fichier depuis votre PC"
attach-from-drive: "Joindre un fichier depuis votre Drive" attach-from-drive: "Joindre un fichier depuis votre Drive"
only-one-file-attached: "Un seul fichier uniquement peut être joint au message"
common/views/components/messaging-room.message.vue: common/views/components/messaging-room.message.vue:
is-read: "Lu" is-read: "Lu"
deleted: "Ce message a été supprimé" deleted: "Ce message a été supprimé"
@ -283,6 +285,8 @@ common/views/components/signin.vue:
token: "Token" token: "Token"
signing-in: "Connexion...." signing-in: "Connexion...."
signin: "Se connecter" signin: "Se connecter"
or: "Ou"
signin-with-twitter: "Se connecter via Twitter"
common/views/components/signup.vue: common/views/components/signup.vue:
username: "Nom d'utilisateur" username: "Nom d'utilisateur"
checking: "Vérification" checking: "Vérification"
@ -290,10 +294,10 @@ common/views/components/signup.vue:
unavailable: "Non disponible" unavailable: "Non disponible"
error: "Erreur de réseau" error: "Erreur de réseau"
invalid-format: "Utilisez seulement des lettres, nombres et/ou -." invalid-format: "Utilisez seulement des lettres, nombres et/ou -."
too-short: "Veuillez taper au moins un charactère!" too-short: "Veuillez saisir au moins un caractère !"
too-long: "Veuillez entrer au maximum 20 charactères." too-long: "Veuillez entrer au maximum 20 caractères."
password: "Mot de Passe" password: "Mot de Passe"
password-placeholder: "Nous recommendons au moins 8 charactères." password-placeholder: "Nous recommendons au moins 8 caractères."
weak-password: "Faible" weak-password: "Faible"
normal-password: "Moyen" normal-password: "Moyen"
strong-password: "Fort" strong-password: "Fort"
@ -303,21 +307,21 @@ common/views/components/signup.vue:
password-not-matched: "Les mots de passes ne correspondent pas." password-not-matched: "Les mots de passes ne correspondent pas."
recaptcha: "Vérifier" recaptcha: "Vérifier"
create: "Créer un compte" create: "Créer un compte"
some-error: "La création de compte a échoué. Veuillez ressayer." some-error: "La création du compte a échoué. Veuillez réessayer."
common/views/components/special-message.vue: common/views/components/special-message.vue:
new-year: "Bonne année !" new-year: "Bonne année !"
christmas: "Joyeux Noël !" christmas: "Joyeux Noël !"
common/views/components/stream-indicator.vue: common/views/components/stream-indicator.vue:
connecting: "Connexion en cours" connecting: "Connexion en cours"
reconnecting: "Re-connexion en cours" reconnecting: "Reconnexion en cours"
connected: "Connecté" connected: "Connecté"
common/views/components/twitter-setting.vue: common/views/components/twitter-setting.vue:
description: "Si vous liez votre compte Twitter à votre compte Misskey, vous verrez ensuite votre compte Twitter s'afficher sur votre profile, vous aurez aussi la possibilité de vous connecter à Misskey en utilisant votre compte Twitter." description: "Si vous liez votre compte Twitter à votre compte Misskey, vous verrez ensuite votre compte Twitter s'afficher sur votre profile, vous aurez aussi la possibilité de vous connecter à Misskey en utilisant votre compte Twitter."
connected-to: "Vous êtes connecté à ce compte" connected-to: "Vous êtes connecté à ce compte Twitter"
detail: "Detail..." detail: "Détails …"
reconnect: "Reconnecter" reconnect: "Reconnecter"
connect: "Lier votre compte Twitter" connect: "Lier votre compte Twitter"
disconnect: "Deconnecter" disconnect: "Déconnecter"
common/views/components/uploader.vue: common/views/components/uploader.vue:
waiting: "En attente" waiting: "En attente"
common/views/components/visibility-chooser.vue: common/views/components/visibility-chooser.vue:
@ -327,11 +331,11 @@ common/views/components/visibility-chooser.vue:
followers: "Abonné·e·s" followers: "Abonné·e·s"
followers-desc: "Publier à vos abonné·e·s uniquement" followers-desc: "Publier à vos abonné·e·s uniquement"
specified: "Direct" specified: "Direct"
specified-desc: "Publier aux utilisateurs mentionnés" specified-desc: "Publier aux utilisateurs·trices mentionné·es"
private: "Privé" private: "Privé"
common/views/widgets/broadcast.vue: common/views/widgets/broadcast.vue:
fetching: "Récuperation" fetching: "Récuperation"
no-broadcasts: "No broadcasts" no-broadcasts: "Aucune annonce"
have-a-nice-day: "Passez une bonne journée !" have-a-nice-day: "Passez une bonne journée !"
next: "Suivant" next: "Suivant"
common/views/widgets/calendar.vue: common/views/widgets/calendar.vue:
@ -343,13 +347,13 @@ common/views/widgets/calendar.vue:
this-year: "Cette année :" this-year: "Cette année :"
common/views/widgets/donation.vue: common/views/widgets/donation.vue:
title: "Dons" title: "Dons"
text: "Toutes les depences pour couvrir les frais de Misskey sortent directement de notre poche. Nous ne recevons pas d'argent, si vous pouvez nous faire dons d'argent, on vous serait eternellement reconnaissant. Si vous êtes intéressés veuilles contacter {}. Merci pour votre contribution!" text: "Les frais pour faire fonctionner Misskey sortent directement de notre poche. Nous ne recevons pas d'argent issu de la publicité, si vous pouvez nous faire des dons, on vous serait éternellement reconnaissants. Si vous êtes intéressé·es veuillez contacter {}. Merci pour votre contribution !"
common/views/widgets/photo-stream.vue: common/views/widgets/photo-stream.vue:
title: "Flux de photo" title: "Flux de photo"
no-photos: "Pas de photos" no-photos: "Pas de photos"
common/views/widgets/posts-monitor.vue: common/views/widgets/posts-monitor.vue:
title: "Graph des publications" title: "Graph des publications"
toggle: "Basculer les vues" toggle: "Basculer entre les vues"
common/views/widgets/hashtags.vue: common/views/widgets/hashtags.vue:
title: "Étiquettes" title: "Étiquettes"
count: "{} utilisateurs mentionnés" count: "{} utilisateurs mentionnés"
@ -370,7 +374,7 @@ common/views/widgets/tips.vue:
tips-line2: "<kbd>p</kbd>または<kbd>n</kbd>で投稿フォームを開きます" tips-line2: "<kbd>p</kbd>または<kbd>n</kbd>で投稿フォームを開きます"
tips-line3: "Vous pouvez glisser et déposer des fichiers sur la fenêtre de la note" 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-line4: "Vous pouvez coller des images à partir du presse-papier sur la fenêtre de la note"
tips-line5: "ドライブにファイルをドラッグ&ドロップしてアップロードできます" tips-line5: "Vous pouvez téléverser des fichiers sur le Drive en faisant un glisser/déplacer"
tips-line6: "ドライブでファイルをドラッグしてフォルダ移動できます" tips-line6: "ドライブでファイルをドラッグしてフォルダ移動できます"
tips-line7: "ドライブでフォルダをドラッグしてフォルダ移動できます" tips-line7: "ドライブでフォルダをドラッグしてフォルダ移動できます"
tips-line8: "Vous pouvez personnaliser l'Accueil via les paramètres" tips-line8: "Vous pouvez personnaliser l'Accueil via les paramètres"
@ -379,7 +383,7 @@ common/views/widgets/tips.vue:
tips-line11: "Vous pouvez épingler des notes sur votre page en appuyant sur \"…\"" tips-line11: "Vous pouvez épingler des notes sur votre page en appuyant sur \"…\""
tips-line13: "Tous les fichiers attachés à cette publication sont sauvegardés dans le Drive" tips-line13: "Tous les fichiers attachés à cette publication sont sauvegardés dans le Drive"
tips-line14: "ホームのカスタマイズ中、ウィジェットを右クリックしてデザインを変更できます" tips-line14: "ホームのカスタマイズ中、ウィジェットを右クリックしてデザインを変更できます"
tips-line17: "「**」でテキストを囲むと**強調表示**されます" tips-line17: "Vous pouvez mettre un texte en surbrillance en le mettant entre ** **"
tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます" tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています" tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
tips-line21: "Vous pouvez aussi utiliser l'API pour développer des Bots." tips-line21: "Vous pouvez aussi utiliser l'API pour développer des Bots."
@ -392,6 +396,17 @@ common/views/pages/follow.vue:
follow: "Suivre" follow: "Suivre"
request-pending: "Demande d'abonnement en attente" request-pending: "Demande d'abonnement en attente"
follow-request: "Demande d'abonnement" follow-request: "Demande d'abonnement"
desktop:
banner-crop-title: "Découpez la partie qui apparaîtra comme une bannière"
banner: "Bannière"
uploading-banner: "Téléversement d'une nouvelle bannière"
banner-updated: "La bannière est mise à jour"
choose-banner: "Choisir une bannière"
avatar-crop-title: "Découpez la partie qui apparaîtra dans l'avatar"
avatar: "Avatar"
uploading-avatar: "Téléversement du nouvel avatar"
avatar-updated: "L'avatar est mis à jour"
choose-avatar: "Choisir un avatar"
desktop/views/components/activity.chart.vue: desktop/views/components/activity.chart.vue:
total: "Noirs ... Total" total: "Noirs ... Total"
notes: "Bleu ... Notes" notes: "Bleu ... Notes"
@ -526,6 +541,8 @@ desktop/views/components/notes.note.vue:
detail: "Afficher les détails" detail: "Afficher les détails"
private: "cette publication est privée" private: "cette publication est privée"
deleted: "cette publication a été supprimée" deleted: "cette publication a été supprimée"
hide: "Masquer"
see-more: "Voir plus"
desktop/views/components/notes.vue: desktop/views/components/notes.vue:
error: "Échec du chargement." error: "Échec du chargement."
retry: "Réessayer" retry: "Réessayer"
@ -561,6 +578,7 @@ desktop/views/components/post-form.vue:
geolocation-alert: "Votre appareil ne prend pas en charge les services de localisation" geolocation-alert: "Votre appareil ne prend pas en charge les services de localisation"
error: "Erreur" error: "Erreur"
enter-username: "Saisir un nom d'utilisateur …" enter-username: "Saisir un nom d'utilisateur …"
annotations: "内容への注釈 (オプション)"
desktop/views/components/post-form-window.vue: desktop/views/components/post-form-window.vue:
note: "Nouvelle note" note: "Nouvelle note"
reply: "Répondre" reply: "Répondre"
@ -607,7 +625,7 @@ desktop/views/components/settings.vue:
circle-icons: "Utiliser des icônes circulaires" circle-icons: "Utiliser des icônes circulaires"
gradient-window-header: "Utiliser les dégradés sur la barre de titre de la fenêtre" gradient-window-header: "Utiliser les dégradés sur la barre de titre de la fenêtre"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する" post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
show-reply-target: "リプライ先を表示する" show-reply-target: "Afficher les réponses"
show-my-renotes: "Afficher mes republications dans le fil" show-my-renotes: "Afficher mes republications dans le fil"
show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する" show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
show-maps: "Afficher la carte" show-maps: "Afficher la carte"
@ -722,6 +740,7 @@ desktop/views/components/timeline.vue:
list: "Listes" list: "Listes"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "Content de vous revoir !" welcome-back: "Content de vous revoir !"
adjective: "さん"
desktop/views/components/ui.header.account.vue: desktop/views/components/ui.header.account.vue:
profile: "Votre profil" profile: "Votre profil"
drive: "Drive" drive: "Drive"
@ -750,6 +769,7 @@ desktop/views/components/received-follow-requests-window.vue:
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "Listes de l'utilisateur" title: "Listes de l'utilisateur"
create-list: "Créer une liste" create-list: "Créer une liste"
list-name: "Nom de la liste"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "Publications" notes: "Publications"
following: "Abonné à" following: "Abonné à"
@ -801,7 +821,7 @@ desktop/views/pages/search.vue:
desktop/views/pages/share.vue: desktop/views/pages/share.vue:
share-with: "Partager avec {}" share-with: "Partager avec {}"
desktop/views/pages/tag.vue: desktop/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。" no-posts-found: "Pas de message avec un hashtag {} trouvé."
desktop/views/pages/user-list.users.vue: desktop/views/pages/user-list.users.vue:
users: "Utilisateurs" users: "Utilisateurs"
add-user: "Ajouter un utilisateur" add-user: "Ajouter un utilisateur"
@ -826,12 +846,14 @@ desktop/views/pages/user/user.photos.vue:
no-photos: "Pas de photos" no-photos: "Pas de photos"
desktop/views/pages/user/user.profile.vue: desktop/views/pages/user/user.profile.vue:
follows-you: "Vous suis" follows-you: "Vous suis"
stalk: "ストークする" stalk: "Traquer"
stalking: "ストーキングしています" stalking: "ストーキングしています"
unstalk: "ストーク解除" unstalk: "ストーク解除"
mute: "Mettre en sourdine" mute: "Mettre en sourdine"
muted: "Muting" muted: "Muting"
unmute: "Enlever la sourdine" unmute: "Enlever la sourdine"
push-to-a-list: "Ajouter à la liste"
list-pushed: "Vous avez ajouté {user} à la liste {list}."
desktop/views/pages/user/user.header.vue: desktop/views/pages/user/user.header.vue:
posts: "Notes" posts: "Notes"
following: "Suit" following: "Suit"
@ -874,11 +896,11 @@ mobile/views/components/drive.vue:
load-more: "Charger plus" load-more: "Charger plus"
nothing-in-drive: "Rien" nothing-in-drive: "Rien"
folder-is-empty: "Ce dossier est vide" folder-is-empty: "Ce dossier est vide"
prompt: "何をしますか?(数字を入力してください): <1 → ファイルをアップロード | 2 → ファイルをURLでアップロード | 3 → フォルダ作成 | 4 → このフォルダ名を変更 | 5 → このフォルダを移動 | 6 → このフォルダを削除>" prompt: "Que veux-tu faire ? (Entrez un nombre): <1 → Télécharger le fichier | 2 → Télécharger le fichier avec l'URL | 3 → Créer le dossier | 4 → Modifier le nom du dossier | 5 → Déplacer ce dossier | 6 → Supprimer ce dossier >"
deletion-alert: "Désolé ! La suppression dun dossier nest pas encore implémentée." deletion-alert: "Désolé ! La suppression dun dossier nest pas encore implémentée."
folder-name: "Nom du dossier" folder-name: "Nom du dossier"
root-rename-alert: "現在いる場所はルートで、フォルダではないため名前の変更はできません。名前を変更したいフォルダに移動してからやってください。" root-rename-alert: "L'emplacement actuel est la racine, pas le dossier, vous ne pouvez donc pas le renommer. Veuillez vous déplacer dans le dossier dont vous souhaitez modifier le nom."
root-move-alert: "現在いる場所はルートで、フォルダではないため移動はできません。移動したいフォルダに移動してからやってください。" root-move-alert: "L'emplacement actuel est la racine, ce n'est pas un dossier et il ne peut pas être déplacé. Veuillez vous déplacer dans le dossier que vous souhaitez déplacer."
url-prompt: "URL du fichier que vous souhaitez téléverser" url-prompt: "URL du fichier que vous souhaitez téléverser"
uploading: "アップロードをリクエストしました。アップロードが完了するまで時間がかかる場合があります。" uploading: "アップロードをリクエストしました。アップロードが完了するまで時間がかかる場合があります。"
mobile/views/components/drive-file-detail.vue: mobile/views/components/drive-file-detail.vue:
@ -958,7 +980,8 @@ mobile/views/components/timeline.vue:
empty: "Pas de notes" empty: "Pas de notes"
load-more: "Afficher plus" load-more: "Afficher plus"
mobile/views/components/ui.header.vue: mobile/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "Content de vous revoir ! "
adjective: "さん"
mobile/views/components/ui.nav.vue: mobile/views/components/ui.nav.vue:
timeline: "Fil d'actualité" timeline: "Fil d'actualité"
notifications: "Notifications" notifications: "Notifications"
@ -1001,12 +1024,14 @@ mobile/views/pages/home.vue:
hybrid: "Social" hybrid: "Social"
global: "Global" global: "Global"
mobile/views/pages/tag.vue: mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。" no-posts-found: "Pas de message avec un hashtag {} trouvé."
mobile/views/pages/welcome.vue: mobile/views/pages/welcome.vue:
signup: "S'enregistrer" signup: "S'enregistrer"
mobile/views/pages/widgets.vue: mobile/views/pages/widgets.vue:
dashboard: "Tableau de bord" dashboard: "Tableau de bord"
widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。" widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
add-widget: "Ajouter"
customization-tips: "Conseils de personnalisation"
mobile/views/pages/widgets/activity.vue: mobile/views/pages/widgets/activity.vue:
activity: "Activité" activity: "Activité"
mobile/views/pages/share.vue: mobile/views/pages/share.vue:
@ -1045,6 +1070,7 @@ mobile/views/pages/settings/settings.profile.vue:
mobile/views/pages/search.vue: mobile/views/pages/search.vue:
search: "Chercher" search: "Chercher"
empty: "Aucun message trouvé pour '{}' " empty: "Aucun message trouvé pour '{}' "
not-found: "Aucun post pour {} n'a été trouvé."
mobile/views/pages/selectdrive.vue: mobile/views/pages/selectdrive.vue:
select-file: "Choisissez un fichier" select-file: "Choisissez un fichier"
mobile/views/pages/settings.vue: mobile/views/pages/settings.vue:
@ -1139,3 +1165,5 @@ docs:
name: "Nom" name: "Nom"
type: "Type" type: "Type"
description: "Description" description: "Description"
dev/views/index.vue:
manage-apps: "Gestion des applications"

View File

@ -11,6 +11,8 @@ common:
warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。" warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
application-authorization: "アプリの連携" application-authorization: "アプリの連携"
close: "閉じる" close: "閉じる"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
got-it: "わかった"
customization-tips: customization-tips:
title: "カスタマイズのヒント" title: "カスタマイズのヒント"
paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。" paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。"
@ -26,7 +28,6 @@ common:
notified-by: "{}さんから" notified-by: "{}さんから"
reply-from: "{}さんから返信:" reply-from: "{}さんから返信:"
quoted-by: "{}さんが引用:" quoted-by: "{}さんが引用:"
name: "Misskey"
time: time:
unknown: "なぞのじかん" unknown: "なぞのじかん"
future: "未来" future: "未来"
@ -38,13 +39,8 @@ common:
weeks_ago: "{}週間前" weeks_ago: "{}週間前"
months_ago: "{}ヶ月前" months_ago: "{}ヶ月前"
years_ago: "{}年前" years_ago: "{}年前"
month-and-day: "{month}月 {day}日"
trash: "ゴミ箱" trash: "ゴミ箱"
date:
full-year: "年"
month: "月"
day: "日"
hours: "時"
minutes: "分"
weekday-short: weekday-short:
sunday: "日" sunday: "日"
monday: "月" monday: "月"
@ -70,6 +66,7 @@ common:
congrats: "おめでとう" congrats: "おめでとう"
angry: "おこ" angry: "おこ"
confused: "こまこまのこまり" confused: "こまこまのこまり"
rip: "RIP"
pudding: "Pudding" pudding: "Pudding"
note-placeholders: note-placeholders:
a: "今どうしてる?" a: "今どうしてる?"
@ -172,6 +169,9 @@ common/views/components/games/reversi/reversi.vue:
common/views/components/games/reversi/reversi.game.vue: common/views/components/games/reversi/reversi.game.vue:
surrender: "投了" surrender: "投了"
surrendered: "投了により" surrendered: "投了により"
is-llotheo: "石の少ない方が勝ち(ロセオ)"
looped-map: "ループマップ"
can-put-everywhere: "どこでも置けるモード"
common/views/components/games/reversi/reversi.index.vue: common/views/components/games/reversi/reversi.index.vue:
title: "Misskey Reversi" title: "Misskey Reversi"
sub-title: "他のMisskeyユーザーとリバーシで対戦しよう" sub-title: "他のMisskeyユーザーとリバーシで対戦しよう"
@ -239,11 +239,13 @@ common/views/components/messaging-room.vue:
no-history: "これより過去の履歴はありません" no-history: "これより過去の履歴はありません"
resize-form: "ドラッグしてフォームの広さを調整" resize-form: "ドラッグしてフォームの広さを調整"
new-message: "新しいメッセージがあります" new-message: "新しいメッセージがあります"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.form.vue: common/views/components/messaging-room.form.vue:
input-message-here: "ここにメッセージを入力" input-message-here: "ここにメッセージを入力"
send: "送信" send: "送信"
attach-from-local: "PCからファイルを添付する" attach-from-local: "PCからファイルを添付する"
attach-from-drive: "ドライブからファイルを添付する" attach-from-drive: "ドライブからファイルを添付する"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.message.vue: common/views/components/messaging-room.message.vue:
is-read: "既読" is-read: "既読"
deleted: "このメッセージは削除されました" deleted: "このメッセージは削除されました"
@ -283,6 +285,8 @@ common/views/components/signin.vue:
token: "トークン" token: "トークン"
signing-in: "やってます..." signing-in: "やってます..."
signin: "サインイン" signin: "サインイン"
or: "または"
signin-with-twitter: "Twitterでログイン"
common/views/components/signup.vue: common/views/components/signup.vue:
username: "ユーザー名" username: "ユーザー名"
checking: "確認しています..." checking: "確認しています..."
@ -392,6 +396,17 @@ common/views/pages/follow.vue:
follow: "フォロー" follow: "フォロー"
request-pending: "フォロー許可待ち" request-pending: "フォロー許可待ち"
follow-request: "フォロー申請" follow-request: "フォロー申請"
desktop:
banner-crop-title: "バナーとして表示する部分を選択"
banner: "バナー"
uploading-banner: "新しいバナーをアップロードしています"
banner-updated: "バナーを更新しました"
choose-banner: "バナーにする画像を選択"
avatar-crop-title: "アバターとして表示する部分を選択"
avatar: "アバター"
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
desktop/views/components/activity.chart.vue: desktop/views/components/activity.chart.vue:
total: "Black ... Total" total: "Black ... Total"
notes: "Blue ... Notes" notes: "Blue ... Notes"
@ -526,6 +541,8 @@ desktop/views/components/notes.note.vue:
detail: "詳細" detail: "詳細"
private: "この投稿は非公開です" private: "この投稿は非公開です"
deleted: "この投稿は削除されました" deleted: "この投稿は削除されました"
hide: "隠す"
see-more: "もっと見る"
desktop/views/components/notes.vue: desktop/views/components/notes.vue:
error: "読み込みに失敗しました。" error: "読み込みに失敗しました。"
retry: "リトライ" retry: "リトライ"
@ -561,6 +578,7 @@ desktop/views/components/post-form.vue:
geolocation-alert: "お使いの端末は位置情報に対応していません" geolocation-alert: "お使いの端末は位置情報に対応していません"
error: "エラー" error: "エラー"
enter-username: "ユーザー名を入力してください" enter-username: "ユーザー名を入力してください"
annotations: "内容への注釈 (オプション)"
desktop/views/components/post-form-window.vue: desktop/views/components/post-form-window.vue:
note: "新規投稿" note: "新規投稿"
reply: "返信" reply: "返信"
@ -722,6 +740,7 @@ desktop/views/components/timeline.vue:
list: "リスト" list: "リスト"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
desktop/views/components/ui.header.account.vue: desktop/views/components/ui.header.account.vue:
profile: "プロフィール" profile: "プロフィール"
drive: "ドライブ" drive: "ドライブ"
@ -750,6 +769,7 @@ desktop/views/components/received-follow-requests-window.vue:
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "リスト" title: "リスト"
create-list: "リストを作成" create-list: "リストを作成"
list-name: "リスト名"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "投稿" notes: "投稿"
following: "フォロー" following: "フォロー"
@ -832,6 +852,8 @@ desktop/views/pages/user/user.profile.vue:
mute: "ミュートする" mute: "ミュートする"
muted: "ミュートしています" muted: "ミュートしています"
unmute: "ミュート解除" unmute: "ミュート解除"
push-to-a-list: "リストに追加"
list-pushed: "{user}を{list}に追加しました。"
desktop/views/pages/user/user.header.vue: desktop/views/pages/user/user.header.vue:
posts: "投稿" posts: "投稿"
following: "フォロー" following: "フォロー"
@ -959,6 +981,7 @@ mobile/views/components/timeline.vue:
load-more: "もっと" load-more: "もっと"
mobile/views/components/ui.header.vue: mobile/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
mobile/views/components/ui.nav.vue: mobile/views/components/ui.nav.vue:
timeline: "タイムライン" timeline: "タイムライン"
notifications: "通知" notifications: "通知"
@ -1007,6 +1030,8 @@ mobile/views/pages/welcome.vue:
mobile/views/pages/widgets.vue: mobile/views/pages/widgets.vue:
dashboard: "ダッシュボード" dashboard: "ダッシュボード"
widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。" widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
add-widget: "追加"
customization-tips: "カスタマイズのヒント"
mobile/views/pages/widgets/activity.vue: mobile/views/pages/widgets/activity.vue:
activity: "アクティビティ" activity: "アクティビティ"
mobile/views/pages/share.vue: mobile/views/pages/share.vue:
@ -1045,6 +1070,7 @@ mobile/views/pages/settings/settings.profile.vue:
mobile/views/pages/search.vue: mobile/views/pages/search.vue:
search: "検索" search: "検索"
empty: "「{}」に関する投稿は見つかりませんでした。" empty: "「{}」に関する投稿は見つかりませんでした。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
mobile/views/pages/selectdrive.vue: mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択" select-file: "ファイルを選択"
mobile/views/pages/settings.vue: mobile/views/pages/settings.vue:
@ -1139,3 +1165,5 @@ docs:
name: "名前" name: "名前"
type: "型" type: "型"
description: "説明" description: "説明"
dev/views/index.vue:
manage-apps: "アプリの管理"

View File

@ -11,6 +11,8 @@ common:
warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。" warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
application-authorization: "アプリの連携" application-authorization: "アプリの連携"
close: "閉じる" close: "閉じる"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
got-it: "わかった"
customization-tips: customization-tips:
title: "カスタマイズのヒント" title: "カスタマイズのヒント"
paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。" paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。"
@ -26,7 +28,6 @@ common:
notified-by: "{}さんから" notified-by: "{}さんから"
reply-from: "{}さんから返信:" reply-from: "{}さんから返信:"
quoted-by: "{}さんが引用:" quoted-by: "{}さんが引用:"
name: "Misskey"
time: time:
unknown: "なぞのじかん" unknown: "なぞのじかん"
future: "未来" future: "未来"
@ -38,16 +39,10 @@ common:
weeks_ago: "{}週間前" weeks_ago: "{}週間前"
months_ago: "{}ヶ月前" months_ago: "{}ヶ月前"
years_ago: "{}年前" years_ago: "{}年前"
month-and-day: "{month}月 {day}日"
trash: "ゴミ箱" trash: "ゴミ箱"
date:
full-year: "年"
month: "月"
day: "日"
hours: "時"
minutes: "分"
weekday-short: weekday-short:
sunday: "日" sunday: "日"
monday: "月" monday: "月"
@ -75,6 +70,7 @@ common:
congrats: "おめでとう" congrats: "おめでとう"
angry: "おこ" angry: "おこ"
confused: "こまこまのこまり" confused: "こまこまのこまり"
rip: "RIP"
pudding: "Pudding" pudding: "Pudding"
note-placeholders: note-placeholders:
@ -186,6 +182,9 @@ common/views/components/games/reversi/reversi.vue:
common/views/components/games/reversi/reversi.game.vue: common/views/components/games/reversi/reversi.game.vue:
surrender: "投了" surrender: "投了"
surrendered: "投了により" surrendered: "投了により"
is-llotheo: "石の少ない方が勝ち(ロセオ)"
looped-map: "ループマップ"
can-put-everywhere: "どこでも置けるモード"
common/views/components/games/reversi/reversi.index.vue: common/views/components/games/reversi/reversi.index.vue:
title: "Misskey Reversi" title: "Misskey Reversi"
@ -259,12 +258,14 @@ common/views/components/messaging-room.vue:
no-history: "これより過去の履歴はありません" no-history: "これより過去の履歴はありません"
resize-form: "ドラッグしてフォームの広さを調整" resize-form: "ドラッグしてフォームの広さを調整"
new-message: "新しいメッセージがあります" new-message: "新しいメッセージがあります"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.form.vue: common/views/components/messaging-room.form.vue:
input-message-here: "ここにメッセージを入力" input-message-here: "ここにメッセージを入力"
send: "送信" send: "送信"
attach-from-local: "PCからファイルを添付する" attach-from-local: "PCからファイルを添付する"
attach-from-drive: "ドライブからファイルを添付する" attach-from-drive: "ドライブからファイルを添付する"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.message.vue: common/views/components/messaging-room.message.vue:
is-read: "既読" is-read: "既読"
@ -311,6 +312,8 @@ common/views/components/signin.vue:
token: "トークン" token: "トークン"
signing-in: "やってます..." signing-in: "やってます..."
signin: "サインイン" signin: "サインイン"
or: "または"
signin-with-twitter: "Twitterでログイン"
common/views/components/signup.vue: common/views/components/signup.vue:
username: "ユーザー名" username: "ユーザー名"
@ -438,6 +441,18 @@ common/views/pages/follow.vue:
request-pending: "フォロー許可待ち" request-pending: "フォロー許可待ち"
follow-request: "フォロー申請" follow-request: "フォロー申請"
desktop:
banner-crop-title: "バナーとして表示する部分を選択"
banner: "バナー"
uploading-banner: "新しいバナーをアップロードしています"
banner-updated: "バナーを更新しました"
choose-banner: "バナーにする画像を選択"
avatar-crop-title: "アバターとして表示する部分を選択"
avatar: "アバター"
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
desktop/views/components/activity.chart.vue: desktop/views/components/activity.chart.vue:
total: "Black ... Total" total: "Black ... Total"
notes: "Blue ... Notes" notes: "Blue ... Notes"
@ -597,6 +612,8 @@ desktop/views/components/notes.note.vue:
detail: "詳細" detail: "詳細"
private: "この投稿は非公開です" private: "この投稿は非公開です"
deleted: "この投稿は削除されました" deleted: "この投稿は削除されました"
hide: "隠す"
see-more: "もっと見る"
desktop/views/components/notes.vue: desktop/views/components/notes.vue:
error: "読み込みに失敗しました。" error: "読み込みに失敗しました。"
@ -635,6 +652,7 @@ desktop/views/components/post-form.vue:
geolocation-alert: "お使いの端末は位置情報に対応していません" geolocation-alert: "お使いの端末は位置情報に対応していません"
error: "エラー" error: "エラー"
enter-username: "ユーザー名を入力してください" enter-username: "ユーザー名を入力してください"
annotations: "内容への注釈 (オプション)"
desktop/views/components/post-form-window.vue: desktop/views/components/post-form-window.vue:
note: "新規投稿" note: "新規投稿"
@ -823,6 +841,7 @@ desktop/views/components/timeline.vue:
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
desktop/views/components/ui.header.account.vue: desktop/views/components/ui.header.account.vue:
profile: "プロフィール" profile: "プロフィール"
@ -855,11 +874,10 @@ desktop/views/components/received-follow-requests-window.vue:
accept: "承認" accept: "承認"
reject: "拒否" reject: "拒否"
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "リスト" title: "リスト"
create-list: "リストを作成" create-list: "リストを作成"
list-name: "リスト名"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "投稿" notes: "投稿"
@ -964,6 +982,8 @@ desktop/views/pages/user/user.profile.vue:
mute: "ミュートする" mute: "ミュートする"
muted: "ミュートしています" muted: "ミュートしています"
unmute: "ミュート解除" unmute: "ミュート解除"
push-to-a-list: "リストに追加"
list-pushed: "{user}を{list}に追加しました。"
desktop/views/pages/user/user.header.vue: desktop/views/pages/user/user.header.vue:
posts: "投稿" posts: "投稿"
@ -1119,6 +1139,7 @@ mobile/views/components/timeline.vue:
mobile/views/components/ui.header.vue: mobile/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
mobile/views/components/ui.nav.vue: mobile/views/components/ui.nav.vue:
timeline: "タイムライン" timeline: "タイムライン"
@ -1180,6 +1201,8 @@ mobile/views/pages/welcome.vue:
mobile/views/pages/widgets.vue: mobile/views/pages/widgets.vue:
dashboard: "ダッシュボード" dashboard: "ダッシュボード"
widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。" widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
add-widget: "追加"
customization-tips: "カスタマイズのヒント"
mobile/views/pages/widgets/activity.vue: mobile/views/pages/widgets/activity.vue:
activity: "アクティビティ" activity: "アクティビティ"
@ -1228,6 +1251,7 @@ mobile/views/pages/settings/settings.profile.vue:
mobile/views/pages/search.vue: mobile/views/pages/search.vue:
search: "検索" search: "検索"
empty: "「{}」に関する投稿は見つかりませんでした。" empty: "「{}」に関する投稿は見つかりませんでした。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
mobile/views/pages/selectdrive.vue: mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択" select-file: "ファイルを選択"
@ -1332,3 +1356,7 @@ docs:
name: "名前" name: "名前"
type: "型" type: "型"
description: "説明" description: "説明"
dev/views/index.vue:
manage-apps: "アプリの管理"

View File

@ -11,6 +11,8 @@ common:
warning: "<strong>Misskey는 광고를 게재하지 않습니다</strong> 그러나 광고를 차단하는 기능 기능을 사용할 경우 일부 기능을 사용할 수 없게 될 가능성이나 결함이 발생하는 경우가 있습니다." warning: "<strong>Misskey는 광고를 게재하지 않습니다</strong> 그러나 광고를 차단하는 기능 기능을 사용할 경우 일부 기능을 사용할 수 없게 될 가능성이나 결함이 발생하는 경우가 있습니다."
application-authorization: "앱의 연계" application-authorization: "앱의 연계"
close: "닫기" close: "닫기"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
got-it: "わかった"
customization-tips: customization-tips:
title: "사용자 정의 팁" title: "사용자 정의 팁"
paragraph1: "홈 정의는 위젯을 추가 / 삭제하거나 드래그 앤 드롭하여 정렬 할 수 있습니다." paragraph1: "홈 정의는 위젯을 추가 / 삭제하거나 드래그 앤 드롭하여 정렬 할 수 있습니다."
@ -26,7 +28,6 @@ common:
notified-by: "{}님" notified-by: "{}님"
reply-from: "{}님으로부터 답글:" reply-from: "{}님으로부터 답글:"
quoted-by: "{}씨가 인용:" quoted-by: "{}씨가 인용:"
name: "Misskey"
time: time:
unknown: "수수께끼의 시간" unknown: "수수께끼의 시간"
future: "미래" future: "미래"
@ -38,13 +39,8 @@ common:
weeks_ago: "{}주전" weeks_ago: "{}주전"
months_ago: "{}개월전" months_ago: "{}개월전"
years_ago: "{}년전" years_ago: "{}년전"
month-and-day: "{month}月 {day}日"
trash: "휴지통" trash: "휴지통"
date:
full-year: "년"
month: "달"
day: "일"
hours: "때"
minutes: "분"
weekday-short: weekday-short:
sunday: "일" sunday: "일"
monday: "월" monday: "월"
@ -70,6 +66,7 @@ common:
congrats: "받으세요" congrats: "받으세요"
angry: "화냈어" angry: "화냈어"
confused: "곤란하고 있어" confused: "곤란하고 있어"
rip: "RIP"
pudding: "Pudding" pudding: "Pudding"
note-placeholders: note-placeholders:
a: "지금 어떻게하고있어?" a: "지금 어떻게하고있어?"
@ -172,6 +169,9 @@ common/views/components/games/reversi/reversi.vue:
common/views/components/games/reversi/reversi.game.vue: common/views/components/games/reversi/reversi.game.vue:
surrender: "投了" surrender: "投了"
surrendered: "投了により" surrendered: "投了により"
is-llotheo: "石の少ない方が勝ち(ロセオ)"
looped-map: "ループマップ"
can-put-everywhere: "どこでも置けるモード"
common/views/components/games/reversi/reversi.index.vue: common/views/components/games/reversi/reversi.index.vue:
title: "Misskey Reversi" title: "Misskey Reversi"
sub-title: "他のMisskeyユーザーとリバーシで対戦しよう" sub-title: "他のMisskeyユーザーとリバーシで対戦しよう"
@ -239,11 +239,13 @@ common/views/components/messaging-room.vue:
no-history: "これより過去の履歴はありません" no-history: "これより過去の履歴はありません"
resize-form: "ドラッグしてフォームの広さを調整" resize-form: "ドラッグしてフォームの広さを調整"
new-message: "新しいメッセージがあります" new-message: "新しいメッセージがあります"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.form.vue: common/views/components/messaging-room.form.vue:
input-message-here: "ここにメッセージを入力" input-message-here: "ここにメッセージを入力"
send: "送信" send: "送信"
attach-from-local: "PCからファイルを添付する" attach-from-local: "PCからファイルを添付する"
attach-from-drive: "ドライブからファイルを添付する" attach-from-drive: "ドライブからファイルを添付する"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.message.vue: common/views/components/messaging-room.message.vue:
is-read: "既読" is-read: "既読"
deleted: "このメッセージは削除されました" deleted: "このメッセージは削除されました"
@ -283,6 +285,8 @@ common/views/components/signin.vue:
token: "トークン" token: "トークン"
signing-in: "やってます..." signing-in: "やってます..."
signin: "サインイン" signin: "サインイン"
or: "または"
signin-with-twitter: "Twitterでログイン"
common/views/components/signup.vue: common/views/components/signup.vue:
username: "ユーザー名" username: "ユーザー名"
checking: "確認しています..." checking: "確認しています..."
@ -392,6 +396,17 @@ common/views/pages/follow.vue:
follow: "フォロー" follow: "フォロー"
request-pending: "フォロー許可待ち" request-pending: "フォロー許可待ち"
follow-request: "フォロー申請" follow-request: "フォロー申請"
desktop:
banner-crop-title: "バナーとして表示する部分を選択"
banner: "バナー"
uploading-banner: "新しいバナーをアップロードしています"
banner-updated: "バナーを更新しました"
choose-banner: "バナーにする画像を選択"
avatar-crop-title: "アバターとして表示する部分を選択"
avatar: "アバター"
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
desktop/views/components/activity.chart.vue: desktop/views/components/activity.chart.vue:
total: "Black ... Total" total: "Black ... Total"
notes: "Blue ... Notes" notes: "Blue ... Notes"
@ -526,6 +541,8 @@ desktop/views/components/notes.note.vue:
detail: "詳細" detail: "詳細"
private: "この投稿は非公開です" private: "この投稿は非公開です"
deleted: "この投稿は削除されました" deleted: "この投稿は削除されました"
hide: "隠す"
see-more: "もっと見る"
desktop/views/components/notes.vue: desktop/views/components/notes.vue:
error: "読み込みに失敗しました。" error: "読み込みに失敗しました。"
retry: "リトライ" retry: "リトライ"
@ -561,6 +578,7 @@ desktop/views/components/post-form.vue:
geolocation-alert: "お使いの端末は位置情報に対応していません" geolocation-alert: "お使いの端末は位置情報に対応していません"
error: "エラー" error: "エラー"
enter-username: "ユーザー名を入力してください" enter-username: "ユーザー名を入力してください"
annotations: "内容への注釈 (オプション)"
desktop/views/components/post-form-window.vue: desktop/views/components/post-form-window.vue:
note: "新規投稿" note: "新規投稿"
reply: "返信" reply: "返信"
@ -722,6 +740,7 @@ desktop/views/components/timeline.vue:
list: "リスト" list: "リスト"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
desktop/views/components/ui.header.account.vue: desktop/views/components/ui.header.account.vue:
profile: "プロフィール" profile: "プロフィール"
drive: "ドライブ" drive: "ドライブ"
@ -750,6 +769,7 @@ desktop/views/components/received-follow-requests-window.vue:
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "リスト" title: "リスト"
create-list: "リストを作成" create-list: "リストを作成"
list-name: "リスト名"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "投稿" notes: "投稿"
following: "フォロー" following: "フォロー"
@ -832,6 +852,8 @@ desktop/views/pages/user/user.profile.vue:
mute: "ミュートする" mute: "ミュートする"
muted: "ミュートしています" muted: "ミュートしています"
unmute: "ミュート解除" unmute: "ミュート解除"
push-to-a-list: "リストに追加"
list-pushed: "{user}を{list}に追加しました。"
desktop/views/pages/user/user.header.vue: desktop/views/pages/user/user.header.vue:
posts: "投稿" posts: "投稿"
following: "フォロー" following: "フォロー"
@ -959,6 +981,7 @@ mobile/views/components/timeline.vue:
load-more: "もっと" load-more: "もっと"
mobile/views/components/ui.header.vue: mobile/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
mobile/views/components/ui.nav.vue: mobile/views/components/ui.nav.vue:
timeline: "タイムライン" timeline: "タイムライン"
notifications: "通知" notifications: "通知"
@ -1007,6 +1030,8 @@ mobile/views/pages/welcome.vue:
mobile/views/pages/widgets.vue: mobile/views/pages/widgets.vue:
dashboard: "ダッシュボード" dashboard: "ダッシュボード"
widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。" widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
add-widget: "追加"
customization-tips: "カスタマイズのヒント"
mobile/views/pages/widgets/activity.vue: mobile/views/pages/widgets/activity.vue:
activity: "アクティビティ" activity: "アクティビティ"
mobile/views/pages/share.vue: mobile/views/pages/share.vue:
@ -1045,6 +1070,7 @@ mobile/views/pages/settings/settings.profile.vue:
mobile/views/pages/search.vue: mobile/views/pages/search.vue:
search: "検索" search: "検索"
empty: "「{}」に関する投稿は見つかりませんでした。" empty: "「{}」に関する投稿は見つかりませんでした。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
mobile/views/pages/selectdrive.vue: mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択" select-file: "ファイルを選択"
mobile/views/pages/settings.vue: mobile/views/pages/settings.vue:
@ -1139,3 +1165,5 @@ docs:
name: "名前" name: "名前"
type: "型" type: "型"
description: "説明" description: "説明"
dev/views/index.vue:
manage-apps: "アプリの管理"

View File

@ -11,6 +11,8 @@ common:
warning: "<strong>Misskey nie zawiera reklam</strong>, ale część funkcji może nie działać prawidłowo z włączonym blokowaniem reklam." warning: "<strong>Misskey nie zawiera reklam</strong>, ale część funkcji może nie działać prawidłowo z włączonym blokowaniem reklam."
application-authorization: "アプリの連携" application-authorization: "アプリの連携"
close: "Zamknij" close: "Zamknij"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
got-it: "Rozumiem!"
customization-tips: customization-tips:
title: "Wskazówki o dostosowywaniu" title: "Wskazówki o dostosowywaniu"
paragraph1: "Dostosowywanie strony głównej pozwala na dodawanie, usuwanie, przeciąganie i zmienianie kolejności widżetów." paragraph1: "Dostosowywanie strony głównej pozwala na dodawanie, usuwanie, przeciąganie i zmienianie kolejności widżetów."
@ -26,7 +28,6 @@ common:
notified-by: "Powiadomiono przez {}:" notified-by: "Powiadomiono przez {}:"
reply-from: "Odpowiedź od {}:" reply-from: "Odpowiedź od {}:"
quoted-by: "Zacytowano przez {}:" quoted-by: "Zacytowano przez {}:"
name: "Misskey"
time: time:
unknown: "nieznany" unknown: "nieznany"
future: "w przyszłości" future: "w przyszłości"
@ -38,13 +39,8 @@ common:
weeks_ago: "{} tyg. temu" weeks_ago: "{} tyg. temu"
months_ago: "{} mies. temu" months_ago: "{} mies. temu"
years_ago: "{} lat temu" years_ago: "{} lat temu"
month-and-day: "{month}-{day}"
trash: "Kosz" trash: "Kosz"
date:
full-year: "Rok"
month: "Miesiąc"
day: "Dzień"
hours: "Godzina"
minutes: "Minuty"
weekday-short: weekday-short:
sunday: "N" sunday: "N"
monday: "Pn" monday: "Pn"
@ -70,6 +66,7 @@ common:
congrats: "Gratuluję!" congrats: "Gratuluję!"
angry: "Wściekły" angry: "Wściekły"
confused: "Zmieszany" confused: "Zmieszany"
rip: "RIP"
pudding: "Pudding" pudding: "Pudding"
note-placeholders: note-placeholders:
a: "Co robisz?" a: "Co robisz?"
@ -172,6 +169,9 @@ common/views/components/games/reversi/reversi.vue:
common/views/components/games/reversi/reversi.game.vue: common/views/components/games/reversi/reversi.game.vue:
surrender: "投了" surrender: "投了"
surrendered: "投了により" surrendered: "投了により"
is-llotheo: "石の少ない方が勝ち(ロセオ)"
looped-map: "ループマップ"
can-put-everywhere: "どこでも置けるモード"
common/views/components/games/reversi/reversi.index.vue: common/views/components/games/reversi/reversi.index.vue:
title: "Misskey Reversi" title: "Misskey Reversi"
sub-title: "Zagraj w Reversi ze znajomymi!" sub-title: "Zagraj w Reversi ze znajomymi!"
@ -239,11 +239,13 @@ common/views/components/messaging-room.vue:
no-history: "Brak dalszej historii" no-history: "Brak dalszej historii"
resize-form: "Przeciągnij aby zmienić rozmiar" resize-form: "Przeciągnij aby zmienić rozmiar"
new-message: "Nowa wiadomość" new-message: "Nowa wiadomość"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.form.vue: common/views/components/messaging-room.form.vue:
input-message-here: "Wprowadź wiadomość tutaj" input-message-here: "Wprowadź wiadomość tutaj"
send: "Wyślij" send: "Wyślij"
attach-from-local: "Załącz pliki z komputera" attach-from-local: "Załącz pliki z komputera"
attach-from-drive: "Załącz pliki z dysku" attach-from-drive: "Załącz pliki z dysku"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.message.vue: common/views/components/messaging-room.message.vue:
is-read: "Przeczytano" is-read: "Przeczytano"
deleted: "Wiadomość została usunięta" deleted: "Wiadomość została usunięta"
@ -283,6 +285,8 @@ common/views/components/signin.vue:
token: "Token" token: "Token"
signing-in: "Logowanie…" signing-in: "Logowanie…"
signin: "Zaloguj" signin: "Zaloguj"
or: "または"
signin-with-twitter: "Zaloguj się za pomocą Twittera"
common/views/components/signup.vue: common/views/components/signup.vue:
username: "Nazwa użytkownika" username: "Nazwa użytkownika"
checking: "Sprawdzanie…" checking: "Sprawdzanie…"
@ -372,7 +376,7 @@ common/views/widgets/tips.vue:
tips-line4: "投稿フォームにクリップボードにある画像データをペーストできます" tips-line4: "投稿フォームにクリップボードにある画像データをペーストできます"
tips-line5: "Możesz wysłać pliki przeciągając i upuszczając je w Dysku." tips-line5: "Możesz wysłać pliki przeciągając i upuszczając je w Dysku."
tips-line6: "Możesz przenieść katalog przeciągając go w Dysku." tips-line6: "Możesz przenieść katalog przeciągając go w Dysku."
tips-line7: "ドライブでフォルダをドラッグしてフォルダ移動できます" tips-line7: "Możesz przenieść katalog przeciągając go w Dysku."
tips-line8: "Strona główna może zostać dostosowana w ustawieniach." tips-line8: "Strona główna może zostać dostosowana w ustawieniach."
tips-line9: "Misskey jest dostępny na licencji AGPLv3." tips-line9: "Misskey jest dostępny na licencji AGPLv3."
tips-line10: "タイムマシンウィジェットを利用すると、簡単に過去のタイムラインに遡れます" tips-line10: "タイムマシンウィジェットを利用すると、簡単に過去のタイムラインに遡れます"
@ -392,6 +396,17 @@ common/views/pages/follow.vue:
follow: "Śledź" follow: "Śledź"
request-pending: "Oczekiwanie na pozwolenie" request-pending: "Oczekiwanie na pozwolenie"
follow-request: "Poproś o śledzenie" follow-request: "Poproś o śledzenie"
desktop:
banner-crop-title: "バナーとして表示する部分を選択"
banner: "Baner"
uploading-banner: "Wysyłanie baneru"
banner-updated: "Zmieniono baner"
choose-banner: "Wybierz baner"
avatar-crop-title: "Wybierz część obrazu, która zostanie użyta jako awatar"
avatar: "Awatar"
uploading-avatar: "Wysyłanie awatara"
avatar-updated: "Wysłano awatar"
choose-avatar: "Wybierz awatar"
desktop/views/components/activity.chart.vue: desktop/views/components/activity.chart.vue:
total: "Czarny … Łącznie" total: "Czarny … Łącznie"
notes: "Niebieski … Wpisy" notes: "Niebieski … Wpisy"
@ -526,6 +541,8 @@ desktop/views/components/notes.note.vue:
detail: "Pokaż szczegóły" detail: "Pokaż szczegóły"
private: "ten wpis jest prywatny" private: "ten wpis jest prywatny"
deleted: "ten wpis został usunięty" deleted: "ten wpis został usunięty"
hide: "Zwiń"
see-more: "Więcej"
desktop/views/components/notes.vue: desktop/views/components/notes.vue:
error: "Ładowanie nie powiodło się." error: "Ładowanie nie powiodło się."
retry: "Spróbuj ponownie" retry: "Spróbuj ponownie"
@ -561,6 +578,7 @@ desktop/views/components/post-form.vue:
geolocation-alert: "Twoje urządzenie nie obsługuje geolokalizacji." geolocation-alert: "Twoje urządzenie nie obsługuje geolokalizacji."
error: "Bład" error: "Bład"
enter-username: "Wprowadź nazwę użytkownika…" enter-username: "Wprowadź nazwę użytkownika…"
annotations: "Treść ostrzeżenia (opcjonalnie)"
desktop/views/components/post-form-window.vue: desktop/views/components/post-form-window.vue:
note: "Nowy wpis" note: "Nowy wpis"
reply: "Odpowiedz" reply: "Odpowiedz"
@ -722,6 +740,7 @@ desktop/views/components/timeline.vue:
list: "Listy" list: "Listy"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "Witaj ponownie," welcome-back: "Witaj ponownie,"
adjective: "さん"
desktop/views/components/ui.header.account.vue: desktop/views/components/ui.header.account.vue:
profile: "Twój profil" profile: "Twój profil"
drive: "Dysk" drive: "Dysk"
@ -750,6 +769,7 @@ desktop/views/components/received-follow-requests-window.vue:
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "Listy" title: "Listy"
create-list: "Utwórz listę" create-list: "Utwórz listę"
list-name: "Nazwa listy"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "Wpisy" notes: "Wpisy"
following: "Śledzeni" following: "Śledzeni"
@ -832,6 +852,8 @@ desktop/views/pages/user/user.profile.vue:
mute: "Wycisz" mute: "Wycisz"
muted: "Wyciszyłeś" muted: "Wyciszyłeś"
unmute: "Cofnij wyciszenie" unmute: "Cofnij wyciszenie"
push-to-a-list: "Dodaj do listy"
list-pushed: "Dodałeś(-aś) {user} do {list}."
desktop/views/pages/user/user.header.vue: desktop/views/pages/user/user.header.vue:
posts: "Wpisy" posts: "Wpisy"
following: "Śledzeni" following: "Śledzeni"
@ -959,6 +981,7 @@ mobile/views/components/timeline.vue:
load-more: "Więcej" load-more: "Więcej"
mobile/views/components/ui.header.vue: mobile/views/components/ui.header.vue:
welcome-back: "Witaj ponownie, " welcome-back: "Witaj ponownie, "
adjective: "さん"
mobile/views/components/ui.nav.vue: mobile/views/components/ui.nav.vue:
timeline: "Oś czasu" timeline: "Oś czasu"
notifications: "Powiadomienia" notifications: "Powiadomienia"
@ -1007,6 +1030,8 @@ mobile/views/pages/welcome.vue:
mobile/views/pages/widgets.vue: mobile/views/pages/widgets.vue:
dashboard: "Kokpit" dashboard: "Kokpit"
widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。" widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
add-widget: "Dodaj"
customization-tips: "カスタマイズのヒント"
mobile/views/pages/widgets/activity.vue: mobile/views/pages/widgets/activity.vue:
activity: "Aktywność" activity: "Aktywność"
mobile/views/pages/share.vue: mobile/views/pages/share.vue:
@ -1045,6 +1070,7 @@ mobile/views/pages/settings/settings.profile.vue:
mobile/views/pages/search.vue: mobile/views/pages/search.vue:
search: "Szukaj" search: "Szukaj"
empty: "Nie znaleziono wpisów zawierających '{}'" empty: "Nie znaleziono wpisów zawierających '{}'"
not-found: "「{}」に関する投稿は見つかりませんでした。"
mobile/views/pages/selectdrive.vue: mobile/views/pages/selectdrive.vue:
select-file: "Wybierz plik" select-file: "Wybierz plik"
mobile/views/pages/settings.vue: mobile/views/pages/settings.vue:
@ -1139,3 +1165,5 @@ docs:
name: "Nazwa" name: "Nazwa"
type: "Rodzaj" type: "Rodzaj"
description: "Opis" description: "Opis"
dev/views/index.vue:
manage-apps: "Zarządzaj aplikacjami"

View File

@ -11,6 +11,8 @@ common:
warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。" warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
application-authorization: "アプリの連携" application-authorization: "アプリの連携"
close: "閉じる" close: "閉じる"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
got-it: "わかった"
customization-tips: customization-tips:
title: "カスタマイズのヒント" title: "カスタマイズのヒント"
paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。" paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。"
@ -26,7 +28,6 @@ common:
notified-by: "{}さんから" notified-by: "{}さんから"
reply-from: "{}さんから返信:" reply-from: "{}さんから返信:"
quoted-by: "{}さんが引用:" quoted-by: "{}さんが引用:"
name: "Misskey"
time: time:
unknown: "なぞのじかん" unknown: "なぞのじかん"
future: "未来" future: "未来"
@ -38,13 +39,8 @@ common:
weeks_ago: "{}週間前" weeks_ago: "{}週間前"
months_ago: "{}ヶ月前" months_ago: "{}ヶ月前"
years_ago: "{}年前" years_ago: "{}年前"
month-and-day: "{month}月 {day}日"
trash: "ゴミ箱" trash: "ゴミ箱"
date:
full-year: "年"
month: "月"
day: "日"
hours: "時"
minutes: "分"
weekday-short: weekday-short:
sunday: "日" sunday: "日"
monday: "月" monday: "月"
@ -70,6 +66,7 @@ common:
congrats: "おめでとう" congrats: "おめでとう"
angry: "おこ" angry: "おこ"
confused: "こまこまのこまり" confused: "こまこまのこまり"
rip: "RIP"
pudding: "Pudding" pudding: "Pudding"
note-placeholders: note-placeholders:
a: "今どうしてる?" a: "今どうしてる?"
@ -172,6 +169,9 @@ common/views/components/games/reversi/reversi.vue:
common/views/components/games/reversi/reversi.game.vue: common/views/components/games/reversi/reversi.game.vue:
surrender: "投了" surrender: "投了"
surrendered: "投了により" surrendered: "投了により"
is-llotheo: "石の少ない方が勝ち(ロセオ)"
looped-map: "ループマップ"
can-put-everywhere: "どこでも置けるモード"
common/views/components/games/reversi/reversi.index.vue: common/views/components/games/reversi/reversi.index.vue:
title: "Misskey Reversi" title: "Misskey Reversi"
sub-title: "他のMisskeyユーザーとリバーシで対戦しよう" sub-title: "他のMisskeyユーザーとリバーシで対戦しよう"
@ -239,11 +239,13 @@ common/views/components/messaging-room.vue:
no-history: "これより過去の履歴はありません" no-history: "これより過去の履歴はありません"
resize-form: "ドラッグしてフォームの広さを調整" resize-form: "ドラッグしてフォームの広さを調整"
new-message: "新しいメッセージがあります" new-message: "新しいメッセージがあります"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.form.vue: common/views/components/messaging-room.form.vue:
input-message-here: "ここにメッセージを入力" input-message-here: "ここにメッセージを入力"
send: "送信" send: "送信"
attach-from-local: "PCからファイルを添付する" attach-from-local: "PCからファイルを添付する"
attach-from-drive: "ドライブからファイルを添付する" attach-from-drive: "ドライブからファイルを添付する"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.message.vue: common/views/components/messaging-room.message.vue:
is-read: "既読" is-read: "既読"
deleted: "このメッセージは削除されました" deleted: "このメッセージは削除されました"
@ -283,6 +285,8 @@ common/views/components/signin.vue:
token: "トークン" token: "トークン"
signing-in: "やってます..." signing-in: "やってます..."
signin: "サインイン" signin: "サインイン"
or: "または"
signin-with-twitter: "Twitterでログイン"
common/views/components/signup.vue: common/views/components/signup.vue:
username: "ユーザー名" username: "ユーザー名"
checking: "確認しています..." checking: "確認しています..."
@ -392,6 +396,17 @@ common/views/pages/follow.vue:
follow: "フォロー" follow: "フォロー"
request-pending: "フォロー許可待ち" request-pending: "フォロー許可待ち"
follow-request: "フォロー申請" follow-request: "フォロー申請"
desktop:
banner-crop-title: "バナーとして表示する部分を選択"
banner: "バナー"
uploading-banner: "新しいバナーをアップロードしています"
banner-updated: "バナーを更新しました"
choose-banner: "バナーにする画像を選択"
avatar-crop-title: "アバターとして表示する部分を選択"
avatar: "アバター"
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
desktop/views/components/activity.chart.vue: desktop/views/components/activity.chart.vue:
total: "Black ... Total" total: "Black ... Total"
notes: "Blue ... Notes" notes: "Blue ... Notes"
@ -526,6 +541,8 @@ desktop/views/components/notes.note.vue:
detail: "詳細" detail: "詳細"
private: "この投稿は非公開です" private: "この投稿は非公開です"
deleted: "この投稿は削除されました" deleted: "この投稿は削除されました"
hide: "隠す"
see-more: "もっと見る"
desktop/views/components/notes.vue: desktop/views/components/notes.vue:
error: "読み込みに失敗しました。" error: "読み込みに失敗しました。"
retry: "リトライ" retry: "リトライ"
@ -561,6 +578,7 @@ desktop/views/components/post-form.vue:
geolocation-alert: "お使いの端末は位置情報に対応していません" geolocation-alert: "お使いの端末は位置情報に対応していません"
error: "エラー" error: "エラー"
enter-username: "ユーザー名を入力してください" enter-username: "ユーザー名を入力してください"
annotations: "内容への注釈 (オプション)"
desktop/views/components/post-form-window.vue: desktop/views/components/post-form-window.vue:
note: "新規投稿" note: "新規投稿"
reply: "返信" reply: "返信"
@ -722,6 +740,7 @@ desktop/views/components/timeline.vue:
list: "リスト" list: "リスト"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
desktop/views/components/ui.header.account.vue: desktop/views/components/ui.header.account.vue:
profile: "プロフィール" profile: "プロフィール"
drive: "ドライブ" drive: "ドライブ"
@ -750,6 +769,7 @@ desktop/views/components/received-follow-requests-window.vue:
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "リスト" title: "リスト"
create-list: "リストを作成" create-list: "リストを作成"
list-name: "リスト名"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "投稿" notes: "投稿"
following: "フォロー" following: "フォロー"
@ -832,6 +852,8 @@ desktop/views/pages/user/user.profile.vue:
mute: "ミュートする" mute: "ミュートする"
muted: "ミュートしています" muted: "ミュートしています"
unmute: "ミュート解除" unmute: "ミュート解除"
push-to-a-list: "リストに追加"
list-pushed: "{user}を{list}に追加しました。"
desktop/views/pages/user/user.header.vue: desktop/views/pages/user/user.header.vue:
posts: "投稿" posts: "投稿"
following: "フォロー" following: "フォロー"
@ -959,6 +981,7 @@ mobile/views/components/timeline.vue:
load-more: "もっと" load-more: "もっと"
mobile/views/components/ui.header.vue: mobile/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
mobile/views/components/ui.nav.vue: mobile/views/components/ui.nav.vue:
timeline: "タイムライン" timeline: "タイムライン"
notifications: "通知" notifications: "通知"
@ -1007,6 +1030,8 @@ mobile/views/pages/welcome.vue:
mobile/views/pages/widgets.vue: mobile/views/pages/widgets.vue:
dashboard: "ダッシュボード" dashboard: "ダッシュボード"
widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。" widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
add-widget: "追加"
customization-tips: "カスタマイズのヒント"
mobile/views/pages/widgets/activity.vue: mobile/views/pages/widgets/activity.vue:
activity: "アクティビティ" activity: "アクティビティ"
mobile/views/pages/share.vue: mobile/views/pages/share.vue:
@ -1045,6 +1070,7 @@ mobile/views/pages/settings/settings.profile.vue:
mobile/views/pages/search.vue: mobile/views/pages/search.vue:
search: "検索" search: "検索"
empty: "「{}」に関する投稿は見つかりませんでした。" empty: "「{}」に関する投稿は見つかりませんでした。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
mobile/views/pages/selectdrive.vue: mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択" select-file: "ファイルを選択"
mobile/views/pages/settings.vue: mobile/views/pages/settings.vue:
@ -1139,3 +1165,5 @@ docs:
name: "名前" name: "名前"
type: "型" type: "型"
description: "説明" description: "説明"
dev/views/index.vue:
manage-apps: "アプリの管理"

View File

@ -11,6 +11,8 @@ common:
warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。" warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
application-authorization: "アプリの連携" application-authorization: "アプリの連携"
close: "閉じる" close: "閉じる"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
got-it: "わかった"
customization-tips: customization-tips:
title: "カスタマイズのヒント" title: "カスタマイズのヒント"
paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。" paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。"
@ -26,7 +28,6 @@ common:
notified-by: "{}さんから" notified-by: "{}さんから"
reply-from: "{}さんから返信:" reply-from: "{}さんから返信:"
quoted-by: "{}さんが引用:" quoted-by: "{}さんが引用:"
name: "Misskey"
time: time:
unknown: "なぞのじかん" unknown: "なぞのじかん"
future: "未来" future: "未来"
@ -38,13 +39,8 @@ common:
weeks_ago: "{}週間前" weeks_ago: "{}週間前"
months_ago: "{}ヶ月前" months_ago: "{}ヶ月前"
years_ago: "{}年前" years_ago: "{}年前"
month-and-day: "{month}月 {day}日"
trash: "ゴミ箱" trash: "ゴミ箱"
date:
full-year: "年"
month: "月"
day: "日"
hours: "時"
minutes: "分"
weekday-short: weekday-short:
sunday: "日" sunday: "日"
monday: "月" monday: "月"
@ -70,6 +66,7 @@ common:
congrats: "おめでとう" congrats: "おめでとう"
angry: "おこ" angry: "おこ"
confused: "こまこまのこまり" confused: "こまこまのこまり"
rip: "RIP"
pudding: "Pudding" pudding: "Pudding"
note-placeholders: note-placeholders:
a: "今どうしてる?" a: "今どうしてる?"
@ -172,6 +169,9 @@ common/views/components/games/reversi/reversi.vue:
common/views/components/games/reversi/reversi.game.vue: common/views/components/games/reversi/reversi.game.vue:
surrender: "投了" surrender: "投了"
surrendered: "投了により" surrendered: "投了により"
is-llotheo: "石の少ない方が勝ち(ロセオ)"
looped-map: "ループマップ"
can-put-everywhere: "どこでも置けるモード"
common/views/components/games/reversi/reversi.index.vue: common/views/components/games/reversi/reversi.index.vue:
title: "Misskey Reversi" title: "Misskey Reversi"
sub-title: "他のMisskeyユーザーとリバーシで対戦しよう" sub-title: "他のMisskeyユーザーとリバーシで対戦しよう"
@ -239,11 +239,13 @@ common/views/components/messaging-room.vue:
no-history: "これより過去の履歴はありません" no-history: "これより過去の履歴はありません"
resize-form: "ドラッグしてフォームの広さを調整" resize-form: "ドラッグしてフォームの広さを調整"
new-message: "新しいメッセージがあります" new-message: "新しいメッセージがあります"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.form.vue: common/views/components/messaging-room.form.vue:
input-message-here: "ここにメッセージを入力" input-message-here: "ここにメッセージを入力"
send: "送信" send: "送信"
attach-from-local: "PCからファイルを添付する" attach-from-local: "PCからファイルを添付する"
attach-from-drive: "ドライブからファイルを添付する" attach-from-drive: "ドライブからファイルを添付する"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.message.vue: common/views/components/messaging-room.message.vue:
is-read: "既読" is-read: "既読"
deleted: "このメッセージは削除されました" deleted: "このメッセージは削除されました"
@ -283,6 +285,8 @@ common/views/components/signin.vue:
token: "トークン" token: "トークン"
signing-in: "やってます..." signing-in: "やってます..."
signin: "サインイン" signin: "サインイン"
or: "または"
signin-with-twitter: "Twitterでログイン"
common/views/components/signup.vue: common/views/components/signup.vue:
username: "ユーザー名" username: "ユーザー名"
checking: "確認しています..." checking: "確認しています..."
@ -392,6 +396,17 @@ common/views/pages/follow.vue:
follow: "フォロー" follow: "フォロー"
request-pending: "フォロー許可待ち" request-pending: "フォロー許可待ち"
follow-request: "フォロー申請" follow-request: "フォロー申請"
desktop:
banner-crop-title: "バナーとして表示する部分を選択"
banner: "バナー"
uploading-banner: "新しいバナーをアップロードしています"
banner-updated: "バナーを更新しました"
choose-banner: "バナーにする画像を選択"
avatar-crop-title: "アバターとして表示する部分を選択"
avatar: "アバター"
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
desktop/views/components/activity.chart.vue: desktop/views/components/activity.chart.vue:
total: "Black ... Total" total: "Black ... Total"
notes: "Blue ... Notes" notes: "Blue ... Notes"
@ -526,6 +541,8 @@ desktop/views/components/notes.note.vue:
detail: "詳細" detail: "詳細"
private: "この投稿は非公開です" private: "この投稿は非公開です"
deleted: "この投稿は削除されました" deleted: "この投稿は削除されました"
hide: "隠す"
see-more: "もっと見る"
desktop/views/components/notes.vue: desktop/views/components/notes.vue:
error: "読み込みに失敗しました。" error: "読み込みに失敗しました。"
retry: "リトライ" retry: "リトライ"
@ -561,6 +578,7 @@ desktop/views/components/post-form.vue:
geolocation-alert: "お使いの端末は位置情報に対応していません" geolocation-alert: "お使いの端末は位置情報に対応していません"
error: "エラー" error: "エラー"
enter-username: "ユーザー名を入力してください" enter-username: "ユーザー名を入力してください"
annotations: "内容への注釈 (オプション)"
desktop/views/components/post-form-window.vue: desktop/views/components/post-form-window.vue:
note: "新規投稿" note: "新規投稿"
reply: "返信" reply: "返信"
@ -722,6 +740,7 @@ desktop/views/components/timeline.vue:
list: "リスト" list: "リスト"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
desktop/views/components/ui.header.account.vue: desktop/views/components/ui.header.account.vue:
profile: "プロフィール" profile: "プロフィール"
drive: "ドライブ" drive: "ドライブ"
@ -750,6 +769,7 @@ desktop/views/components/received-follow-requests-window.vue:
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "リスト" title: "リスト"
create-list: "リストを作成" create-list: "リストを作成"
list-name: "リスト名"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "投稿" notes: "投稿"
following: "フォロー" following: "フォロー"
@ -832,6 +852,8 @@ desktop/views/pages/user/user.profile.vue:
mute: "ミュートする" mute: "ミュートする"
muted: "ミュートしています" muted: "ミュートしています"
unmute: "ミュート解除" unmute: "ミュート解除"
push-to-a-list: "リストに追加"
list-pushed: "{user}を{list}に追加しました。"
desktop/views/pages/user/user.header.vue: desktop/views/pages/user/user.header.vue:
posts: "投稿" posts: "投稿"
following: "フォロー" following: "フォロー"
@ -959,6 +981,7 @@ mobile/views/components/timeline.vue:
load-more: "もっと" load-more: "もっと"
mobile/views/components/ui.header.vue: mobile/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
mobile/views/components/ui.nav.vue: mobile/views/components/ui.nav.vue:
timeline: "タイムライン" timeline: "タイムライン"
notifications: "通知" notifications: "通知"
@ -1007,6 +1030,8 @@ mobile/views/pages/welcome.vue:
mobile/views/pages/widgets.vue: mobile/views/pages/widgets.vue:
dashboard: "ダッシュボード" dashboard: "ダッシュボード"
widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。" widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
add-widget: "追加"
customization-tips: "カスタマイズのヒント"
mobile/views/pages/widgets/activity.vue: mobile/views/pages/widgets/activity.vue:
activity: "アクティビティ" activity: "アクティビティ"
mobile/views/pages/share.vue: mobile/views/pages/share.vue:
@ -1045,6 +1070,7 @@ mobile/views/pages/settings/settings.profile.vue:
mobile/views/pages/search.vue: mobile/views/pages/search.vue:
search: "検索" search: "検索"
empty: "「{}」に関する投稿は見つかりませんでした。" empty: "「{}」に関する投稿は見つかりませんでした。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
mobile/views/pages/selectdrive.vue: mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択" select-file: "ファイルを選択"
mobile/views/pages/settings.vue: mobile/views/pages/settings.vue:
@ -1139,3 +1165,5 @@ docs:
name: "名前" name: "名前"
type: "型" type: "型"
description: "説明" description: "説明"
dev/views/index.vue:
manage-apps: "アプリの管理"

View File

@ -11,6 +11,8 @@ common:
warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。" warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
application-authorization: "アプリの連携" application-authorization: "アプリの連携"
close: "閉じる" close: "閉じる"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
got-it: "わかった"
customization-tips: customization-tips:
title: "カスタマイズのヒント" title: "カスタマイズのヒント"
paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。" paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。"
@ -26,7 +28,6 @@ common:
notified-by: "{}さんから" notified-by: "{}さんから"
reply-from: "{}さんから返信:" reply-from: "{}さんから返信:"
quoted-by: "{}さんが引用:" quoted-by: "{}さんが引用:"
name: "Misskey"
time: time:
unknown: "なぞのじかん" unknown: "なぞのじかん"
future: "未来" future: "未来"
@ -38,13 +39,8 @@ common:
weeks_ago: "{}週間前" weeks_ago: "{}週間前"
months_ago: "{}ヶ月前" months_ago: "{}ヶ月前"
years_ago: "{}年前" years_ago: "{}年前"
month-and-day: "{month}月 {day}日"
trash: "ゴミ箱" trash: "ゴミ箱"
date:
full-year: "年"
month: "月"
day: "日"
hours: "時"
minutes: "分"
weekday-short: weekday-short:
sunday: "日" sunday: "日"
monday: "月" monday: "月"
@ -70,6 +66,7 @@ common:
congrats: "おめでとう" congrats: "おめでとう"
angry: "おこ" angry: "おこ"
confused: "こまこまのこまり" confused: "こまこまのこまり"
rip: "RIP"
pudding: "Pudding" pudding: "Pudding"
note-placeholders: note-placeholders:
a: "今どうしてる?" a: "今どうしてる?"
@ -172,6 +169,9 @@ common/views/components/games/reversi/reversi.vue:
common/views/components/games/reversi/reversi.game.vue: common/views/components/games/reversi/reversi.game.vue:
surrender: "投了" surrender: "投了"
surrendered: "投了により" surrendered: "投了により"
is-llotheo: "石の少ない方が勝ち(ロセオ)"
looped-map: "ループマップ"
can-put-everywhere: "どこでも置けるモード"
common/views/components/games/reversi/reversi.index.vue: common/views/components/games/reversi/reversi.index.vue:
title: "Misskey Reversi" title: "Misskey Reversi"
sub-title: "他のMisskeyユーザーとリバーシで対戦しよう" sub-title: "他のMisskeyユーザーとリバーシで対戦しよう"
@ -239,11 +239,13 @@ common/views/components/messaging-room.vue:
no-history: "これより過去の履歴はありません" no-history: "これより過去の履歴はありません"
resize-form: "ドラッグしてフォームの広さを調整" resize-form: "ドラッグしてフォームの広さを調整"
new-message: "新しいメッセージがあります" new-message: "新しいメッセージがあります"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.form.vue: common/views/components/messaging-room.form.vue:
input-message-here: "ここにメッセージを入力" input-message-here: "ここにメッセージを入力"
send: "送信" send: "送信"
attach-from-local: "PCからファイルを添付する" attach-from-local: "PCからファイルを添付する"
attach-from-drive: "ドライブからファイルを添付する" attach-from-drive: "ドライブからファイルを添付する"
only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
common/views/components/messaging-room.message.vue: common/views/components/messaging-room.message.vue:
is-read: "既読" is-read: "既読"
deleted: "このメッセージは削除されました" deleted: "このメッセージは削除されました"
@ -283,6 +285,8 @@ common/views/components/signin.vue:
token: "トークン" token: "トークン"
signing-in: "やってます..." signing-in: "やってます..."
signin: "サインイン" signin: "サインイン"
or: "または"
signin-with-twitter: "Twitterでログイン"
common/views/components/signup.vue: common/views/components/signup.vue:
username: "ユーザー名" username: "ユーザー名"
checking: "確認しています..." checking: "確認しています..."
@ -392,6 +396,17 @@ common/views/pages/follow.vue:
follow: "フォロー" follow: "フォロー"
request-pending: "フォロー許可待ち" request-pending: "フォロー許可待ち"
follow-request: "フォロー申請" follow-request: "フォロー申請"
desktop:
banner-crop-title: "バナーとして表示する部分を選択"
banner: "バナー"
uploading-banner: "新しいバナーをアップロードしています"
banner-updated: "バナーを更新しました"
choose-banner: "バナーにする画像を選択"
avatar-crop-title: "アバターとして表示する部分を選択"
avatar: "アバター"
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
desktop/views/components/activity.chart.vue: desktop/views/components/activity.chart.vue:
total: "Black ... Total" total: "Black ... Total"
notes: "Blue ... Notes" notes: "Blue ... Notes"
@ -526,6 +541,8 @@ desktop/views/components/notes.note.vue:
detail: "詳細" detail: "詳細"
private: "この投稿は非公開です" private: "この投稿は非公開です"
deleted: "この投稿は削除されました" deleted: "この投稿は削除されました"
hide: "隠す"
see-more: "もっと見る"
desktop/views/components/notes.vue: desktop/views/components/notes.vue:
error: "読み込みに失敗しました。" error: "読み込みに失敗しました。"
retry: "リトライ" retry: "リトライ"
@ -561,6 +578,7 @@ desktop/views/components/post-form.vue:
geolocation-alert: "お使いの端末は位置情報に対応していません" geolocation-alert: "お使いの端末は位置情報に対応していません"
error: "エラー" error: "エラー"
enter-username: "ユーザー名を入力してください" enter-username: "ユーザー名を入力してください"
annotations: "内容への注釈 (オプション)"
desktop/views/components/post-form-window.vue: desktop/views/components/post-form-window.vue:
note: "新規投稿" note: "新規投稿"
reply: "返信" reply: "返信"
@ -722,6 +740,7 @@ desktop/views/components/timeline.vue:
list: "リスト" list: "リスト"
desktop/views/components/ui.header.vue: desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
desktop/views/components/ui.header.account.vue: desktop/views/components/ui.header.account.vue:
profile: "プロフィール" profile: "プロフィール"
drive: "ドライブ" drive: "ドライブ"
@ -750,6 +769,7 @@ desktop/views/components/received-follow-requests-window.vue:
desktop/views/components/user-lists-window.vue: desktop/views/components/user-lists-window.vue:
title: "リスト" title: "リスト"
create-list: "リストを作成" create-list: "リストを作成"
list-name: "リスト名"
desktop/views/components/user-preview.vue: desktop/views/components/user-preview.vue:
notes: "投稿" notes: "投稿"
following: "フォロー" following: "フォロー"
@ -832,6 +852,8 @@ desktop/views/pages/user/user.profile.vue:
mute: "ミュートする" mute: "ミュートする"
muted: "ミュートしています" muted: "ミュートしています"
unmute: "ミュート解除" unmute: "ミュート解除"
push-to-a-list: "リストに追加"
list-pushed: "{user}を{list}に追加しました。"
desktop/views/pages/user/user.header.vue: desktop/views/pages/user/user.header.vue:
posts: "投稿" posts: "投稿"
following: "フォロー" following: "フォロー"
@ -959,6 +981,7 @@ mobile/views/components/timeline.vue:
load-more: "もっと" load-more: "もっと"
mobile/views/components/ui.header.vue: mobile/views/components/ui.header.vue:
welcome-back: "おかえりなさい、" welcome-back: "おかえりなさい、"
adjective: "さん"
mobile/views/components/ui.nav.vue: mobile/views/components/ui.nav.vue:
timeline: "タイムライン" timeline: "タイムライン"
notifications: "通知" notifications: "通知"
@ -1007,6 +1030,8 @@ mobile/views/pages/welcome.vue:
mobile/views/pages/widgets.vue: mobile/views/pages/widgets.vue:
dashboard: "ダッシュボード" dashboard: "ダッシュボード"
widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。" widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
add-widget: "追加"
customization-tips: "カスタマイズのヒント"
mobile/views/pages/widgets/activity.vue: mobile/views/pages/widgets/activity.vue:
activity: "アクティビティ" activity: "アクティビティ"
mobile/views/pages/share.vue: mobile/views/pages/share.vue:
@ -1045,6 +1070,7 @@ mobile/views/pages/settings/settings.profile.vue:
mobile/views/pages/search.vue: mobile/views/pages/search.vue:
search: "検索" search: "検索"
empty: "「{}」に関する投稿は見つかりませんでした。" empty: "「{}」に関する投稿は見つかりませんでした。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
mobile/views/pages/selectdrive.vue: mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択" select-file: "ファイルを選択"
mobile/views/pages/settings.vue: mobile/views/pages/settings.vue:
@ -1139,3 +1165,5 @@ docs:
name: "名前" name: "名前"
type: "型" type: "型"
description: "説明" description: "説明"
dev/views/index.vue:
manage-apps: "アプリの管理"

View File

@ -1,8 +1,8 @@
{ {
"name": "misskey", "name": "misskey",
"author": "syuilo <i@syuilo.com>", "author": "syuilo <i@syuilo.com>",
"version": "5.18.0", "version": "5.23.0",
"clientVersion": "1.0.8033", "clientVersion": "1.0.8226",
"codename": "nighthike", "codename": "nighthike",
"main": "./built/index.js", "main": "./built/index.js",
"private": true, "private": true,
@ -59,7 +59,7 @@
"@types/mocha": "5.2.3", "@types/mocha": "5.2.3",
"@types/mongodb": "3.1.3", "@types/mongodb": "3.1.3",
"@types/ms": "0.7.30", "@types/ms": "0.7.30",
"@types/node": "10.5.6", "@types/node": "10.5.8",
"@types/portscanner": "2.1.0", "@types/portscanner": "2.1.0",
"@types/pug": "2.0.4", "@types/pug": "2.0.4",
"@types/qrcode": "1.2.0", "@types/qrcode": "1.2.0",
@ -88,7 +88,7 @@
"bootstrap-vue": "2.0.0-rc.11", "bootstrap-vue": "2.0.0-rc.11",
"cafy": "11.3.0", "cafy": "11.3.0",
"chalk": "2.4.1", "chalk": "2.4.1",
"commander": "2.17.0", "commander": "2.17.1",
"crc-32": "1.2.0", "crc-32": "1.2.0",
"css-loader": "1.0.0", "css-loader": "1.0.0",
"dateformat": "3.0.3", "dateformat": "3.0.3",
@ -98,7 +98,7 @@
"diskusage": "0.2.4", "diskusage": "0.2.4",
"dompurify": "1.0.5", "dompurify": "1.0.5",
"elasticsearch": "15.1.1", "elasticsearch": "15.1.1",
"element-ui": "2.4.5", "element-ui": "2.4.6",
"emojilib": "2.3.0", "emojilib": "2.3.0",
"escape-regexp": "0.0.1", "escape-regexp": "0.0.1",
"eslint": "5.0.1", "eslint": "5.0.1",
@ -106,7 +106,7 @@
"eventemitter3": "3.1.0", "eventemitter3": "3.1.0",
"exif-js": "2.3.0", "exif-js": "2.3.0",
"file-loader": "1.1.11", "file-loader": "1.1.11",
"file-type": "8.1.0", "file-type": "9.0.0",
"fuckadblock": "3.2.1", "fuckadblock": "3.2.1",
"gulp": "3.9.1", "gulp": "3.9.1",
"gulp-cssnano": "2.1.3", "gulp-cssnano": "2.1.3",
@ -145,6 +145,7 @@
"koa-slow": "2.1.0", "koa-slow": "2.1.0",
"koa-views": "6.1.4", "koa-views": "6.1.4",
"loader-utils": "1.1.0", "loader-utils": "1.1.0",
"lodash.assign": "4.2.0",
"mecab-async": "0.1.2", "mecab-async": "0.1.2",
"minio": "6.0.0", "minio": "6.0.0",
"mkdirp": "0.5.1", "mkdirp": "0.5.1",
@ -154,7 +155,7 @@
"monk": "6.0.6", "monk": "6.0.6",
"ms": "2.1.1", "ms": "2.1.1",
"nan": "2.10.0", "nan": "2.10.0",
"node-sass": "4.9.2", "node-sass": "4.9.3",
"node-sass-json-importer": "3.3.1", "node-sass-json-importer": "3.3.1",
"nprogress": "0.2.0", "nprogress": "0.2.0",
"object-assign-deep": "0.4.0", "object-assign-deep": "0.4.0",
@ -171,7 +172,7 @@
"recaptcha-promise": "0.1.3", "recaptcha-promise": "0.1.3",
"reconnecting-websocket": "3.2.2", "reconnecting-websocket": "3.2.2",
"redis": "2.8.0", "redis": "2.8.0",
"request": "2.87.0", "request": "2.88.0",
"request-promise-native": "1.0.5", "request-promise-native": "1.0.5",
"rimraf": "2.6.2", "rimraf": "2.6.2",
"rndstr": "1.0.0", "rndstr": "1.0.0",
@ -184,28 +185,28 @@
"single-line-log": "1.1.2", "single-line-log": "1.1.2",
"speakeasy": "2.0.0", "speakeasy": "2.0.0",
"stringz": "1.0.0", "stringz": "1.0.0",
"style-loader": "0.21.0", "style-loader": "0.22.1",
"stylus": "0.54.5", "stylus": "0.54.5",
"stylus-loader": "3.0.2", "stylus-loader": "3.0.2",
"summaly": "2.0.6", "summaly": "2.1.2",
"systeminformation": "3.42.8", "systeminformation": "3.42.9",
"syuilo-password-strength": "0.0.1", "syuilo-password-strength": "0.0.1",
"textarea-caret": "3.1.0", "textarea-caret": "3.1.0",
"tmp": "0.0.33", "tmp": "0.0.33",
"ts-loader": "4.4.1", "ts-loader": "4.4.1",
"ts-node": "7.0.0", "ts-node": "7.0.1",
"tslint": "5.10.0", "tslint": "5.10.0",
"typescript": "2.9.2", "typescript": "2.9.2",
"typescript-eslint-parser": "17.0.1", "typescript-eslint-parser": "18.0.0",
"uglify-es": "3.3.9", "uglify-es": "3.3.9",
"url-loader": "1.0.1", "url-loader": "1.0.1",
"uuid": "3.3.2", "uuid": "3.3.2",
"v-animate-css": "0.0.2", "v-animate-css": "0.0.2",
"vue": "2.5.17", "vue": "2.5.17",
"vue-cropperjs": "2.2.1", "vue-cropperjs": "2.2.1",
"vue-js-modal": "1.3.16", "vue-js-modal": "1.3.17",
"vue-json-tree-view": "2.1.4", "vue-json-tree-view": "2.1.4",
"vue-loader": "15.2.6", "vue-loader": "15.3.0",
"vue-router": "3.0.1", "vue-router": "3.0.1",
"vue-style-loader": "4.1.1", "vue-style-loader": "4.1.1",
"vue-template-compiler": "2.5.17", "vue-template-compiler": "2.5.17",

View File

@ -8,14 +8,14 @@ import VueRouter from 'vue-router';
import './style.styl'; import './style.styl';
import init from '../init'; import init from '../init';
import Index from './views/index.vue'; import Index from './views/index.vue';
import * as config from '../config';
/** /**
* init * init
*/ */
init(launch => { init(launch => {
document.title = '%i18n:common.name% | %i18n:common.application-authorization%'; document.title = `${config.name} | %i18n:common.application-authorization%`;
// Init router // Init router
const router = new VueRouter({ const router = new VueRouter({

View File

@ -38,7 +38,7 @@ export default function(type, data): Notification {
switch (data.type) { switch (data.type) {
case 'mention': case 'mention':
return { 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), body: getNoteSummary(data),
icon: data.user.avatarUrl icon: data.user.avatarUrl
}; };

View File

@ -1,13 +0,0 @@
export default date => {
if (typeof date == 'string') date = new Date(date);
return (
date.getFullYear() + '%i18n:common.date.full-year%' +
(date.getMonth() + 1) + '%i18n:common.date.month%' +
date.getDate() + '%i18n:common.date.day%' +
' ' +
date.getHours() + '%i18n:common.date.hours%' +
date.getMinutes() + '%i18n:common.date.minutes%' +
' ' +
`(${['日', '月', '火', '水', '木', '金', '土'][date.getDay()]})`
);
};

View File

@ -1,6 +1,8 @@
<template> <template>
<router-link class="mk-avatar" :to="user | userPage" :title="user | acct" :target="target" :style="style" v-if="disablePreview"></router-link> <span class="mk-avatar" :title="user | acct" :style="style" v-if="disableLink && !disablePreview" v-user-preview="user.id" @click="onClick"></span>
<router-link class="mk-avatar" :to="user | userPage" :title="user | acct" :target="target" :style="style" v-else v-user-preview="user.id"></router-link> <span class="mk-avatar" :title="user | acct" :style="style" v-else-if="disableLink && disablePreview" @click="onClick"></span>
<router-link class="mk-avatar" :to="user | userPage" :title="user | acct" :target="target" :style="style" v-else-if="!disableLink && !disablePreview" v-user-preview="user.id"></router-link>
<router-link class="mk-avatar" :to="user | userPage" :title="user | acct" :target="target" :style="style" v-else-if="!disableLink && disablePreview"></router-link>
</template> </template>
<script lang="ts"> <script lang="ts">
@ -15,6 +17,10 @@ export default Vue.extend({
required: false, required: false,
default: null default: null
}, },
disableLink: {
required: false,
default: false
},
disablePreview: { disablePreview: {
required: false, required: false,
default: false default: false
@ -35,6 +41,11 @@ export default Vue.extend({
borderRadius: this.$store.state.settings.circleIcons ? '100%' : null borderRadius: this.$store.state.settings.circleIcons ? '100%' : null
}; };
} }
},
methods: {
onClick(e) {
this.$emit('click', e);
}
} }
}); });
</script> </script>

View File

@ -60,6 +60,12 @@
<el-button type="primary" @click="logPos = logs.length" :disabled="logPos == logs.length">%fa:angle-double-right%</el-button> <el-button type="primary" @click="logPos = logs.length" :disabled="logPos == logs.length">%fa:angle-double-right%</el-button>
</el-button-group> </el-button-group>
</div> </div>
<div class="info">
<p v-if="game.settings.isLlotheo">%i18n:@is-llotheo%</p>
<p v-if="game.settings.loopedBoard">%i18n:@looped-map%</p>
<p v-if="game.settings.canPutEverywhere">%i18n:@can-put-everywhere%</p>
</div>
</div> </div>
</template> </template>

View File

@ -83,7 +83,7 @@ export default Vue.extend({
} }
} else { } else {
if (items[0].kind == 'file') { if (items[0].kind == 'file') {
alert('メッセージに添付できるのはひとつのファイルのみです'); alert('%i18n:only-one-file-attached%');
} }
} }
}, },
@ -105,7 +105,7 @@ export default Vue.extend({
return; return;
} else if (e.dataTransfer.files.length > 1) { } else if (e.dataTransfer.files.length > 1) {
e.preventDefault(); e.preventDefault();
alert('メッセージに添付できるのはひとつのファイルのみです'); alert('%i18n:only-one-file-attached%');
return; return;
} }

View File

@ -61,7 +61,7 @@ export default Vue.extend({
const date = new Date(message.createdAt).getDate(); const date = new Date(message.createdAt).getDate();
const month = new Date(message.createdAt).getMonth() + 1; const month = new Date(message.createdAt).getMonth() + 1;
message._date = date; message._date = date;
message._datetext = `${month}${date}`; message._datetext = '%i18n:common.month-and-day%'.replace('{month}', month.toString()).replace('{day}', date.toString());
return message; return message;
}); });
}, },
@ -111,7 +111,7 @@ export default Vue.extend({
this.form.upload(e.dataTransfer.files[0]); this.form.upload(e.dataTransfer.files[0]);
return; return;
} else if (e.dataTransfer.files.length > 1) { } else if (e.dataTransfer.files.length > 1) {
alert('メッセージに添付できるのはひとつのファイルのみです'); alert('%i18n:@only-one-file-attached%');
return; return;
} }

View File

@ -8,6 +8,7 @@
<img v-if="reaction == 'congrats'" src="/assets/reactions/congrats.png" alt="%i18n:common.reactions.congrats%"> <img v-if="reaction == 'congrats'" src="/assets/reactions/congrats.png" alt="%i18n:common.reactions.congrats%">
<img v-if="reaction == 'angry'" src="/assets/reactions/angry.png" alt="%i18n:common.reactions.angry%"> <img v-if="reaction == 'angry'" src="/assets/reactions/angry.png" alt="%i18n:common.reactions.angry%">
<img v-if="reaction == 'confused'" src="/assets/reactions/confused.png" alt="%i18n:common.reactions.confused%"> <img v-if="reaction == 'confused'" src="/assets/reactions/confused.png" alt="%i18n:common.reactions.confused%">
<img v-if="reaction == 'rip'" src="/assets/reactions/rip.png" alt="%i18n:common.reactions.rip%">
<template v-if="reaction == 'pudding'"> <template v-if="reaction == 'pudding'">
<img v-if="$store.getters.isSignedIn && $store.state.settings.iLikeSushi" src="/assets/reactions/sushi.png" alt="%i18n:common.reactions.pudding%"> <img v-if="$store.getters.isSignedIn && $store.state.settings.iLikeSushi" src="/assets/reactions/sushi.png" alt="%i18n:common.reactions.pudding%">
<img v-else src="/assets/reactions/pudding.png" alt="%i18n:common.reactions.pudding%"> <img v-else src="/assets/reactions/pudding.png" alt="%i18n:common.reactions.pudding%">

View File

@ -10,9 +10,10 @@
<button @click="react('hmm')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="4" title="%i18n:common.reactions.hmm%"><mk-reaction-icon reaction='hmm'/></button> <button @click="react('hmm')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="4" title="%i18n:common.reactions.hmm%"><mk-reaction-icon reaction='hmm'/></button>
<button @click="react('surprise')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="5" title="%i18n:common.reactions.surprise%"><mk-reaction-icon reaction='surprise'/></button> <button @click="react('surprise')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="5" title="%i18n:common.reactions.surprise%"><mk-reaction-icon reaction='surprise'/></button>
<button @click="react('congrats')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="6" title="%i18n:common.reactions.congrats%"><mk-reaction-icon reaction='congrats'/></button> <button @click="react('congrats')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="6" title="%i18n:common.reactions.congrats%"><mk-reaction-icon reaction='congrats'/></button>
<button @click="react('angry')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="4" title="%i18n:common.reactions.angry%"><mk-reaction-icon reaction='angry'/></button> <button @click="react('angry')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="7" title="%i18n:common.reactions.angry%"><mk-reaction-icon reaction='angry'/></button>
<button @click="react('confused')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="5" title="%i18n:common.reactions.confused%"><mk-reaction-icon reaction='confused'/></button> <button @click="react('confused')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="8" title="%i18n:common.reactions.confused%"><mk-reaction-icon reaction='confused'/></button>
<button @click="react('pudding')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="6" title="%i18n:common.reactions.pudding%"><mk-reaction-icon reaction='pudding'/></button> <button @click="react('rip')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="9" title="%i18n:common.reactions.rip%"><mk-reaction-icon reaction='rip'/></button>
<button @click="react('pudding')" @mouseover="onMouseover" @mouseout="onMouseout" tabindex="10" title="%i18n:common.reactions.pudding%"><mk-reaction-icon reaction='pudding'/></button>
</div> </div>
</div> </div>
</div> </div>

View File

@ -9,6 +9,7 @@
<span v-if="reactions.congrats"><mk-reaction-icon reaction="congrats"/><span>{{ reactions.congrats }}</span></span> <span v-if="reactions.congrats"><mk-reaction-icon reaction="congrats"/><span>{{ reactions.congrats }}</span></span>
<span v-if="reactions.angry"><mk-reaction-icon reaction="angry"/><span>{{ reactions.angry }}</span></span> <span v-if="reactions.angry"><mk-reaction-icon reaction="angry"/><span>{{ reactions.angry }}</span></span>
<span v-if="reactions.confused"><mk-reaction-icon reaction="confused"/><span>{{ reactions.confused }}</span></span> <span v-if="reactions.confused"><mk-reaction-icon reaction="confused"/><span>{{ reactions.confused }}</span></span>
<span v-if="reactions.rip"><mk-reaction-icon reaction="rip"/><span>{{ reactions.rip }}</span></span>
<span v-if="reactions.pudding"><mk-reaction-icon reaction="pudding"/><span>{{ reactions.pudding }}</span></span> <span v-if="reactions.pudding"><mk-reaction-icon reaction="pudding"/><span>{{ reactions.pudding }}</span></span>
</template> </template>
</div> </div>

View File

@ -12,13 +12,13 @@
</ui-input> </ui-input>
<ui-input v-if="user && user.twoFactorEnabled" v-model="token" type="number" required/> <ui-input v-if="user && user.twoFactorEnabled" v-model="token" type="number" required/>
<ui-button type="submit" :disabled="signing">{{ signing ? '%i18n:@signing-in%' : '%i18n:@signin%' }}</ui-button> <ui-button type="submit" :disabled="signing">{{ signing ? '%i18n:@signing-in%' : '%i18n:@signin%' }}</ui-button>
<p style="margin: 8px 0;">または<a :href="`${apiUrl}/signin/twitter`">Twitterでログイン</a></p> <p style="margin: 8px 0;" v-if="twitterIntegration">%i18n:@or%<a :href="`${apiUrl}/signin/twitter`">%i18n:@signin-with-twitter%</a></p>
</form> </form>
</template> </template>
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import { apiUrl, host } from '../../../config'; import { apiUrl, host, twitterIntegration } from '../../../config';
export default Vue.extend({ export default Vue.extend({
props: { props: {
@ -36,7 +36,8 @@ export default Vue.extend({
password: '', password: '',
token: '', token: '',
apiUrl, apiUrl,
host host,
twitterIntegration
}; };
}, },
methods: { methods: {

View File

@ -1,7 +1,5 @@
<template> <template>
<iframe v-if="youtubeId" type="text/html" height="250" <iframe v-if="player" :src="player" heigth="250" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen />
:src="`https://www.youtube.com/embed/${youtubeId}?origin=${misskeyUrl}`"
frameborder="0"/>
<div v-else-if="tweetUrl && detail" class="twitter"> <div v-else-if="tweetUrl && detail" class="twitter">
<blockquote ref="tweet" class="twitter-tweet" :data-theme="$store.state.device.darkmode ? 'dark' : null"> <blockquote ref="tweet" class="twitter-tweet" :data-theme="$store.state.device.darkmode ? 'dark' : null">
<a :href="url"></a> <a :href="url"></a>
@ -48,7 +46,7 @@ export default Vue.extend({
thumbnail: null, thumbnail: null,
icon: null, icon: null,
sitename: null, sitename: null,
youtubeId: null, player: null,
tweetUrl: null, tweetUrl: null,
misskeyUrl misskeyUrl
}; };
@ -56,11 +54,7 @@ export default Vue.extend({
created() { created() {
const url = new URL(this.url); const url = new URL(this.url);
if (url.hostname == 'www.youtube.com') { if (this.detail && url.hostname == 'twitter.com' && /^\/.+\/status(es)?\/\d+/.test(url.pathname)) {
this.youtubeId = url.searchParams.get('v');
} else if (url.hostname == 'youtu.be') {
this.youtubeId = url.pathname;
} else if (this.detail && url.hostname == 'twitter.com' && /^\/.+\/status(es)?\/\d+/.test(url.pathname)) {
this.tweetUrl = url; this.tweetUrl = url;
const twttr = (window as any).twttr || {}; const twttr = (window as any).twttr || {};
const loadTweet = () => twttr.widgets.load(this.$refs.tweet); const loadTweet = () => twttr.widgets.load(this.$refs.tweet);
@ -79,17 +73,94 @@ export default Vue.extend({
twttr.ready = loadTweet; twttr.ready = loadTweet;
(window as any).twttr = twttr; (window as any).twttr = twttr;
} }
} else { return;
}
fetch('/url?url=' + encodeURIComponent(this.url)).then(res => { fetch('/url?url=' + encodeURIComponent(this.url)).then(res => {
res.json().then(info => { res.json().then(info => {
if (info.url != null) {
this.title = info.title; this.title = info.title;
this.description = info.description; this.description = info.description;
this.thumbnail = info.thumbnail; this.thumbnail = info.thumbnail;
this.icon = info.icon; this.icon = info.icon;
this.sitename = info.sitename; this.sitename = info.sitename;
this.fetching = false; this.fetching = false;
}); if ([ // THIS IS THE WHITELIST FOR THE EMBED PLAYER
'afreecatv.com',
'aparat.com',
'applemusic.com',
'amazon.com',
'awa.fm',
'bandcamp.com',
'bbc.co.uk',
'beatport.com',
'bilibili.com',
'boomstream.com',
'breakers.tv',
'cam4.com',
'cavelis.net',
'chaturbate.com',
'cnn.com',
'cybergame.tv',
'dailymotion.com',
'deezer.com',
'djlive.pl',
'e-onkyo.com',
'eventials.com',
'facebook.com',
'fc2.com',
'gameplank.tv',
'goodgame.ru',
'google.com',
'hardtunes.com',
'instagram.com',
'johnnylooch.com',
'kexp.org',
'lahzenegar.com',
'liveedu.tv',
'livetube.cc',
'livestream.com',
'meridix.com',
'mixcloud.com',
'mixer.com',
'mobcrush.com',
'mylive.in.th',
'myspace.com',
'netflix.com',
'newretrowave.com',
'nhk.or.jp',
'nicovideo.jp',
'noisetrade.com',
'nood.tv',
'npr.org',
'openrec.tv',
'pandora.com',
'pandora.tv',
'picarto.tv',
'pscp.tv',
'restream.io',
'reverbnation.com',
'sermonaudio.com',
'smashcast.tv',
'songkick.com',
'soundcloud.com',
'spinninrecords.com',
'stitcher.com',
'stream.me',
'switchboard.live',
'tunein.com',
'twitcasting.tv',
'twitch.tv',
'twitter.com',
'vaughnlive.tv',
'veoh.com',
'vimeo.com',
'watchpeoplecode.com',
'web.tv',
'youtube.com',
'youtu.be'
].some(x => x == url.hostname || url.hostname.endsWith(`.${x}`))))
this.player = info.player;
}
}); });
} }
} }

View File

@ -71,7 +71,6 @@ export default Vue.extend({
this.user = user; this.user = user;
this.fetching = false; this.fetching = false;
Progress.done(); Progress.done();
document.title = getUserName(this.user) + ' | %i18n:common.name%';
}); });
}, },

View File

@ -4,7 +4,7 @@
<div> <div>
<p>%fa:R hdd%Storage</p> <p>%fa:R hdd%Storage</p>
<p>Total: {{ total | bytes(1) }}</p> <p>Total: {{ total | bytes(1) }}</p>
<p>Available: {{ available | bytes(1) }}</p> <p>Free: {{ available | bytes(1) }}</p>
<p>Used: {{ used | bytes(1) }}</p> <p>Used: {{ used | bytes(1) }}</p>
</div> </div>
</div> </div>

View File

@ -22,6 +22,7 @@ declare const _CODENAME_: string;
declare const _LICENSE_: string; declare const _LICENSE_: string;
declare const _GOOGLE_MAPS_API_KEY_: string; declare const _GOOGLE_MAPS_API_KEY_: string;
declare const _WELCOME_BG_URL_: string; declare const _WELCOME_BG_URL_: string;
declare const _TWITTER_INTEGRATION_: boolean;
export const host = _HOST_; export const host = _HOST_;
export const hostname = _HOSTNAME_; export const hostname = _HOSTNAME_;
@ -47,3 +48,4 @@ export const codename = _CODENAME_;
export const license = _LICENSE_; export const license = _LICENSE_;
export const googleMapsApiKey = _GOOGLE_MAPS_API_KEY_; export const googleMapsApiKey = _GOOGLE_MAPS_API_KEY_;
export const welcomeBgUrl = _WELCOME_BG_URL_; export const welcomeBgUrl = _WELCOME_BG_URL_;
export const twitterIntegration = _TWITTER_INTEGRATION_;

View File

@ -8,7 +8,7 @@ export default (os: OS) => (cb, file = null) => {
const w = os.new(CropWindow, { const w = os.new(CropWindow, {
image: file, image: file,
title: 'アバターとして表示する部分を選択', title: '%i18n:desktop.avatar-crop-title%',
aspectRatio: 1 / 1 aspectRatio: 1 / 1
}); });
@ -18,11 +18,11 @@ export default (os: OS) => (cb, file = null) => {
data.append('file', blob, file.name + '.cropped.png'); data.append('file', blob, file.name + '.cropped.png');
os.api('drive/folders/find', { os.api('drive/folders/find', {
name: 'アイコン' name: '%i18n:desktop.avatar%'
}).then(iconFolder => { }).then(iconFolder => {
if (iconFolder.length === 0) { if (iconFolder.length === 0) {
os.api('drive/folders/create', { os.api('drive/folders/create', {
name: 'アイコン' name: '%i18n:desktop.avatar%'
}).then(iconFolder => { }).then(iconFolder => {
upload(data, iconFolder); upload(data, iconFolder);
}); });
@ -41,7 +41,7 @@ export default (os: OS) => (cb, file = null) => {
const upload = (data, folder) => { const upload = (data, folder) => {
const dialog = os.new(ProgressDialog, { const dialog = os.new(ProgressDialog, {
title: '新しいアバターをアップロードしています' title: '%i18n:desktop.uploading-avatar%'
}); });
document.body.appendChild(dialog.$el); document.body.appendChild(dialog.$el);
@ -76,10 +76,10 @@ export default (os: OS) => (cb, file = null) => {
}); });
os.apis.dialog({ os.apis.dialog({
title: '%fa:info-circle%アバターを更新しました', title: '%fa:info-circle% %i18n:desktop.avatar-updated%',
text: '新しいアバターが反映されるまで時間がかかる場合があります。', text: null,
actions: [{ actions: [{
text: 'わかった' text: '%i18n:common.got-it%'
}] }]
}); });
@ -92,7 +92,7 @@ export default (os: OS) => (cb, file = null) => {
} else { } else {
os.apis.chooseDriveFile({ os.apis.chooseDriveFile({
multiple: false, multiple: false,
title: '%fa:image%アバターにする画像を選択' title: '%fa:image% %i18n:desktop.choose-avatar%'
}).then(file => { }).then(file => {
fileSelected(file); fileSelected(file);
}); });

View File

@ -8,7 +8,7 @@ export default (os: OS) => {
const cropImage = file => new Promise((resolve, reject) => { const cropImage = file => new Promise((resolve, reject) => {
const w = os.new(CropWindow, { const w = os.new(CropWindow, {
image: file, image: file,
title: 'バナーとして表示する部分を選択', title: '%i18n:desktop.banner-crop-title%',
aspectRatio: 16 / 9 aspectRatio: 16 / 9
}); });
@ -18,11 +18,11 @@ export default (os: OS) => {
data.append('file', blob, file.name + '.cropped.png'); data.append('file', blob, file.name + '.cropped.png');
os.api('drive/folders/find', { os.api('drive/folders/find', {
name: 'バナー' name: '%i18n:desktop.banner%'
}).then(bannerFolder => { }).then(bannerFolder => {
if (bannerFolder.length === 0) { if (bannerFolder.length === 0) {
os.api('drive/folders/create', { os.api('drive/folders/create', {
name: 'バナー' name: '%i18n:desktop.banner%'
}).then(iconFolder => { }).then(iconFolder => {
resolve(upload(data, iconFolder)); resolve(upload(data, iconFolder));
}); });
@ -43,7 +43,7 @@ export default (os: OS) => {
const upload = (data, folder) => new Promise((resolve, reject) => { const upload = (data, folder) => new Promise((resolve, reject) => {
const dialog = os.new(ProgressDialog, { const dialog = os.new(ProgressDialog, {
title: '新しいバナーをアップロードしています' title: '%i18n:desktop.uploading-banner%'
}); });
document.body.appendChild(dialog.$el); document.body.appendChild(dialog.$el);
@ -79,10 +79,10 @@ export default (os: OS) => {
}); });
os.apis.dialog({ os.apis.dialog({
title: '%fa:info-circle%バナーを更新しました', title: '%fa:info-circle% %i18n:desktop.banner-updated%',
text: '新しいバナーが反映されるまで時間がかかる場合があります。', text: null,
actions: [{ actions: [{
text: 'わかった' text: '%i18n:common.got-it%'
}] }]
}); });
@ -95,7 +95,7 @@ export default (os: OS) => {
? Promise.resolve(file) ? Promise.resolve(file)
: os.apis.chooseDriveFile({ : os.apis.chooseDriveFile({
multiple: false, multiple: false,
title: '%fa:image%バナーにする画像を選択' title: '%fa:image% %i18n:desktop.choose-banner%'
}); });
return selectedFile return selectedFile

View File

@ -99,7 +99,7 @@ export default Vue.extend({
text: '%i18n:@contextmenu.set-as-banner%', text: '%i18n:@contextmenu.set-as-banner%',
action: this.setAsBanner action: this.setAsBanner
}] }]
}, { }, /*{
type: 'nest', type: 'nest',
text: '%i18n:@contextmenu.open-in-app%', text: '%i18n:@contextmenu.open-in-app%',
menu: [{ menu: [{
@ -107,7 +107,7 @@ export default Vue.extend({
text: '%i18n:@contextmenu.add-app%...', text: '%i18n:@contextmenu.add-app%...',
action: this.addApp action: this.addApp
}] }]
}], { }*/], {
closed: () => { closed: () => {
this.isContextmenuShowing = false; this.isContextmenuShowing = false;
} }

View File

@ -67,12 +67,12 @@ export default Vue.extend({
text: '%i18n:@contextmenu.rename%', text: '%i18n:@contextmenu.rename%',
icon: '%fa:i-cursor%', icon: '%fa:i-cursor%',
action: this.rename action: this.rename
}, null, { }/*, null, {
type: 'item', type: 'item',
text: '%i18n:common.delete%', text: '%i18n:common.delete%',
icon: '%fa:R trash-alt%', icon: '%fa:R trash-alt%',
action: this.deleteFolder action: this.deleteFolder
}], { }*/], {
closed: () => { closed: () => {
this.isContextmenuShowing = false; this.isContextmenuShowing = false;
} }

View File

@ -567,6 +567,7 @@ export default Vue.extend({
// ファイル一覧取得 // ファイル一覧取得
(this as any).api('drive/files', { (this as any).api('drive/files', {
folderId: this.folder ? this.folder.id : null, folderId: this.folder ? this.folder.id : null,
untilId: this.files[this.files.length - 1].id,
limit: max + 1 limit: max + 1
}).then(files => { }).then(files => {
if (files.length == max + 1) { if (files.length == max + 1) {

View File

@ -79,7 +79,6 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import dateStringify from '../../../common/scripts/date-stringify';
import parse from '../../../../../mfm/parse'; import parse from '../../../../../mfm/parse';
import MkPostFormWindow from './post-form-window.vue'; import MkPostFormWindow from './post-form-window.vue';
@ -129,7 +128,7 @@ export default Vue.extend({
: 0; : 0;
}, },
title(): string { title(): string {
return dateStringify(this.p.createdAt); return new Date(this.p.createdAt).toLocaleString();
}, },
urls(): string[] { urls(): string[] {
if (this.p.text) { if (this.p.text) {

View File

@ -12,7 +12,6 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import dateStringify from '../../../common/scripts/date-stringify';
export default Vue.extend({ export default Vue.extend({
props: { props: {
@ -28,7 +27,7 @@ export default Vue.extend({
}, },
computed: { computed: {
title(): string { title(): string {
return dateStringify(this.note.createdAt); return new Date(this.note.createdAt).toLocaleString();
} }
} }
}); });

View File

@ -12,13 +12,12 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import dateStringify from '../../../common/scripts/date-stringify';
export default Vue.extend({ export default Vue.extend({
props: ['note'], props: ['note'],
computed: { computed: {
title(): string { title(): string {
return dateStringify(this.note.createdAt); return new Date(this.note.createdAt).toLocaleString();
} }
} }
}); });

View File

@ -18,7 +18,7 @@
<div class="body"> <div class="body">
<p v-if="p.cw != null" class="cw"> <p v-if="p.cw != null" class="cw">
<span class="text" v-if="p.cw != ''">{{ p.cw }}</span> <span class="text" v-if="p.cw != ''">{{ p.cw }}</span>
<span class="toggle" @click="showContent = !showContent">{{ showContent ? '隠す' : 'もっと見る' }}</span> <span class="toggle" @click="showContent = !showContent">{{ showContent ? '%i18n:@hide%' : '%i18n:@see-more%' }}</span>
</p> </p>
<div class="content" v-show="p.cw == null || showContent"> <div class="content" v-show="p.cw == null || showContent">
<div class="text"> <div class="text">
@ -71,7 +71,6 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import dateStringify from '../../../common/scripts/date-stringify';
import parse from '../../../../../mfm/parse'; import parse from '../../../../../mfm/parse';
import MkPostFormWindow from './post-form-window.vue'; import MkPostFormWindow from './post-form-window.vue';
@ -128,7 +127,7 @@ export default Vue.extend({
}, },
title(): string { title(): string {
return dateStringify(this.p.createdAt); return new Date(this.p.createdAt).toLocaleString();
}, },
urls(): string[] { urls(): string[] {

View File

@ -33,7 +33,7 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import { url } from '../../../config'; import * as config from '../../../config';
import getNoteSummary from '../../../../../misc/get-note-summary'; import getNoteSummary from '../../../../../misc/get-note-summary';
import XNote from './notes.note.vue'; import XNote from './notes.note.vue';
@ -69,7 +69,7 @@ export default Vue.extend({
const date = new Date(note.createdAt).getDate(); const date = new Date(note.createdAt).getDate();
const month = new Date(note.createdAt).getMonth() + 1; const month = new Date(note.createdAt).getMonth() + 1;
note._date = date; note._date = date;
note._datetext = `${month}${date}`; note._datetext = '%i18n:common.month-and-day%'.replace('{month}', month.toString()).replace('{day}', date.toString());
return note; return note;
}); });
} }
@ -149,7 +149,7 @@ export default Vue.extend({
// サウンドを再生する // サウンドを再生する
if (this.$store.state.device.enableSounds && !silent) { if (this.$store.state.device.enableSounds && !silent) {
const sound = new Audio(`${url}/assets/post.mp3`); const sound = new Audio(`${config.url}/assets/post.mp3`);
sound.volume = this.$store.state.device.soundVolume; sound.volume = this.$store.state.device.soundVolume;
sound.play(); sound.play();
} }
@ -187,7 +187,7 @@ export default Vue.extend({
clearNotification() { clearNotification() {
this.unreadCount = 0; this.unreadCount = 0;
document.title = '%i18n:common.name%'; document.title = config.name;
}, },
onVisibilitychange() { onVisibilitychange() {

View File

@ -130,7 +130,7 @@ export default Vue.extend({
const date = new Date(notification.createdAt).getDate(); const date = new Date(notification.createdAt).getDate();
const month = new Date(notification.createdAt).getMonth() + 1; const month = new Date(notification.createdAt).getMonth() + 1;
notification._date = date; notification._date = date;
notification._datetext = `${month}${date}`; notification._datetext = '%i18n:common.month-and-day%'.replace('{month}', month.toString()).replace('{day}', date.toString());
return notification; return notification;
}); });
} }

View File

@ -14,7 +14,7 @@
<b>%i18n:@recent-tags%:</b> <b>%i18n:@recent-tags%:</b>
<a v-for="tag in recentHashtags.slice(0, 5)" @click="addTag(tag)" title="%@click-to-tagging%">#{{ tag }}</a> <a v-for="tag in recentHashtags.slice(0, 5)" @click="addTag(tag)" title="%@click-to-tagging%">#{{ tag }}</a>
</div> </div>
<input v-show="useCw" v-model="cw" placeholder="内容への注釈 (オプション)"> <input v-show="useCw" v-model="cw" placeholder="%i18n:@annotations%">
<textarea :class="{ with: (files.length != 0 || poll) }" <textarea :class="{ with: (files.length != 0 || poll) }"
ref="text" v-model="text" :disabled="posting" ref="text" v-model="text" :disabled="posting"
@keydown="onKeydown" @paste="onPaste" :placeholder="placeholder" @keydown="onKeydown" @paste="onPaste" :placeholder="placeholder"

View File

@ -4,7 +4,7 @@
<div class="main" ref="main"> <div class="main" ref="main">
<div class="backdrop"></div> <div class="backdrop"></div>
<div class="main"> <div class="main">
<p ref="welcomeback" v-if="$store.getters.isSignedIn">%i18n:@welcome-back%<b>{{ $store.state.i | userName }}</b>さん</p> <p ref="welcomeback" v-if="$store.getters.isSignedIn">%i18n:@welcome-back%<b>{{ $store.state.i | userName }}</b>%i18n:@adjective%</p>
<div class="container" ref="mainContainer"> <div class="container" ref="mainContainer">
<div class="left"> <div class="left">
<x-nav/> <x-nav/>
@ -155,10 +155,12 @@ root(isDark)
max-width 1300px max-width 1300px
margin 0 auto margin 0 auto
> .center > *
margin auto position absolute
height 48px
> .icon > .icon
margin auto
display block display block
width 48px width 48px
height 48px height 48px
@ -169,11 +171,13 @@ root(isDark)
opacity 0.3 opacity 0.3
cursor pointer cursor pointer
> .left > .left,
height 48px > .center
left 0
> .right > .right,
height 48px > .center
right 0
> * > *
display inline-block display inline-block

View File

@ -27,7 +27,7 @@ export default Vue.extend({
methods: { methods: {
add() { add() {
(this as any).apis.input({ (this as any).apis.input({
title: 'リスト名', title: '%i18n:@list-name%',
}).then(async title => { }).then(async title => {
const list = await (this as any).api('users/lists/create', { const list = await (this as any).api('users/lists/create', {
title title

View File

@ -72,7 +72,7 @@ export default Vue.extend({
const date = new Date(note.createdAt).getDate(); const date = new Date(note.createdAt).getDate();
const month = new Date(note.createdAt).getMonth() + 1; const month = new Date(note.createdAt).getMonth() + 1;
note._date = date; note._date = date;
note._datetext = `${month}${date}`; note._datetext = '%i18n:common.month-and-day%'.replace('{month}', month.toString()).replace('{day}', date.toString());
return note; return note;
}); });
} }

View File

@ -51,7 +51,7 @@ export default Vue.extend({
const date = new Date(notification.createdAt).getDate(); const date = new Date(notification.createdAt).getDate();
const month = new Date(notification.createdAt).getMonth() + 1; const month = new Date(notification.createdAt).getMonth() + 1;
notification._date = date; notification._date = date;
notification._datetext = `${month}${date}`; notification._datetext = '%i18n:common.month-and-day%'.replace('{month}', month.toString()).replace('{day}', date.toString());
return notification; return notification;
}); });
} }

View File

@ -4,9 +4,11 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import * as config from '../../../config';
export default Vue.extend({ export default Vue.extend({
mounted() { mounted() {
document.title = '%i18n:common.name% - %i18n:@title%'; document.title = `${config.name} - %i18n:@title%`;
} }
}); });
</script> </script>

View File

@ -7,6 +7,7 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import Progress from '../../../common/scripts/loading'; import Progress from '../../../common/scripts/loading';
import * as config from '../../../config';
export default Vue.extend({ export default Vue.extend({
props: { props: {
@ -16,7 +17,7 @@ export default Vue.extend({
} }
}, },
mounted() { mounted() {
document.title = '%i18n:common.name%'; document.title = config.name;
Progress.start(); Progress.start();
}, },

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="pptjhabgjtt7kwskbfv4y3uml6fpuhmr"> <div class="pptjhabgjtt7kwskbfv4y3uml6fpuhmr">
<h1>{{'%i18n:@share-with%'.split("{}")[0] + '%i18n:common.name%' + '%i18n:@share-with%'.split("{}")[1]}}</h1> <h1>{{ '%i18n:@share-with%'.replace('{}', name) }}</h1>
<div> <div>
<mk-signin v-if="!$store.getters.isSignedIn"/> <mk-signin v-if="!$store.getters.isSignedIn"/>
<mk-post-form v-else-if="!posted" :initial-text="text" :instant="true" @posted="posted = true"/> <mk-post-form v-else-if="!posted" :initial-text="text" :instant="true" @posted="posted = true"/>
@ -12,10 +12,12 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import * as config from '../../../config';
export default Vue.extend({ export default Vue.extend({
data() { data() {
return { return {
name: config.name,
posted: false, posted: false,
text: new URLSearchParams(location.search).get('text') text: new URLSearchParams(location.search).get('text')
}; };

View File

@ -13,7 +13,7 @@
<span v-if="user.isMuted">%fa:eye% %i18n:@unmute%</span> <span v-if="user.isMuted">%fa:eye% %i18n:@unmute%</span>
<span v-if="!user.isMuted">%fa:eye-slash% %i18n:@mute%</span> <span v-if="!user.isMuted">%fa:eye-slash% %i18n:@mute%</span>
</button> </button>
<button class="mute ui" @click="list">%fa:list% リストに追加</button> <button class="mute ui" @click="list">%fa:list% %i18n:@push-to-a-list%</button>
</div> </div>
</div> </div>
</template> </template>
@ -76,7 +76,7 @@ export default Vue.extend({
}); });
(this as any).apis.dialog({ (this as any).apis.dialog({
title: 'Done!', title: 'Done!',
text: `${this.user.name}${list.title}に追加しました。` text: '%i18n:@list-pushed%'.replace('{user}', this.user.name).replace('{list}', list.title)
}); });
}); });
} }

View File

@ -68,7 +68,6 @@ export default Vue.extend({
this.user = user; this.user = user;
this.fetching = false; this.fetching = false;
Progress.done(); Progress.done();
document.title = getUserName(this.user) + ' | %i18n:common.name%';
}); });
}, },

View File

@ -8,7 +8,7 @@
<div class="body" :style="{ backgroundImage: `url('${ welcomeBgUrl }')` }"> <div class="body" :style="{ backgroundImage: `url('${ welcomeBgUrl }')` }">
<div class="container"> <div class="container">
<div class="info"> <div class="info">
<span>%i18n:common.name% <b>{{ host }}</b></span> <span><b>{{ host }}</b></span>
<span class="stats" v-if="stats"> <span class="stats" v-if="stats">
<span>%fa:user% {{ stats.originalUsersCount | number }}</span> <span>%fa:user% {{ stats.originalUsersCount | number }}</span>
<span>%fa:pencil-alt% {{ stats.originalNotesCount | number }}</span> <span>%fa:pencil-alt% {{ stats.originalNotesCount | number }}</span>
@ -16,9 +16,9 @@
</div> </div>
<main> <main>
<div class="about"> <div class="about">
<h1 v-if="name">{{ name }}</h1> <h1 v-if="name != 'Misskey'">{{ name }}</h1>
<h1 v-else><img :src="$store.state.device.darkmode ? 'assets/title.dark.svg' : 'assets/title.light.svg'" alt="%i18n:common.name%"></h1> <h1 v-else><img :src="$store.state.device.darkmode ? 'assets/title.dark.svg' : 'assets/title.light.svg'" :alt="name"></h1>
<p class="powerd-by" v-if="name">%i18n:@powered-by-misskey%</p> <p class="powerd-by" v-if="name != 'Misskey'" v-html="'%i18n:@powered-by-misskey%'"></p>
<p class="desc" v-html="description || '%i18n:common.about%'"></p> <p class="desc" v-html="description || '%i18n:common.about%'"></p>
<a ref="signup" @click="signup">📦 %i18n:@signup%</a> <a ref="signup" @click="signup">📦 %i18n:@signup%</a>
</div> </div>
@ -32,7 +32,7 @@
<mk-nav class="nav"/> <mk-nav class="nav"/>
</div> </div>
<mk-forkit class="forkit"/> <mk-forkit class="forkit"/>
<img src="assets/title.dark.svg" alt="%i18n:common.name%"> <img src="assets/title.dark.svg" :alt="name">
</div> </div>
<div class="tl"> <div class="tl">
<mk-welcome-timeline :max="20"/> <mk-welcome-timeline :max="20"/>

View File

@ -55,7 +55,7 @@ export default define({
}).then(data => { }).then(data => {
this.clear(); this.clear();
}).catch(err => { }).catch(err => {
alert('失敗した'); alert('Something happened');
}).then(() => { }).then(() => {
this.posting = false; this.posting = false;
}); });

View File

@ -6,10 +6,11 @@
<div class="banner" <div class="banner"
:style="$store.state.i.bannerUrl ? `background-image: url(${$store.state.i.bannerUrl})` : ''" :style="$store.state.i.bannerUrl ? `background-image: url(${$store.state.i.bannerUrl})` : ''"
title="%i18n:@update-banner%" title="%i18n:@update-banner%"
@click="os.apis.updateBanner" @click="() => os.apis.updateBanner()"
></div> ></div>
<mk-avatar class="avatar" :user="$store.state.i" <mk-avatar class="avatar" :user="$store.state.i"
@click="os.apis.updateAvatar" :disable-link="true"
@click="() => os.apis.updateAvatar()"
title="%i18n:@update-avatar%" title="%i18n:@update-avatar%"
/> />
<router-link class="name" :to="$store.state.i | userPage">{{ $store.state.i | userName }}</router-link> <router-link class="name" :to="$store.state.i | userPage">{{ $store.state.i | userName }}</router-link>

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-ui> <mk-ui>
<p v-if="fetching">読み込み中</p> <p v-if="fetching">%i18n:common.loading%</p>
<b-card v-if="!fetching" :header="app.name"> <b-card v-if="!fetching" :header="app.name">
<b-form-group label="App Secret"> <b-form-group label="App Secret">
<b-input :value="app.secret" readonly/> <b-input :value="app.secret" readonly/>

View File

@ -1,6 +1,6 @@
<template> <template>
<mk-ui> <mk-ui>
<b-button to="/apps" variant="primary">アプリの管理</b-button> <b-button to="/apps" variant="primary">%i18n:@manage-apps%</b-button>
</mk-ui> </mk-ui>
</template> </template>

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<b-navbar toggleable="md" type="dark" variant="info"> <b-navbar toggleable="md" type="dark" variant="info">
<b-navbar-brand>%i18n:common.name% Developers</b-navbar-brand> <b-navbar-brand>Developers</b-navbar-brand>
<b-navbar-nav> <b-navbar-nav>
<b-nav-item to="/">Home</b-nav-item> <b-nav-item to="/">Home</b-nav-item>
<b-nav-item to="/apps">Apps</b-nav-item> <b-nav-item to="/apps">Apps</b-nav-item>

View File

@ -55,7 +55,7 @@ Vue.mixin({
console.info(`Misskey v${version} (${codename})`); console.info(`Misskey v${version} (${codename})`);
console.info( console.info(
'%cここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。', '%c%i18n:common.do-not-copy-paste%',
'color: red; background: yellow; font-size: 16px; font-weight: bold;'); 'color: red; background: yellow; font-size: 16px; font-weight: bold;');
// BootTimer解除 // BootTimer解除

View File

@ -38,6 +38,7 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import getNoteSummary from '../../../../../misc/get-note-summary'; import getNoteSummary from '../../../../../misc/get-note-summary';
import * as config from '../../../config';
const displayLimit = 30; const displayLimit = 30;
@ -66,7 +67,7 @@ export default Vue.extend({
const date = new Date(note.createdAt).getDate(); const date = new Date(note.createdAt).getDate();
const month = new Date(note.createdAt).getMonth() + 1; const month = new Date(note.createdAt).getMonth() + 1;
note._date = date; note._date = date;
note._datetext = `${month}${date}`; note._datetext = '%i18n:common.month-and-day%'.replace('{month}', month.toString()).replace('{day}', date.toString());
return note; return note;
}); });
} }
@ -183,7 +184,7 @@ export default Vue.extend({
clearNotification() { clearNotification() {
this.unreadCount = 0; this.unreadCount = 0;
document.title = '%i18n:common.name%'; document.title = config.name;
}, },
onVisibilitychange() { onVisibilitychange() {

View File

@ -42,7 +42,7 @@ export default Vue.extend({
const date = new Date(notification.createdAt).getDate(); const date = new Date(notification.createdAt).getDate();
const month = new Date(notification.createdAt).getMonth() + 1; const month = new Date(notification.createdAt).getMonth() + 1;
notification._date = date; notification._date = date;
notification._datetext = `${month}${date}`; notification._datetext = '%i18n:common.month-and-day%'.replace('{month}', month.toString()).replace('{day}', date.toString());
return notification; return notification;
}); });
} }

View File

@ -3,12 +3,12 @@
<mk-special-message/> <mk-special-message/>
<div class="main" ref="main"> <div class="main" ref="main">
<div class="backdrop"></div> <div class="backdrop"></div>
<p ref="welcomeback" v-if="$store.getters.isSignedIn">%i18n:@welcome-back%<b>{{ $store.state.i | userName }}</b>さん</p> <p ref="welcomeback" v-if="$store.getters.isSignedIn">%i18n:@welcome-back%<b>{{ $store.state.i | userName }}</b>%i18n:@adjective%</p>
<div class="content" ref="mainContainer"> <div class="content" ref="mainContainer">
<button class="nav" @click="$parent.isDrawerOpening = true">%fa:bars%</button> <button class="nav" @click="$parent.isDrawerOpening = true">%fa:bars%</button>
<template v-if="hasUnreadNotification || hasUnreadMessagingMessage || hasGameInvitation">%fa:circle%</template> <template v-if="hasUnreadNotification || hasUnreadMessagingMessage || hasGameInvitation">%fa:circle%</template>
<h1> <h1>
<slot>%i18n:common.name%</slot> <slot>config.name</slot>
</h1> </h1>
<slot name="func"></slot> <slot name="func"></slot>
</div> </div>
@ -20,11 +20,13 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import * as anime from 'animejs'; import * as anime from 'animejs';
import * as config from '../../../config';
export default Vue.extend({ export default Vue.extend({
props: ['func'], props: ['func'],
data() { data() {
return { return {
config,
hasGameInvitation: false, hasGameInvitation: false,
connection: null, connection: null,
connectionId: null connectionId: null

View File

@ -25,6 +25,7 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import Progress from '../../../common/scripts/loading'; import Progress from '../../../common/scripts/loading';
import * as config from '../../../config';
export default Vue.extend({ export default Vue.extend({
data() { data() {
@ -43,7 +44,7 @@ export default Vue.extend({
window.addEventListener('popstate', this.onPopState); window.addEventListener('popstate', this.onPopState);
}, },
mounted() { mounted() {
document.title = '%i18n:common.name% Drive'; document.title = `${config.name} Drive`;
document.documentElement.style.background = '#fff'; document.documentElement.style.background = '#fff';
}, },
beforeDestroy() { beforeDestroy() {
@ -63,7 +64,7 @@ export default Vue.extend({
(this.$refs as any).browser.openContextMenu(); (this.$refs as any).browser.openContextMenu();
}, },
onMoveRoot(silent) { onMoveRoot(silent) {
const title = '%i18n:common.name% Drive'; const title = `${config.name} Drive`;
if (!silent) { if (!silent) {
// Rewrite URL // Rewrite URL
@ -76,7 +77,7 @@ export default Vue.extend({
this.folder = null; this.folder = null;
}, },
onOpenFolder(folder, silent) { onOpenFolder(folder, silent) {
const title = folder.name + ' | %i18n:common.name% Drive'; const title = `${folder.name} | ${config.name} Drive`;
if (!silent) { if (!silent) {
// Rewrite URL // Rewrite URL
@ -89,7 +90,7 @@ export default Vue.extend({
this.folder = folder; this.folder = folder;
}, },
onOpenFile(file, silent) { onOpenFile(file, silent) {
const title = file.name + ' | %i18n:common.name% Drive'; const title = `${file.name} | ${config.name} Drive`;
if (!silent) { if (!silent) {
// Rewrite URL // Rewrite URL

View File

@ -14,6 +14,7 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import Progress from '../../../common/scripts/loading'; import Progress from '../../../common/scripts/loading';
import * as config from '../../../config';
export default Vue.extend({ export default Vue.extend({
data() { data() {
@ -28,7 +29,7 @@ export default Vue.extend({
this.fetch(); this.fetch();
}, },
mounted() { mounted() {
document.title = '%i18n:common.name% | %i18n:@notifications%'; document.title = `${config.name} | %i18n:@notifications%`;
}, },
methods: { methods: {
fetch() { fetch() {

View File

@ -21,6 +21,7 @@ import Vue from 'vue';
import Progress from '../../../common/scripts/loading'; import Progress from '../../../common/scripts/loading';
import parseAcct from '../../../../../misc/acct/parse'; import parseAcct from '../../../../../misc/acct/parse';
import getUserName from '../../../../../misc/get-user-name'; import getUserName from '../../../../../misc/get-user-name';
import * as config from '../../../config';
export default Vue.extend({ export default Vue.extend({
data() { data() {
@ -49,7 +50,7 @@ export default Vue.extend({
this.user = user; this.user = user;
this.fetching = false; this.fetching = false;
document.title = '%i18n:@followers-of%'.replace('{}', this.name) + ' | %i18n:common.name%'; document.title = '%i18n:@followers-of%'.replace('{}', this.name) + ' | ' + config.name;
}); });
}, },
onLoaded() { onLoaded() {

View File

@ -20,6 +20,7 @@
import Vue from 'vue'; import Vue from 'vue';
import Progress from '../../../common/scripts/loading'; import Progress from '../../../common/scripts/loading';
import parseAcct from '../../../../../misc/acct/parse'; import parseAcct from '../../../../../misc/acct/parse';
import * as config from '../../../config';
export default Vue.extend({ export default Vue.extend({
data() { data() {
@ -48,7 +49,7 @@ export default Vue.extend({
this.user = user; this.user = user;
this.fetching = false; this.fetching = false;
document.title = '%i18n:@followers-of%'.replace('{}', this.name) + ' | %i18n:common.name%'; document.title = '%i18n:@followers-of%'.replace('{}', this.name) + ' | ' + config.name;
}); });
}, },
onLoaded() { onLoaded() {

View File

@ -7,10 +7,11 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import * as config from '../../../../config';
export default Vue.extend({ export default Vue.extend({
mounted() { mounted() {
document.title = '%i18n:common.name% %i18n:@reversi%'; document.title = `${config.name} %i18n:@reversi%`;
document.documentElement.style.background = '#fff'; document.documentElement.style.background = '#fff';
}, },
methods: { methods: {

View File

@ -49,6 +49,7 @@
import Vue from 'vue'; import Vue from 'vue';
import Progress from '../../../common/scripts/loading'; import Progress from '../../../common/scripts/loading';
import XTl from './home.timeline.vue'; import XTl from './home.timeline.vue';
import * as config from '../../../config';
export default Vue.extend({ export default Vue.extend({
components: { components: {
@ -96,7 +97,7 @@ export default Vue.extend({
}, },
mounted() { mounted() {
document.title = '%i18n:common.name%'; document.title = config.name;
Progress.start(); Progress.start();

View File

@ -11,6 +11,7 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import parseAcct from '../../../../../misc/acct/parse'; import parseAcct from '../../../../../misc/acct/parse';
import * as config from '../../../config';
export default Vue.extend({ export default Vue.extend({
data() { data() {
@ -47,7 +48,7 @@ export default Vue.extend({
this.user = user; this.user = user;
this.fetching = false; this.fetching = false;
document.title = `%i18n:@messaging%: ${Vue.filter('userName')(this.user)} | %i18n:common.name%`; document.title = `%i18n:@messaging%: ${Vue.filter('userName')(this.user)} | ${config.name}`;
}); });
} }
} }

View File

@ -8,10 +8,11 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import getAcct from '../../../../../misc/acct/render'; import getAcct from '../../../../../misc/acct/render';
import * as config from '../../../config';
export default Vue.extend({ export default Vue.extend({
mounted() { mounted() {
document.title = '%i18n:common.name% %i18n:@messaging%'; document.title = `${config.name} %i18n:@messaging%`;
}, },
methods: { methods: {
navigate(user) { navigate(user) {

View File

@ -16,6 +16,7 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import Progress from '../../../common/scripts/loading'; import Progress from '../../../common/scripts/loading';
import * as config from '../../../config';
export default Vue.extend({ export default Vue.extend({
data() { data() {
@ -31,7 +32,7 @@ export default Vue.extend({
this.fetch(); this.fetch();
}, },
mounted() { mounted() {
document.title = '%i18n:common.name%'; document.title = config.name;
}, },
methods: { methods: {
fetch() { fetch() {

View File

@ -15,7 +15,7 @@ import Progress from '../../../common/scripts/loading';
export default Vue.extend({ export default Vue.extend({
mounted() { mounted() {
document.title = '%i18n:common.name% | %i18n:@notifications%'; document.title = '%i18n:@notifications%';
Progress.start(); Progress.start();
}, },

View File

@ -25,7 +25,7 @@ export default Vue.extend({
}; };
}, },
mounted() { mounted() {
document.title = '%i18n:common.name% | %i18n:@title%'; document.title = '%i18n:@title%';
Progress.start(); Progress.start();

View File

@ -3,7 +3,7 @@
<span slot="header">%fa:search% {{ q }}</span> <span slot="header">%fa:search% {{ q }}</span>
<main> <main>
<p v-if="!fetching && empty">%fa:search%{{ q }}に関する投稿は見つかりませんでした</p> <p :class="$style.empty" v-if="!fetching && empty">%fa:search% {{ '%i18n:not-found%'.split('{}')[0] }}{{ q }}{{ '%i18n:not-found%'.split('{}')[1] }}</p>
<mk-notes ref="timeline" :more="existMore ? more : null"/> <mk-notes ref="timeline" :more="existMore ? more : null"/>
</main> </main>
</mk-ui> </mk-ui>
@ -12,6 +12,7 @@
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import Progress from '../../../common/scripts/loading'; import Progress from '../../../common/scripts/loading';
import * as config from '../../../config';
const limit = 20; const limit = 20;
@ -34,7 +35,7 @@ export default Vue.extend({
} }
}, },
mounted() { mounted() {
document.title = `%i18n:@search%: ${this.q} | %i18n:common.name%`; document.title = `%i18n:@search%: ${this.q} | ${config.name}`;
this.fetch(); this.fetch();
}, },

View File

@ -143,7 +143,7 @@ export default Vue.extend({
}, },
mounted() { mounted() {
document.title = '%i18n:common.name% | %i18n:@settings%'; document.title = '%i18n:@settings%';
}, },
methods: { methods: {

View File

@ -1,21 +1,23 @@
<template> <template>
<div class="azibmfpleajagva420swmu4c3r7ni7iw"> <div class="azibmfpleajagva420swmu4c3r7ni7iw">
<h1>{{'%i18n:@share-with%'.split("{}")[0] + '%i18n:common.name%' + '%i18n:@share-with%'.split("{}")[1]}}</h1> <h1>{{ '%i18n:@share-with%'.replace('{}', name) }}</h1>
<div> <div>
<mk-signin v-if="!$store.getters.isSignedIn"/> <mk-signin v-if="!$store.getters.isSignedIn"/>
<mk-post-form v-else-if="!posted" :initial-text="text" :instant="true" @posted="posted = true"/> <mk-post-form v-else-if="!posted" :initial-text="text" :instant="true" @posted="posted = true"/>
<p v-if="posted" class="posted">%fa:check%</p> <p v-if="posted" class="posted">%fa:check%</p>
</div> </div>
<ui-button class="close" v-if="posted" @click="close">閉じる</ui-button> <ui-button class="close" v-if="posted" @click="close">%i18n:common.close%</ui-button>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import Vue from 'vue'; import Vue from 'vue';
import * as config from '../../../config';
export default Vue.extend({ export default Vue.extend({
data() { data() {
return { return {
name: config.name,
posted: false, posted: false,
text: new URLSearchParams(location.search).get('text') text: new URLSearchParams(location.search).get('text')
}; };

View File

@ -23,7 +23,7 @@ export default Vue.extend({
}; };
}, },
mounted() { mounted() {
document.title = '%i18n:common.name% | %i18n:@title%'; document.title = '%i18n:@title%';
Progress.start(); Progress.start();

View File

@ -67,6 +67,7 @@ import * as age from 's-age';
import parseAcct from '../../../../../misc/acct/parse'; import parseAcct from '../../../../../misc/acct/parse';
import Progress from '../../../common/scripts/loading'; import Progress from '../../../common/scripts/loading';
import XHome from './user/home.vue'; import XHome from './user/home.vue';
import * as config from '../../../config';
export default Vue.extend({ export default Vue.extend({
components: { components: {
@ -106,7 +107,7 @@ export default Vue.extend({
this.fetching = false; this.fetching = false;
Progress.done(); Progress.done();
document.title = Vue.filter('userName')(this.user) + ' | %i18n:common.name%'; document.title = Vue.filter('userName')(this.user) + ' | ' + config.name;
}); });
} }
} }

View File

@ -1,10 +1,10 @@
<template> <template>
<div class="welcome"> <div class="welcome">
<div> <div>
<img :src="$store.state.device.darkmode ? 'assets/title.dark.svg' : 'assets/title.light.svg'" alt="%i18n:common.name%"> <img :src="$store.state.device.darkmode ? 'assets/title.dark.svg' : 'assets/title.light.svg'" :alt="name">
<p class="host">{{ host }}</p> <p class="host">{{ host }}</p>
<div class="about"> <div class="about">
<h2>{{ name || 'unidentified' }}</h2> <h2>{{ name }}</h2>
<p v-html="description || '%i18n:common.about%'"></p> <p v-html="description || '%i18n:common.about%'"></p>
<router-link class="signup" to="/signup">%i18n:@signup%</router-link> <router-link class="signup" to="/signup">%i18n:@signup%</router-link>
</div> </div>

View File

@ -24,8 +24,8 @@
<option value="nav">%i18n:common.widgets.nav%</option> <option value="nav">%i18n:common.widgets.nav%</option>
<option value="tips">%i18n:common.widgets.tips%</option> <option value="tips">%i18n:common.widgets.tips%</option>
</select> </select>
<button @click="addWidget">追加</button> <button @click="addWidget">%i18n:add-widget%</button>
<p><a @click="hint">カスタマイズのヒント</a></p> <p><a @click="hint">%i18n:customization-tips%</a></p>
</header> </header>
<x-draggable <x-draggable
:list="widgets" :list="widgets"
@ -53,6 +53,7 @@
import Vue from 'vue'; import Vue from 'vue';
import * as XDraggable from 'vuedraggable'; import * as XDraggable from 'vuedraggable';
import * as uuid from 'uuid'; import * as uuid from 'uuid';
import * as config from '../../../config';
export default Vue.extend({ export default Vue.extend({
components: { components: {
@ -102,7 +103,7 @@ export default Vue.extend({
}, },
mounted() { mounted() {
document.title = '%i18n:common.name%'; document.title = config.name;
}, },
methods: { methods: {

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@ -47,6 +47,8 @@ export default function load() {
if (config.localDriveCapacityMb == null) config.localDriveCapacityMb = 256; if (config.localDriveCapacityMb == null) config.localDriveCapacityMb = 256;
if (config.remoteDriveCapacityMb == null) config.remoteDriveCapacityMb = 8; if (config.remoteDriveCapacityMb == null) config.remoteDriveCapacityMb = 8;
if (config.name == null) config.name = 'Misskey';
return Object.assign(config, mixin); return Object.assign(config, mixin);
} }

View File

@ -3,9 +3,7 @@ import config from '../config';
const u = config.mongodb.user ? encodeURIComponent(config.mongodb.user) : null; const u = config.mongodb.user ? encodeURIComponent(config.mongodb.user) : null;
const p = config.mongodb.pass ? encodeURIComponent(config.mongodb.pass) : null; const p = config.mongodb.pass ? encodeURIComponent(config.mongodb.pass) : null;
const uri = u && p const uri = `mongodb://${u && p ? `${u}:${p}@` : ''}${config.mongodb.host}:${config.mongodb.port}/${config.mongodb.db}`;
? `mongodb://${u}:${p}@${config.mongodb.host}:${config.mongodb.port}/${config.mongodb.db}`
: `mongodb://${config.mongodb.host}:${config.mongodb.port}/${config.mongodb.db}`;
/** /**
* monk * monk

View File

@ -0,0 +1,41 @@
name: "DriveFolder"
desc:
ja: "ドライブのフォルダを表します。"
en: "A folder of Drive."
props:
id:
type: "id"
optional: false
desc:
ja: "フォルダID"
en: "The ID of this folder"
createdAt:
type: "date"
optional: false
desc:
ja: "作成日時"
en: "The created date of this folder"
userId:
type: "id(User)"
optional: false
desc:
ja: "所有者ID"
en: "The ID of the owner of this folder"
parentId:
type: "entity(DriveFolder)"
optional: false
desc:
ja: "親フォルダのID (ルートなら null)"
en: "The ID of parent folder"
name:
type: "string"
optional: false
desc:
ja: "フォルダ名"
en: "The name of this folder"

View File

@ -4,6 +4,8 @@
Error.stackTraceLimit = Infinity; Error.stackTraceLimit = Infinity;
require('events').EventEmitter.defaultMaxListeners = 128;
import * as os from 'os'; import * as os from 'os';
import * as cluster from 'cluster'; import * as cluster from 'cluster';
import * as debug from 'debug'; import * as debug from 'debug';

View File

@ -8,6 +8,7 @@ export default function(reaction: string): string {
case 'congrats': return '🎉'; case 'congrats': return '🎉';
case 'angry': return '💢'; case 'angry': return '💢';
case 'confused': return '😥'; case 'confused': return '😥';
case 'rip': return '😇';
case 'pudding': return '🍮'; case 'pudding': return '🍮';
default: return ''; default: return '';
} }

View File

@ -13,7 +13,7 @@ export default App;
export type IApp = { export type IApp = {
_id: mongo.ObjectID; _id: mongo.ObjectID;
createdAt: Date; createdAt: Date;
userId: mongo.ObjectID; userId: mongo.ObjectID | null;
secret: string; secret: string;
name: string; name: string;
nameId: string; nameId: string;

View File

@ -10,7 +10,7 @@ import DriveFileThumbnail, { deleteDriveFileThumbnail } from './drive-file-thumb
const DriveFile = monkDb.get<IDriveFile>('driveFiles.files'); const DriveFile = monkDb.get<IDriveFile>('driveFiles.files');
DriveFile.createIndex('md5'); DriveFile.createIndex('md5');
DriveFile.createIndex('metadata.uri', { sparse: true, unique: true }); DriveFile.createIndex('metadata.uri');
export default DriveFile; export default DriveFile;
export const DriveFileChunk = monkDb.get('driveFiles.chunks'); export const DriveFileChunk = monkDb.get('driveFiles.chunks');

View File

@ -26,6 +26,7 @@ export const validateReaction = $.str.or([
'congrats', 'congrats',
'angry', 'angry',
'confused', 'confused',
'rip',
'pudding' 'pudding'
]); ]);

View File

@ -340,7 +340,7 @@ export const pack = async (
_note = await rap(_note); _note = await rap(_note);
if (_note.user.isCat && _note.text) { if (_note.user.isCat && _note.text) {
_note.text = _note.text.replace(/な/g, 'にゃ').replace(/ナ/g, 'ニャ'); _note.text = _note.text.replace(/な/g, 'にゃ').replace(/ナ/g, 'ニャ').replace(/ナ/g, 'ニャ');
} }
if (hide) { if (hide) {

View File

@ -7,6 +7,11 @@ export default async (job: bq.Job, done: any): Promise<void> => {
await request(job.data.user, job.data.to, job.data.content); await request(job.data.user, job.data.to, job.data.content);
done(); done();
} catch (res) { } catch (res) {
if (res == null || !res.hasOwnProperty('statusCode')) {
console.warn(`deliver failed (unknown): ${res}`);
return done();
}
if (res.statusCode == null) return done(); if (res.statusCode == null) return done();
if (res.statusCode >= 400 && res.statusCode < 500) { if (res.statusCode >= 400 && res.statusCode < 500) {
// HTTPステータスコード4xxはクライアントエラーであり、それはつまり // HTTPステータスコード4xxはクライアントエラーであり、それはつまり

View File

@ -69,12 +69,13 @@ export async function createNote(value: any, resolver?: Resolver, silent = false
if (!note.to.includes('https://www.w3.org/ns/activitystreams#Public')) { if (!note.to.includes('https://www.w3.org/ns/activitystreams#Public')) {
if (note.cc.includes('https://www.w3.org/ns/activitystreams#Public')) { if (note.cc.includes('https://www.w3.org/ns/activitystreams#Public')) {
visibility = 'home'; visibility = 'home';
} else if (note.to.includes(`${actor.uri}/followers`)) { // TODO: person.followerと照合するべき
visibility = 'followers';
} else { } else {
visibility = 'specified'; visibility = 'specified';
visibleUsers = await Promise.all(note.to.map(uri => resolvePerson(uri))); visibleUsers = await Promise.all(note.to.map(uri => resolvePerson(uri)));
} }
} }
if (note.cc.length == 0) visibility = 'followers';
//#endergion //#endergion
// 添付メディア // 添付メディア

View File

@ -4,5 +4,5 @@ import { IDriveFile } from '../../../models/drive-file';
export default (file: IDriveFile) => ({ export default (file: IDriveFile) => ({
type: 'Document', type: 'Document',
mediaType: file.contentType, mediaType: file.contentType,
url: `${config.drive_url}/${file._id}` url: file.metadata.url || `${config.drive_url}/${file._id}`
}); });

View File

@ -3,6 +3,6 @@ import { IDriveFile } from '../../../models/drive-file';
export default (file: IDriveFile) => ({ export default (file: IDriveFile) => ({
type: 'Image', type: 'Image',
url: `${config.drive_url}/${file._id}`, url: file.metadata.url || `${config.drive_url}/${file._id}`,
sensitive: file.metadata.isSensitive sensitive: file.metadata.isSensitive
}); });

View File

@ -4,7 +4,7 @@ import App, { isValidNameId, pack } from '../../../../models/app';
import { ILocalUser } from '../../../../models/user'; import { ILocalUser } from '../../../../models/user';
export const meta = { export const meta = {
requireCredential: true requireCredential: false
}; };
/** /**
@ -38,7 +38,7 @@ export default async (params: any, user: ILocalUser) => new Promise(async (res,
// Create account // Create account
const app = await App.insert({ const app = await App.insert({
createdAt: new Date(), createdAt: new Date(),
userId: user._id, userId: user && user._id,
name: name, name: name,
nameId: nameId, nameId: nameId,
nameIdLower: nameId.toLowerCase(), nameIdLower: nameId.toLowerCase(),

View File

@ -40,6 +40,5 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) =
}); });
// Serialize // Serialize
res(await Promise.all(history.map(async h => res(await Promise.all(history.map(h => pack(h.messageId, user))));
await pack(h.messageId, user))));
}); });

View File

@ -0,0 +1,43 @@
import $ from 'cafy'; import ID from '../../../../../misc/cafy-id';
import Message from '../../../../../models/messaging-message';
import { ILocalUser } from '../../../../../models/user';
import read from '../../../common/read-messaging-message';
import getParams from '../../../get-params';
export const meta = {
desc: {
ja: '指定した自分宛てのメッセージを既読にします。',
en: 'Mark as read a message of messaging.'
},
requireCredential: true,
kind: 'messaging-write',
params: {
messageId: $.type(ID).note({
desc: {
ja: '既読にするメッセージのID',
en: 'The ID of a message that you want to mark as read'
}
})
}
};
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
const [ps, psErr] = getParams(meta, params);
if (psErr) throw psErr;
const message = await Message.findOne({
_id: ps.messageId,
recipientId: user._id
});
if (message == null) {
return rej('message not found');
}
read(user._id, message.userId, message);
res();
});

View File

@ -8,7 +8,8 @@ import getParams from '../../get-params';
export const meta = { export const meta = {
desc: { desc: {
ja: 'タイムラインを取得します。' ja: 'タイムラインを取得します。',
en: 'Get timeline of myself.'
}, },
requireCredential: true, requireCredential: true,
@ -67,9 +68,6 @@ export const meta = {
} }
}; };
/**
* Get timeline of myself
*/
export default async (params: any, user: ILocalUser) => { export default async (params: any, user: ILocalUser) => {
const [ps, psErr] = getParams(meta, params); const [ps, psErr] = getParams(meta, params);
if (psErr) throw psErr; if (psErr) throw psErr;

View File

@ -14,7 +14,9 @@ module.exports = async (ctx: Koa.Context) => {
ctx.body = summary; ctx.body = summary;
} catch (e) { } catch (e) {
ctx.status = 500; ctx.status = 200;
ctx.set('Cache-Control', 'max-age=86400, immutable');
ctx.body = '{}';
} }
}; };

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