Compare commits
272 Commits
Author | SHA1 | Date | |
---|---|---|---|
d7cd3a05dd | |||
882c60ef10 | |||
59c4c9a0b8 | |||
4a57482216 | |||
6bbccedb2d | |||
fee629849e | |||
e9ebc5151d | |||
8a5c8e8e2e | |||
4000da6be8 | |||
977a4373c5 | |||
e559417cab | |||
f793478709 | |||
15c9d15b8d | |||
3c194142a8 | |||
81dbf64eb7 | |||
7e646f109c | |||
d94c060998 | |||
3d29b052ea | |||
875d793512 | |||
5cdd6521a2 | |||
1df9c1005f | |||
53481accf1 | |||
8fcf75f77c | |||
b1385de758 | |||
f8ba73bebf | |||
ff4cb3555b | |||
361af34956 | |||
11689e6d18 | |||
6ea0028e0e | |||
b39d12f01a | |||
f97c1276fe | |||
73375a2f43 | |||
b87a35b71c | |||
9db9067647 | |||
7053c3125e | |||
e89a63e88c | |||
1b13700ae2 | |||
b7c2fa0c0c | |||
df847ebd86 | |||
fa72856272 | |||
20921e91bf | |||
f597e7c4ae | |||
380651ba62 | |||
45f852b832 | |||
80bf1d4b38 | |||
6909add1ec | |||
d53d059480 | |||
22830965e3 | |||
fa07b3023c | |||
02568df664 | |||
57acfae786 | |||
949c113c7f | |||
6656c87024 | |||
16d7f4ff92 | |||
2145d928df | |||
463aa3f56b | |||
38b4265bce | |||
85c4fdfdb1 | |||
4edb2d9587 | |||
58be3393c3 | |||
c64d8aa90a | |||
0457cd0afc | |||
ee8abb3abb | |||
48516c2eb4 | |||
8a88c896da | |||
048b9c295e | |||
6b3e3eb129 | |||
46ecabc7cb | |||
cc7af0b331 | |||
af654ee92b | |||
5c8adb3935 | |||
794821a847 | |||
4afbdaa3ce | |||
4d98f4d022 | |||
bec63f1454 | |||
4e7b1537d7 | |||
8010ad53ba | |||
6acbde05c2 | |||
beaecd54ee | |||
f0af941cef | |||
ac5d798cde | |||
d2a7c56149 | |||
fc0d339c9d | |||
11303b5bec | |||
b5bcc23d5f | |||
7c92eb2a14 | |||
466cae524e | |||
620722cb55 | |||
160f424466 | |||
fa051df381 | |||
5bd0695b0e | |||
831adfd22e | |||
9b5031dc4f | |||
150c1340a7 | |||
82190d18c8 | |||
0887580132 | |||
48f50bb811 | |||
5d4c63edb3 | |||
df6456c80a | |||
81d5e8c301 | |||
c221bf585c | |||
cdac704836 | |||
c0e0efa050 | |||
2711f86a95 | |||
c21119bb09 | |||
7b172d0b33 | |||
b102b1b0e8 | |||
df4afb32e7 | |||
ed21254497 | |||
5505b2e7af | |||
5d93748ff5 | |||
abddea0443 | |||
9fc1cc5255 | |||
1aa274e10d | |||
deeb536613 | |||
66b64320f1 | |||
9df620a520 | |||
9851612acf | |||
075934eac2 | |||
7fe0fa22c3 | |||
41dc729d95 | |||
e2cb34f109 | |||
ed7b619634 | |||
d09050f13f | |||
dcc76ab4f2 | |||
e035d942b3 | |||
9eada028b8 | |||
1cac95ce8a | |||
b707a574d1 | |||
df40121e4c | |||
0f2c3dfd79 | |||
2c187460a0 | |||
a32a78b5ef | |||
80d7c9bdef | |||
bc6439a339 | |||
d93e60d4dd | |||
4ba43b69b6 | |||
02b9032587 | |||
8b6649b41f | |||
a5a25813d8 | |||
27ceae7406 | |||
5d75746681 | |||
51a6bc4fe1 | |||
94f866b7c8 | |||
95be55135e | |||
7c50d9f1e9 | |||
5d9bb44f1b | |||
b832323508 | |||
48ce86d633 | |||
b1e377dab0 | |||
4c17d488d3 | |||
73c585b9a2 | |||
a3377ff0ba | |||
0a17033551 | |||
12c13660ca | |||
3f1b85452b | |||
5776c52205 | |||
e7a36d6176 | |||
8d42e94e57 | |||
20386acf4e | |||
c92e25ce16 | |||
08599c887e | |||
90ccbd3834 | |||
0931681e8f | |||
0a0da355b9 | |||
b2ec82fba5 | |||
d62597c265 | |||
23d311b6ef | |||
7efdee9145 | |||
45429c9d6b | |||
45adea23b4 | |||
aaa8331733 | |||
501922ed9c | |||
652bb03087 | |||
f1e769e74d | |||
b2e4957bb8 | |||
cb6a4037f2 | |||
9740db8685 | |||
41784de9be | |||
208493ba13 | |||
9798a9bf15 | |||
1df8487d20 | |||
dbfbdfa3f3 | |||
27853e9d51 | |||
03b4fe18f3 | |||
1f32531e07 | |||
a1397bfdbc | |||
bcdb70f407 | |||
ef81a66cf0 | |||
186b0ea560 | |||
ff53b04f4c | |||
1ac9730c7d | |||
d66e2947de | |||
92ca9b1444 | |||
f34ae64ff5 | |||
9ca8383f39 | |||
9fdc884e51 | |||
eeb4772a3c | |||
769e1ed45b | |||
78207c8a4d | |||
7837949b1a | |||
14b16b4733 | |||
256c216dfb | |||
13cee2b4f5 | |||
eb45eeb1ae | |||
3154350b64 | |||
519c9c4499 | |||
c2f6b09969 | |||
c8e2b22942 | |||
f433182c4c | |||
957392aaae | |||
bd8d06e133 | |||
dce347a117 | |||
ef37e20555 | |||
c617b60f70 | |||
fe6243b7a0 | |||
f5e31de81d | |||
5c495ebf7c | |||
9dd64c67a3 | |||
018837db0b | |||
00d5fdfc13 | |||
2debb0c2ca | |||
148d6737cc | |||
c15cb8d28c | |||
1d5471db70 | |||
086b83c1fe | |||
c509e0b86c | |||
e8a1ad9823 | |||
6446b1cfb1 | |||
2b9216c441 | |||
28656a701f | |||
cd628eaf54 | |||
5b9918538a | |||
b05ba5bd68 | |||
0afc7483f6 | |||
c069d01e4b | |||
070e5a3314 | |||
43b5a1e469 | |||
81bbf887e4 | |||
e0aa2ab2b6 | |||
f5000a0364 | |||
694ea9b5a0 | |||
d70bd44db7 | |||
c3cd499e8e | |||
64c89a6d52 | |||
0a4a7bf64c | |||
f879ea760a | |||
08d6269f90 | |||
f454473d6c | |||
2c347d7213 | |||
e6158838e0 | |||
974fe80245 | |||
9676723c85 | |||
9115629424 | |||
8f02716774 | |||
8feb5bd9a4 | |||
826542201e | |||
7ab1315008 | |||
662407f1ba | |||
679de41d8d | |||
89a97142c2 | |||
0a175fddba | |||
64d40b7e49 | |||
ac7e0d5973 | |||
f095951193 | |||
b93eab9cf7 | |||
53298933e4 | |||
e7cfae3ccb | |||
ebb03113ab | |||
b3a0fe823e | |||
bd8897bcc8 | |||
e3896122df |
@ -54,6 +54,8 @@ jobs:
|
|||||||
- run:
|
- run:
|
||||||
name: Build
|
name: Build
|
||||||
command: |
|
command: |
|
||||||
|
node-gyp configure
|
||||||
|
node-gyp build
|
||||||
npm run build || (echo -e '\033[0;34mRebuild modules\033[0;39m' && ls -1A node_modules | grep '^[^@]' | xargs npm rebuild && ls -1A node_modules | grep '^@' | xargs -I%1 sh -c 'ls -1A node_modules/'%1' | xargs -P0 -I%2 npm rebuild node_modules/'%1'/%2' && npm run build)
|
npm run build || (echo -e '\033[0;34mRebuild modules\033[0;39m' && ls -1A node_modules | grep '^[^@]' | xargs npm rebuild && ls -1A node_modules | grep '^@' | xargs -I%1 sh -c 'ls -1A node_modules/'%1' | xargs -P0 -I%2 npm rebuild node_modules/'%1'/%2' && npm run build)
|
||||||
ls -1ARl node_modules > ls
|
ls -1ARl node_modules > ls
|
||||||
- save_cache:
|
- save_cache:
|
||||||
@ -88,7 +90,7 @@ jobs:
|
|||||||
- run:
|
- run:
|
||||||
name: Test
|
name: Test
|
||||||
command: |
|
command: |
|
||||||
npm run test || (npm rebuild && npm run test) || ((node-gyp configure && node-gyp build && npm run build || (echo -e '\033[0;34mRebuild modules\033[0;39m' && ls -1A node_modules | grep '^[^@]' | xargs npm rebuild && ls -1A node_modules | grep '^@' | xargs -I%1 sh -c 'ls -1A node_modules/'%1' | xargs -P0 -I%2 npm rebuild node_modules/'%1'/%2' && npm run build)) && npm run test)
|
npm run test
|
||||||
ls -1ARl node_modules > ls
|
ls -1ARl node_modules > ls
|
||||||
- save_cache:
|
- save_cache:
|
||||||
name: Cache npm packages
|
name: Cache npm packages
|
||||||
|
@ -15,6 +15,9 @@
|
|||||||
"vue/attributes-order": false,
|
"vue/attributes-order": false,
|
||||||
"vue/require-prop-types": false,
|
"vue/require-prop-types": false,
|
||||||
"vue/require-default-prop": false,
|
"vue/require-default-prop": false,
|
||||||
|
"vue/html-closing-bracket-spacing": false,
|
||||||
|
"vue/singleline-html-element-content-newline": false,
|
||||||
|
"vue/no-v-html": false,
|
||||||
"no-console": 0,
|
"no-console": 0,
|
||||||
"no-unused-vars": 0,
|
"no-unused-vars": 0,
|
||||||
"no-empty": 0
|
"no-empty": 0
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -18,3 +18,4 @@ api-docs.json
|
|||||||
/elasticsearch
|
/elasticsearch
|
||||||
*.code-workspace
|
*.code-workspace
|
||||||
yarn.lock
|
yarn.lock
|
||||||
|
.DS_Store
|
||||||
|
1
.node-version
Normal file
1
.node-version
Normal file
@ -0,0 +1 @@
|
|||||||
|
v11.7.0
|
39
CHANGELOG.md
39
CHANGELOG.md
@ -1,6 +1,45 @@
|
|||||||
ChangeLog
|
ChangeLog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
10.78.0
|
||||||
|
----------
|
||||||
|
* 他のインスタンスからアンケートに投票できるように
|
||||||
|
* スパムアカウントを報告できるように
|
||||||
|
* アクティブユーザー数のチャートを追加
|
||||||
|
* 管理画面でドライブのファイルをURLやIDから操作できるように
|
||||||
|
* リアクション解除を他のサーバーと送受信するように
|
||||||
|
* ログイン時に二段階認証が分かりにくいのを改善
|
||||||
|
* 投稿のツールチップを出すのは時間の上だけに変更
|
||||||
|
* `*`や`_`でもイタリック構文を使えるように(アルファベットのみ)
|
||||||
|
* `__`でも太字構文を使えるように(アルファベットのみ)
|
||||||
|
* ハッシュタグ判定の強化
|
||||||
|
* ストーク機能の廃止
|
||||||
|
* ソーシャルタイムラインにフォロワー限定投稿が含まれていない問題を修正
|
||||||
|
* リストタイムラインでフォロワー限定投稿が含まれていない問題を修正
|
||||||
|
* リストタイムラインに自分宛てでないダイレクト投稿が非公開扱いで表示される問題を修正
|
||||||
|
* 自分宛てのダイレクト投稿がホーム/ソーシャルタイムラインにストリームで流れない問題を修正
|
||||||
|
* ストリームで投稿が流れてきたとき、返信先が「この投稿は非公開です」となる問題を修正
|
||||||
|
* 関係のない返信がタイムラインに流れる問題を修正
|
||||||
|
* 常にメディアを閲覧注意として投稿するオプションが機能していなかった問題を修正
|
||||||
|
* リモートユーザーのアイコンが消えることがある問題を修正
|
||||||
|
* ドライブのファイルメニューからアバターやバナーに設定することができない問題を修正
|
||||||
|
* クライアントのAPIリクエストをストリーム経由で行うオプションを廃止
|
||||||
|
* 一部箇所でカスタム絵文字が適用されていないのを修正
|
||||||
|
|
||||||
|
10.77.0
|
||||||
|
----------
|
||||||
|
* ローカルタイムライン無効オプションをグローバルタイムライン無効オプションと分離
|
||||||
|
* モデレータはLTL無効時でもUIからLTLを消さない
|
||||||
|
* インスタンス情報ページに各種タイムラインの有効/無効を表示
|
||||||
|
|
||||||
|
10.76.0
|
||||||
|
----------
|
||||||
|
* disableLocalTimeline機能を強化
|
||||||
|
* インスタンス情報ページの強化
|
||||||
|
* ハッシュタグ判定の強化
|
||||||
|
* SVGサムネイルを表示するように
|
||||||
|
* CWの引き継ぎ機能を無効化
|
||||||
|
|
||||||
10.75.0
|
10.75.0
|
||||||
----------
|
----------
|
||||||
* ダイレクトを非公開のように使えるように
|
* ダイレクトを非公開のように使えるように
|
||||||
|
30
README.md
30
README.md
@ -7,7 +7,7 @@
|
|||||||
[](https://david-dm.org/syuilo/misskey)
|
[](https://david-dm.org/syuilo/misskey)
|
||||||
[](http://makeapullrequest.com)
|
[](http://makeapullrequest.com)
|
||||||
|
|
||||||
**Sophisticated microblogging platform, evolving forever.**
|
**A forever evolving, sophisticated microblogging platform.**
|
||||||
|
|
||||||
<p align="justify">
|
<p align="justify">
|
||||||
<a href="https://misskey.xyz">Misskey</a> is a decentralized microblogging platform born on Earth.
|
<a href="https://misskey.xyz">Misskey</a> is a decentralized microblogging platform born on Earth.
|
||||||
@ -27,7 +27,7 @@ Why don't you take a short break from the hustle and bustle of the city, and div
|
|||||||
|
|
||||||
<h3 align="left">Posting</h3>
|
<h3 align="left">Posting</h3>
|
||||||
<p align="justify">
|
<p align="justify">
|
||||||
Just post your idea, hot topics and anything you want to share. You may decorate your words, attach your favorite pictures or movies, and create a poll - those are all supported in Misskey!
|
Post your ideas, discussion topics, fun moments, or anything else you want to share! Misskey supports text, emoji, pictures, videos, and polls!
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -36,7 +36,7 @@ Just post your idea, hot topics and anything you want to share. You may decorate
|
|||||||
|
|
||||||
<h3 align="right">Reactions</h3>
|
<h3 align="right">Reactions</h3>
|
||||||
<p align="justify">
|
<p align="justify">
|
||||||
The simplest way to tell your emotions to the posts. You can choose the best reaction from various reactions. Reactions on Misskey has much more expressive than other social media which only allows pushing “likes”.
|
Reactions are the simplest way to respond to others' posts. Simply pick a reaction emote from the list! Reactions on Misskey are much more expressive than other social media services which only allow “liking”.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -45,7 +45,7 @@ The simplest way to tell your emotions to the posts. You can choose the best rea
|
|||||||
|
|
||||||
<h3 align="left">Interface</h3>
|
<h3 align="left">Interface</h3>
|
||||||
<p align="justify">
|
<p align="justify">
|
||||||
Highly customizable UI for your taste. We understand no UI fits for everyone. Make your graceful home by editing, adjusting layouts of timeline, and placing widgets.
|
Customize the UI to your own tastes! No UI will work for everyone, so Misskey is completely customizable. Make Misskey *yours* by editing the style, adjusting timeline layouts, and placing widgets.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -54,33 +54,35 @@ Highly customizable UI for your taste. We understand no UI fits for everyone. Ma
|
|||||||
|
|
||||||
<h3 align="right">Misskey Drive</h3>
|
<h3 align="right">Misskey Drive</h3>
|
||||||
<p align="justify">
|
<p align="justify">
|
||||||
Organized uploaded files. Wanna post a picture you have already uploaded? Wish to create a folder for your files? Misskey Drive is the best solution for you.
|
Organize and store your files! Want to post a picture you have already uploaded? Wish you could organize your files into folders? Misskey Drive is a solution!
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
and more! Now it's time to experience the world with your own eyes at [misskey.xyz](https://misskey.xyz) or [other instances](https://joinmisskey.github.io/).
|
...and more! Experience Misskey with your own eyes at [misskey.xyz](https://misskey.xyz) or join one of the [other instances](https://joinmisskey.github.io/) that are available.
|
||||||
|
|
||||||
:package: Create your own instance
|
:package: Create Your Own Instance
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
Please see [Setup and installation guide](./docs/setup.en.md).
|
Please see the [Setup and Installation Guide](./docs/setup.en.md).
|
||||||
|
|
||||||
:wrench: Contribution
|
:wrench: Contribution
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
Please see [Contribution guide](./CONTRIBUTING.md).
|
Please see the [Contribution Guide](./CONTRIBUTING.md).
|
||||||
|
|
||||||
:heart: Backers & Sponsors
|
:heart: Backers & Sponsors
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
<!-- PATREON_START -->
|
<!-- PATREON_START -->
|
||||||
<table><tr>
|
<table><tr>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12190916/fb7fa7983c14425f890369535b1506a4/1?token-time=2145916800&token-hash=WeuDzzz24cRXJogyIkU-mxARqkdyms-rcZKbO-GpGjw%3D" alt="weep" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12190916/fb7fa7983c14425f890369535b1506a4/1?token-time=2145916800&token-hash=WeuDzzz24cRXJogyIkU-mxARqkdyms-rcZKbO-GpGjw%3D" alt="weep" width="100"></td>
|
||||||
|
<td><img src="https://c8.patreon.com/2/200/12059069" alt="naga_rus" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12731202/0995c46cdcb54153ab5f073f5869b70a/1?token-time=2145916800&token-hash=prtYqPOiSHBulhM7NU0VzMaWx39-9ntdq25b6kafDNA%3D" alt="negao" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12731202/0995c46cdcb54153ab5f073f5869b70a/1?token-time=2145916800&token-hash=prtYqPOiSHBulhM7NU0VzMaWx39-9ntdq25b6kafDNA%3D" alt="negao" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12913507/f7181eacafe8469a93033d85f5969c29/2?token-time=2145916800&token-hash=djaJ9cwy9uwTiF9UFtxYQdS8Nw7BhyfaREzZUbErN-0%3D" alt="Melilot" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12913507/f7181eacafe8469a93033d85f5969c29/3?token-time=2145916800&token-hash=c8HeVqLtmdgH-gSBJg8i10gmOcwllM87MDHeznl3el0%3D" alt="Melilot" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12999811/5f349fafcce44dd1824a8b1ebbec4564/3?token-time=2145916800&token-hash=LtV2lRi3L2jOWMLwccr9qWYfPrFlzIo2jYZHKzHEb6k%3D" alt="Xeltica" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12999811/5f349fafcce44dd1824a8b1ebbec4564/3?token-time=2145916800&token-hash=LtV2lRi3L2jOWMLwccr9qWYfPrFlzIo2jYZHKzHEb6k%3D" alt="Xeltica" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/3384329/8b713330cb27404ea6e9fac50ff96efe/1?token-time=2145916800&token-hash=Ch3iF81ZGP0LMo894Y9ajpLisgtE91SnxtZE7fxsgrM%3D" alt="べすれい" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/3384329/8b713330cb27404ea6e9fac50ff96efe/1?token-time=2145916800&token-hash=Ch3iF81ZGP0LMo894Y9ajpLisgtE91SnxtZE7fxsgrM%3D" alt="べすれい" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12021162/963128bb8d14476dbd8407943db8f31a/1?token-time=2145916800&token-hash=1FlxS9MEgmNGH_RHUVHbO5hIXB5I1z0lvA33CTvYvjA%3D" alt="gutfuckllc" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12021162/963128bb8d14476dbd8407943db8f31a/1?token-time=2145916800&token-hash=1FlxS9MEgmNGH_RHUVHbO5hIXB5I1z0lvA33CTvYvjA%3D" alt="gutfuckllc" width="100"></td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td><a href="https://www.patreon.com/weepjp">weep</a></td>
|
<td><a href="https://www.patreon.com/weepjp">weep</a></td>
|
||||||
|
<td><a href="https://www.patreon.com/user?u=12059069">naga_rus</a></td>
|
||||||
<td><a href="https://www.patreon.com/negao">negao</a></td>
|
<td><a href="https://www.patreon.com/negao">negao</a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=12913507">Melilot</a></td>
|
<td><a href="https://www.patreon.com/user?u=12913507">Melilot</a></td>
|
||||||
<td><a href="https://www.patreon.com/Xeltica">Xeltica</a></td>
|
<td><a href="https://www.patreon.com/Xeltica">Xeltica</a></td>
|
||||||
@ -90,17 +92,21 @@ Please see [Contribution guide](./CONTRIBUTING.md).
|
|||||||
<table><tr>
|
<table><tr>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/11357794/923ce94cd8c44ba788ee931907881839/1?token-time=2145916800&token-hash=0xgcpqvFDqRcV_YIEhcPNVH7gs9sLg_BBnTJXCkN4ao%3D" alt="mydarkstar" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/11357794/923ce94cd8c44ba788ee931907881839/1?token-time=2145916800&token-hash=0xgcpqvFDqRcV_YIEhcPNVH7gs9sLg_BBnTJXCkN4ao%3D" alt="mydarkstar" width="100"></td>
|
||||||
<td><img src="https://c8.patreon.com/2/200/12718187" alt="Peter G." width="100"></td>
|
<td><img src="https://c8.patreon.com/2/200/12718187" alt="Peter G." width="100"></td>
|
||||||
|
<td><img src="https://c8.patreon.com/2/200/16542964" alt="Takumi Sugita" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13039004/509d0c412eb14ae08d6a812a3054f7d6/1?token-time=2145916800&token-hash=2PsbFNw0tnubZzgSXD01R6hIgncfiElG7H7HX2Y3dyo%3D" alt="nemu" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13039004/509d0c412eb14ae08d6a812a3054f7d6/1?token-time=2145916800&token-hash=2PsbFNw0tnubZzgSXD01R6hIgncfiElG7H7HX2Y3dyo%3D" alt="nemu" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5881381/6235ca5d3fb04c8e95ef5b4ff2abcc18/3?token-time=2145916800&token-hash=9JtETp0X8gI280Ne1E8bxn6j4Lw5o2k4mJkICx97V_k%3D" alt="YUKIMOCHI" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5881381/6235ca5d3fb04c8e95ef5b4ff2abcc18/3?token-time=2145916800&token-hash=9JtETp0X8gI280Ne1E8bxn6j4Lw5o2k4mJkICx97V_k%3D" alt="YUKIMOCHI" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/8241184/39e18850e87a449e9c9a71acb3310ebd/2?token-time=2145916800&token-hash=zrInDotuEIFslKphuSiCqr3M-r-rveTXjVKWr-VK6M0%3D" alt="Acid Chicken" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/8241184/39e18850e87a449e9c9a71acb3310ebd/2?token-time=2145916800&token-hash=zrInDotuEIFslKphuSiCqr3M-r-rveTXjVKWr-VK6M0%3D" alt="Acid Chicken" width="100"></td>
|
||||||
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/4389829/9f709180ac714651a70f74a82f3ffdb9/2?token-time=2145916800&token-hash=zcwFxb2zopzWwksKVU1YpfAEjsl4yKT02aQ6yiAFRiQ%3D" alt="natalie" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13034746/c711c7f58e204ecfbc2fd646bc8a4eee/1?token-time=2145916800&token-hash=5T8XcaAf9Zyzfg3QubR06s_kJZkArVEM2dwObrBVAU4%3D" alt="Hiratake" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13034746/c711c7f58e204ecfbc2fd646bc8a4eee/1?token-time=2145916800&token-hash=5T8XcaAf9Zyzfg3QubR06s_kJZkArVEM2dwObrBVAU4%3D" alt="Hiratake" width="100"></td>
|
||||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/10789744/97175095d8f04c0f86225ff47cb98d40/1?token-time=2145916800&token-hash=ubVARikVOg3v7NW6LDhtG-ClE1LTU3I2TJ3js2-5xDs%3D" alt="Naoki Hirayama" width="100"></td>
|
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/10789744/97175095d8f04c0f86225ff47cb98d40/1?token-time=2145916800&token-hash=ubVARikVOg3v7NW6LDhtG-ClE1LTU3I2TJ3js2-5xDs%3D" alt="Naoki Hirayama" width="100"></td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td><a href="https://www.patreon.com/mydarkstar">mydarkstar</a></td>
|
<td><a href="https://www.patreon.com/mydarkstar">mydarkstar</a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=12718187">Peter G.</a></td>
|
<td><a href="https://www.patreon.com/user?u=12718187">Peter G.</a></td>
|
||||||
|
<td><a href="https://www.patreon.com/user?u=16542964">Takumi Sugita</a></td>
|
||||||
<td><a href="https://www.patreon.com/user?u=13039004">nemu</a></td>
|
<td><a href="https://www.patreon.com/user?u=13039004">nemu</a></td>
|
||||||
<td><a href="https://www.patreon.com/yukimochi">YUKIMOCHI</a></td>
|
<td><a href="https://www.patreon.com/yukimochi">YUKIMOCHI</a></td>
|
||||||
<td><a href="https://www.patreon.com/acid_chicken">Acid Chicken</a></td>
|
<td><a href="https://www.patreon.com/acid_chicken">Acid Chicken</a></td>
|
||||||
|
<td><a href="https://www.patreon.com/user?u=4389829">natalie</a></td>
|
||||||
<td><a href="https://www.patreon.com/hiratake">Hiratake</a></td>
|
<td><a href="https://www.patreon.com/hiratake">Hiratake</a></td>
|
||||||
<td><a href="https://www.patreon.com/spinlock">Naoki Hirayama</a></td>
|
<td><a href="https://www.patreon.com/spinlock">Naoki Hirayama</a></td>
|
||||||
</tr></table>
|
</tr></table>
|
||||||
@ -116,14 +122,14 @@ Please see [Contribution guide](./CONTRIBUTING.md).
|
|||||||
<td><a href="https://www.patreon.com/user?u=12531784">Takashi Shibuya</a></td>
|
<td><a href="https://www.patreon.com/user?u=12531784">Takashi Shibuya</a></td>
|
||||||
</tr></table>
|
</tr></table>
|
||||||
|
|
||||||
**Last updated:** Sun, 06 Jan 2019 21:53:06 UTC
|
**Last updated:** Fri, 18 Jan 2019 11:58:06 UTC
|
||||||
<!-- PATREON_END -->
|
<!-- PATREON_END -->
|
||||||
|
|
||||||
:four_leaf_clover: Copyright
|
:four_leaf_clover: Copyright
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
> Copyright (c) 2014-2019 syuilo
|
> Copyright (c) 2014-2019 syuilo
|
||||||
|
|
||||||
Misskey is an open-source software licensed under the [GNU AGPLv3](LICENSE).
|
Misskey is open-source software licensed under the [GNU AGPLv3](LICENSE).
|
||||||
|
|
||||||
[![][agpl-3.0-badge]][AGPL-3.0]
|
[![][agpl-3.0-badge]][AGPL-3.0]
|
||||||
|
|
||||||
|
@ -11,14 +11,14 @@ Ce guide explique comment installer et configurer Misskey avec Docker.
|
|||||||
*1.* Télécharger Misskey
|
*1.* Télécharger Misskey
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
1. `git clone -b master git://github.com/syuilo/misskey.git` Clone le dépôt de Misskey sur la branche master.
|
1. `git clone -b master git://github.com/syuilo/misskey.git` Clone le dépôt de Misskey sur la branche master.
|
||||||
2. `cd misskey` Permet de se déplacer dans le dossier du dépôt.
|
2. `cd misskey` Naviguez dans le dossier du dépôt.
|
||||||
3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` Checkout sur le tag de la [dernière version](https://github.com/syuilo/misskey/releases/latest).
|
3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` Checkout sur le tag de la [dernière version](https://github.com/syuilo/misskey/releases/latest).
|
||||||
|
|
||||||
*2.* Configuration de Misskey
|
*2.* Configuration de Misskey
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
1. `cp .config/example.yml .config/default.yml` Copie le fichier `.config/example.yml` et le renommer en `default.yml`.
|
1. `cp .config/example.yml .config/default.yml` Copiez le fichier `.config/example.yml` et renommez-le `default.yml`.
|
||||||
2. `cp .config/mongo_initdb_example.js .config/mongo_initdb.js` Copie le fichier `.config/mongo_initdb_example.js` et le renomme en `mongo_initdb.js`.
|
2. `cp .config/mongo_initdb_example.js .config/mongo_initdb.js` Copie le fichier `.config/mongo_initdb_example.js` et le renomme en `mongo_initdb.js`.
|
||||||
3. Editer `default.yml` et `mongo_initdb.js`.
|
3. Editez `default.yml` et `mongo_initdb.js`.
|
||||||
|
|
||||||
*3.* Configurer Docker
|
*3.* Configurer Docker
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
@ -110,6 +110,8 @@ You can check if the service is running with `systemctl status misskey`.
|
|||||||
3. `npm install`
|
3. `npm install`
|
||||||
4. `npm run build`
|
4. `npm run build`
|
||||||
5. Check [ChangeLog](../CHANGELOG.md) for migration information
|
5. Check [ChangeLog](../CHANGELOG.md) for migration information
|
||||||
|
6. Restart your Misskey process to apply changes
|
||||||
|
7. Enjoy
|
||||||
|
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ Ce guide décrit les étapes à suivre afin d'installer et de configurer une ins
|
|||||||
|
|
||||||
*1.* Création de l'utilisateur Misskey
|
*1.* Création de l'utilisateur Misskey
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
Lancer misskey en tant qu'utilisateur est une mauvaise idée, nous avons besoin de créer un utilisateur dédié.
|
Executer misskey en tant que super-utilisateur étant une mauvaise idée, nous allons créer un utilisateur dédié.
|
||||||
Sur Debian, à titre d'exemple :
|
Sous Debian, par exemple :
|
||||||
|
|
||||||
```
|
```
|
||||||
adduser --disabled-password --disabled-login misskey
|
adduser --disabled-password --disabled-login misskey
|
||||||
@ -32,10 +32,10 @@ Installez les paquets suivants :
|
|||||||
|
|
||||||
*3.* Paramètrage de MongoDB
|
*3.* Paramètrage de MongoDB
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
En mode root :
|
En root :
|
||||||
1. `mongo` Accédez au shell de mango
|
1. `mongo` Ouvrez le shell mongo
|
||||||
2. `use misskey` Utilisez la base de données misskey
|
2. `use misskey` Utilisez la base de données misskey
|
||||||
3. `db.users.save( {dummy:"dummy"} )` Write dummy data to initialize the db.
|
3. `db.users.save( {dummy:"dummy"} )` Écrivez une donnée factice pour initialiser la base de données.
|
||||||
4. `db.createUser( { user: "misskey", pwd: "<password>", roles: [ { role: "readWrite", db: "misskey" } ] } )` Créez l'utilisateur misskey.
|
4. `db.createUser( { user: "misskey", pwd: "<password>", roles: [ { role: "readWrite", db: "misskey" } ] } )` Créez l'utilisateur misskey.
|
||||||
5. `exit` Vous avez terminé !
|
5. `exit` Vous avez terminé !
|
||||||
|
|
||||||
@ -44,12 +44,12 @@ En mode root :
|
|||||||
1. `su - misskey` Basculez vers l'utilisateur misskey.
|
1. `su - misskey` Basculez vers l'utilisateur misskey.
|
||||||
2. `git clone -b master git://github.com/syuilo/misskey.git` Clonez la branche master du dépôt misskey.
|
2. `git clone -b master git://github.com/syuilo/misskey.git` Clonez la branche master du dépôt misskey.
|
||||||
3. `cd misskey` Accédez au dossier misskey.
|
3. `cd misskey` Accédez au dossier misskey.
|
||||||
4. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` Télécharge la [version la plus récente](https://github.com/syuilo/misskey/releases/latest)
|
4. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)` Checkout sur le tag de la [version la plus récente](https://github.com/syuilo/misskey/releases/latest)
|
||||||
5. `npm install` Installez les dépendances de misskey.
|
5. `npm install` Installez les dépendances de misskey.
|
||||||
|
|
||||||
*5.* Création du fichier de configuration
|
*5.* Création du fichier de configuration
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
1. `cp .config/example.yml .config/default.yml` Copiez le fichier `.config/example.yml` et renommez-le `default.yml`.
|
1. `cp .config/example.yml .config/default.yml` Copiez le fichier `.config/example.yml` et renommez-le`default.yml`.
|
||||||
2. Editez le fichier `default.yml`
|
2. Editez le fichier `default.yml`
|
||||||
|
|
||||||
*6.* Construction de Misskey
|
*6.* Construction de Misskey
|
||||||
@ -59,7 +59,7 @@ Construisez Misskey comme ceci :
|
|||||||
|
|
||||||
`npm run build`
|
`npm run build`
|
||||||
|
|
||||||
Si vous êtes sous Debian, vous serez amené à installer les paquets `build-essential`, `python`.
|
Si vous êtes sous Debian, vous serez amené à installer les paquets `build-essential` et `python`.
|
||||||
|
|
||||||
Si vous rencontrez des erreurs concernant certains modules, utilisez node-gyp:
|
Si vous rencontrez des erreurs concernant certains modules, utilisez node-gyp:
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ Lancez tout simplement `npm start`. Bonne chance et amusez-vous bien !
|
|||||||
|
|
||||||
### Démarrage avec systemd
|
### Démarrage avec systemd
|
||||||
|
|
||||||
1. Créez une service systemd sur : `/etc/systemd/system/misskey.service`
|
1. Créez un service systemd sur : `/etc/systemd/system/misskey.service`
|
||||||
2. Editez-le puis copiez et coller ceci dans le fichier :
|
2. Editez-le puis copiez et coller ceci dans le fichier :
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -27,6 +27,7 @@ common:
|
|||||||
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
|
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
|
||||||
load-more: "もっと読み込む"
|
load-more: "もっと読み込む"
|
||||||
enter-password: "パスワードを入力してください"
|
enter-password: "パスワードを入力してください"
|
||||||
|
2fa: "二段階認証"
|
||||||
got-it: "わかった"
|
got-it: "わかった"
|
||||||
customization-tips:
|
customization-tips:
|
||||||
title: "カスタマイズのヒント"
|
title: "カスタマイズのヒント"
|
||||||
@ -124,6 +125,8 @@ common:
|
|||||||
line-width-thin: "細い"
|
line-width-thin: "細い"
|
||||||
line-width-normal: "普通"
|
line-width-normal: "普通"
|
||||||
line-width-thick: "太い"
|
line-width-thick: "太い"
|
||||||
|
hide-password: "パスワードを隠す"
|
||||||
|
show-password: "パスワードを表示する"
|
||||||
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
|
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
|
||||||
user-suspended: "このユーザーは凍結されています。"
|
user-suspended: "このユーザーは凍結されています。"
|
||||||
is-remote-user: "このユーザー情報はコピーです。"
|
is-remote-user: "このユーザー情報はコピーです。"
|
||||||
@ -346,6 +349,18 @@ common/views/components/note-menu.vue:
|
|||||||
delete: "削除"
|
delete: "削除"
|
||||||
delete-confirm: "この投稿を削除しますか?"
|
delete-confirm: "この投稿を削除しますか?"
|
||||||
remote: "投稿元で見る"
|
remote: "投稿元で見る"
|
||||||
|
common/views/components/user-menu.vue:
|
||||||
|
mention: "メンション"
|
||||||
|
mute: "ミュート"
|
||||||
|
unmute: "ミュート解除"
|
||||||
|
block: "ブロック"
|
||||||
|
unblock: "ブロック解除"
|
||||||
|
push-to-list: "リストに追加"
|
||||||
|
select-list: "リストを選択してください"
|
||||||
|
list-pushed: "{user}を{list}に追加しました"
|
||||||
|
report-abuse: "スパムを報告"
|
||||||
|
report-abuse-detail: "どのような迷惑行為を行っていますか?"
|
||||||
|
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
|
||||||
common/views/components/poll.vue:
|
common/views/components/poll.vue:
|
||||||
vote-to: "「{}」に投票する"
|
vote-to: "「{}」に投票する"
|
||||||
vote-count: "{}票"
|
vote-count: "{}票"
|
||||||
@ -759,7 +774,6 @@ desktop/views/components/settings.vue:
|
|||||||
security: "セキュリティ"
|
security: "セキュリティ"
|
||||||
signin: "サインイン履歴"
|
signin: "サインイン履歴"
|
||||||
password: "パスワード"
|
password: "パスワード"
|
||||||
2fa: "二段階認証"
|
|
||||||
other: "その他"
|
other: "その他"
|
||||||
license: "ライセンス"
|
license: "ライセンス"
|
||||||
theme: "テーマ"
|
theme: "テーマ"
|
||||||
@ -773,9 +787,6 @@ desktop/views/components/settings.vue:
|
|||||||
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
||||||
auto-popout: "ウィンドウの自動ポップアウト"
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
advanced: "詳細設定"
|
|
||||||
api-via-stream: "ストリームを経由したAPIリクエスト"
|
|
||||||
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
|
||||||
deck-nav: "デッキ内ナビゲーション"
|
deck-nav: "デッキ内ナビゲーション"
|
||||||
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
||||||
deck-default: "デッキをデフォルトのUIにする"
|
deck-default: "デッキをデフォルトのUIにする"
|
||||||
@ -979,6 +990,7 @@ admin/views/index.vue:
|
|||||||
federation: "連合"
|
federation: "連合"
|
||||||
announcements: "お知らせ"
|
announcements: "お知らせ"
|
||||||
hashtags: "ハッシュタグ"
|
hashtags: "ハッシュタグ"
|
||||||
|
abuse: "スパム報告"
|
||||||
back-to-misskey: "Misskeyに戻る"
|
back-to-misskey: "Misskeyに戻る"
|
||||||
admin/views/dashboard.vue:
|
admin/views/dashboard.vue:
|
||||||
dashboard: "ダッシュボード"
|
dashboard: "ダッシュボード"
|
||||||
@ -988,6 +1000,12 @@ admin/views/dashboard.vue:
|
|||||||
instances: "インスタンス"
|
instances: "インスタンス"
|
||||||
this-instance: "このインスタンス"
|
this-instance: "このインスタンス"
|
||||||
federated: "連合"
|
federated: "連合"
|
||||||
|
admin/views/abuse.vue:
|
||||||
|
title: "スパム報告"
|
||||||
|
target: "対象"
|
||||||
|
reporter: "報告者"
|
||||||
|
details: "詳細"
|
||||||
|
remove-report: "削除"
|
||||||
admin/views/instance.vue:
|
admin/views/instance.vue:
|
||||||
instance: "インスタンス"
|
instance: "インスタンス"
|
||||||
instance-name: "インスタンス名"
|
instance-name: "インスタンス名"
|
||||||
@ -1034,6 +1052,8 @@ admin/views/instance.vue:
|
|||||||
max-note-text-length: "投稿の最大文字数"
|
max-note-text-length: "投稿の最大文字数"
|
||||||
disable-registration: "ユーザー登録の受付を停止する"
|
disable-registration: "ユーザー登録の受付を停止する"
|
||||||
disable-local-timeline: "ローカルタイムラインを無効にする"
|
disable-local-timeline: "ローカルタイムラインを無効にする"
|
||||||
|
disable-global-timeline: "グローバルタイムラインを無効にする"
|
||||||
|
disabling-timelines-info: "これらのタイムラインを無効にしても、管理者およびモデレーターは引き続き利用できます。"
|
||||||
invite: "招待"
|
invite: "招待"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "保存しました"
|
saved: "保存しました"
|
||||||
@ -1077,6 +1097,7 @@ admin/views/charts.vue:
|
|||||||
notes-total: "投稿の積算"
|
notes-total: "投稿の積算"
|
||||||
users: "ユーザーの増減"
|
users: "ユーザーの増減"
|
||||||
users-total: "ユーザーの積算"
|
users-total: "ユーザーの積算"
|
||||||
|
active-users: "アクティブユーザー数"
|
||||||
drive: "ドライブ使用量の増減"
|
drive: "ドライブ使用量の増減"
|
||||||
drive-total: "ドライブ使用量の積算"
|
drive-total: "ドライブ使用量の積算"
|
||||||
drive-files: "ドライブのファイル数の増減"
|
drive-files: "ドライブのファイル数の増減"
|
||||||
@ -1085,6 +1106,10 @@ admin/views/charts.vue:
|
|||||||
network-time: "応答時間"
|
network-time: "応答時間"
|
||||||
network-usage: "通信量"
|
network-usage: "通信量"
|
||||||
admin/views/drive.vue:
|
admin/views/drive.vue:
|
||||||
|
operation: "操作"
|
||||||
|
fileid-or-url: "ファイルIDまたはファイルURL"
|
||||||
|
file-not-found: "ファイルが見つかりません"
|
||||||
|
lookup: "照会"
|
||||||
sort:
|
sort:
|
||||||
title: "ソート"
|
title: "ソート"
|
||||||
createdAtAsc: "アップロード日時が古い順"
|
createdAtAsc: "アップロード日時が古い順"
|
||||||
@ -1100,6 +1125,8 @@ admin/views/drive.vue:
|
|||||||
deleted: "削除しました"
|
deleted: "削除しました"
|
||||||
mark-as-sensitive: "閲覧注意に設定"
|
mark-as-sensitive: "閲覧注意に設定"
|
||||||
unmark-as-sensitive: "閲覧注意を解除"
|
unmark-as-sensitive: "閲覧注意を解除"
|
||||||
|
marked-as-sensitive: "閲覧注意に設定しました"
|
||||||
|
unmarked-as-sensitive: "閲覧注意を解除しました"
|
||||||
admin/views/users.vue:
|
admin/views/users.vue:
|
||||||
operation: "操作"
|
operation: "操作"
|
||||||
username-or-userid: "ユーザー名またはユーザーID"
|
username-or-userid: "ユーザー名またはユーザーID"
|
||||||
@ -1123,6 +1150,14 @@ admin/views/users.vue:
|
|||||||
createdAtDesc: "登録日時が新しい順"
|
createdAtDesc: "登録日時が新しい順"
|
||||||
updatedAtAsc: "更新日時が古い順"
|
updatedAtAsc: "更新日時が古い順"
|
||||||
updatedAtDesc: "更新日時が新しい順"
|
updatedAtDesc: "更新日時が新しい順"
|
||||||
|
state:
|
||||||
|
title: "状態"
|
||||||
|
all: "すべて"
|
||||||
|
admin: "管理者"
|
||||||
|
moderator: "モデレーター"
|
||||||
|
adminOrModerator: "管理者+モデレーター"
|
||||||
|
verified: "公式アカウント"
|
||||||
|
suspended: "凍結済み"
|
||||||
origin:
|
origin:
|
||||||
title: "オリジン"
|
title: "オリジン"
|
||||||
combined: "ローカル+リモート"
|
combined: "ローカル+リモート"
|
||||||
@ -1135,6 +1170,8 @@ admin/views/moderators.vue:
|
|||||||
title: "モデレーターの登録"
|
title: "モデレーターの登録"
|
||||||
add: "登録"
|
add: "登録"
|
||||||
added: "モデレーターを登録しました"
|
added: "モデレーターを登録しました"
|
||||||
|
remove: "解除"
|
||||||
|
removed: "モデレーター登録を解除しました"
|
||||||
admin/views/emoji.vue:
|
admin/views/emoji.vue:
|
||||||
add-emoji:
|
add-emoji:
|
||||||
title: "絵文字の登録"
|
title: "絵文字の登録"
|
||||||
@ -1216,22 +1253,11 @@ desktop/views/pages/user/user.photos.vue:
|
|||||||
no-photos: "写真はありません"
|
no-photos: "写真はありません"
|
||||||
desktop/views/pages/user/user.profile.vue:
|
desktop/views/pages/user/user.profile.vue:
|
||||||
follows-you: "フォローされています"
|
follows-you: "フォローされています"
|
||||||
stalk: "ストークする"
|
menu: "メニュー"
|
||||||
stalking: "ストーキングしています"
|
|
||||||
unstalk: "ストーク解除"
|
|
||||||
mute: "ミュートする"
|
|
||||||
muted: "ミュートしています"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロックする"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
block-confirm: "このユーザーをブロックしますか?"
|
|
||||||
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: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
is-bot: "このアカウントはBotです"
|
is-bot: "このアカウントはBotです"
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
year: "年"
|
year: "年"
|
||||||
@ -1472,14 +1498,7 @@ mobile/views/pages/user.vue:
|
|||||||
overview: "概要"
|
overview: "概要"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
media: "メディア"
|
media: "メディア"
|
||||||
mute: "ミュート"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロック"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
push-to-list: "リストに追加"
|
|
||||||
select-list: "リストを選択してください"
|
|
||||||
list-pushed: "{user}を{list}に追加しました"
|
|
||||||
mobile/views/pages/user/home.vue:
|
mobile/views/pages/user/home.vue:
|
||||||
recent-notes: "最近の投稿"
|
recent-notes: "最近の投稿"
|
||||||
images: "画像"
|
images: "画像"
|
||||||
@ -1525,12 +1544,10 @@ deck/deck.user-column.vue:
|
|||||||
posts: "投稿"
|
posts: "投稿"
|
||||||
following: "フォロー"
|
following: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
images: "画像"
|
images: "画像"
|
||||||
activity: "アクティビティ"
|
activity: "アクティビティ"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
pinned-notes: "ピン留めされた投稿"
|
pinned-notes: "ピン留めされた投稿"
|
||||||
push-to-a-list: "リストに追加"
|
|
||||||
docs:
|
docs:
|
||||||
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
||||||
edit-this-page-on-github-link: "このページをGitHubで編集"
|
edit-this-page-on-github-link: "このページをGitHubで編集"
|
||||||
|
@ -27,6 +27,7 @@ common:
|
|||||||
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
|
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
|
||||||
load-more: "もっと読み込む"
|
load-more: "もっと読み込む"
|
||||||
enter-password: "パスワードを入力してください"
|
enter-password: "パスワードを入力してください"
|
||||||
|
2fa: "二段階認証"
|
||||||
got-it: "Verstanden!"
|
got-it: "Verstanden!"
|
||||||
customization-tips:
|
customization-tips:
|
||||||
title: "Anpassung-Tipps"
|
title: "Anpassung-Tipps"
|
||||||
@ -124,6 +125,8 @@ common:
|
|||||||
line-width-thin: "細い"
|
line-width-thin: "細い"
|
||||||
line-width-normal: "普通"
|
line-width-normal: "普通"
|
||||||
line-width-thick: "太い"
|
line-width-thick: "太い"
|
||||||
|
hide-password: "パスワードを隠す"
|
||||||
|
show-password: "パスワードを表示する"
|
||||||
do-not-use-in-production: "Dies ist eine Entwicklungsversion. Nicht in einer Produktionsumgebung verwenden."
|
do-not-use-in-production: "Dies ist eine Entwicklungsversion. Nicht in einer Produktionsumgebung verwenden."
|
||||||
user-suspended: "このユーザーは凍結されています。"
|
user-suspended: "このユーザーは凍結されています。"
|
||||||
is-remote-user: "このユーザー情報はコピーです。"
|
is-remote-user: "このユーザー情報はコピーです。"
|
||||||
@ -346,6 +349,18 @@ common/views/components/note-menu.vue:
|
|||||||
delete: "Löschen"
|
delete: "Löschen"
|
||||||
delete-confirm: "Diesen Post löschen?"
|
delete-confirm: "Diesen Post löschen?"
|
||||||
remote: "Auf Quelle anzeigen"
|
remote: "Auf Quelle anzeigen"
|
||||||
|
common/views/components/user-menu.vue:
|
||||||
|
mention: "メンション"
|
||||||
|
mute: "ミュート"
|
||||||
|
unmute: "ミュート解除"
|
||||||
|
block: "ブロック"
|
||||||
|
unblock: "ブロック解除"
|
||||||
|
push-to-list: "リストに追加"
|
||||||
|
select-list: "リストを選択してください"
|
||||||
|
list-pushed: "{user}を{list}に追加しました"
|
||||||
|
report-abuse: "スパムを報告"
|
||||||
|
report-abuse-detail: "どのような迷惑行為を行っていますか?"
|
||||||
|
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
|
||||||
common/views/components/poll.vue:
|
common/views/components/poll.vue:
|
||||||
vote-to: "Stimme für '{}'"
|
vote-to: "Stimme für '{}'"
|
||||||
vote-count: "{} Stimmen"
|
vote-count: "{} Stimmen"
|
||||||
@ -759,7 +774,6 @@ desktop/views/components/settings.vue:
|
|||||||
security: "Sicherheit"
|
security: "Sicherheit"
|
||||||
signin: "サインイン履歴"
|
signin: "サインイン履歴"
|
||||||
password: "Passwort"
|
password: "Passwort"
|
||||||
2fa: "Zwei-Faktor-Authentifizierung"
|
|
||||||
other: "Anderes"
|
other: "Anderes"
|
||||||
license: "Lizenz"
|
license: "Lizenz"
|
||||||
theme: "テーマ"
|
theme: "テーマ"
|
||||||
@ -773,9 +787,6 @@ desktop/views/components/settings.vue:
|
|||||||
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
||||||
auto-popout: "Automatische Pop-out Fenster"
|
auto-popout: "Automatische Pop-out Fenster"
|
||||||
auto-popout-desc: "Pop-out ein offenes Fenster wenn möglich. Diese Einstellung wird im Browser gespeichert."
|
auto-popout-desc: "Pop-out ein offenes Fenster wenn möglich. Diese Einstellung wird im Browser gespeichert."
|
||||||
advanced: "Erweiterte Einstellungen"
|
|
||||||
api-via-stream: "API-Anfrage via stream"
|
|
||||||
api-via-stream-desc: "API-Anfrage über WebSocket statt native Aktualisierungs-API (für bessere Leistung). Diese Einstellung wird im Browser gespeichert."
|
|
||||||
deck-nav: "デッキ内ナビゲーション"
|
deck-nav: "デッキ内ナビゲーション"
|
||||||
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
||||||
deck-default: "デッキをデフォルトのUIにする"
|
deck-default: "デッキをデフォルトのUIにする"
|
||||||
@ -979,6 +990,7 @@ admin/views/index.vue:
|
|||||||
federation: "連合"
|
federation: "連合"
|
||||||
announcements: "お知らせ"
|
announcements: "お知らせ"
|
||||||
hashtags: "ハッシュタグ"
|
hashtags: "ハッシュタグ"
|
||||||
|
abuse: "スパム報告"
|
||||||
back-to-misskey: "Misskeyに戻る"
|
back-to-misskey: "Misskeyに戻る"
|
||||||
admin/views/dashboard.vue:
|
admin/views/dashboard.vue:
|
||||||
dashboard: "ダッシュボード"
|
dashboard: "ダッシュボード"
|
||||||
@ -988,6 +1000,12 @@ admin/views/dashboard.vue:
|
|||||||
instances: "インスタンス"
|
instances: "インスタンス"
|
||||||
this-instance: "このインスタンス"
|
this-instance: "このインスタンス"
|
||||||
federated: "連合"
|
federated: "連合"
|
||||||
|
admin/views/abuse.vue:
|
||||||
|
title: "スパム報告"
|
||||||
|
target: "対象"
|
||||||
|
reporter: "報告者"
|
||||||
|
details: "詳細"
|
||||||
|
remove-report: "削除"
|
||||||
admin/views/instance.vue:
|
admin/views/instance.vue:
|
||||||
instance: "インスタンス"
|
instance: "インスタンス"
|
||||||
instance-name: "インスタンス名"
|
instance-name: "インスタンス名"
|
||||||
@ -1034,6 +1052,8 @@ admin/views/instance.vue:
|
|||||||
max-note-text-length: "投稿の最大文字数"
|
max-note-text-length: "投稿の最大文字数"
|
||||||
disable-registration: "ユーザー登録の受付を停止する"
|
disable-registration: "ユーザー登録の受付を停止する"
|
||||||
disable-local-timeline: "ローカルタイムラインを無効にする"
|
disable-local-timeline: "ローカルタイムラインを無効にする"
|
||||||
|
disable-global-timeline: "グローバルタイムラインを無効にする"
|
||||||
|
disabling-timelines-info: "これらのタイムラインを無効にしても、管理者およびモデレーターは引き続き利用できます。"
|
||||||
invite: "招待"
|
invite: "招待"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "保存しました"
|
saved: "保存しました"
|
||||||
@ -1077,6 +1097,7 @@ admin/views/charts.vue:
|
|||||||
notes-total: "投稿の積算"
|
notes-total: "投稿の積算"
|
||||||
users: "ユーザーの増減"
|
users: "ユーザーの増減"
|
||||||
users-total: "ユーザーの積算"
|
users-total: "ユーザーの積算"
|
||||||
|
active-users: "アクティブユーザー数"
|
||||||
drive: "ドライブ使用量の増減"
|
drive: "ドライブ使用量の増減"
|
||||||
drive-total: "ドライブ使用量の積算"
|
drive-total: "ドライブ使用量の積算"
|
||||||
drive-files: "ドライブのファイル数の増減"
|
drive-files: "ドライブのファイル数の増減"
|
||||||
@ -1085,6 +1106,10 @@ admin/views/charts.vue:
|
|||||||
network-time: "応答時間"
|
network-time: "応答時間"
|
||||||
network-usage: "通信量"
|
network-usage: "通信量"
|
||||||
admin/views/drive.vue:
|
admin/views/drive.vue:
|
||||||
|
operation: "操作"
|
||||||
|
fileid-or-url: "ファイルIDまたはファイルURL"
|
||||||
|
file-not-found: "ファイルが見つかりません"
|
||||||
|
lookup: "照会"
|
||||||
sort:
|
sort:
|
||||||
title: "ソート"
|
title: "ソート"
|
||||||
createdAtAsc: "アップロード日時が古い順"
|
createdAtAsc: "アップロード日時が古い順"
|
||||||
@ -1100,6 +1125,8 @@ admin/views/drive.vue:
|
|||||||
deleted: "削除しました"
|
deleted: "削除しました"
|
||||||
mark-as-sensitive: "閲覧注意に設定"
|
mark-as-sensitive: "閲覧注意に設定"
|
||||||
unmark-as-sensitive: "閲覧注意を解除"
|
unmark-as-sensitive: "閲覧注意を解除"
|
||||||
|
marked-as-sensitive: "閲覧注意に設定しました"
|
||||||
|
unmarked-as-sensitive: "閲覧注意を解除しました"
|
||||||
admin/views/users.vue:
|
admin/views/users.vue:
|
||||||
operation: "操作"
|
operation: "操作"
|
||||||
username-or-userid: "ユーザー名またはユーザーID"
|
username-or-userid: "ユーザー名またはユーザーID"
|
||||||
@ -1123,6 +1150,14 @@ admin/views/users.vue:
|
|||||||
createdAtDesc: "登録日時が新しい順"
|
createdAtDesc: "登録日時が新しい順"
|
||||||
updatedAtAsc: "更新日時が古い順"
|
updatedAtAsc: "更新日時が古い順"
|
||||||
updatedAtDesc: "更新日時が新しい順"
|
updatedAtDesc: "更新日時が新しい順"
|
||||||
|
state:
|
||||||
|
title: "状態"
|
||||||
|
all: "すべて"
|
||||||
|
admin: "管理者"
|
||||||
|
moderator: "モデレーター"
|
||||||
|
adminOrModerator: "管理者+モデレーター"
|
||||||
|
verified: "公式アカウント"
|
||||||
|
suspended: "凍結済み"
|
||||||
origin:
|
origin:
|
||||||
title: "オリジン"
|
title: "オリジン"
|
||||||
combined: "ローカル+リモート"
|
combined: "ローカル+リモート"
|
||||||
@ -1135,6 +1170,8 @@ admin/views/moderators.vue:
|
|||||||
title: "モデレーターの登録"
|
title: "モデレーターの登録"
|
||||||
add: "登録"
|
add: "登録"
|
||||||
added: "モデレーターを登録しました"
|
added: "モデレーターを登録しました"
|
||||||
|
remove: "解除"
|
||||||
|
removed: "モデレーター登録を解除しました"
|
||||||
admin/views/emoji.vue:
|
admin/views/emoji.vue:
|
||||||
add-emoji:
|
add-emoji:
|
||||||
title: "絵文字の登録"
|
title: "絵文字の登録"
|
||||||
@ -1216,22 +1253,11 @@ desktop/views/pages/user/user.photos.vue:
|
|||||||
no-photos: "写真はありません"
|
no-photos: "写真はありません"
|
||||||
desktop/views/pages/user/user.profile.vue:
|
desktop/views/pages/user/user.profile.vue:
|
||||||
follows-you: "フォローされています"
|
follows-you: "フォローされています"
|
||||||
stalk: "ストークする"
|
menu: "メニュー"
|
||||||
stalking: "ストーキングしています"
|
|
||||||
unstalk: "ストーク解除"
|
|
||||||
mute: "ミュートする"
|
|
||||||
muted: "ミュートしています"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロックする"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
block-confirm: "このユーザーをブロックしますか?"
|
|
||||||
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: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
is-bot: "このアカウントはBotです"
|
is-bot: "このアカウントはBotです"
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
year: "年"
|
year: "年"
|
||||||
@ -1472,14 +1498,7 @@ mobile/views/pages/user.vue:
|
|||||||
overview: "概要"
|
overview: "概要"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
media: "メディア"
|
media: "メディア"
|
||||||
mute: "ミュート"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロック"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
push-to-list: "リストに追加"
|
|
||||||
select-list: "リストを選択してください"
|
|
||||||
list-pushed: "{user}を{list}に追加しました"
|
|
||||||
mobile/views/pages/user/home.vue:
|
mobile/views/pages/user/home.vue:
|
||||||
recent-notes: "最近の投稿"
|
recent-notes: "最近の投稿"
|
||||||
images: "画像"
|
images: "画像"
|
||||||
@ -1525,12 +1544,10 @@ deck/deck.user-column.vue:
|
|||||||
posts: "投稿"
|
posts: "投稿"
|
||||||
following: "フォロー"
|
following: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
images: "画像"
|
images: "画像"
|
||||||
activity: "アクティビティ"
|
activity: "アクティビティ"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
pinned-notes: "ピン留めされた投稿"
|
pinned-notes: "ピン留めされた投稿"
|
||||||
push-to-a-list: "リストに追加"
|
|
||||||
docs:
|
docs:
|
||||||
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
||||||
edit-this-page-on-github-link: "このページをGitHubで編集"
|
edit-this-page-on-github-link: "このページをGitHubで編集"
|
||||||
|
@ -27,6 +27,7 @@ common:
|
|||||||
do-not-copy-paste: "Please do not enter or paste the code here. Account may be compromised."
|
do-not-copy-paste: "Please do not enter or paste the code here. Account may be compromised."
|
||||||
load-more: "Load more"
|
load-more: "Load more"
|
||||||
enter-password: "Please enter the Password"
|
enter-password: "Please enter the Password"
|
||||||
|
2fa: "Two-factor authentication"
|
||||||
got-it: "Got it!"
|
got-it: "Got it!"
|
||||||
customization-tips:
|
customization-tips:
|
||||||
title: "Customization tips"
|
title: "Customization tips"
|
||||||
@ -124,6 +125,8 @@ common:
|
|||||||
line-width-thin: "Thin"
|
line-width-thin: "Thin"
|
||||||
line-width-normal: "Regular"
|
line-width-normal: "Regular"
|
||||||
line-width-thick: "Thick"
|
line-width-thick: "Thick"
|
||||||
|
hide-password: "Hide Password"
|
||||||
|
show-password: "Show Password"
|
||||||
do-not-use-in-production: "This is a development build. Do not use in production."
|
do-not-use-in-production: "This is a development build. Do not use in production."
|
||||||
user-suspended: "This user has been suspended."
|
user-suspended: "This user has been suspended."
|
||||||
is-remote-user: "This user's information is mirrored."
|
is-remote-user: "This user's information is mirrored."
|
||||||
@ -346,6 +349,18 @@ common/views/components/note-menu.vue:
|
|||||||
delete: "Delete"
|
delete: "Delete"
|
||||||
delete-confirm: "Are you sure you want to delete this post?"
|
delete-confirm: "Are you sure you want to delete this post?"
|
||||||
remote: "Show original note"
|
remote: "Show original note"
|
||||||
|
common/views/components/user-menu.vue:
|
||||||
|
mention: "Mention"
|
||||||
|
mute: "Mute"
|
||||||
|
unmute: "Unmute"
|
||||||
|
block: "Block"
|
||||||
|
unblock: "Unblock"
|
||||||
|
push-to-list: "Add to list"
|
||||||
|
select-list: "Select a list"
|
||||||
|
list-pushed: "Successfully added {user} to {list}."
|
||||||
|
report-abuse: "Report abuse"
|
||||||
|
report-abuse-detail: "どのような迷惑行為を行っていますか?"
|
||||||
|
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
|
||||||
common/views/components/poll.vue:
|
common/views/components/poll.vue:
|
||||||
vote-to: "Vote for '{}'"
|
vote-to: "Vote for '{}'"
|
||||||
vote-count: "{} votes"
|
vote-count: "{} votes"
|
||||||
@ -607,8 +622,8 @@ desktop/views/components/drive.file.vue:
|
|||||||
copy-url: "Copy URL"
|
copy-url: "Copy URL"
|
||||||
download: "Download"
|
download: "Download"
|
||||||
else-files: "Others"
|
else-files: "Others"
|
||||||
set-as-avatar: "Set as avatar"
|
set-as-avatar: "Set as an avatar"
|
||||||
set-as-banner: "Set as banner"
|
set-as-banner: "Set as a banner"
|
||||||
open-in-app: "Open in app"
|
open-in-app: "Open in app"
|
||||||
add-app: "Add app"
|
add-app: "Add app"
|
||||||
rename-file: "Rename file"
|
rename-file: "Rename file"
|
||||||
@ -759,7 +774,6 @@ desktop/views/components/settings.vue:
|
|||||||
security: "Security"
|
security: "Security"
|
||||||
signin: "Sign in history"
|
signin: "Sign in history"
|
||||||
password: "Password"
|
password: "Password"
|
||||||
2fa: "Two-factor authentication"
|
|
||||||
other: "Other"
|
other: "Other"
|
||||||
license: "License"
|
license: "License"
|
||||||
theme: "Theme"
|
theme: "Theme"
|
||||||
@ -773,9 +787,6 @@ desktop/views/components/settings.vue:
|
|||||||
web-search-engine-desc: "Example: https://www.google.com/?#q={{query}}"
|
web-search-engine-desc: "Example: https://www.google.com/?#q={{query}}"
|
||||||
auto-popout: "Auto pop-out window"
|
auto-popout: "Auto pop-out window"
|
||||||
auto-popout-desc: "If it's possible, pop-out display will be used instead of opening a new window. This setting is stored in your browser."
|
auto-popout-desc: "If it's possible, pop-out display will be used instead of opening a new window. This setting is stored in your browser."
|
||||||
advanced: "Advanced settings"
|
|
||||||
api-via-stream: "API request via stream"
|
|
||||||
api-via-stream-desc: "API request is performed via the WebSocket connection instead of native fetch API (for better performance). This setting is stored in the browser."
|
|
||||||
deck-nav: "Transitionless deck navigation"
|
deck-nav: "Transitionless deck navigation"
|
||||||
deck-nav-desc: "You get a temporary column without page transitions during navigation when using the deck."
|
deck-nav-desc: "You get a temporary column without page transitions during navigation when using the deck."
|
||||||
deck-default: "Use Deck as default UI"
|
deck-default: "Use Deck as default UI"
|
||||||
@ -979,6 +990,7 @@ admin/views/index.vue:
|
|||||||
federation: "Federation"
|
federation: "Federation"
|
||||||
announcements: "Announcements"
|
announcements: "Announcements"
|
||||||
hashtags: "Hashtags"
|
hashtags: "Hashtags"
|
||||||
|
abuse: "Abuse"
|
||||||
back-to-misskey: "Back to Misskey"
|
back-to-misskey: "Back to Misskey"
|
||||||
admin/views/dashboard.vue:
|
admin/views/dashboard.vue:
|
||||||
dashboard: "Dashboard"
|
dashboard: "Dashboard"
|
||||||
@ -988,6 +1000,12 @@ admin/views/dashboard.vue:
|
|||||||
instances: "Instances"
|
instances: "Instances"
|
||||||
this-instance: "This instance"
|
this-instance: "This instance"
|
||||||
federated: "Federated"
|
federated: "Federated"
|
||||||
|
admin/views/abuse.vue:
|
||||||
|
title: "Abuse"
|
||||||
|
target: "Target"
|
||||||
|
reporter: "Reporter"
|
||||||
|
details: "Details"
|
||||||
|
remove-report: "Remove"
|
||||||
admin/views/instance.vue:
|
admin/views/instance.vue:
|
||||||
instance: "Instance"
|
instance: "Instance"
|
||||||
instance-name: "Instance name"
|
instance-name: "Instance name"
|
||||||
@ -1035,6 +1053,8 @@ admin/views/instance.vue:
|
|||||||
max-note-text-length: "Maximum numbers of post characters"
|
max-note-text-length: "Maximum numbers of post characters"
|
||||||
disable-registration: "Disable new user registration"
|
disable-registration: "Disable new user registration"
|
||||||
disable-local-timeline: "Disable the Local Timeline"
|
disable-local-timeline: "Disable the Local Timeline"
|
||||||
|
disable-global-timeline: "Disable global timeline"
|
||||||
|
disabling-timelines-info: "これらのタイムラインを無効にしても、管理者およびモデレーターは引き続き利用できます。"
|
||||||
invite: "Invite"
|
invite: "Invite"
|
||||||
save: "Save"
|
save: "Save"
|
||||||
saved: "Saved"
|
saved: "Saved"
|
||||||
@ -1078,6 +1098,7 @@ admin/views/charts.vue:
|
|||||||
notes-total: "Total posts"
|
notes-total: "Total posts"
|
||||||
users: "The number of users: increase/decrease"
|
users: "The number of users: increase/decrease"
|
||||||
users-total: "Total users"
|
users-total: "Total users"
|
||||||
|
active-users: "Active users"
|
||||||
drive: "Capacity used as the storage: increase/decrease"
|
drive: "Capacity used as the storage: increase/decrease"
|
||||||
drive-total: "Total usage of Drive"
|
drive-total: "Total usage of Drive"
|
||||||
drive-files: "The number of files on the storage: increase/decrease"
|
drive-files: "The number of files on the storage: increase/decrease"
|
||||||
@ -1086,6 +1107,10 @@ admin/views/charts.vue:
|
|||||||
network-time: "Response time"
|
network-time: "Response time"
|
||||||
network-usage: "Traffic"
|
network-usage: "Traffic"
|
||||||
admin/views/drive.vue:
|
admin/views/drive.vue:
|
||||||
|
operation: "Operations"
|
||||||
|
fileid-or-url: "File ID or URL"
|
||||||
|
file-not-found: "File not found"
|
||||||
|
lookup: "Look up"
|
||||||
sort:
|
sort:
|
||||||
title: "Sort"
|
title: "Sort"
|
||||||
createdAtAsc: "Age - Oldest First"
|
createdAtAsc: "Age - Oldest First"
|
||||||
@ -1101,6 +1126,8 @@ admin/views/drive.vue:
|
|||||||
deleted: "Deleted successfully"
|
deleted: "Deleted successfully"
|
||||||
mark-as-sensitive: "Mark as 'sensitive'"
|
mark-as-sensitive: "Mark as 'sensitive'"
|
||||||
unmark-as-sensitive: "Unmark as 'sensitive'"
|
unmark-as-sensitive: "Unmark as 'sensitive'"
|
||||||
|
marked-as-sensitive: "閲覧注意に設定しました"
|
||||||
|
unmarked-as-sensitive: "閲覧注意を解除しました"
|
||||||
admin/views/users.vue:
|
admin/views/users.vue:
|
||||||
operation: "Operations"
|
operation: "Operations"
|
||||||
username-or-userid: "Username or user ID"
|
username-or-userid: "Username or user ID"
|
||||||
@ -1124,6 +1151,14 @@ admin/views/users.vue:
|
|||||||
createdAtDesc: "Date Registered (Descending)"
|
createdAtDesc: "Date Registered (Descending)"
|
||||||
updatedAtAsc: "Last Updated (Ascending)"
|
updatedAtAsc: "Last Updated (Ascending)"
|
||||||
updatedAtDesc: "Last Updated (Descending)"
|
updatedAtDesc: "Last Updated (Descending)"
|
||||||
|
state:
|
||||||
|
title: "Status"
|
||||||
|
all: "All"
|
||||||
|
admin: "Administrator"
|
||||||
|
moderator: "Moderator"
|
||||||
|
adminOrModerator: "Admin/Moderator"
|
||||||
|
verified: "Verified account"
|
||||||
|
suspended: "Suspended"
|
||||||
origin:
|
origin:
|
||||||
title: "Origin"
|
title: "Origin"
|
||||||
combined: "Local + Remote"
|
combined: "Local + Remote"
|
||||||
@ -1136,6 +1171,8 @@ admin/views/moderators.vue:
|
|||||||
title: "Register Moderator"
|
title: "Register Moderator"
|
||||||
add: "Register"
|
add: "Register"
|
||||||
added: "Registered a Moderator."
|
added: "Registered a Moderator."
|
||||||
|
remove: "Discharge"
|
||||||
|
removed: "The moderator has been discharged"
|
||||||
admin/views/emoji.vue:
|
admin/views/emoji.vue:
|
||||||
add-emoji:
|
add-emoji:
|
||||||
title: "Add emoji"
|
title: "Add emoji"
|
||||||
@ -1217,22 +1254,11 @@ desktop/views/pages/user/user.photos.vue:
|
|||||||
no-photos: "No photos"
|
no-photos: "No photos"
|
||||||
desktop/views/pages/user/user.profile.vue:
|
desktop/views/pages/user/user.profile.vue:
|
||||||
follows-you: "Follows you"
|
follows-you: "Follows you"
|
||||||
stalk: "Stalk"
|
menu: "Menu"
|
||||||
stalking: "Stalking"
|
|
||||||
unstalk: "Unstalk"
|
|
||||||
mute: "Mute"
|
|
||||||
muted: "Muting"
|
|
||||||
unmute: "Unmute"
|
|
||||||
block: "Block"
|
|
||||||
unblock: "Unblock"
|
|
||||||
block-confirm: "Are you sure block this user?"
|
|
||||||
push-to-a-list: "Add to list"
|
|
||||||
list-pushed: "Successfully 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"
|
||||||
followers: "Followers"
|
followers: "Followers"
|
||||||
mention: "Mentions"
|
|
||||||
is-bot: "This account is a Bot"
|
is-bot: "This account is a Bot"
|
||||||
years-old: "{age} years old"
|
years-old: "{age} years old"
|
||||||
year: "/"
|
year: "/"
|
||||||
@ -1473,14 +1499,7 @@ mobile/views/pages/user.vue:
|
|||||||
overview: "Overview"
|
overview: "Overview"
|
||||||
timeline: "Timeline"
|
timeline: "Timeline"
|
||||||
media: "Media"
|
media: "Media"
|
||||||
mute: "Mute"
|
|
||||||
unmute: "Unmute"
|
|
||||||
block: "Block"
|
|
||||||
unblock: "Unblock"
|
|
||||||
years-old: "{age} years old"
|
years-old: "{age} years old"
|
||||||
push-to-list: "Add to list"
|
|
||||||
select-list: "Select a list"
|
|
||||||
list-pushed: "Successfully added {user} to {list}."
|
|
||||||
mobile/views/pages/user/home.vue:
|
mobile/views/pages/user/home.vue:
|
||||||
recent-notes: "Recent notes"
|
recent-notes: "Recent notes"
|
||||||
images: "Images"
|
images: "Images"
|
||||||
@ -1526,12 +1545,10 @@ deck/deck.user-column.vue:
|
|||||||
posts: "Posts"
|
posts: "Posts"
|
||||||
following: "Following"
|
following: "Following"
|
||||||
followers: "Followers"
|
followers: "Followers"
|
||||||
mention: "Mentions"
|
|
||||||
images: "Images"
|
images: "Images"
|
||||||
activity: "Activity"
|
activity: "Activity"
|
||||||
timeline: "Timeline"
|
timeline: "Timeline"
|
||||||
pinned-notes: "Pinned posts"
|
pinned-notes: "Pinned posts"
|
||||||
push-to-a-list: "Add to list"
|
|
||||||
docs:
|
docs:
|
||||||
edit-this-page-on-github: "Found an error, or do you want to contribute to the documentation?"
|
edit-this-page-on-github: "Found an error, or do you want to contribute to the documentation?"
|
||||||
edit-this-page-on-github-link: "Edit this page at GitHub!"
|
edit-this-page-on-github-link: "Edit this page at GitHub!"
|
||||||
|
@ -27,6 +27,7 @@ common:
|
|||||||
do-not-copy-paste: "Por favor no copies código aquí. Tu cuenta puede resultar comprometida."
|
do-not-copy-paste: "Por favor no copies código aquí. Tu cuenta puede resultar comprometida."
|
||||||
load-more: "もっと読み込む"
|
load-more: "もっと読み込む"
|
||||||
enter-password: "パスワードを入力してください"
|
enter-password: "パスワードを入力してください"
|
||||||
|
2fa: "二段階認証"
|
||||||
got-it: "¡Listo!"
|
got-it: "¡Listo!"
|
||||||
customization-tips:
|
customization-tips:
|
||||||
title: "Consejos de personalización"
|
title: "Consejos de personalización"
|
||||||
@ -124,6 +125,8 @@ common:
|
|||||||
line-width-thin: "細い"
|
line-width-thin: "細い"
|
||||||
line-width-normal: "普通"
|
line-width-normal: "普通"
|
||||||
line-width-thick: "太い"
|
line-width-thick: "太い"
|
||||||
|
hide-password: "パスワードを隠す"
|
||||||
|
show-password: "パスワードを表示する"
|
||||||
do-not-use-in-production: "Esto está en desarrollo, no usarlo para producción."
|
do-not-use-in-production: "Esto está en desarrollo, no usarlo para producción."
|
||||||
user-suspended: "このユーザーは凍結されています。"
|
user-suspended: "このユーザーは凍結されています。"
|
||||||
is-remote-user: "このユーザー情報はコピーです。"
|
is-remote-user: "このユーザー情報はコピーです。"
|
||||||
@ -346,6 +349,18 @@ common/views/components/note-menu.vue:
|
|||||||
delete: "Borrar"
|
delete: "Borrar"
|
||||||
delete-confirm: "¿Seguro que quieres borrar la publicación?"
|
delete-confirm: "¿Seguro que quieres borrar la publicación?"
|
||||||
remote: "Ver el original"
|
remote: "Ver el original"
|
||||||
|
common/views/components/user-menu.vue:
|
||||||
|
mention: "メンション"
|
||||||
|
mute: "ミュート"
|
||||||
|
unmute: "ミュート解除"
|
||||||
|
block: "ブロック"
|
||||||
|
unblock: "ブロック解除"
|
||||||
|
push-to-list: "リストに追加"
|
||||||
|
select-list: "リストを選択してください"
|
||||||
|
list-pushed: "{user}を{list}に追加しました"
|
||||||
|
report-abuse: "スパムを報告"
|
||||||
|
report-abuse-detail: "どのような迷惑行為を行っていますか?"
|
||||||
|
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
|
||||||
common/views/components/poll.vue:
|
common/views/components/poll.vue:
|
||||||
vote-to: "'{}' para votar"
|
vote-to: "'{}' para votar"
|
||||||
vote-count: "{} votos"
|
vote-count: "{} votos"
|
||||||
@ -759,7 +774,6 @@ desktop/views/components/settings.vue:
|
|||||||
security: "Seguridad"
|
security: "Seguridad"
|
||||||
signin: "Historial de inicios de sesión"
|
signin: "Historial de inicios de sesión"
|
||||||
password: "Contraseña"
|
password: "Contraseña"
|
||||||
2fa: "Autenticación de Doble-Factor"
|
|
||||||
other: "Otros"
|
other: "Otros"
|
||||||
license: "Licencia"
|
license: "Licencia"
|
||||||
theme: "テーマ"
|
theme: "テーマ"
|
||||||
@ -773,9 +787,6 @@ desktop/views/components/settings.vue:
|
|||||||
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
||||||
auto-popout: "Ventana emergente automática"
|
auto-popout: "Ventana emergente automática"
|
||||||
auto-popout-desc: "Muestra una ventana emergente si es posible. Esta configuración depende del navegador."
|
auto-popout-desc: "Muestra una ventana emergente si es posible. Esta configuración depende del navegador."
|
||||||
advanced: "Configuración avanzada"
|
|
||||||
api-via-stream: "Solicitar API por medio de un stream"
|
|
||||||
api-via-stream-desc: "Las peticiones de las API se realizan por conexiones WebSocket en lugar de las tradicionales (para una mejora en el rendimiento). Esta función depende del navegador."
|
|
||||||
deck-nav: "デッキ内ナビゲーション"
|
deck-nav: "デッキ内ナビゲーション"
|
||||||
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
||||||
deck-default: "デッキをデフォルトのUIにする"
|
deck-default: "デッキをデフォルトのUIにする"
|
||||||
@ -979,6 +990,7 @@ admin/views/index.vue:
|
|||||||
federation: "連合"
|
federation: "連合"
|
||||||
announcements: "お知らせ"
|
announcements: "お知らせ"
|
||||||
hashtags: "ハッシュタグ"
|
hashtags: "ハッシュタグ"
|
||||||
|
abuse: "スパム報告"
|
||||||
back-to-misskey: "Misskeyに戻る"
|
back-to-misskey: "Misskeyに戻る"
|
||||||
admin/views/dashboard.vue:
|
admin/views/dashboard.vue:
|
||||||
dashboard: "ダッシュボード"
|
dashboard: "ダッシュボード"
|
||||||
@ -988,6 +1000,12 @@ admin/views/dashboard.vue:
|
|||||||
instances: "インスタンス"
|
instances: "インスタンス"
|
||||||
this-instance: "このインスタンス"
|
this-instance: "このインスタンス"
|
||||||
federated: "連合"
|
federated: "連合"
|
||||||
|
admin/views/abuse.vue:
|
||||||
|
title: "スパム報告"
|
||||||
|
target: "対象"
|
||||||
|
reporter: "報告者"
|
||||||
|
details: "詳細"
|
||||||
|
remove-report: "削除"
|
||||||
admin/views/instance.vue:
|
admin/views/instance.vue:
|
||||||
instance: "インスタンス"
|
instance: "インスタンス"
|
||||||
instance-name: "インスタンス名"
|
instance-name: "インスタンス名"
|
||||||
@ -1034,6 +1052,8 @@ admin/views/instance.vue:
|
|||||||
max-note-text-length: "投稿の最大文字数"
|
max-note-text-length: "投稿の最大文字数"
|
||||||
disable-registration: "ユーザー登録の受付を停止する"
|
disable-registration: "ユーザー登録の受付を停止する"
|
||||||
disable-local-timeline: "ローカルタイムラインを無効にする"
|
disable-local-timeline: "ローカルタイムラインを無効にする"
|
||||||
|
disable-global-timeline: "グローバルタイムラインを無効にする"
|
||||||
|
disabling-timelines-info: "これらのタイムラインを無効にしても、管理者およびモデレーターは引き続き利用できます。"
|
||||||
invite: "招待"
|
invite: "招待"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "保存しました"
|
saved: "保存しました"
|
||||||
@ -1077,6 +1097,7 @@ admin/views/charts.vue:
|
|||||||
notes-total: "投稿の積算"
|
notes-total: "投稿の積算"
|
||||||
users: "ユーザーの増減"
|
users: "ユーザーの増減"
|
||||||
users-total: "ユーザーの積算"
|
users-total: "ユーザーの積算"
|
||||||
|
active-users: "アクティブユーザー数"
|
||||||
drive: "ドライブ使用量の増減"
|
drive: "ドライブ使用量の増減"
|
||||||
drive-total: "ドライブ使用量の積算"
|
drive-total: "ドライブ使用量の積算"
|
||||||
drive-files: "ドライブのファイル数の増減"
|
drive-files: "ドライブのファイル数の増減"
|
||||||
@ -1085,6 +1106,10 @@ admin/views/charts.vue:
|
|||||||
network-time: "応答時間"
|
network-time: "応答時間"
|
||||||
network-usage: "通信量"
|
network-usage: "通信量"
|
||||||
admin/views/drive.vue:
|
admin/views/drive.vue:
|
||||||
|
operation: "操作"
|
||||||
|
fileid-or-url: "ファイルIDまたはファイルURL"
|
||||||
|
file-not-found: "ファイルが見つかりません"
|
||||||
|
lookup: "照会"
|
||||||
sort:
|
sort:
|
||||||
title: "ソート"
|
title: "ソート"
|
||||||
createdAtAsc: "アップロード日時が古い順"
|
createdAtAsc: "アップロード日時が古い順"
|
||||||
@ -1100,6 +1125,8 @@ admin/views/drive.vue:
|
|||||||
deleted: "削除しました"
|
deleted: "削除しました"
|
||||||
mark-as-sensitive: "閲覧注意に設定"
|
mark-as-sensitive: "閲覧注意に設定"
|
||||||
unmark-as-sensitive: "閲覧注意を解除"
|
unmark-as-sensitive: "閲覧注意を解除"
|
||||||
|
marked-as-sensitive: "閲覧注意に設定しました"
|
||||||
|
unmarked-as-sensitive: "閲覧注意を解除しました"
|
||||||
admin/views/users.vue:
|
admin/views/users.vue:
|
||||||
operation: "操作"
|
operation: "操作"
|
||||||
username-or-userid: "ユーザー名またはユーザーID"
|
username-or-userid: "ユーザー名またはユーザーID"
|
||||||
@ -1123,6 +1150,14 @@ admin/views/users.vue:
|
|||||||
createdAtDesc: "登録日時が新しい順"
|
createdAtDesc: "登録日時が新しい順"
|
||||||
updatedAtAsc: "更新日時が古い順"
|
updatedAtAsc: "更新日時が古い順"
|
||||||
updatedAtDesc: "更新日時が新しい順"
|
updatedAtDesc: "更新日時が新しい順"
|
||||||
|
state:
|
||||||
|
title: "状態"
|
||||||
|
all: "すべて"
|
||||||
|
admin: "管理者"
|
||||||
|
moderator: "モデレーター"
|
||||||
|
adminOrModerator: "管理者+モデレーター"
|
||||||
|
verified: "公式アカウント"
|
||||||
|
suspended: "凍結済み"
|
||||||
origin:
|
origin:
|
||||||
title: "オリジン"
|
title: "オリジン"
|
||||||
combined: "ローカル+リモート"
|
combined: "ローカル+リモート"
|
||||||
@ -1135,6 +1170,8 @@ admin/views/moderators.vue:
|
|||||||
title: "モデレーターの登録"
|
title: "モデレーターの登録"
|
||||||
add: "登録"
|
add: "登録"
|
||||||
added: "モデレーターを登録しました"
|
added: "モデレーターを登録しました"
|
||||||
|
remove: "解除"
|
||||||
|
removed: "モデレーター登録を解除しました"
|
||||||
admin/views/emoji.vue:
|
admin/views/emoji.vue:
|
||||||
add-emoji:
|
add-emoji:
|
||||||
title: "絵文字の登録"
|
title: "絵文字の登録"
|
||||||
@ -1216,22 +1253,11 @@ desktop/views/pages/user/user.photos.vue:
|
|||||||
no-photos: "写真はありません"
|
no-photos: "写真はありません"
|
||||||
desktop/views/pages/user/user.profile.vue:
|
desktop/views/pages/user/user.profile.vue:
|
||||||
follows-you: "フォローされています"
|
follows-you: "フォローされています"
|
||||||
stalk: "ストークする"
|
menu: "メニュー"
|
||||||
stalking: "ストーキングしています"
|
|
||||||
unstalk: "ストーク解除"
|
|
||||||
mute: "ミュートする"
|
|
||||||
muted: "ミュートしています"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロックする"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
block-confirm: "このユーザーをブロックしますか?"
|
|
||||||
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: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
is-bot: "このアカウントはBotです"
|
is-bot: "このアカウントはBotです"
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
year: "年"
|
year: "年"
|
||||||
@ -1472,14 +1498,7 @@ mobile/views/pages/user.vue:
|
|||||||
overview: "概要"
|
overview: "概要"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
media: "メディア"
|
media: "メディア"
|
||||||
mute: "ミュート"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロック"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
push-to-list: "リストに追加"
|
|
||||||
select-list: "リストを選択してください"
|
|
||||||
list-pushed: "{user}を{list}に追加しました"
|
|
||||||
mobile/views/pages/user/home.vue:
|
mobile/views/pages/user/home.vue:
|
||||||
recent-notes: "最近の投稿"
|
recent-notes: "最近の投稿"
|
||||||
images: "画像"
|
images: "画像"
|
||||||
@ -1525,12 +1544,10 @@ deck/deck.user-column.vue:
|
|||||||
posts: "投稿"
|
posts: "投稿"
|
||||||
following: "フォロー"
|
following: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
images: "画像"
|
images: "画像"
|
||||||
activity: "アクティビティ"
|
activity: "アクティビティ"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
pinned-notes: "ピン留めされた投稿"
|
pinned-notes: "ピン留めされた投稿"
|
||||||
push-to-a-list: "リストに追加"
|
|
||||||
docs:
|
docs:
|
||||||
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
||||||
edit-this-page-on-github-link: "このページをGitHubで編集"
|
edit-this-page-on-github-link: "このページをGitHubで編集"
|
||||||
|
@ -27,6 +27,7 @@ common:
|
|||||||
do-not-copy-paste: "Veuillez ne pas entrer ou coller le code ici. Le compte pourrait être compromis."
|
do-not-copy-paste: "Veuillez ne pas entrer ou coller le code ici. Le compte pourrait être compromis."
|
||||||
load-more: "Charger plus"
|
load-more: "Charger plus"
|
||||||
enter-password: "Veuillez entrer le mot de passe"
|
enter-password: "Veuillez entrer le mot de passe"
|
||||||
|
2fa: "Authentification à deux facteurs"
|
||||||
got-it: "J’ai compris !"
|
got-it: "J’ai compris !"
|
||||||
customization-tips:
|
customization-tips:
|
||||||
title: "Conseils de personnalisation"
|
title: "Conseils de personnalisation"
|
||||||
@ -124,6 +125,8 @@ common:
|
|||||||
line-width-thin: "Fine"
|
line-width-thin: "Fine"
|
||||||
line-width-normal: "Normale"
|
line-width-normal: "Normale"
|
||||||
line-width-thick: "Épaisse"
|
line-width-thick: "Épaisse"
|
||||||
|
hide-password: "Masquer le mot de passe"
|
||||||
|
show-password: "Afficher le mot de passe"
|
||||||
do-not-use-in-production: "Il s’agit d’une version de développement. Ne pas utiliser dans un environnement de production."
|
do-not-use-in-production: "Il s’agit d’une version de développement. Ne pas utiliser dans un environnement de production."
|
||||||
user-suspended: "Cet·te utilisateur·trice a été suspendu·e"
|
user-suspended: "Cet·te utilisateur·trice a été suspendu·e"
|
||||||
is-remote-user: "Ces informations appartiennent à un utilisateur distant."
|
is-remote-user: "Ces informations appartiennent à un utilisateur distant."
|
||||||
@ -346,6 +349,18 @@ common/views/components/note-menu.vue:
|
|||||||
delete: "Supprimer"
|
delete: "Supprimer"
|
||||||
delete-confirm: "Supprimer cette publication ?"
|
delete-confirm: "Supprimer cette publication ?"
|
||||||
remote: "Afficher la note originale"
|
remote: "Afficher la note originale"
|
||||||
|
common/views/components/user-menu.vue:
|
||||||
|
mention: "メンション"
|
||||||
|
mute: "ミュート"
|
||||||
|
unmute: "ミュート解除"
|
||||||
|
block: "ブロック"
|
||||||
|
unblock: "ブロック解除"
|
||||||
|
push-to-list: "リストに追加"
|
||||||
|
select-list: "リストを選択してください"
|
||||||
|
list-pushed: "{user}を{list}に追加しました"
|
||||||
|
report-abuse: "スパムを報告"
|
||||||
|
report-abuse-detail: "どのような迷惑行為を行っていますか?"
|
||||||
|
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
|
||||||
common/views/components/poll.vue:
|
common/views/components/poll.vue:
|
||||||
vote-to: "Voter pour '{}'"
|
vote-to: "Voter pour '{}'"
|
||||||
vote-count: "{} votes"
|
vote-count: "{} votes"
|
||||||
@ -759,7 +774,6 @@ desktop/views/components/settings.vue:
|
|||||||
security: "Sécurité"
|
security: "Sécurité"
|
||||||
signin: "Historique de connexion"
|
signin: "Historique de connexion"
|
||||||
password: "Mot de Passe"
|
password: "Mot de Passe"
|
||||||
2fa: "Vérification en deux étapes"
|
|
||||||
other: "Autres"
|
other: "Autres"
|
||||||
license: "Licence"
|
license: "Licence"
|
||||||
theme: "Thèmes"
|
theme: "Thèmes"
|
||||||
@ -773,9 +787,6 @@ desktop/views/components/settings.vue:
|
|||||||
web-search-engine-desc: "Exemple : https://www.google.com/?#q={{query}}"
|
web-search-engine-desc: "Exemple : https://www.google.com/?#q={{query}}"
|
||||||
auto-popout: "Fenêtre contextuelle automatique"
|
auto-popout: "Fenêtre contextuelle automatique"
|
||||||
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
advanced: "Paramètres avancés"
|
|
||||||
api-via-stream: "Requête API via le flux"
|
|
||||||
api-via-stream-desc: "Lorsque ce paramètre est activé, une demande d'API est effectuée via une connexion WebSocket (pour une meilleure performance). Lorsqu'il est désactivé, l'API de récupération native est utilisée. Ce paramètre n'est valide que sur cet appareil."
|
|
||||||
deck-nav: "Deck sans tansitions"
|
deck-nav: "Deck sans tansitions"
|
||||||
deck-nav-desc: "Vous obtenez une colonne temporaire sans transitions dans la page pendant la navigation, lors de l’utilisation du Deck."
|
deck-nav-desc: "Vous obtenez une colonne temporaire sans transitions dans la page pendant la navigation, lors de l’utilisation du Deck."
|
||||||
deck-default: "Utiliser le Deck comme IU par défaut"
|
deck-default: "Utiliser le Deck comme IU par défaut"
|
||||||
@ -979,6 +990,7 @@ admin/views/index.vue:
|
|||||||
federation: "Fédération"
|
federation: "Fédération"
|
||||||
announcements: "Annonces"
|
announcements: "Annonces"
|
||||||
hashtags: "Hashtags"
|
hashtags: "Hashtags"
|
||||||
|
abuse: "スパム報告"
|
||||||
back-to-misskey: "Retour vers Misskey"
|
back-to-misskey: "Retour vers Misskey"
|
||||||
admin/views/dashboard.vue:
|
admin/views/dashboard.vue:
|
||||||
dashboard: "Tableau de bord"
|
dashboard: "Tableau de bord"
|
||||||
@ -988,6 +1000,12 @@ admin/views/dashboard.vue:
|
|||||||
instances: "Instances"
|
instances: "Instances"
|
||||||
this-instance: "Cette instance"
|
this-instance: "Cette instance"
|
||||||
federated: "Fédérées"
|
federated: "Fédérées"
|
||||||
|
admin/views/abuse.vue:
|
||||||
|
title: "スパム報告"
|
||||||
|
target: "対象"
|
||||||
|
reporter: "報告者"
|
||||||
|
details: "詳細"
|
||||||
|
remove-report: "削除"
|
||||||
admin/views/instance.vue:
|
admin/views/instance.vue:
|
||||||
instance: "Instance"
|
instance: "Instance"
|
||||||
instance-name: "Nom de l’instance"
|
instance-name: "Nom de l’instance"
|
||||||
@ -1034,6 +1052,8 @@ admin/views/instance.vue:
|
|||||||
max-note-text-length: "Nombre maximal de caractères pour les messages"
|
max-note-text-length: "Nombre maximal de caractères pour les messages"
|
||||||
disable-registration: "Désactiver les inscriptions"
|
disable-registration: "Désactiver les inscriptions"
|
||||||
disable-local-timeline: "Désactiver le fil local"
|
disable-local-timeline: "Désactiver le fil local"
|
||||||
|
disable-global-timeline: "グローバルタイムラインを無効にする"
|
||||||
|
disabling-timelines-info: "これらのタイムラインを無効にしても、管理者およびモデレーターは引き続き利用できます。"
|
||||||
invite: "Inviter"
|
invite: "Inviter"
|
||||||
save: "Sauvegarder"
|
save: "Sauvegarder"
|
||||||
saved: "Enregistré"
|
saved: "Enregistré"
|
||||||
@ -1077,6 +1097,7 @@ admin/views/charts.vue:
|
|||||||
notes-total: "Total des notes"
|
notes-total: "Total des notes"
|
||||||
users: "Nombre d’utilisateurs : augmentation/diminution"
|
users: "Nombre d’utilisateurs : augmentation/diminution"
|
||||||
users-total: "Nombre total des utilisateurs"
|
users-total: "Nombre total des utilisateurs"
|
||||||
|
active-users: "Utilisateur·rice·s actif·ve·s"
|
||||||
drive: "Capacité utilisée comme stockage : augmentation/diminution"
|
drive: "Capacité utilisée comme stockage : augmentation/diminution"
|
||||||
drive-total: "Utilisation totale du lecteur"
|
drive-total: "Utilisation totale du lecteur"
|
||||||
drive-files: "Le nombre de fichiers sur l'espace de stockage : augmentation/diminution"
|
drive-files: "Le nombre de fichiers sur l'espace de stockage : augmentation/diminution"
|
||||||
@ -1085,6 +1106,10 @@ admin/views/charts.vue:
|
|||||||
network-time: "Temps de réponse"
|
network-time: "Temps de réponse"
|
||||||
network-usage: "Traffic"
|
network-usage: "Traffic"
|
||||||
admin/views/drive.vue:
|
admin/views/drive.vue:
|
||||||
|
operation: "操作"
|
||||||
|
fileid-or-url: "ファイルIDまたはファイルURL"
|
||||||
|
file-not-found: "ファイルが見つかりません"
|
||||||
|
lookup: "照会"
|
||||||
sort:
|
sort:
|
||||||
title: "Tri"
|
title: "Tri"
|
||||||
createdAtAsc: "Âge - Du plus ancien"
|
createdAtAsc: "Âge - Du plus ancien"
|
||||||
@ -1100,6 +1125,8 @@ admin/views/drive.vue:
|
|||||||
deleted: "Supprimé"
|
deleted: "Supprimé"
|
||||||
mark-as-sensitive: "Marquer comme sensible"
|
mark-as-sensitive: "Marquer comme sensible"
|
||||||
unmark-as-sensitive: "Ne pas marquer comme sensible"
|
unmark-as-sensitive: "Ne pas marquer comme sensible"
|
||||||
|
marked-as-sensitive: "閲覧注意に設定しました"
|
||||||
|
unmarked-as-sensitive: "閲覧注意を解除しました"
|
||||||
admin/views/users.vue:
|
admin/views/users.vue:
|
||||||
operation: "Actions"
|
operation: "Actions"
|
||||||
username-or-userid: "Nom d’utilisateur·rice ou ID utilisateur"
|
username-or-userid: "Nom d’utilisateur·rice ou ID utilisateur"
|
||||||
@ -1123,6 +1150,14 @@ admin/views/users.vue:
|
|||||||
createdAtDesc: "Date d’inscription (Descendant)"
|
createdAtDesc: "Date d’inscription (Descendant)"
|
||||||
updatedAtAsc: "Mis à jour récemment (Ascendant)"
|
updatedAtAsc: "Mis à jour récemment (Ascendant)"
|
||||||
updatedAtDesc: "Mis à jour récemment (descendant)"
|
updatedAtDesc: "Mis à jour récemment (descendant)"
|
||||||
|
state:
|
||||||
|
title: "État"
|
||||||
|
all: "Tout"
|
||||||
|
admin: "Admin"
|
||||||
|
moderator: "Modérateur"
|
||||||
|
adminOrModerator: "Administrateur/Modérateur"
|
||||||
|
verified: "Compte vérifié"
|
||||||
|
suspended: "Suspendu"
|
||||||
origin:
|
origin:
|
||||||
title: "Origine"
|
title: "Origine"
|
||||||
combined: "Locaux + distants"
|
combined: "Locaux + distants"
|
||||||
@ -1135,6 +1170,8 @@ admin/views/moderators.vue:
|
|||||||
title: "Ajout d’un modérateur"
|
title: "Ajout d’un modérateur"
|
||||||
add: "Ajouter"
|
add: "Ajouter"
|
||||||
added: "Ajouté en tant que modérateur"
|
added: "Ajouté en tant que modérateur"
|
||||||
|
remove: "Révoquer"
|
||||||
|
removed: "Le modérateur a été révoqué"
|
||||||
admin/views/emoji.vue:
|
admin/views/emoji.vue:
|
||||||
add-emoji:
|
add-emoji:
|
||||||
title: "Ajouter un émoji"
|
title: "Ajouter un émoji"
|
||||||
@ -1216,22 +1253,11 @@ 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 suit"
|
follows-you: "Vous suit"
|
||||||
stalk: "Traquer"
|
menu: "メニュー"
|
||||||
stalking: "Entrain de poursuivre"
|
|
||||||
unstalk: "Cesser la poursuite"
|
|
||||||
mute: "Mettre en sourdine"
|
|
||||||
muted: "Muting"
|
|
||||||
unmute: "Enlever la sourdine"
|
|
||||||
block: "Bloquer"
|
|
||||||
unblock: "Débloquer"
|
|
||||||
block-confirm: "Bloquer cet utilisateur ?"
|
|
||||||
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"
|
||||||
followers: "Abonnés"
|
followers: "Abonnés"
|
||||||
mention: "Mentions"
|
|
||||||
is-bot: "Ce compte est un Bot"
|
is-bot: "Ce compte est un Bot"
|
||||||
years-old: "{age} ans"
|
years-old: "{age} ans"
|
||||||
year: "/"
|
year: "/"
|
||||||
@ -1472,14 +1498,7 @@ mobile/views/pages/user.vue:
|
|||||||
overview: "Aperçu"
|
overview: "Aperçu"
|
||||||
timeline: "Fil d’actualité"
|
timeline: "Fil d’actualité"
|
||||||
media: "Média"
|
media: "Média"
|
||||||
mute: "Mettre en sourdine"
|
|
||||||
unmute: "Enlever la sourdine"
|
|
||||||
block: "Bloquer"
|
|
||||||
unblock: "Débloquer"
|
|
||||||
years-old: "{age} ans"
|
years-old: "{age} ans"
|
||||||
push-to-list: "Ajouter à la liste"
|
|
||||||
select-list: "Sélectionnez une liste"
|
|
||||||
list-pushed: "Vous avez ajouté {user} à la liste {list} avec succès."
|
|
||||||
mobile/views/pages/user/home.vue:
|
mobile/views/pages/user/home.vue:
|
||||||
recent-notes: "Notes récentes"
|
recent-notes: "Notes récentes"
|
||||||
images: "Images"
|
images: "Images"
|
||||||
@ -1525,12 +1544,10 @@ deck/deck.user-column.vue:
|
|||||||
posts: "Notes"
|
posts: "Notes"
|
||||||
following: "Suit"
|
following: "Suit"
|
||||||
followers: "Abonnés"
|
followers: "Abonnés"
|
||||||
mention: "Mentions"
|
|
||||||
images: "Images"
|
images: "Images"
|
||||||
activity: "Activité"
|
activity: "Activité"
|
||||||
timeline: "Fil d’actualité"
|
timeline: "Fil d’actualité"
|
||||||
pinned-notes: "Notes épinglées"
|
pinned-notes: "Notes épinglées"
|
||||||
push-to-a-list: "Ajouter à une liste"
|
|
||||||
docs:
|
docs:
|
||||||
edit-this-page-on-github: "Vous avez trouvé une erreur ou vous voulez contribuer à la documentation ?"
|
edit-this-page-on-github: "Vous avez trouvé une erreur ou vous voulez contribuer à la documentation ?"
|
||||||
edit-this-page-on-github-link: "Éditez cette page sur GitHub !"
|
edit-this-page-on-github-link: "Éditez cette page sur GitHub !"
|
||||||
|
@ -27,6 +27,7 @@ common:
|
|||||||
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
|
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
|
||||||
load-more: "もっと読み込む"
|
load-more: "もっと読み込む"
|
||||||
enter-password: "パスワードを入力してください"
|
enter-password: "パスワードを入力してください"
|
||||||
|
2fa: "二段階認証"
|
||||||
got-it: "わかった"
|
got-it: "わかった"
|
||||||
customization-tips:
|
customization-tips:
|
||||||
title: "カスタマイズのヒント"
|
title: "カスタマイズのヒント"
|
||||||
@ -124,6 +125,8 @@ common:
|
|||||||
line-width-thin: "細い"
|
line-width-thin: "細い"
|
||||||
line-width-normal: "普通"
|
line-width-normal: "普通"
|
||||||
line-width-thick: "太い"
|
line-width-thick: "太い"
|
||||||
|
hide-password: "パスワードを隠す"
|
||||||
|
show-password: "パスワードを表示する"
|
||||||
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
|
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
|
||||||
user-suspended: "このユーザーは凍結されています。"
|
user-suspended: "このユーザーは凍結されています。"
|
||||||
is-remote-user: "このユーザー情報はコピーです。"
|
is-remote-user: "このユーザー情報はコピーです。"
|
||||||
@ -346,6 +349,18 @@ common/views/components/note-menu.vue:
|
|||||||
delete: "削除"
|
delete: "削除"
|
||||||
delete-confirm: "この投稿を削除しますか?"
|
delete-confirm: "この投稿を削除しますか?"
|
||||||
remote: "投稿元で見る"
|
remote: "投稿元で見る"
|
||||||
|
common/views/components/user-menu.vue:
|
||||||
|
mention: "メンション"
|
||||||
|
mute: "ミュート"
|
||||||
|
unmute: "ミュート解除"
|
||||||
|
block: "ブロック"
|
||||||
|
unblock: "ブロック解除"
|
||||||
|
push-to-list: "リストに追加"
|
||||||
|
select-list: "リストを選択してください"
|
||||||
|
list-pushed: "{user}を{list}に追加しました"
|
||||||
|
report-abuse: "スパムを報告"
|
||||||
|
report-abuse-detail: "どのような迷惑行為を行っていますか?"
|
||||||
|
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
|
||||||
common/views/components/poll.vue:
|
common/views/components/poll.vue:
|
||||||
vote-to: "「{}」に投票する"
|
vote-to: "「{}」に投票する"
|
||||||
vote-count: "{}票"
|
vote-count: "{}票"
|
||||||
@ -759,7 +774,6 @@ desktop/views/components/settings.vue:
|
|||||||
security: "セキュリティ"
|
security: "セキュリティ"
|
||||||
signin: "サインイン履歴"
|
signin: "サインイン履歴"
|
||||||
password: "パスワード"
|
password: "パスワード"
|
||||||
2fa: "二段階認証"
|
|
||||||
other: "その他"
|
other: "その他"
|
||||||
license: "ライセンス"
|
license: "ライセンス"
|
||||||
theme: "テーマ"
|
theme: "テーマ"
|
||||||
@ -773,9 +787,6 @@ desktop/views/components/settings.vue:
|
|||||||
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
||||||
auto-popout: "ウィンドウの自動ポップアウト"
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
advanced: "詳細設定"
|
|
||||||
api-via-stream: "ストリームを経由したAPIリクエスト"
|
|
||||||
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
|
||||||
deck-nav: "デッキ内ナビゲーション"
|
deck-nav: "デッキ内ナビゲーション"
|
||||||
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
||||||
deck-default: "デッキをデフォルトのUIにする"
|
deck-default: "デッキをデフォルトのUIにする"
|
||||||
@ -979,6 +990,7 @@ admin/views/index.vue:
|
|||||||
federation: "連合"
|
federation: "連合"
|
||||||
announcements: "お知らせ"
|
announcements: "お知らせ"
|
||||||
hashtags: "ハッシュタグ"
|
hashtags: "ハッシュタグ"
|
||||||
|
abuse: "スパム報告"
|
||||||
back-to-misskey: "Misskeyに戻る"
|
back-to-misskey: "Misskeyに戻る"
|
||||||
admin/views/dashboard.vue:
|
admin/views/dashboard.vue:
|
||||||
dashboard: "ダッシュボード"
|
dashboard: "ダッシュボード"
|
||||||
@ -988,6 +1000,12 @@ admin/views/dashboard.vue:
|
|||||||
instances: "インスタンス"
|
instances: "インスタンス"
|
||||||
this-instance: "このインスタンス"
|
this-instance: "このインスタンス"
|
||||||
federated: "連合"
|
federated: "連合"
|
||||||
|
admin/views/abuse.vue:
|
||||||
|
title: "スパム報告"
|
||||||
|
target: "対象"
|
||||||
|
reporter: "報告者"
|
||||||
|
details: "詳細"
|
||||||
|
remove-report: "削除"
|
||||||
admin/views/instance.vue:
|
admin/views/instance.vue:
|
||||||
instance: "インスタンス"
|
instance: "インスタンス"
|
||||||
instance-name: "インスタンス名"
|
instance-name: "インスタンス名"
|
||||||
@ -1034,6 +1052,8 @@ admin/views/instance.vue:
|
|||||||
max-note-text-length: "投稿の最大文字数"
|
max-note-text-length: "投稿の最大文字数"
|
||||||
disable-registration: "ユーザー登録の受付を停止する"
|
disable-registration: "ユーザー登録の受付を停止する"
|
||||||
disable-local-timeline: "ローカルタイムラインを無効にする"
|
disable-local-timeline: "ローカルタイムラインを無効にする"
|
||||||
|
disable-global-timeline: "グローバルタイムラインを無効にする"
|
||||||
|
disabling-timelines-info: "これらのタイムラインを無効にしても、管理者およびモデレーターは引き続き利用できます。"
|
||||||
invite: "招待"
|
invite: "招待"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "保存しました"
|
saved: "保存しました"
|
||||||
@ -1077,6 +1097,7 @@ admin/views/charts.vue:
|
|||||||
notes-total: "投稿の積算"
|
notes-total: "投稿の積算"
|
||||||
users: "ユーザーの増減"
|
users: "ユーザーの増減"
|
||||||
users-total: "ユーザーの積算"
|
users-total: "ユーザーの積算"
|
||||||
|
active-users: "アクティブユーザー数"
|
||||||
drive: "ドライブ使用量の増減"
|
drive: "ドライブ使用量の増減"
|
||||||
drive-total: "ドライブ使用量の積算"
|
drive-total: "ドライブ使用量の積算"
|
||||||
drive-files: "ドライブのファイル数の増減"
|
drive-files: "ドライブのファイル数の増減"
|
||||||
@ -1085,6 +1106,10 @@ admin/views/charts.vue:
|
|||||||
network-time: "応答時間"
|
network-time: "応答時間"
|
||||||
network-usage: "通信量"
|
network-usage: "通信量"
|
||||||
admin/views/drive.vue:
|
admin/views/drive.vue:
|
||||||
|
operation: "操作"
|
||||||
|
fileid-or-url: "ファイルIDまたはファイルURL"
|
||||||
|
file-not-found: "ファイルが見つかりません"
|
||||||
|
lookup: "照会"
|
||||||
sort:
|
sort:
|
||||||
title: "ソート"
|
title: "ソート"
|
||||||
createdAtAsc: "アップロード日時が古い順"
|
createdAtAsc: "アップロード日時が古い順"
|
||||||
@ -1100,6 +1125,8 @@ admin/views/drive.vue:
|
|||||||
deleted: "削除しました"
|
deleted: "削除しました"
|
||||||
mark-as-sensitive: "閲覧注意に設定"
|
mark-as-sensitive: "閲覧注意に設定"
|
||||||
unmark-as-sensitive: "閲覧注意を解除"
|
unmark-as-sensitive: "閲覧注意を解除"
|
||||||
|
marked-as-sensitive: "閲覧注意に設定しました"
|
||||||
|
unmarked-as-sensitive: "閲覧注意を解除しました"
|
||||||
admin/views/users.vue:
|
admin/views/users.vue:
|
||||||
operation: "操作"
|
operation: "操作"
|
||||||
username-or-userid: "ユーザー名またはユーザーID"
|
username-or-userid: "ユーザー名またはユーザーID"
|
||||||
@ -1123,6 +1150,14 @@ admin/views/users.vue:
|
|||||||
createdAtDesc: "登録日時が新しい順"
|
createdAtDesc: "登録日時が新しい順"
|
||||||
updatedAtAsc: "更新日時が古い順"
|
updatedAtAsc: "更新日時が古い順"
|
||||||
updatedAtDesc: "更新日時が新しい順"
|
updatedAtDesc: "更新日時が新しい順"
|
||||||
|
state:
|
||||||
|
title: "状態"
|
||||||
|
all: "すべて"
|
||||||
|
admin: "管理者"
|
||||||
|
moderator: "モデレーター"
|
||||||
|
adminOrModerator: "管理者+モデレーター"
|
||||||
|
verified: "公式アカウント"
|
||||||
|
suspended: "凍結済み"
|
||||||
origin:
|
origin:
|
||||||
title: "オリジン"
|
title: "オリジン"
|
||||||
combined: "ローカル+リモート"
|
combined: "ローカル+リモート"
|
||||||
@ -1135,6 +1170,8 @@ admin/views/moderators.vue:
|
|||||||
title: "モデレーターの登録"
|
title: "モデレーターの登録"
|
||||||
add: "登録"
|
add: "登録"
|
||||||
added: "モデレーターを登録しました"
|
added: "モデレーターを登録しました"
|
||||||
|
remove: "解除"
|
||||||
|
removed: "モデレーター登録を解除しました"
|
||||||
admin/views/emoji.vue:
|
admin/views/emoji.vue:
|
||||||
add-emoji:
|
add-emoji:
|
||||||
title: "絵文字の登録"
|
title: "絵文字の登録"
|
||||||
@ -1216,22 +1253,11 @@ desktop/views/pages/user/user.photos.vue:
|
|||||||
no-photos: "写真はありません"
|
no-photos: "写真はありません"
|
||||||
desktop/views/pages/user/user.profile.vue:
|
desktop/views/pages/user/user.profile.vue:
|
||||||
follows-you: "フォローされています"
|
follows-you: "フォローされています"
|
||||||
stalk: "ストークする"
|
menu: "メニュー"
|
||||||
stalking: "ストーキングしています"
|
|
||||||
unstalk: "ストーク解除"
|
|
||||||
mute: "ミュートする"
|
|
||||||
muted: "ミュートしています"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロックする"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
block-confirm: "このユーザーをブロックしますか?"
|
|
||||||
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: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
is-bot: "このアカウントはBotです"
|
is-bot: "このアカウントはBotです"
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
year: "年"
|
year: "年"
|
||||||
@ -1472,14 +1498,7 @@ mobile/views/pages/user.vue:
|
|||||||
overview: "概要"
|
overview: "概要"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
media: "メディア"
|
media: "メディア"
|
||||||
mute: "ミュート"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロック"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
push-to-list: "リストに追加"
|
|
||||||
select-list: "リストを選択してください"
|
|
||||||
list-pushed: "{user}を{list}に追加しました"
|
|
||||||
mobile/views/pages/user/home.vue:
|
mobile/views/pages/user/home.vue:
|
||||||
recent-notes: "最近の投稿"
|
recent-notes: "最近の投稿"
|
||||||
images: "画像"
|
images: "画像"
|
||||||
@ -1525,12 +1544,10 @@ deck/deck.user-column.vue:
|
|||||||
posts: "投稿"
|
posts: "投稿"
|
||||||
following: "フォロー"
|
following: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
images: "画像"
|
images: "画像"
|
||||||
activity: "アクティビティ"
|
activity: "アクティビティ"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
pinned-notes: "ピン留めされた投稿"
|
pinned-notes: "ピン留めされた投稿"
|
||||||
push-to-a-list: "リストに追加"
|
|
||||||
docs:
|
docs:
|
||||||
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
||||||
edit-this-page-on-github-link: "このページをGitHubで編集"
|
edit-this-page-on-github-link: "このページをGitHubで編集"
|
||||||
|
@ -27,6 +27,7 @@ common:
|
|||||||
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
|
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
|
||||||
load-more: "もっと読み込む"
|
load-more: "もっと読み込む"
|
||||||
enter-password: "パスワードを入力してください"
|
enter-password: "パスワードを入力してください"
|
||||||
|
2fa: "二段階認証"
|
||||||
|
|
||||||
got-it: "わかった"
|
got-it: "わかった"
|
||||||
customization-tips:
|
customization-tips:
|
||||||
@ -379,6 +380,19 @@ common/views/components/note-menu.vue:
|
|||||||
delete-confirm: "この投稿を削除しますか?"
|
delete-confirm: "この投稿を削除しますか?"
|
||||||
remote: "投稿元で見る"
|
remote: "投稿元で見る"
|
||||||
|
|
||||||
|
common/views/components/user-menu.vue:
|
||||||
|
mention: "メンション"
|
||||||
|
mute: "ミュート"
|
||||||
|
unmute: "ミュート解除"
|
||||||
|
block: "ブロック"
|
||||||
|
unblock: "ブロック解除"
|
||||||
|
push-to-list: "リストに追加"
|
||||||
|
select-list: "リストを選択してください"
|
||||||
|
list-pushed: "{user}を{list}に追加しました"
|
||||||
|
report-abuse: "スパムを報告"
|
||||||
|
report-abuse-detail: "どのような迷惑行為を行っていますか?"
|
||||||
|
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
|
||||||
|
|
||||||
common/views/components/poll.vue:
|
common/views/components/poll.vue:
|
||||||
vote-to: "「{}」に投票する"
|
vote-to: "「{}」に投票する"
|
||||||
vote-count: "{}票"
|
vote-count: "{}票"
|
||||||
@ -855,7 +869,6 @@ desktop/views/components/settings.vue:
|
|||||||
security: "セキュリティ"
|
security: "セキュリティ"
|
||||||
signin: "サインイン履歴"
|
signin: "サインイン履歴"
|
||||||
password: "パスワード"
|
password: "パスワード"
|
||||||
2fa: "二段階認証"
|
|
||||||
other: "その他"
|
other: "その他"
|
||||||
license: "ライセンス"
|
license: "ライセンス"
|
||||||
theme: "テーマ"
|
theme: "テーマ"
|
||||||
@ -870,9 +883,6 @@ desktop/views/components/settings.vue:
|
|||||||
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
||||||
auto-popout: "ウィンドウの自動ポップアウト"
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
advanced: "詳細設定"
|
|
||||||
api-via-stream: "ストリームを経由したAPIリクエスト"
|
|
||||||
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
|
||||||
deck-nav: "デッキ内ナビゲーション"
|
deck-nav: "デッキ内ナビゲーション"
|
||||||
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
||||||
deck-default: "デッキをデフォルトのUIにする"
|
deck-default: "デッキをデフォルトのUIにする"
|
||||||
@ -1106,6 +1116,7 @@ admin/views/index.vue:
|
|||||||
federation: "連合"
|
federation: "連合"
|
||||||
announcements: "お知らせ"
|
announcements: "お知らせ"
|
||||||
hashtags: "ハッシュタグ"
|
hashtags: "ハッシュタグ"
|
||||||
|
abuse: "スパム報告"
|
||||||
back-to-misskey: "Misskeyに戻る"
|
back-to-misskey: "Misskeyに戻る"
|
||||||
|
|
||||||
admin/views/dashboard.vue:
|
admin/views/dashboard.vue:
|
||||||
@ -1117,6 +1128,13 @@ admin/views/dashboard.vue:
|
|||||||
this-instance: "このインスタンス"
|
this-instance: "このインスタンス"
|
||||||
federated: "連合"
|
federated: "連合"
|
||||||
|
|
||||||
|
admin/views/abuse.vue:
|
||||||
|
title: "スパム報告"
|
||||||
|
target: "対象"
|
||||||
|
reporter: "報告者"
|
||||||
|
details: "詳細"
|
||||||
|
remove-report: "削除"
|
||||||
|
|
||||||
admin/views/instance.vue:
|
admin/views/instance.vue:
|
||||||
instance: "インスタンス"
|
instance: "インスタンス"
|
||||||
instance-name: "インスタンス名"
|
instance-name: "インスタンス名"
|
||||||
@ -1163,6 +1181,8 @@ admin/views/instance.vue:
|
|||||||
max-note-text-length: "投稿の最大文字数"
|
max-note-text-length: "投稿の最大文字数"
|
||||||
disable-registration: "ユーザー登録の受付を停止する"
|
disable-registration: "ユーザー登録の受付を停止する"
|
||||||
disable-local-timeline: "ローカルタイムラインを無効にする"
|
disable-local-timeline: "ローカルタイムラインを無効にする"
|
||||||
|
disable-global-timeline: "グローバルタイムラインを無効にする"
|
||||||
|
disabling-timelines-info: "これらのタイムラインを無効にしても、管理者およびモデレーターは引き続き利用できます。"
|
||||||
invite: "招待"
|
invite: "招待"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "保存しました"
|
saved: "保存しました"
|
||||||
@ -1207,6 +1227,7 @@ admin/views/charts.vue:
|
|||||||
notes-total: "投稿の積算"
|
notes-total: "投稿の積算"
|
||||||
users: "ユーザーの増減"
|
users: "ユーザーの増減"
|
||||||
users-total: "ユーザーの積算"
|
users-total: "ユーザーの積算"
|
||||||
|
active-users: "アクティブユーザー数"
|
||||||
drive: "ドライブ使用量の増減"
|
drive: "ドライブ使用量の増減"
|
||||||
drive-total: "ドライブ使用量の積算"
|
drive-total: "ドライブ使用量の積算"
|
||||||
drive-files: "ドライブのファイル数の増減"
|
drive-files: "ドライブのファイル数の増減"
|
||||||
@ -1216,6 +1237,10 @@ admin/views/charts.vue:
|
|||||||
network-usage: "通信量"
|
network-usage: "通信量"
|
||||||
|
|
||||||
admin/views/drive.vue:
|
admin/views/drive.vue:
|
||||||
|
operation: "操作"
|
||||||
|
fileid-or-url: "ファイルIDまたはファイルURL"
|
||||||
|
file-not-found: "ファイルが見つかりません"
|
||||||
|
lookup: "照会"
|
||||||
sort:
|
sort:
|
||||||
title: "ソート"
|
title: "ソート"
|
||||||
createdAtAsc: "アップロード日時が古い順"
|
createdAtAsc: "アップロード日時が古い順"
|
||||||
@ -1231,6 +1256,8 @@ admin/views/drive.vue:
|
|||||||
deleted: "削除しました"
|
deleted: "削除しました"
|
||||||
mark-as-sensitive: "閲覧注意に設定"
|
mark-as-sensitive: "閲覧注意に設定"
|
||||||
unmark-as-sensitive: "閲覧注意を解除"
|
unmark-as-sensitive: "閲覧注意を解除"
|
||||||
|
marked-as-sensitive: "閲覧注意に設定しました"
|
||||||
|
unmarked-as-sensitive: "閲覧注意を解除しました"
|
||||||
|
|
||||||
admin/views/users.vue:
|
admin/views/users.vue:
|
||||||
operation: "操作"
|
operation: "操作"
|
||||||
@ -1375,23 +1402,12 @@ desktop/views/pages/user/user.photos.vue:
|
|||||||
|
|
||||||
desktop/views/pages/user/user.profile.vue:
|
desktop/views/pages/user/user.profile.vue:
|
||||||
follows-you: "フォローされています"
|
follows-you: "フォローされています"
|
||||||
stalk: "ストークする"
|
menu: "メニュー"
|
||||||
stalking: "ストーキングしています"
|
|
||||||
unstalk: "ストーク解除"
|
|
||||||
mute: "ミュートする"
|
|
||||||
muted: "ミュートしています"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロックする"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
block-confirm: "このユーザーをブロックしますか?"
|
|
||||||
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: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
is-bot: "このアカウントはBotです"
|
is-bot: "このアカウントはBotです"
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
year: "年"
|
year: "年"
|
||||||
@ -1680,14 +1696,7 @@ mobile/views/pages/user.vue:
|
|||||||
overview: "概要"
|
overview: "概要"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
media: "メディア"
|
media: "メディア"
|
||||||
mute: "ミュート"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロック"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
push-to-list: "リストに追加"
|
|
||||||
select-list: "リストを選択してください"
|
|
||||||
list-pushed: "{user}を{list}に追加しました"
|
|
||||||
|
|
||||||
mobile/views/pages/user/home.vue:
|
mobile/views/pages/user/home.vue:
|
||||||
recent-notes: "最近の投稿"
|
recent-notes: "最近の投稿"
|
||||||
@ -1741,12 +1750,10 @@ deck/deck.user-column.vue:
|
|||||||
posts: "投稿"
|
posts: "投稿"
|
||||||
following: "フォロー"
|
following: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
images: "画像"
|
images: "画像"
|
||||||
activity: "アクティビティ"
|
activity: "アクティビティ"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
pinned-notes: "ピン留めされた投稿"
|
pinned-notes: "ピン留めされた投稿"
|
||||||
push-to-a-list: "リストに追加"
|
|
||||||
|
|
||||||
docs:
|
docs:
|
||||||
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
||||||
|
@ -27,6 +27,7 @@ common:
|
|||||||
do-not-copy-paste: "ここにコードを入力したり張り付けたりせんといてください。アカウントが不正利用されるかも分からん。知らんけど。"
|
do-not-copy-paste: "ここにコードを入力したり張り付けたりせんといてください。アカウントが不正利用されるかも分からん。知らんけど。"
|
||||||
load-more: "もっとあらへんのか!"
|
load-more: "もっとあらへんのか!"
|
||||||
enter-password: "パスワードを入れてや"
|
enter-password: "パスワードを入れてや"
|
||||||
|
2fa: "二段階認証"
|
||||||
got-it: "ほい"
|
got-it: "ほい"
|
||||||
customization-tips:
|
customization-tips:
|
||||||
title: "カスタマイズのヒント"
|
title: "カスタマイズのヒント"
|
||||||
@ -124,6 +125,8 @@ common:
|
|||||||
line-width-thin: "細い"
|
line-width-thin: "細い"
|
||||||
line-width-normal: "普通"
|
line-width-normal: "普通"
|
||||||
line-width-thick: "太い"
|
line-width-thick: "太い"
|
||||||
|
hide-password: "パスワードを隠す"
|
||||||
|
show-password: "パスワードを表示する"
|
||||||
do-not-use-in-production: "開発ビルドや。本番環境で使わんといて!知らんで!"
|
do-not-use-in-production: "開発ビルドや。本番環境で使わんといて!知らんで!"
|
||||||
user-suspended: "このユーザーは凍結されています。"
|
user-suspended: "このユーザーは凍結されています。"
|
||||||
is-remote-user: "このユーザー情報はコピーです。"
|
is-remote-user: "このユーザー情報はコピーです。"
|
||||||
@ -346,6 +349,18 @@ common/views/components/note-menu.vue:
|
|||||||
delete: "ほかす"
|
delete: "ほかす"
|
||||||
delete-confirm: "この投稿を削除してもええか?"
|
delete-confirm: "この投稿を削除してもええか?"
|
||||||
remote: "投稿元に行ってみよか"
|
remote: "投稿元に行ってみよか"
|
||||||
|
common/views/components/user-menu.vue:
|
||||||
|
mention: "メンション"
|
||||||
|
mute: "ミュート"
|
||||||
|
unmute: "ミュート解除"
|
||||||
|
block: "ブロック"
|
||||||
|
unblock: "ブロック解除"
|
||||||
|
push-to-list: "リストに追加"
|
||||||
|
select-list: "リストを選択してください"
|
||||||
|
list-pushed: "{user}を{list}に追加しました"
|
||||||
|
report-abuse: "スパムを報告"
|
||||||
|
report-abuse-detail: "どのような迷惑行為を行っていますか?"
|
||||||
|
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
|
||||||
common/views/components/poll.vue:
|
common/views/components/poll.vue:
|
||||||
vote-to: "「{}」に投票や!"
|
vote-to: "「{}」に投票や!"
|
||||||
vote-count: "{}票"
|
vote-count: "{}票"
|
||||||
@ -759,7 +774,6 @@ desktop/views/components/settings.vue:
|
|||||||
security: "セキュリティ"
|
security: "セキュリティ"
|
||||||
signin: "こんな感じでサインインしたらしいで"
|
signin: "こんな感じでサインインしたらしいで"
|
||||||
password: "パスワード"
|
password: "パスワード"
|
||||||
2fa: "二段階認証"
|
|
||||||
other: "その他"
|
other: "その他"
|
||||||
license: "ライセンス"
|
license: "ライセンス"
|
||||||
theme: "テーマ"
|
theme: "テーマ"
|
||||||
@ -773,9 +787,6 @@ desktop/views/components/settings.vue:
|
|||||||
web-search-engine-desc: "例: https://www.google.com/?#q?{{query}}"
|
web-search-engine-desc: "例: https://www.google.com/?#q?{{query}}"
|
||||||
auto-popout: "ウィンドウの自動ポップアウト"
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトすんで。この設定はブラウザに記憶されんで。"
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトすんで。この設定はブラウザに記憶されんで。"
|
||||||
advanced: "もっと設定"
|
|
||||||
api-via-stream: "ストリームを経由したAPIリクエスト"
|
|
||||||
api-via-stream-desc: "この設定をオンにすると、WebSocket接続を経由してAPIリクエストが行われんで(パフォーマンス向上するかも、知らんけど)。オフにすると、ネイティブの fetch API が利用されるで。この設定はこのデバイスのみ有効やで。"
|
|
||||||
deck-nav: "デッキ内ナビゲーション"
|
deck-nav: "デッキ内ナビゲーション"
|
||||||
deck-nav-desc: "デッキを使うとるとき、ナビゲーションが発生するときにページ移動せんで、一時的なカラムで受けれるようにするで"
|
deck-nav-desc: "デッキを使うとるとき、ナビゲーションが発生するときにページ移動せんで、一時的なカラムで受けれるようにするで"
|
||||||
deck-default: "デッキをデフォルトのUIにする"
|
deck-default: "デッキをデフォルトのUIにする"
|
||||||
@ -979,6 +990,7 @@ admin/views/index.vue:
|
|||||||
federation: "連合"
|
federation: "連合"
|
||||||
announcements: "知っといてや"
|
announcements: "知っといてや"
|
||||||
hashtags: "ハッシュタグ"
|
hashtags: "ハッシュタグ"
|
||||||
|
abuse: "スパム報告"
|
||||||
back-to-misskey: "Misskeyに戻る"
|
back-to-misskey: "Misskeyに戻る"
|
||||||
admin/views/dashboard.vue:
|
admin/views/dashboard.vue:
|
||||||
dashboard: "ダッシュボード"
|
dashboard: "ダッシュボード"
|
||||||
@ -988,6 +1000,12 @@ admin/views/dashboard.vue:
|
|||||||
instances: "インスタンス"
|
instances: "インスタンス"
|
||||||
this-instance: "ワイのインスタンス"
|
this-instance: "ワイのインスタンス"
|
||||||
federated: "連合"
|
federated: "連合"
|
||||||
|
admin/views/abuse.vue:
|
||||||
|
title: "スパム報告"
|
||||||
|
target: "対象"
|
||||||
|
reporter: "報告者"
|
||||||
|
details: "詳細"
|
||||||
|
remove-report: "削除"
|
||||||
admin/views/instance.vue:
|
admin/views/instance.vue:
|
||||||
instance: "インスタンス"
|
instance: "インスタンス"
|
||||||
instance-name: "インスタンス名"
|
instance-name: "インスタンス名"
|
||||||
@ -1034,6 +1052,8 @@ admin/views/instance.vue:
|
|||||||
max-note-text-length: "投稿の最大文字数"
|
max-note-text-length: "投稿の最大文字数"
|
||||||
disable-registration: "ユーザー登録の受付を止める"
|
disable-registration: "ユーザー登録の受付を止める"
|
||||||
disable-local-timeline: "ローカルタイムラインを使えんようにする"
|
disable-local-timeline: "ローカルタイムラインを使えんようにする"
|
||||||
|
disable-global-timeline: "グローバルタイムラインを無効にする"
|
||||||
|
disabling-timelines-info: "これらのタイムラインを無効にしても、管理者およびモデレーターは引き続き利用できます。"
|
||||||
invite: "来てや"
|
invite: "来てや"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "保存したで!"
|
saved: "保存したで!"
|
||||||
@ -1077,6 +1097,7 @@ admin/views/charts.vue:
|
|||||||
notes-total: "投稿の積算"
|
notes-total: "投稿の積算"
|
||||||
users: "ユーザーの増減"
|
users: "ユーザーの増減"
|
||||||
users-total: "ユーザーの積算"
|
users-total: "ユーザーの積算"
|
||||||
|
active-users: "アクティブユーザー数"
|
||||||
drive: "ドライブ使用量の増減"
|
drive: "ドライブ使用量の増減"
|
||||||
drive-total: "ドライブ使用量の積算"
|
drive-total: "ドライブ使用量の積算"
|
||||||
drive-files: "ドライブのファイル数の増減"
|
drive-files: "ドライブのファイル数の増減"
|
||||||
@ -1085,6 +1106,10 @@ admin/views/charts.vue:
|
|||||||
network-time: "応答時間"
|
network-time: "応答時間"
|
||||||
network-usage: "通信量"
|
network-usage: "通信量"
|
||||||
admin/views/drive.vue:
|
admin/views/drive.vue:
|
||||||
|
operation: "操作"
|
||||||
|
fileid-or-url: "ファイルIDまたはファイルURL"
|
||||||
|
file-not-found: "ファイルが見つかりません"
|
||||||
|
lookup: "照会"
|
||||||
sort:
|
sort:
|
||||||
title: "ソート"
|
title: "ソート"
|
||||||
createdAtAsc: "アップロード日時が古い順"
|
createdAtAsc: "アップロード日時が古い順"
|
||||||
@ -1100,6 +1125,8 @@ admin/views/drive.vue:
|
|||||||
deleted: "削除しました"
|
deleted: "削除しました"
|
||||||
mark-as-sensitive: "閲覧注意に設定"
|
mark-as-sensitive: "閲覧注意に設定"
|
||||||
unmark-as-sensitive: "閲覧注意を解除"
|
unmark-as-sensitive: "閲覧注意を解除"
|
||||||
|
marked-as-sensitive: "閲覧注意に設定しました"
|
||||||
|
unmarked-as-sensitive: "閲覧注意を解除しました"
|
||||||
admin/views/users.vue:
|
admin/views/users.vue:
|
||||||
operation: "操作"
|
operation: "操作"
|
||||||
username-or-userid: "ユーザー名またはユーザーID"
|
username-or-userid: "ユーザー名またはユーザーID"
|
||||||
@ -1123,6 +1150,14 @@ admin/views/users.vue:
|
|||||||
createdAtDesc: "登録日時が新しい順"
|
createdAtDesc: "登録日時が新しい順"
|
||||||
updatedAtAsc: "更新日時が古い順"
|
updatedAtAsc: "更新日時が古い順"
|
||||||
updatedAtDesc: "更新日時が新しい順"
|
updatedAtDesc: "更新日時が新しい順"
|
||||||
|
state:
|
||||||
|
title: "状態"
|
||||||
|
all: "すべて"
|
||||||
|
admin: "管理者"
|
||||||
|
moderator: "モデレーター"
|
||||||
|
adminOrModerator: "管理者+モデレーター"
|
||||||
|
verified: "公式アカウント"
|
||||||
|
suspended: "凍結済み"
|
||||||
origin:
|
origin:
|
||||||
title: "オリジン"
|
title: "オリジン"
|
||||||
combined: "ローカル+リモート"
|
combined: "ローカル+リモート"
|
||||||
@ -1135,6 +1170,8 @@ admin/views/moderators.vue:
|
|||||||
title: "モデレーターの登録"
|
title: "モデレーターの登録"
|
||||||
add: "登録"
|
add: "登録"
|
||||||
added: "モデレーターを登録しました"
|
added: "モデレーターを登録しました"
|
||||||
|
remove: "解除"
|
||||||
|
removed: "モデレーター登録を解除しました"
|
||||||
admin/views/emoji.vue:
|
admin/views/emoji.vue:
|
||||||
add-emoji:
|
add-emoji:
|
||||||
title: "絵文字の登録"
|
title: "絵文字の登録"
|
||||||
@ -1216,22 +1253,11 @@ desktop/views/pages/user/user.photos.vue:
|
|||||||
no-photos: "写真はあらへんで"
|
no-photos: "写真はあらへんで"
|
||||||
desktop/views/pages/user/user.profile.vue:
|
desktop/views/pages/user/user.profile.vue:
|
||||||
follows-you: "フォローされとるで"
|
follows-you: "フォローされとるで"
|
||||||
stalk: "ストークする"
|
menu: "メニュー"
|
||||||
stalking: "ストーキングしとるで"
|
|
||||||
unstalk: "ストーク解除"
|
|
||||||
mute: "ミュートする"
|
|
||||||
muted: "ミュートしとるで"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロックする"
|
|
||||||
unblock: "ブロックやめたる"
|
|
||||||
block-confirm: "このユーザーをブロックしてええか?"
|
|
||||||
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: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
is-bot: "このアカウントはBotや"
|
is-bot: "このアカウントはBotや"
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
year: "年"
|
year: "年"
|
||||||
@ -1472,14 +1498,7 @@ mobile/views/pages/user.vue:
|
|||||||
overview: "こんなやつ"
|
overview: "こんなやつ"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
media: "メディア"
|
media: "メディア"
|
||||||
mute: "ミュート"
|
|
||||||
unmute: "ミュートやめたる"
|
|
||||||
block: "ブロック"
|
|
||||||
unblock: "ブロックやめたる"
|
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
push-to-list: "リストに入れたる"
|
|
||||||
select-list: "リスト選んでや"
|
|
||||||
list-pushed: "{user}を{list}に追加したで"
|
|
||||||
mobile/views/pages/user/home.vue:
|
mobile/views/pages/user/home.vue:
|
||||||
recent-notes: "最近儲かりまっか?"
|
recent-notes: "最近儲かりまっか?"
|
||||||
images: "画像"
|
images: "画像"
|
||||||
@ -1525,12 +1544,10 @@ deck/deck.user-column.vue:
|
|||||||
posts: "投稿"
|
posts: "投稿"
|
||||||
following: "フォロー"
|
following: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
images: "画像"
|
images: "画像"
|
||||||
activity: "アクティビティ"
|
activity: "アクティビティ"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
pinned-notes: "ピン留めしはった投稿"
|
pinned-notes: "ピン留めしはった投稿"
|
||||||
push-to-a-list: "リストに入れたる"
|
|
||||||
docs:
|
docs:
|
||||||
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
||||||
edit-this-page-on-github-link: "このページをGitHubで編集"
|
edit-this-page-on-github-link: "このページをGitHubで編集"
|
||||||
|
@ -27,6 +27,7 @@ common:
|
|||||||
do-not-copy-paste: "여기에 코드를 입력하거나 붙여넣지 마십시오. 계정이 무단으로 사용될 수 있습니다."
|
do-not-copy-paste: "여기에 코드를 입력하거나 붙여넣지 마십시오. 계정이 무단으로 사용될 수 있습니다."
|
||||||
load-more: "더보기"
|
load-more: "더보기"
|
||||||
enter-password: "비밀번호를 입력하여 주십시오"
|
enter-password: "비밀번호를 입력하여 주십시오"
|
||||||
|
2fa: "二段階認証"
|
||||||
got-it: "알겠습니다"
|
got-it: "알겠습니다"
|
||||||
customization-tips:
|
customization-tips:
|
||||||
title: "커스터마이징 도움말"
|
title: "커스터마이징 도움말"
|
||||||
@ -124,6 +125,8 @@ common:
|
|||||||
line-width-thin: "얇음"
|
line-width-thin: "얇음"
|
||||||
line-width-normal: "보통"
|
line-width-normal: "보통"
|
||||||
line-width-thick: "두꺼움"
|
line-width-thick: "두꺼움"
|
||||||
|
hide-password: "비밀번호 숨기기"
|
||||||
|
show-password: "비밀번호 표시"
|
||||||
do-not-use-in-production: "이것은 개발 빌드입니다. 프로덕션 환경에서 사용하지 마십시오."
|
do-not-use-in-production: "이것은 개발 빌드입니다. 프로덕션 환경에서 사용하지 마십시오."
|
||||||
user-suspended: "이 사용자는 정지된 상태입니다."
|
user-suspended: "이 사용자는 정지된 상태입니다."
|
||||||
is-remote-user: "이 유저 정보는 복사본입니다."
|
is-remote-user: "이 유저 정보는 복사본입니다."
|
||||||
@ -346,6 +349,18 @@ common/views/components/note-menu.vue:
|
|||||||
delete: "삭제"
|
delete: "삭제"
|
||||||
delete-confirm: "이 글을 삭제하시겠습니까?"
|
delete-confirm: "이 글을 삭제하시겠습니까?"
|
||||||
remote: "글 원본 보기"
|
remote: "글 원본 보기"
|
||||||
|
common/views/components/user-menu.vue:
|
||||||
|
mention: "メンション"
|
||||||
|
mute: "ミュート"
|
||||||
|
unmute: "ミュート解除"
|
||||||
|
block: "ブロック"
|
||||||
|
unblock: "ブロック解除"
|
||||||
|
push-to-list: "リストに追加"
|
||||||
|
select-list: "リストを選択してください"
|
||||||
|
list-pushed: "{user}を{list}に追加しました"
|
||||||
|
report-abuse: "スパムを報告"
|
||||||
|
report-abuse-detail: "どのような迷惑行為を行っていますか?"
|
||||||
|
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
|
||||||
common/views/components/poll.vue:
|
common/views/components/poll.vue:
|
||||||
vote-to: "\"{}\"에 투표하기"
|
vote-to: "\"{}\"에 투표하기"
|
||||||
vote-count: "{}표"
|
vote-count: "{}표"
|
||||||
@ -759,7 +774,6 @@ desktop/views/components/settings.vue:
|
|||||||
security: "보안"
|
security: "보안"
|
||||||
signin: "로그인 기록"
|
signin: "로그인 기록"
|
||||||
password: "비밀번호"
|
password: "비밀번호"
|
||||||
2fa: "2단계 인증"
|
|
||||||
other: "기타"
|
other: "기타"
|
||||||
license: "라이선스"
|
license: "라이선스"
|
||||||
theme: "테마"
|
theme: "테마"
|
||||||
@ -773,9 +787,6 @@ desktop/views/components/settings.vue:
|
|||||||
web-search-engine-desc: "예: https://www.google.com/?#q={{query}}"
|
web-search-engine-desc: "예: https://www.google.com/?#q={{query}}"
|
||||||
auto-popout: "창 자동 팝아웃"
|
auto-popout: "창 자동 팝아웃"
|
||||||
auto-popout-desc: "창이 열릴 때 팝아웃 (브라우저 밖으로 분리) 이 가능한 경우 자동으로 팝아웃합니다. 이 설정은 브라우저에 저장됩니다."
|
auto-popout-desc: "창이 열릴 때 팝아웃 (브라우저 밖으로 분리) 이 가능한 경우 자동으로 팝아웃합니다. 이 설정은 브라우저에 저장됩니다."
|
||||||
advanced: "고급 설정"
|
|
||||||
api-via-stream: "스트리밍을 사용한 API 요청"
|
|
||||||
api-via-stream-desc: "이 설정을 ON으로 하면 websocket 연결을 통하여 API 요청을 합니다 (성능 향상을 기대할 수 있습니다). OFF로 두는 경우 네이티브 fetch API가 사용됩니다. 이 설정은 이 장치에만 유효합니다."
|
|
||||||
deck-nav: "덱 내 탐색"
|
deck-nav: "덱 내 탐색"
|
||||||
deck-nav-desc: "덱을 사용중일 때, 내비게이션이 발생하였을 경우 페이지를 이동하지 않고 일시적으로 임시 칼럼을 생성하도록 합니다."
|
deck-nav-desc: "덱을 사용중일 때, 내비게이션이 발생하였을 경우 페이지를 이동하지 않고 일시적으로 임시 칼럼을 생성하도록 합니다."
|
||||||
deck-default: "덱을 기본 UI로 설정"
|
deck-default: "덱을 기본 UI로 설정"
|
||||||
@ -979,6 +990,7 @@ admin/views/index.vue:
|
|||||||
federation: "연합"
|
federation: "연합"
|
||||||
announcements: "공지사항"
|
announcements: "공지사항"
|
||||||
hashtags: "해시태그"
|
hashtags: "해시태그"
|
||||||
|
abuse: "スパム報告"
|
||||||
back-to-misskey: "Misskey로 돌아가기"
|
back-to-misskey: "Misskey로 돌아가기"
|
||||||
admin/views/dashboard.vue:
|
admin/views/dashboard.vue:
|
||||||
dashboard: "대시보드"
|
dashboard: "대시보드"
|
||||||
@ -988,6 +1000,12 @@ admin/views/dashboard.vue:
|
|||||||
instances: "인스턴스"
|
instances: "인스턴스"
|
||||||
this-instance: "이 인스턴스"
|
this-instance: "이 인스턴스"
|
||||||
federated: "연합"
|
federated: "연합"
|
||||||
|
admin/views/abuse.vue:
|
||||||
|
title: "スパム報告"
|
||||||
|
target: "対象"
|
||||||
|
reporter: "報告者"
|
||||||
|
details: "詳細"
|
||||||
|
remove-report: "削除"
|
||||||
admin/views/instance.vue:
|
admin/views/instance.vue:
|
||||||
instance: "인스턴스"
|
instance: "인스턴스"
|
||||||
instance-name: "인스턴스 이름"
|
instance-name: "인스턴스 이름"
|
||||||
@ -1034,6 +1052,8 @@ admin/views/instance.vue:
|
|||||||
max-note-text-length: "글의 최대 문자수"
|
max-note-text-length: "글의 최대 문자수"
|
||||||
disable-registration: "사용자 등록 비활성화"
|
disable-registration: "사용자 등록 비활성화"
|
||||||
disable-local-timeline: "로컬 타임라인 비활성화"
|
disable-local-timeline: "로컬 타임라인 비활성화"
|
||||||
|
disable-global-timeline: "글로벌 타임라인 비활성화"
|
||||||
|
disabling-timelines-info: "これらのタイムラインを無効にしても、管理者およびモデレーターは引き続き利用できます。"
|
||||||
invite: "초대"
|
invite: "초대"
|
||||||
save: "저장"
|
save: "저장"
|
||||||
saved: "저장하였습니다"
|
saved: "저장하였습니다"
|
||||||
@ -1077,6 +1097,7 @@ admin/views/charts.vue:
|
|||||||
notes-total: "글 누적 수"
|
notes-total: "글 누적 수"
|
||||||
users: "사용자 증감"
|
users: "사용자 증감"
|
||||||
users-total: "사용자 누적"
|
users-total: "사용자 누적"
|
||||||
|
active-users: "アクティブユーザー数"
|
||||||
drive: "드라이브 사용량 증감"
|
drive: "드라이브 사용량 증감"
|
||||||
drive-total: "드라이브 사용량 누적"
|
drive-total: "드라이브 사용량 누적"
|
||||||
drive-files: "드라이브 파일 수 증감"
|
drive-files: "드라이브 파일 수 증감"
|
||||||
@ -1085,6 +1106,10 @@ admin/views/charts.vue:
|
|||||||
network-time: "응답시간"
|
network-time: "응답시간"
|
||||||
network-usage: "통신량"
|
network-usage: "통신량"
|
||||||
admin/views/drive.vue:
|
admin/views/drive.vue:
|
||||||
|
operation: "操作"
|
||||||
|
fileid-or-url: "ファイルIDまたはファイルURL"
|
||||||
|
file-not-found: "ファイルが見つかりません"
|
||||||
|
lookup: "照会"
|
||||||
sort:
|
sort:
|
||||||
title: "정렬"
|
title: "정렬"
|
||||||
createdAtAsc: "업로드 날짜 오랜 순"
|
createdAtAsc: "업로드 날짜 오랜 순"
|
||||||
@ -1100,6 +1125,8 @@ admin/views/drive.vue:
|
|||||||
deleted: "삭제하였습니다"
|
deleted: "삭제하였습니다"
|
||||||
mark-as-sensitive: "열람주의로 설정"
|
mark-as-sensitive: "열람주의로 설정"
|
||||||
unmark-as-sensitive: "열람주의 해제"
|
unmark-as-sensitive: "열람주의 해제"
|
||||||
|
marked-as-sensitive: "閲覧注意に設定しました"
|
||||||
|
unmarked-as-sensitive: "閲覧注意を解除しました"
|
||||||
admin/views/users.vue:
|
admin/views/users.vue:
|
||||||
operation: "작업"
|
operation: "작업"
|
||||||
username-or-userid: "사용자명 혹은 사용자 ID"
|
username-or-userid: "사용자명 혹은 사용자 ID"
|
||||||
@ -1123,6 +1150,14 @@ admin/views/users.vue:
|
|||||||
createdAtDesc: "등록일이 최신인 순"
|
createdAtDesc: "등록일이 최신인 순"
|
||||||
updatedAtAsc: "수정일이 오래된 순"
|
updatedAtAsc: "수정일이 오래된 순"
|
||||||
updatedAtDesc: "수정일이 최신인 순"
|
updatedAtDesc: "수정일이 최신인 순"
|
||||||
|
state:
|
||||||
|
title: "상태"
|
||||||
|
all: "모두"
|
||||||
|
admin: "관리자"
|
||||||
|
moderator: "모더레이터"
|
||||||
|
adminOrModerator: "관리자+모더레이터"
|
||||||
|
verified: "공식 계정"
|
||||||
|
suspended: "정지됨"
|
||||||
origin:
|
origin:
|
||||||
title: "위치 (오리진)"
|
title: "위치 (오리진)"
|
||||||
combined: "로컬 + 원격"
|
combined: "로컬 + 원격"
|
||||||
@ -1135,6 +1170,8 @@ admin/views/moderators.vue:
|
|||||||
title: "모더레이터 등록"
|
title: "모더레이터 등록"
|
||||||
add: "등록"
|
add: "등록"
|
||||||
added: "모더레이터를 등록하였습니다"
|
added: "모더레이터를 등록하였습니다"
|
||||||
|
remove: "해제"
|
||||||
|
removed: "모더레이터 등록을 해제했습니다"
|
||||||
admin/views/emoji.vue:
|
admin/views/emoji.vue:
|
||||||
add-emoji:
|
add-emoji:
|
||||||
title: "이모지 등록"
|
title: "이모지 등록"
|
||||||
@ -1216,22 +1253,11 @@ desktop/views/pages/user/user.photos.vue:
|
|||||||
no-photos: "사진이 없습니다"
|
no-photos: "사진이 없습니다"
|
||||||
desktop/views/pages/user/user.profile.vue:
|
desktop/views/pages/user/user.profile.vue:
|
||||||
follows-you: "당신을 팔로우합니다"
|
follows-you: "당신을 팔로우합니다"
|
||||||
stalk: "스토킹"
|
menu: "メニュー"
|
||||||
stalking: "스토킹하고 있습니다"
|
|
||||||
unstalk: "스토킹 중단"
|
|
||||||
mute: "뮤트"
|
|
||||||
muted: "뮤트하였습니다"
|
|
||||||
unmute: "뮤트 해제"
|
|
||||||
block: "차단"
|
|
||||||
unblock: "차단 해제"
|
|
||||||
block-confirm: "이 사용자를 차단하시겠습니까?"
|
|
||||||
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: "팔로잉"
|
||||||
followers: "팔로워"
|
followers: "팔로워"
|
||||||
mention: "멘션"
|
|
||||||
is-bot: "이 계정은 Bot입니다"
|
is-bot: "이 계정은 Bot입니다"
|
||||||
years-old: "{age}세"
|
years-old: "{age}세"
|
||||||
year: "년"
|
year: "년"
|
||||||
@ -1472,14 +1498,7 @@ mobile/views/pages/user.vue:
|
|||||||
overview: "요약"
|
overview: "요약"
|
||||||
timeline: "타임라인"
|
timeline: "타임라인"
|
||||||
media: "미디어"
|
media: "미디어"
|
||||||
mute: "뮤트"
|
|
||||||
unmute: "뮤트 해제"
|
|
||||||
block: "차단"
|
|
||||||
unblock: "차단 해제"
|
|
||||||
years-old: "{age}세"
|
years-old: "{age}세"
|
||||||
push-to-list: "리스트에 추가"
|
|
||||||
select-list: "목록을 선택하여 주십시오"
|
|
||||||
list-pushed: "{user}을(를) {list}에 추가하였습니다"
|
|
||||||
mobile/views/pages/user/home.vue:
|
mobile/views/pages/user/home.vue:
|
||||||
recent-notes: "최근 글"
|
recent-notes: "최근 글"
|
||||||
images: "이미지"
|
images: "이미지"
|
||||||
@ -1525,12 +1544,10 @@ deck/deck.user-column.vue:
|
|||||||
posts: "글"
|
posts: "글"
|
||||||
following: "팔로잉"
|
following: "팔로잉"
|
||||||
followers: "팔로워"
|
followers: "팔로워"
|
||||||
mention: "멘션"
|
|
||||||
images: "이미지"
|
images: "이미지"
|
||||||
activity: "활동"
|
activity: "활동"
|
||||||
timeline: "타임라인"
|
timeline: "타임라인"
|
||||||
pinned-notes: "고정해놓은 글"
|
pinned-notes: "고정해놓은 글"
|
||||||
push-to-a-list: "리스트에 추가"
|
|
||||||
docs:
|
docs:
|
||||||
edit-this-page-on-github: "틀린 점이나 개선할 점을 찾으셨나요?"
|
edit-this-page-on-github: "틀린 점이나 개선할 점을 찾으셨나요?"
|
||||||
edit-this-page-on-github-link: "이 페이지를 GitHub에서 편집"
|
edit-this-page-on-github-link: "이 페이지를 GitHub에서 편집"
|
||||||
|
@ -27,6 +27,7 @@ common:
|
|||||||
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
|
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
|
||||||
load-more: "もっと読み込む"
|
load-more: "もっと読み込む"
|
||||||
enter-password: "パスワードを入力してください"
|
enter-password: "パスワードを入力してください"
|
||||||
|
2fa: "二段階認証"
|
||||||
got-it: "わかった"
|
got-it: "わかった"
|
||||||
customization-tips:
|
customization-tips:
|
||||||
title: "カスタマイズのヒント"
|
title: "カスタマイズのヒント"
|
||||||
@ -124,6 +125,8 @@ common:
|
|||||||
line-width-thin: "細い"
|
line-width-thin: "細い"
|
||||||
line-width-normal: "普通"
|
line-width-normal: "普通"
|
||||||
line-width-thick: "太い"
|
line-width-thick: "太い"
|
||||||
|
hide-password: "パスワードを隠す"
|
||||||
|
show-password: "パスワードを表示する"
|
||||||
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
|
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
|
||||||
user-suspended: "このユーザーは凍結されています。"
|
user-suspended: "このユーザーは凍結されています。"
|
||||||
is-remote-user: "このユーザー情報はコピーです。"
|
is-remote-user: "このユーザー情報はコピーです。"
|
||||||
@ -346,6 +349,18 @@ common/views/components/note-menu.vue:
|
|||||||
delete: "削除"
|
delete: "削除"
|
||||||
delete-confirm: "この投稿を削除しますか?"
|
delete-confirm: "この投稿を削除しますか?"
|
||||||
remote: "Origineel tonen"
|
remote: "Origineel tonen"
|
||||||
|
common/views/components/user-menu.vue:
|
||||||
|
mention: "メンション"
|
||||||
|
mute: "ミュート"
|
||||||
|
unmute: "ミュート解除"
|
||||||
|
block: "ブロック"
|
||||||
|
unblock: "ブロック解除"
|
||||||
|
push-to-list: "リストに追加"
|
||||||
|
select-list: "リストを選択してください"
|
||||||
|
list-pushed: "{user}を{list}に追加しました"
|
||||||
|
report-abuse: "スパムを報告"
|
||||||
|
report-abuse-detail: "どのような迷惑行為を行っていますか?"
|
||||||
|
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
|
||||||
common/views/components/poll.vue:
|
common/views/components/poll.vue:
|
||||||
vote-to: "Stemmen op '{}'"
|
vote-to: "Stemmen op '{}'"
|
||||||
vote-count: "{} stemmen"
|
vote-count: "{} stemmen"
|
||||||
@ -759,7 +774,6 @@ desktop/views/components/settings.vue:
|
|||||||
security: "Beveiliging"
|
security: "Beveiliging"
|
||||||
signin: "Inloggeschiedenis"
|
signin: "Inloggeschiedenis"
|
||||||
password: "Wachtwoord"
|
password: "Wachtwoord"
|
||||||
2fa: "Authenticatie in twee stappen"
|
|
||||||
other: "Overig"
|
other: "Overig"
|
||||||
license: "Licentie"
|
license: "Licentie"
|
||||||
theme: "テーマ"
|
theme: "テーマ"
|
||||||
@ -773,9 +787,6 @@ desktop/views/components/settings.vue:
|
|||||||
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
||||||
auto-popout: "Venster automatisch uitvouwen"
|
auto-popout: "Venster automatisch uitvouwen"
|
||||||
auto-popout-desc: "Venster uitvouwen, indien mogelijk. Deze instelling wordt opgeslagen in je browser."
|
auto-popout-desc: "Venster uitvouwen, indien mogelijk. Deze instelling wordt opgeslagen in je browser."
|
||||||
advanced: "Geavanceerde instellingen"
|
|
||||||
api-via-stream: "API-verzoek via stream"
|
|
||||||
api-via-stream-desc: "API-verzoek wordt uitgevoerd via de WebSocket-verbinding i.p.v. de ingebouwde ophaal-API (voor verbeterde prestaties). Deze instelling wordt opgeslagen in je browser."
|
|
||||||
deck-nav: "デッキ内ナビゲーション"
|
deck-nav: "デッキ内ナビゲーション"
|
||||||
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
||||||
deck-default: "デッキをデフォルトのUIにする"
|
deck-default: "デッキをデフォルトのUIにする"
|
||||||
@ -979,6 +990,7 @@ admin/views/index.vue:
|
|||||||
federation: "連合"
|
federation: "連合"
|
||||||
announcements: "お知らせ"
|
announcements: "お知らせ"
|
||||||
hashtags: "ハッシュタグ"
|
hashtags: "ハッシュタグ"
|
||||||
|
abuse: "スパム報告"
|
||||||
back-to-misskey: "Misskeyに戻る"
|
back-to-misskey: "Misskeyに戻る"
|
||||||
admin/views/dashboard.vue:
|
admin/views/dashboard.vue:
|
||||||
dashboard: "ダッシュボード"
|
dashboard: "ダッシュボード"
|
||||||
@ -988,6 +1000,12 @@ admin/views/dashboard.vue:
|
|||||||
instances: "インスタンス"
|
instances: "インスタンス"
|
||||||
this-instance: "このインスタンス"
|
this-instance: "このインスタンス"
|
||||||
federated: "連合"
|
federated: "連合"
|
||||||
|
admin/views/abuse.vue:
|
||||||
|
title: "スパム報告"
|
||||||
|
target: "対象"
|
||||||
|
reporter: "報告者"
|
||||||
|
details: "詳細"
|
||||||
|
remove-report: "削除"
|
||||||
admin/views/instance.vue:
|
admin/views/instance.vue:
|
||||||
instance: "インスタンス"
|
instance: "インスタンス"
|
||||||
instance-name: "インスタンス名"
|
instance-name: "インスタンス名"
|
||||||
@ -1034,6 +1052,8 @@ admin/views/instance.vue:
|
|||||||
max-note-text-length: "投稿の最大文字数"
|
max-note-text-length: "投稿の最大文字数"
|
||||||
disable-registration: "ユーザー登録の受付を停止する"
|
disable-registration: "ユーザー登録の受付を停止する"
|
||||||
disable-local-timeline: "ローカルタイムラインを無効にする"
|
disable-local-timeline: "ローカルタイムラインを無効にする"
|
||||||
|
disable-global-timeline: "グローバルタイムラインを無効にする"
|
||||||
|
disabling-timelines-info: "これらのタイムラインを無効にしても、管理者およびモデレーターは引き続き利用できます。"
|
||||||
invite: "招待"
|
invite: "招待"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "保存しました"
|
saved: "保存しました"
|
||||||
@ -1077,6 +1097,7 @@ admin/views/charts.vue:
|
|||||||
notes-total: "投稿の積算"
|
notes-total: "投稿の積算"
|
||||||
users: "ユーザーの増減"
|
users: "ユーザーの増減"
|
||||||
users-total: "ユーザーの積算"
|
users-total: "ユーザーの積算"
|
||||||
|
active-users: "アクティブユーザー数"
|
||||||
drive: "ドライブ使用量の増減"
|
drive: "ドライブ使用量の増減"
|
||||||
drive-total: "ドライブ使用量の積算"
|
drive-total: "ドライブ使用量の積算"
|
||||||
drive-files: "ドライブのファイル数の増減"
|
drive-files: "ドライブのファイル数の増減"
|
||||||
@ -1085,6 +1106,10 @@ admin/views/charts.vue:
|
|||||||
network-time: "応答時間"
|
network-time: "応答時間"
|
||||||
network-usage: "通信量"
|
network-usage: "通信量"
|
||||||
admin/views/drive.vue:
|
admin/views/drive.vue:
|
||||||
|
operation: "操作"
|
||||||
|
fileid-or-url: "ファイルIDまたはファイルURL"
|
||||||
|
file-not-found: "ファイルが見つかりません"
|
||||||
|
lookup: "照会"
|
||||||
sort:
|
sort:
|
||||||
title: "ソート"
|
title: "ソート"
|
||||||
createdAtAsc: "アップロード日時が古い順"
|
createdAtAsc: "アップロード日時が古い順"
|
||||||
@ -1100,6 +1125,8 @@ admin/views/drive.vue:
|
|||||||
deleted: "削除しました"
|
deleted: "削除しました"
|
||||||
mark-as-sensitive: "閲覧注意に設定"
|
mark-as-sensitive: "閲覧注意に設定"
|
||||||
unmark-as-sensitive: "閲覧注意を解除"
|
unmark-as-sensitive: "閲覧注意を解除"
|
||||||
|
marked-as-sensitive: "閲覧注意に設定しました"
|
||||||
|
unmarked-as-sensitive: "閲覧注意を解除しました"
|
||||||
admin/views/users.vue:
|
admin/views/users.vue:
|
||||||
operation: "操作"
|
operation: "操作"
|
||||||
username-or-userid: "ユーザー名またはユーザーID"
|
username-or-userid: "ユーザー名またはユーザーID"
|
||||||
@ -1123,6 +1150,14 @@ admin/views/users.vue:
|
|||||||
createdAtDesc: "登録日時が新しい順"
|
createdAtDesc: "登録日時が新しい順"
|
||||||
updatedAtAsc: "更新日時が古い順"
|
updatedAtAsc: "更新日時が古い順"
|
||||||
updatedAtDesc: "更新日時が新しい順"
|
updatedAtDesc: "更新日時が新しい順"
|
||||||
|
state:
|
||||||
|
title: "状態"
|
||||||
|
all: "すべて"
|
||||||
|
admin: "管理者"
|
||||||
|
moderator: "モデレーター"
|
||||||
|
adminOrModerator: "管理者+モデレーター"
|
||||||
|
verified: "公式アカウント"
|
||||||
|
suspended: "凍結済み"
|
||||||
origin:
|
origin:
|
||||||
title: "オリジン"
|
title: "オリジン"
|
||||||
combined: "ローカル+リモート"
|
combined: "ローカル+リモート"
|
||||||
@ -1135,6 +1170,8 @@ admin/views/moderators.vue:
|
|||||||
title: "モデレーターの登録"
|
title: "モデレーターの登録"
|
||||||
add: "登録"
|
add: "登録"
|
||||||
added: "モデレーターを登録しました"
|
added: "モデレーターを登録しました"
|
||||||
|
remove: "解除"
|
||||||
|
removed: "モデレーター登録を解除しました"
|
||||||
admin/views/emoji.vue:
|
admin/views/emoji.vue:
|
||||||
add-emoji:
|
add-emoji:
|
||||||
title: "絵文字の登録"
|
title: "絵文字の登録"
|
||||||
@ -1216,22 +1253,11 @@ desktop/views/pages/user/user.photos.vue:
|
|||||||
no-photos: "Geen foto's"
|
no-photos: "Geen foto's"
|
||||||
desktop/views/pages/user/user.profile.vue:
|
desktop/views/pages/user/user.profile.vue:
|
||||||
follows-you: "Volgt jou"
|
follows-you: "Volgt jou"
|
||||||
stalk: "Stalken"
|
menu: "メニュー"
|
||||||
stalking: "Stalkend"
|
|
||||||
unstalk: "Stoppen met stalken"
|
|
||||||
mute: "Dempen"
|
|
||||||
muted: "Dempend"
|
|
||||||
unmute: "Ontdempen"
|
|
||||||
block: "ブロックする"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
block-confirm: "このユーザーをブロックしますか?"
|
|
||||||
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: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
is-bot: "このアカウントはBotです"
|
is-bot: "このアカウントはBotです"
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
year: "年"
|
year: "年"
|
||||||
@ -1472,14 +1498,7 @@ mobile/views/pages/user.vue:
|
|||||||
overview: "Overzicht"
|
overview: "Overzicht"
|
||||||
timeline: "Tijdlijn"
|
timeline: "Tijdlijn"
|
||||||
media: "Media"
|
media: "Media"
|
||||||
mute: "ミュート"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロック"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
push-to-list: "リストに追加"
|
|
||||||
select-list: "リストを選択してください"
|
|
||||||
list-pushed: "{user}を{list}に追加しました"
|
|
||||||
mobile/views/pages/user/home.vue:
|
mobile/views/pages/user/home.vue:
|
||||||
recent-notes: "Recente notities"
|
recent-notes: "Recente notities"
|
||||||
images: "Afbeeldingen"
|
images: "Afbeeldingen"
|
||||||
@ -1525,12 +1544,10 @@ deck/deck.user-column.vue:
|
|||||||
posts: "投稿"
|
posts: "投稿"
|
||||||
following: "フォロー"
|
following: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
images: "画像"
|
images: "画像"
|
||||||
activity: "アクティビティ"
|
activity: "アクティビティ"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
pinned-notes: "ピン留めされた投稿"
|
pinned-notes: "ピン留めされた投稿"
|
||||||
push-to-a-list: "リストに追加"
|
|
||||||
docs:
|
docs:
|
||||||
edit-this-page-on-github: "Heb je een fout ontdekt of wil je bijdragen aan de documentatie? "
|
edit-this-page-on-github: "Heb je een fout ontdekt of wil je bijdragen aan de documentatie? "
|
||||||
edit-this-page-on-github-link: "Bewerk deze pagina op GitHub!"
|
edit-this-page-on-github-link: "Bewerk deze pagina op GitHub!"
|
||||||
|
@ -27,6 +27,7 @@ common:
|
|||||||
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
|
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
|
||||||
load-more: "もっと読み込む"
|
load-more: "もっと読み込む"
|
||||||
enter-password: "パスワードを入力してください"
|
enter-password: "パスワードを入力してください"
|
||||||
|
2fa: "二段階認証"
|
||||||
got-it: "Skjønner!"
|
got-it: "Skjønner!"
|
||||||
customization-tips:
|
customization-tips:
|
||||||
title: "カスタマイズのヒント"
|
title: "カスタマイズのヒント"
|
||||||
@ -124,6 +125,8 @@ common:
|
|||||||
line-width-thin: "細い"
|
line-width-thin: "細い"
|
||||||
line-width-normal: "普通"
|
line-width-normal: "普通"
|
||||||
line-width-thick: "太い"
|
line-width-thick: "太い"
|
||||||
|
hide-password: "パスワードを隠す"
|
||||||
|
show-password: "パスワードを表示する"
|
||||||
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
|
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
|
||||||
user-suspended: "このユーザーは凍結されています。"
|
user-suspended: "このユーザーは凍結されています。"
|
||||||
is-remote-user: "このユーザー情報はコピーです。"
|
is-remote-user: "このユーザー情報はコピーです。"
|
||||||
@ -346,6 +349,18 @@ common/views/components/note-menu.vue:
|
|||||||
delete: "Slett"
|
delete: "Slett"
|
||||||
delete-confirm: "この投稿を削除しますか?"
|
delete-confirm: "この投稿を削除しますか?"
|
||||||
remote: "投稿元で見る"
|
remote: "投稿元で見る"
|
||||||
|
common/views/components/user-menu.vue:
|
||||||
|
mention: "メンション"
|
||||||
|
mute: "ミュート"
|
||||||
|
unmute: "ミュート解除"
|
||||||
|
block: "ブロック"
|
||||||
|
unblock: "ブロック解除"
|
||||||
|
push-to-list: "リストに追加"
|
||||||
|
select-list: "リストを選択してください"
|
||||||
|
list-pushed: "{user}を{list}に追加しました"
|
||||||
|
report-abuse: "スパムを報告"
|
||||||
|
report-abuse-detail: "どのような迷惑行為を行っていますか?"
|
||||||
|
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
|
||||||
common/views/components/poll.vue:
|
common/views/components/poll.vue:
|
||||||
vote-to: "「{}」に投票する"
|
vote-to: "「{}」に投票する"
|
||||||
vote-count: "{} stemmer"
|
vote-count: "{} stemmer"
|
||||||
@ -759,7 +774,6 @@ desktop/views/components/settings.vue:
|
|||||||
security: "セキュリティ"
|
security: "セキュリティ"
|
||||||
signin: "サインイン履歴"
|
signin: "サインイン履歴"
|
||||||
password: "Passord"
|
password: "Passord"
|
||||||
2fa: "To-faktor autentisering"
|
|
||||||
other: "Annet"
|
other: "Annet"
|
||||||
license: "Lisens"
|
license: "Lisens"
|
||||||
theme: "Utseende"
|
theme: "Utseende"
|
||||||
@ -773,9 +787,6 @@ desktop/views/components/settings.vue:
|
|||||||
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
||||||
auto-popout: "ウィンドウの自動ポップアウト"
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
advanced: "Avanserte innstillinger"
|
|
||||||
api-via-stream: "ストリームを経由したAPIリクエスト"
|
|
||||||
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
|
||||||
deck-nav: "デッキ内ナビゲーション"
|
deck-nav: "デッキ内ナビゲーション"
|
||||||
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
||||||
deck-default: "デッキをデフォルトのUIにする"
|
deck-default: "デッキをデフォルトのUIにする"
|
||||||
@ -979,6 +990,7 @@ admin/views/index.vue:
|
|||||||
federation: "連合"
|
federation: "連合"
|
||||||
announcements: "お知らせ"
|
announcements: "お知らせ"
|
||||||
hashtags: "ハッシュタグ"
|
hashtags: "ハッシュタグ"
|
||||||
|
abuse: "スパム報告"
|
||||||
back-to-misskey: "Misskeyに戻る"
|
back-to-misskey: "Misskeyに戻る"
|
||||||
admin/views/dashboard.vue:
|
admin/views/dashboard.vue:
|
||||||
dashboard: "ダッシュボード"
|
dashboard: "ダッシュボード"
|
||||||
@ -988,6 +1000,12 @@ admin/views/dashboard.vue:
|
|||||||
instances: "インスタンス"
|
instances: "インスタンス"
|
||||||
this-instance: "このインスタンス"
|
this-instance: "このインスタンス"
|
||||||
federated: "連合"
|
federated: "連合"
|
||||||
|
admin/views/abuse.vue:
|
||||||
|
title: "スパム報告"
|
||||||
|
target: "対象"
|
||||||
|
reporter: "報告者"
|
||||||
|
details: "詳細"
|
||||||
|
remove-report: "削除"
|
||||||
admin/views/instance.vue:
|
admin/views/instance.vue:
|
||||||
instance: "インスタンス"
|
instance: "インスタンス"
|
||||||
instance-name: "インスタンス名"
|
instance-name: "インスタンス名"
|
||||||
@ -1034,6 +1052,8 @@ admin/views/instance.vue:
|
|||||||
max-note-text-length: "投稿の最大文字数"
|
max-note-text-length: "投稿の最大文字数"
|
||||||
disable-registration: "ユーザー登録の受付を停止する"
|
disable-registration: "ユーザー登録の受付を停止する"
|
||||||
disable-local-timeline: "ローカルタイムラインを無効にする"
|
disable-local-timeline: "ローカルタイムラインを無効にする"
|
||||||
|
disable-global-timeline: "グローバルタイムラインを無効にする"
|
||||||
|
disabling-timelines-info: "これらのタイムラインを無効にしても、管理者およびモデレーターは引き続き利用できます。"
|
||||||
invite: "招待"
|
invite: "招待"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "保存しました"
|
saved: "保存しました"
|
||||||
@ -1077,6 +1097,7 @@ admin/views/charts.vue:
|
|||||||
notes-total: "投稿の積算"
|
notes-total: "投稿の積算"
|
||||||
users: "ユーザーの増減"
|
users: "ユーザーの増減"
|
||||||
users-total: "ユーザーの積算"
|
users-total: "ユーザーの積算"
|
||||||
|
active-users: "アクティブユーザー数"
|
||||||
drive: "ドライブ使用量の増減"
|
drive: "ドライブ使用量の増減"
|
||||||
drive-total: "ドライブ使用量の積算"
|
drive-total: "ドライブ使用量の積算"
|
||||||
drive-files: "ドライブのファイル数の増減"
|
drive-files: "ドライブのファイル数の増減"
|
||||||
@ -1085,6 +1106,10 @@ admin/views/charts.vue:
|
|||||||
network-time: "応答時間"
|
network-time: "応答時間"
|
||||||
network-usage: "通信量"
|
network-usage: "通信量"
|
||||||
admin/views/drive.vue:
|
admin/views/drive.vue:
|
||||||
|
operation: "操作"
|
||||||
|
fileid-or-url: "ファイルIDまたはファイルURL"
|
||||||
|
file-not-found: "ファイルが見つかりません"
|
||||||
|
lookup: "照会"
|
||||||
sort:
|
sort:
|
||||||
title: "ソート"
|
title: "ソート"
|
||||||
createdAtAsc: "アップロード日時が古い順"
|
createdAtAsc: "アップロード日時が古い順"
|
||||||
@ -1100,6 +1125,8 @@ admin/views/drive.vue:
|
|||||||
deleted: "削除しました"
|
deleted: "削除しました"
|
||||||
mark-as-sensitive: "閲覧注意に設定"
|
mark-as-sensitive: "閲覧注意に設定"
|
||||||
unmark-as-sensitive: "閲覧注意を解除"
|
unmark-as-sensitive: "閲覧注意を解除"
|
||||||
|
marked-as-sensitive: "閲覧注意に設定しました"
|
||||||
|
unmarked-as-sensitive: "閲覧注意を解除しました"
|
||||||
admin/views/users.vue:
|
admin/views/users.vue:
|
||||||
operation: "操作"
|
operation: "操作"
|
||||||
username-or-userid: "ユーザー名またはユーザーID"
|
username-or-userid: "ユーザー名またはユーザーID"
|
||||||
@ -1123,6 +1150,14 @@ admin/views/users.vue:
|
|||||||
createdAtDesc: "登録日時が新しい順"
|
createdAtDesc: "登録日時が新しい順"
|
||||||
updatedAtAsc: "更新日時が古い順"
|
updatedAtAsc: "更新日時が古い順"
|
||||||
updatedAtDesc: "更新日時が新しい順"
|
updatedAtDesc: "更新日時が新しい順"
|
||||||
|
state:
|
||||||
|
title: "状態"
|
||||||
|
all: "すべて"
|
||||||
|
admin: "管理者"
|
||||||
|
moderator: "モデレーター"
|
||||||
|
adminOrModerator: "管理者+モデレーター"
|
||||||
|
verified: "公式アカウント"
|
||||||
|
suspended: "凍結済み"
|
||||||
origin:
|
origin:
|
||||||
title: "オリジン"
|
title: "オリジン"
|
||||||
combined: "ローカル+リモート"
|
combined: "ローカル+リモート"
|
||||||
@ -1135,6 +1170,8 @@ admin/views/moderators.vue:
|
|||||||
title: "モデレーターの登録"
|
title: "モデレーターの登録"
|
||||||
add: "登録"
|
add: "登録"
|
||||||
added: "モデレーターを登録しました"
|
added: "モデレーターを登録しました"
|
||||||
|
remove: "解除"
|
||||||
|
removed: "モデレーター登録を解除しました"
|
||||||
admin/views/emoji.vue:
|
admin/views/emoji.vue:
|
||||||
add-emoji:
|
add-emoji:
|
||||||
title: "絵文字の登録"
|
title: "絵文字の登録"
|
||||||
@ -1216,22 +1253,11 @@ desktop/views/pages/user/user.photos.vue:
|
|||||||
no-photos: "写真はありません"
|
no-photos: "写真はありません"
|
||||||
desktop/views/pages/user/user.profile.vue:
|
desktop/views/pages/user/user.profile.vue:
|
||||||
follows-you: "フォローされています"
|
follows-you: "フォローされています"
|
||||||
stalk: "ストークする"
|
menu: "メニュー"
|
||||||
stalking: "ストーキングしています"
|
|
||||||
unstalk: "ストーク解除"
|
|
||||||
mute: "ミュートする"
|
|
||||||
muted: "ミュートしています"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロックする"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
block-confirm: "このユーザーをブロックしますか?"
|
|
||||||
push-to-a-list: "リストに追加"
|
|
||||||
list-pushed: "{user}を{list}に追加しました。"
|
|
||||||
desktop/views/pages/user/user.header.vue:
|
desktop/views/pages/user/user.header.vue:
|
||||||
posts: "Innlegg"
|
posts: "Innlegg"
|
||||||
following: "Følger"
|
following: "Følger"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
is-bot: "このアカウントはBotです"
|
is-bot: "このアカウントはBotです"
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
year: "年"
|
year: "年"
|
||||||
@ -1472,14 +1498,7 @@ mobile/views/pages/user.vue:
|
|||||||
overview: "Oversikt"
|
overview: "Oversikt"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
media: "Media"
|
media: "Media"
|
||||||
mute: "ミュート"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロック"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
push-to-list: "リストに追加"
|
|
||||||
select-list: "リストを選択してください"
|
|
||||||
list-pushed: "{user}を{list}に追加しました"
|
|
||||||
mobile/views/pages/user/home.vue:
|
mobile/views/pages/user/home.vue:
|
||||||
recent-notes: "Nylige innlegg"
|
recent-notes: "Nylige innlegg"
|
||||||
images: "Bilder"
|
images: "Bilder"
|
||||||
@ -1525,12 +1544,10 @@ deck/deck.user-column.vue:
|
|||||||
posts: "投稿"
|
posts: "投稿"
|
||||||
following: "フォロー"
|
following: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
images: "画像"
|
images: "画像"
|
||||||
activity: "アクティビティ"
|
activity: "アクティビティ"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
pinned-notes: "ピン留めされた投稿"
|
pinned-notes: "ピン留めされた投稿"
|
||||||
push-to-a-list: "リストに追加"
|
|
||||||
docs:
|
docs:
|
||||||
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
||||||
edit-this-page-on-github-link: "このページをGitHubで編集"
|
edit-this-page-on-github-link: "このページをGitHubで編集"
|
||||||
|
@ -27,6 +27,7 @@ common:
|
|||||||
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
|
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
|
||||||
load-more: "Załaduj więcej"
|
load-more: "Załaduj więcej"
|
||||||
enter-password: "Wprowadź Hasło"
|
enter-password: "Wprowadź Hasło"
|
||||||
|
2fa: "二段階認証"
|
||||||
got-it: "Rozumiem!"
|
got-it: "Rozumiem!"
|
||||||
customization-tips:
|
customization-tips:
|
||||||
title: "Wskazówki o dostosowywaniu"
|
title: "Wskazówki o dostosowywaniu"
|
||||||
@ -120,10 +121,12 @@ common:
|
|||||||
reduce-motion: "Zredukuj ruch w UI"
|
reduce-motion: "Zredukuj ruch w UI"
|
||||||
this-setting-is-this-device-only: "このデバイスのみ"
|
this-setting-is-this-device-only: "このデバイスのみ"
|
||||||
use-os-default-emojis: "Użyj domyślnych Emoji systemowych"
|
use-os-default-emojis: "Użyj domyślnych Emoji systemowych"
|
||||||
line-width: "線の太さ"
|
line-width: "Szerokości linii"
|
||||||
line-width-thin: "細い"
|
line-width-thin: "Chuda"
|
||||||
line-width-normal: "普通"
|
line-width-normal: "Normalna"
|
||||||
line-width-thick: "太い"
|
line-width-thick: "Gruba"
|
||||||
|
hide-password: "Ukryj hasło"
|
||||||
|
show-password: "Pokaż hasło"
|
||||||
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
|
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
|
||||||
user-suspended: "このユーザーは凍結されています。"
|
user-suspended: "このユーザーは凍結されています。"
|
||||||
is-remote-user: "Informacje o użytkowniku są kopiowane."
|
is-remote-user: "Informacje o użytkowniku są kopiowane."
|
||||||
@ -315,13 +318,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: "メッセージに添付できるのはひとつのファイルのみです"
|
only-one-file-attached: "Tylko JEDEN plik może zostać dołączony do wiadomości"
|
||||||
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: "メッセージに添付できるのはひとつのファイルのみです"
|
only-one-file-attached: "Tylko jeden plik może zostać dołączony do wiadomości"
|
||||||
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"
|
||||||
@ -337,7 +340,7 @@ common/views/components/nav.vue:
|
|||||||
common/views/components/note-menu.vue:
|
common/views/components/note-menu.vue:
|
||||||
mention: "Wspomnij"
|
mention: "Wspomnij"
|
||||||
detail: "Szczegóły"
|
detail: "Szczegóły"
|
||||||
copy-content: "内容をコピー"
|
copy-content: "Skopiuj zawartość"
|
||||||
copy-link: "Skopiuj adres"
|
copy-link: "Skopiuj adres"
|
||||||
favorite: "Dodaj do ulubionych"
|
favorite: "Dodaj do ulubionych"
|
||||||
unfavorite: "Usuń z ulubionych"
|
unfavorite: "Usuń z ulubionych"
|
||||||
@ -346,6 +349,18 @@ common/views/components/note-menu.vue:
|
|||||||
delete: "Usuń"
|
delete: "Usuń"
|
||||||
delete-confirm: "Czy na pewno chcesz usunąć ten wpis?"
|
delete-confirm: "Czy na pewno chcesz usunąć ten wpis?"
|
||||||
remote: "Pokaż oryginał"
|
remote: "Pokaż oryginał"
|
||||||
|
common/views/components/user-menu.vue:
|
||||||
|
mention: "メンション"
|
||||||
|
mute: "ミュート"
|
||||||
|
unmute: "ミュート解除"
|
||||||
|
block: "ブロック"
|
||||||
|
unblock: "ブロック解除"
|
||||||
|
push-to-list: "リストに追加"
|
||||||
|
select-list: "リストを選択してください"
|
||||||
|
list-pushed: "{user}を{list}に追加しました"
|
||||||
|
report-abuse: "スパムを報告"
|
||||||
|
report-abuse-detail: "どのような迷惑行為を行っていますか?"
|
||||||
|
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
|
||||||
common/views/components/poll.vue:
|
common/views/components/poll.vue:
|
||||||
vote-to: "Zagłosuj na '{}'"
|
vote-to: "Zagłosuj na '{}'"
|
||||||
vote-count: "{} głosów"
|
vote-count: "{} głosów"
|
||||||
@ -383,7 +398,7 @@ common/views/components/signin.vue:
|
|||||||
signin-with-discord: "Zaloguj się za pomocą Discorda"
|
signin-with-discord: "Zaloguj się za pomocą Discorda"
|
||||||
login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
|
login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
|
||||||
common/views/components/signup.vue:
|
common/views/components/signup.vue:
|
||||||
invitation-code: "招待コード"
|
invitation-code: "Kod zaproszenia"
|
||||||
invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
|
invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
|
||||||
username: "Nazwa użytkownika"
|
username: "Nazwa użytkownika"
|
||||||
checking: "Sprawdzanie…"
|
checking: "Sprawdzanie…"
|
||||||
@ -414,30 +429,30 @@ common/views/components/stream-indicator.vue:
|
|||||||
connected: "Połączono"
|
connected: "Połączono"
|
||||||
common/views/components/notification-settings.vue:
|
common/views/components/notification-settings.vue:
|
||||||
title: "Powiadomienia"
|
title: "Powiadomienia"
|
||||||
mark-as-read-all-notifications: "すべての通知を既読にする"
|
mark-as-read-all-notifications: "Oznacz wszystkie powiadomienia jako przeczytane"
|
||||||
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
|
mark-as-read-all-unread-notes: "Oznacz wszystkie wpisy jako przeczytane"
|
||||||
mark-as-read-all-talk-messages: "すべてのトークを既読にする"
|
mark-as-read-all-talk-messages: "Oznacz wszystkie rozmowy jako przeczytane"
|
||||||
auto-watch: "投稿の自動ウォッチ"
|
auto-watch: "Automatycznie nasłuchuj wpisów"
|
||||||
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
|
auto-watch-desc: "Automatycznie otrzymuj powiadomienia o wpisach, w których zareagowałeś(-aś) lub odpowiedziałeś(-aś)."
|
||||||
common/views/components/integration-settings.vue:
|
common/views/components/integration-settings.vue:
|
||||||
title: "サービス連携"
|
title: "サービス連携"
|
||||||
connect: "Połącz"
|
connect: "Połącz"
|
||||||
disconnect: "Rozłącz"
|
disconnect: "Rozłącz"
|
||||||
connected-to: "次のアカウントに接続されています"
|
connected-to: "Jesteś połączony(-a) z następującym kontem"
|
||||||
common/views/components/github-setting.vue:
|
common/views/components/github-setting.vue:
|
||||||
description: "お使いのGitHubアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでGitHubアカウント情報が表示されるようになったり、GitHubを用いた便利なサインインを利用できるようになります。"
|
description: "お使いのGitHubアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでGitHubアカウント情報が表示されるようになったり、GitHubを用いた便利なサインインを利用できるようになります。"
|
||||||
connected-to: "次のGitHubアカウントに接続されています"
|
connected-to: "次のGitHubアカウントに接続されています"
|
||||||
detail: "Więcej..."
|
detail: "Więcej..."
|
||||||
reconnect: "Połącz ponownie"
|
reconnect: "Połącz ponownie"
|
||||||
connect: "GitHubと接続する"
|
connect: "GitHubと接続する"
|
||||||
disconnect: "切断する"
|
disconnect: "Rozłącz"
|
||||||
common/views/components/discord-setting.vue:
|
common/views/components/discord-setting.vue:
|
||||||
description: "お使いのDiscordアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでDiscordアカウント情報が表示されるようになったり、Discordを用いた便利なサインインを利用できるようになります。"
|
description: "お使いのDiscordアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでDiscordアカウント情報が表示されるようになったり、Discordを用いた便利なサインインを利用できるようになります。"
|
||||||
connected-to: "次のDiscordアカウントに接続されています"
|
connected-to: "次のDiscordアカウントに接続されています"
|
||||||
detail: "Szczegóły…"
|
detail: "Szczegóły…"
|
||||||
reconnect: "Połącz ponownie"
|
reconnect: "Połącz ponownie"
|
||||||
connect: "Discordと接続する"
|
connect: "Discordと接続する"
|
||||||
disconnect: "切断する"
|
disconnect: "Rozłącz"
|
||||||
common/views/components/uploader.vue:
|
common/views/components/uploader.vue:
|
||||||
waiting: "Oczekiwanie"
|
waiting: "Oczekiwanie"
|
||||||
common/views/components/visibility-chooser.vue:
|
common/views/components/visibility-chooser.vue:
|
||||||
@ -448,7 +463,7 @@ common/views/components/visibility-chooser.vue:
|
|||||||
followers-desc: "Widoczny tylko dla osób, które Cię śledzą"
|
followers-desc: "Widoczny tylko dla osób, które Cię śledzą"
|
||||||
specified: "Bezpośredni"
|
specified: "Bezpośredni"
|
||||||
specified-desc: "Tylko dla określonych użytkowników"
|
specified-desc: "Tylko dla określonych użytkowników"
|
||||||
local-public: "公開 (ローカルのみ)"
|
local-public: "Publiczny (tylko lokalnie)"
|
||||||
local-public-desc: "リモートへは公開しない"
|
local-public-desc: "リモートへは公開しない"
|
||||||
local-home: "ホーム (ローカルのみ)"
|
local-home: "ホーム (ローカルのみ)"
|
||||||
local-followers: "Dla śledzących (tylko lokalnie)"
|
local-followers: "Dla śledzących (tylko lokalnie)"
|
||||||
@ -474,24 +489,24 @@ common/views/components/profile-editor.vue:
|
|||||||
banner: "Baner"
|
banner: "Baner"
|
||||||
is-cat: "To konto jest prowadzone przez kota"
|
is-cat: "To konto jest prowadzone przez kota"
|
||||||
is-bot: "To konto jest prowadzone przez bota"
|
is-bot: "To konto jest prowadzone przez bota"
|
||||||
is-locked: "Żądanania śledzenia wymagają zatwierdzenia"
|
is-locked: "Prośby śledzenia wymagają zatwierdzenia"
|
||||||
careful-bot: "Botからのフォローだけ承認制にする"
|
careful-bot: "Prośby śledzenia od botów wymagają zatwierdzenia"
|
||||||
auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
|
auto-accept-followed: "Automatyczne zatwierdzaj śledzenia od osób, które śledzisz."
|
||||||
advanced: "Inne"
|
advanced: "Inne"
|
||||||
privacy: "Prywatność"
|
privacy: "Prywatność"
|
||||||
save: "Zapisz"
|
save: "Zapisz"
|
||||||
saved: "Pomyślnie zaktualizowano profil"
|
saved: "Pomyślnie zaktualizowano profil"
|
||||||
uploading: "アップロード中"
|
uploading: "Wysyłanie"
|
||||||
upload-failed: "アップロードに失敗しました"
|
upload-failed: "Wysyłanie nie powiodło się"
|
||||||
email: "メール設定"
|
email: "Ustawienia e-mail"
|
||||||
email-address: "Adres e-mail"
|
email-address: "Adres e-mail"
|
||||||
email-verified: "メールアドレスが確認されました"
|
email-verified: "メールアドレスが確認されました"
|
||||||
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
|
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
|
||||||
common/views/components/user-list-editor.vue:
|
common/views/components/user-list-editor.vue:
|
||||||
users: "ユーザー"
|
users: "Użytkownicy"
|
||||||
rename: "リスト名を変更"
|
rename: "Zmień nazwę listy"
|
||||||
delete: "リストを削除"
|
delete: "Usuń listę"
|
||||||
remove-user: "このリストから削除"
|
remove-user: "Usuń z tej listy"
|
||||||
delete-are-you-sure: "リスト「$1」を削除しますか?"
|
delete-are-you-sure: "リスト「$1」を削除しますか?"
|
||||||
deleted: "削除しました"
|
deleted: "削除しました"
|
||||||
common/views/widgets/broadcast.vue:
|
common/views/widgets/broadcast.vue:
|
||||||
@ -547,7 +562,7 @@ common/views/widgets/tips.vue:
|
|||||||
tips-line24: "Misskey zaczął działać w 2014."
|
tips-line24: "Misskey zaczął działać w 2014."
|
||||||
tips-line25: "Możesz otrzymywać powiadomienia nawet jeżeli Misskey nie jest otwarty w obsługiwanej przeglądarce."
|
tips-line25: "Możesz otrzymywać powiadomienia nawet jeżeli Misskey nie jest otwarty w obsługiwanej przeglądarce."
|
||||||
common/views/pages/not-found.vue:
|
common/views/pages/not-found.vue:
|
||||||
page-not-found: "ページが見つかりませんでした"
|
page-not-found: "Strona nie została znaleziona"
|
||||||
common/views/pages/follow.vue:
|
common/views/pages/follow.vue:
|
||||||
signed-in-as: "Zalogowany jako {}"
|
signed-in-as: "Zalogowany jako {}"
|
||||||
following: "Śledzisz"
|
following: "Śledzisz"
|
||||||
@ -667,7 +682,7 @@ desktop/views/components/friends-maker.vue:
|
|||||||
desktop/views/components/game-window.vue:
|
desktop/views/components/game-window.vue:
|
||||||
game: "Reversi"
|
game: "Reversi"
|
||||||
desktop/views/components/home.vue:
|
desktop/views/components/home.vue:
|
||||||
done: "Wyślij"
|
done: "Zakończ"
|
||||||
add-widget: "Dodaj widżet:"
|
add-widget: "Dodaj widżet:"
|
||||||
add: "Dodaj"
|
add: "Dodaj"
|
||||||
desktop/views/input-dialog.vue:
|
desktop/views/input-dialog.vue:
|
||||||
@ -759,7 +774,6 @@ desktop/views/components/settings.vue:
|
|||||||
security: "Bezpieczeństwo"
|
security: "Bezpieczeństwo"
|
||||||
signin: "Historia logowań"
|
signin: "Historia logowań"
|
||||||
password: "Hasło"
|
password: "Hasło"
|
||||||
2fa: "Uwierzytelnianie dwuetapowe"
|
|
||||||
other: "Inne"
|
other: "Inne"
|
||||||
license: "Licencja"
|
license: "Licencja"
|
||||||
theme: "Motyw"
|
theme: "Motyw"
|
||||||
@ -773,9 +787,6 @@ desktop/views/components/settings.vue:
|
|||||||
web-search-engine-desc: "Np: https://www.google.com/?#q={{query}}"
|
web-search-engine-desc: "Np: https://www.google.com/?#q={{query}}"
|
||||||
auto-popout: "Automatycznie pojawiające się okna"
|
auto-popout: "Automatycznie pojawiające się okna"
|
||||||
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
advanced: "Ustawienia zaawansowane"
|
|
||||||
api-via-stream: "ストリームを経由したAPIリクエスト"
|
|
||||||
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
|
||||||
deck-nav: "デッキ内ナビゲーション"
|
deck-nav: "デッキ内ナビゲーション"
|
||||||
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
||||||
deck-default: "Użyj Talię jako domyślne UI"
|
deck-default: "Użyj Talię jako domyślne UI"
|
||||||
@ -865,7 +876,7 @@ desktop/views/components/settings.2fa.vue:
|
|||||||
info: "Od teraz, wprowadzaj token wyświetlany na urządzeniu przy każdym logowaniu do Misskey."
|
info: "Od teraz, wprowadzaj token wyświetlany na urządzeniu przy każdym logowaniu do Misskey."
|
||||||
common/views/components/api-settings.vue:
|
common/views/components/api-settings.vue:
|
||||||
intro: "Aby uzyskać dostęp do API, ustaw ten token jako klucz 'i' parametrów żądań."
|
intro: "Aby uzyskać dostęp do API, ustaw ten token jako klucz 'i' parametrów żądań."
|
||||||
caution: "アカウントを不正利用される可能性があるため、このトークンは第三者に教えないでください(アプリなどにも入力しないでください)。"
|
caution: "Nie pokazuj tego tokenu osobom trzecim (nie wprowadzaj go nigdzie indziej), aby konto nie trafiło w niepowołane ręce."
|
||||||
regeneration-of-token: "W przypadku wycieku tokenu, możesz wygenerować nowy."
|
regeneration-of-token: "W przypadku wycieku tokenu, możesz wygenerować nowy."
|
||||||
regenerate-token: "Wygeneruj nowy token"
|
regenerate-token: "Wygeneruj nowy token"
|
||||||
token: "Token:"
|
token: "Token:"
|
||||||
@ -896,9 +907,9 @@ common/views/components/mute-and-block.vue:
|
|||||||
save: "Zapisz"
|
save: "Zapisz"
|
||||||
common/views/components/password-settings.vue:
|
common/views/components/password-settings.vue:
|
||||||
reset: "Zmień hasło"
|
reset: "Zmień hasło"
|
||||||
enter-current-password: "現在のパスワードを入力してください"
|
enter-current-password: "Wprowadź obecne hasło"
|
||||||
enter-new-password: "新しいパスワードを入力してください"
|
enter-new-password: "Wprowadź nowe hasło"
|
||||||
enter-new-password-again: "もう一度新しいパスワードを入力してください"
|
enter-new-password-again: "Wprowadź ponownie nowe hasło"
|
||||||
not-match: "新しいパスワードが一致しません"
|
not-match: "新しいパスワードが一致しません"
|
||||||
changed: "パスワードを変更しました"
|
changed: "パスワードを変更しました"
|
||||||
failed: "パスワード変更に失敗しました"
|
failed: "パスワード変更に失敗しました"
|
||||||
@ -950,7 +961,7 @@ desktop/views/components/ui.header.post.vue:
|
|||||||
desktop/views/components/ui.header.search.vue:
|
desktop/views/components/ui.header.search.vue:
|
||||||
placeholder: "Szukaj"
|
placeholder: "Szukaj"
|
||||||
desktop/views/components/received-follow-requests-window.vue:
|
desktop/views/components/received-follow-requests-window.vue:
|
||||||
title: "Poproś o śledzenie"
|
title: "Prośby o śledzenie"
|
||||||
accept: "Zatwierdź"
|
accept: "Zatwierdź"
|
||||||
reject: "Odmów"
|
reject: "Odmów"
|
||||||
desktop/views/components/user-lists-window.vue:
|
desktop/views/components/user-lists-window.vue:
|
||||||
@ -979,6 +990,7 @@ admin/views/index.vue:
|
|||||||
federation: "連合"
|
federation: "連合"
|
||||||
announcements: "Ogłoszenia"
|
announcements: "Ogłoszenia"
|
||||||
hashtags: "Hashtagi"
|
hashtags: "Hashtagi"
|
||||||
|
abuse: "スパム報告"
|
||||||
back-to-misskey: "Misskeyに戻る"
|
back-to-misskey: "Misskeyに戻る"
|
||||||
admin/views/dashboard.vue:
|
admin/views/dashboard.vue:
|
||||||
dashboard: "ダッシュボード"
|
dashboard: "ダッシュボード"
|
||||||
@ -988,6 +1000,12 @@ admin/views/dashboard.vue:
|
|||||||
instances: "インスタンス"
|
instances: "インスタンス"
|
||||||
this-instance: "このインスタンス"
|
this-instance: "このインスタンス"
|
||||||
federated: "連合"
|
federated: "連合"
|
||||||
|
admin/views/abuse.vue:
|
||||||
|
title: "スパム報告"
|
||||||
|
target: "対象"
|
||||||
|
reporter: "報告者"
|
||||||
|
details: "詳細"
|
||||||
|
remove-report: "削除"
|
||||||
admin/views/instance.vue:
|
admin/views/instance.vue:
|
||||||
instance: "インスタンス"
|
instance: "インスタンス"
|
||||||
instance-name: "インスタンス名"
|
instance-name: "インスタンス名"
|
||||||
@ -1034,6 +1052,8 @@ admin/views/instance.vue:
|
|||||||
max-note-text-length: "投稿の最大文字数"
|
max-note-text-length: "投稿の最大文字数"
|
||||||
disable-registration: "ユーザー登録の受付を停止する"
|
disable-registration: "ユーザー登録の受付を停止する"
|
||||||
disable-local-timeline: "ローカルタイムラインを無効にする"
|
disable-local-timeline: "ローカルタイムラインを無効にする"
|
||||||
|
disable-global-timeline: "グローバルタイムラインを無効にする"
|
||||||
|
disabling-timelines-info: "これらのタイムラインを無効にしても、管理者およびモデレーターは引き続き利用できます。"
|
||||||
invite: "Zaproś"
|
invite: "Zaproś"
|
||||||
save: "Zapisz"
|
save: "Zapisz"
|
||||||
saved: "Zapisano"
|
saved: "Zapisano"
|
||||||
@ -1077,6 +1097,7 @@ admin/views/charts.vue:
|
|||||||
notes-total: "投稿の積算"
|
notes-total: "投稿の積算"
|
||||||
users: "ユーザーの増減"
|
users: "ユーザーの増減"
|
||||||
users-total: "ユーザーの積算"
|
users-total: "ユーザーの積算"
|
||||||
|
active-users: "アクティブユーザー数"
|
||||||
drive: "ドライブ使用量の増減"
|
drive: "ドライブ使用量の増減"
|
||||||
drive-total: "ドライブ使用量の積算"
|
drive-total: "ドライブ使用量の積算"
|
||||||
drive-files: "ドライブのファイル数の増減"
|
drive-files: "ドライブのファイル数の増減"
|
||||||
@ -1085,6 +1106,10 @@ admin/views/charts.vue:
|
|||||||
network-time: "Czas reakcji"
|
network-time: "Czas reakcji"
|
||||||
network-usage: "通信量"
|
network-usage: "通信量"
|
||||||
admin/views/drive.vue:
|
admin/views/drive.vue:
|
||||||
|
operation: "操作"
|
||||||
|
fileid-or-url: "ファイルIDまたはファイルURL"
|
||||||
|
file-not-found: "ファイルが見つかりません"
|
||||||
|
lookup: "照会"
|
||||||
sort:
|
sort:
|
||||||
title: "ソート"
|
title: "ソート"
|
||||||
createdAtAsc: "アップロード日時が古い順"
|
createdAtAsc: "アップロード日時が古い順"
|
||||||
@ -1100,10 +1125,12 @@ admin/views/drive.vue:
|
|||||||
deleted: "削除しました"
|
deleted: "削除しました"
|
||||||
mark-as-sensitive: "閲覧注意に設定"
|
mark-as-sensitive: "閲覧注意に設定"
|
||||||
unmark-as-sensitive: "閲覧注意を解除"
|
unmark-as-sensitive: "閲覧注意を解除"
|
||||||
|
marked-as-sensitive: "閲覧注意に設定しました"
|
||||||
|
unmarked-as-sensitive: "閲覧注意を解除しました"
|
||||||
admin/views/users.vue:
|
admin/views/users.vue:
|
||||||
operation: "操作"
|
operation: "操作"
|
||||||
username-or-userid: "ユーザー名またはユーザーID"
|
username-or-userid: "ユーザー名またはユーザーID"
|
||||||
user-not-found: "ユーザーが見つかりません"
|
user-not-found: "Nie znaleziono użytkownika"
|
||||||
lookup: "照会"
|
lookup: "照会"
|
||||||
reset-password: "パスワードをリセット"
|
reset-password: "パスワードをリセット"
|
||||||
password-updated: "パスワードは現在「{password}」です"
|
password-updated: "パスワードは現在「{password}」です"
|
||||||
@ -1123,6 +1150,14 @@ admin/views/users.vue:
|
|||||||
createdAtDesc: "登録日時が新しい順"
|
createdAtDesc: "登録日時が新しい順"
|
||||||
updatedAtAsc: "更新日時が古い順"
|
updatedAtAsc: "更新日時が古い順"
|
||||||
updatedAtDesc: "更新日時が新しい順"
|
updatedAtDesc: "更新日時が新しい順"
|
||||||
|
state:
|
||||||
|
title: "状態"
|
||||||
|
all: "すべて"
|
||||||
|
admin: "管理者"
|
||||||
|
moderator: "モデレーター"
|
||||||
|
adminOrModerator: "管理者+モデレーター"
|
||||||
|
verified: "公式アカウント"
|
||||||
|
suspended: "凍結済み"
|
||||||
origin:
|
origin:
|
||||||
title: "Źródło"
|
title: "Źródło"
|
||||||
combined: "ローカル+リモート"
|
combined: "ローカル+リモート"
|
||||||
@ -1135,6 +1170,8 @@ admin/views/moderators.vue:
|
|||||||
title: "モデレーターの登録"
|
title: "モデレーターの登録"
|
||||||
add: "Zarejestruj się"
|
add: "Zarejestruj się"
|
||||||
added: "モデレーターを登録しました"
|
added: "モデレーターを登録しました"
|
||||||
|
remove: "解除"
|
||||||
|
removed: "モデレーター登録を解除しました"
|
||||||
admin/views/emoji.vue:
|
admin/views/emoji.vue:
|
||||||
add-emoji:
|
add-emoji:
|
||||||
title: "絵文字の登録"
|
title: "絵文字の登録"
|
||||||
@ -1216,22 +1253,11 @@ desktop/views/pages/user/user.photos.vue:
|
|||||||
no-photos: "Brak zdjęć"
|
no-photos: "Brak zdjęć"
|
||||||
desktop/views/pages/user/user.profile.vue:
|
desktop/views/pages/user/user.profile.vue:
|
||||||
follows-you: "Śledzi Cię"
|
follows-you: "Śledzi Cię"
|
||||||
stalk: "Stalkuj"
|
menu: "メニュー"
|
||||||
stalking: "Stalkujesz"
|
|
||||||
unstalk: "Przestań stalkować"
|
|
||||||
mute: "Wycisz"
|
|
||||||
muted: "Wyciszyłeś"
|
|
||||||
unmute: "Cofnij wyciszenie"
|
|
||||||
block: "Zablokuj"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
block-confirm: "このユーザーをブロックしますか?"
|
|
||||||
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"
|
||||||
followers: "Śledzący"
|
followers: "Śledzący"
|
||||||
mention: "Wspomnij"
|
|
||||||
is-bot: "To konto jest botem"
|
is-bot: "To konto jest botem"
|
||||||
years-old: "{age} lat"
|
years-old: "{age} lat"
|
||||||
year: "/"
|
year: "/"
|
||||||
@ -1472,14 +1498,7 @@ mobile/views/pages/user.vue:
|
|||||||
overview: "Przegląd"
|
overview: "Przegląd"
|
||||||
timeline: "Oś czasu"
|
timeline: "Oś czasu"
|
||||||
media: "Multimedia"
|
media: "Multimedia"
|
||||||
mute: "Wycisz"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "Zablokuj"
|
|
||||||
unblock: "Odblokuj"
|
|
||||||
years-old: "{age} lat"
|
years-old: "{age} lat"
|
||||||
push-to-list: "Dodaj do listy"
|
|
||||||
select-list: "Wybierz listę"
|
|
||||||
list-pushed: "{user}を{list}に追加しました"
|
|
||||||
mobile/views/pages/user/home.vue:
|
mobile/views/pages/user/home.vue:
|
||||||
recent-notes: "Ostatnie wpisy"
|
recent-notes: "Ostatnie wpisy"
|
||||||
images: "Zdjęcia"
|
images: "Zdjęcia"
|
||||||
@ -1525,12 +1544,10 @@ deck/deck.user-column.vue:
|
|||||||
posts: "Wpisy"
|
posts: "Wpisy"
|
||||||
following: "Śledzeni"
|
following: "Śledzeni"
|
||||||
followers: "Śledzący"
|
followers: "Śledzący"
|
||||||
mention: "Wspomnij"
|
|
||||||
images: "Zdjęcia"
|
images: "Zdjęcia"
|
||||||
activity: "Aktywność"
|
activity: "Aktywność"
|
||||||
timeline: "Oś czasu"
|
timeline: "Oś czasu"
|
||||||
pinned-notes: "Przypięte posty"
|
pinned-notes: "Przypięte posty"
|
||||||
push-to-a-list: "Dodaj do listy"
|
|
||||||
docs:
|
docs:
|
||||||
edit-this-page-on-github: "Znalazłeś błąd lub chcesz pomóc w tworzeniu dokumentacji?"
|
edit-this-page-on-github: "Znalazłeś błąd lub chcesz pomóc w tworzeniu dokumentacji?"
|
||||||
edit-this-page-on-github-link: "Edytuj stronę na GitHubie!"
|
edit-this-page-on-github-link: "Edytuj stronę na GitHubie!"
|
||||||
|
@ -27,6 +27,7 @@ common:
|
|||||||
do-not-copy-paste: "Por favor, não digite ou copie o código aqui. A conta pode ser comprometida."
|
do-not-copy-paste: "Por favor, não digite ou copie o código aqui. A conta pode ser comprometida."
|
||||||
load-more: "もっと読み込む"
|
load-more: "もっと読み込む"
|
||||||
enter-password: "パスワードを入力してください"
|
enter-password: "パスワードを入力してください"
|
||||||
|
2fa: "二段階認証"
|
||||||
got-it: "Entendi!"
|
got-it: "Entendi!"
|
||||||
customization-tips:
|
customization-tips:
|
||||||
title: "Dicas de personalização"
|
title: "Dicas de personalização"
|
||||||
@ -124,6 +125,8 @@ common:
|
|||||||
line-width-thin: "細い"
|
line-width-thin: "細い"
|
||||||
line-width-normal: "普通"
|
line-width-normal: "普通"
|
||||||
line-width-thick: "太い"
|
line-width-thick: "太い"
|
||||||
|
hide-password: "パスワードを隠す"
|
||||||
|
show-password: "パスワードを表示する"
|
||||||
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
|
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
|
||||||
user-suspended: "このユーザーは凍結されています。"
|
user-suspended: "このユーザーは凍結されています。"
|
||||||
is-remote-user: "このユーザー情報はコピーです。"
|
is-remote-user: "このユーザー情報はコピーです。"
|
||||||
@ -346,6 +349,18 @@ common/views/components/note-menu.vue:
|
|||||||
delete: "削除"
|
delete: "削除"
|
||||||
delete-confirm: "この投稿を削除しますか?"
|
delete-confirm: "この投稿を削除しますか?"
|
||||||
remote: "投稿元で見る"
|
remote: "投稿元で見る"
|
||||||
|
common/views/components/user-menu.vue:
|
||||||
|
mention: "メンション"
|
||||||
|
mute: "ミュート"
|
||||||
|
unmute: "ミュート解除"
|
||||||
|
block: "ブロック"
|
||||||
|
unblock: "ブロック解除"
|
||||||
|
push-to-list: "リストに追加"
|
||||||
|
select-list: "リストを選択してください"
|
||||||
|
list-pushed: "{user}を{list}に追加しました"
|
||||||
|
report-abuse: "スパムを報告"
|
||||||
|
report-abuse-detail: "どのような迷惑行為を行っていますか?"
|
||||||
|
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
|
||||||
common/views/components/poll.vue:
|
common/views/components/poll.vue:
|
||||||
vote-to: "「{}」に投票する"
|
vote-to: "「{}」に投票する"
|
||||||
vote-count: "{}票"
|
vote-count: "{}票"
|
||||||
@ -759,7 +774,6 @@ desktop/views/components/settings.vue:
|
|||||||
security: "セキュリティ"
|
security: "セキュリティ"
|
||||||
signin: "サインイン履歴"
|
signin: "サインイン履歴"
|
||||||
password: "パスワード"
|
password: "パスワード"
|
||||||
2fa: "二段階認証"
|
|
||||||
other: "その他"
|
other: "その他"
|
||||||
license: "ライセンス"
|
license: "ライセンス"
|
||||||
theme: "テーマ"
|
theme: "テーマ"
|
||||||
@ -773,9 +787,6 @@ desktop/views/components/settings.vue:
|
|||||||
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
||||||
auto-popout: "ウィンドウの自動ポップアウト"
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
advanced: "詳細設定"
|
|
||||||
api-via-stream: "ストリームを経由したAPIリクエスト"
|
|
||||||
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
|
||||||
deck-nav: "デッキ内ナビゲーション"
|
deck-nav: "デッキ内ナビゲーション"
|
||||||
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
||||||
deck-default: "デッキをデフォルトのUIにする"
|
deck-default: "デッキをデフォルトのUIにする"
|
||||||
@ -979,6 +990,7 @@ admin/views/index.vue:
|
|||||||
federation: "連合"
|
federation: "連合"
|
||||||
announcements: "お知らせ"
|
announcements: "お知らせ"
|
||||||
hashtags: "ハッシュタグ"
|
hashtags: "ハッシュタグ"
|
||||||
|
abuse: "スパム報告"
|
||||||
back-to-misskey: "Misskeyに戻る"
|
back-to-misskey: "Misskeyに戻る"
|
||||||
admin/views/dashboard.vue:
|
admin/views/dashboard.vue:
|
||||||
dashboard: "ダッシュボード"
|
dashboard: "ダッシュボード"
|
||||||
@ -988,6 +1000,12 @@ admin/views/dashboard.vue:
|
|||||||
instances: "インスタンス"
|
instances: "インスタンス"
|
||||||
this-instance: "このインスタンス"
|
this-instance: "このインスタンス"
|
||||||
federated: "連合"
|
federated: "連合"
|
||||||
|
admin/views/abuse.vue:
|
||||||
|
title: "スパム報告"
|
||||||
|
target: "対象"
|
||||||
|
reporter: "報告者"
|
||||||
|
details: "詳細"
|
||||||
|
remove-report: "削除"
|
||||||
admin/views/instance.vue:
|
admin/views/instance.vue:
|
||||||
instance: "インスタンス"
|
instance: "インスタンス"
|
||||||
instance-name: "インスタンス名"
|
instance-name: "インスタンス名"
|
||||||
@ -1034,6 +1052,8 @@ admin/views/instance.vue:
|
|||||||
max-note-text-length: "投稿の最大文字数"
|
max-note-text-length: "投稿の最大文字数"
|
||||||
disable-registration: "ユーザー登録の受付を停止する"
|
disable-registration: "ユーザー登録の受付を停止する"
|
||||||
disable-local-timeline: "ローカルタイムラインを無効にする"
|
disable-local-timeline: "ローカルタイムラインを無効にする"
|
||||||
|
disable-global-timeline: "グローバルタイムラインを無効にする"
|
||||||
|
disabling-timelines-info: "これらのタイムラインを無効にしても、管理者およびモデレーターは引き続き利用できます。"
|
||||||
invite: "招待"
|
invite: "招待"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "保存しました"
|
saved: "保存しました"
|
||||||
@ -1077,6 +1097,7 @@ admin/views/charts.vue:
|
|||||||
notes-total: "投稿の積算"
|
notes-total: "投稿の積算"
|
||||||
users: "ユーザーの増減"
|
users: "ユーザーの増減"
|
||||||
users-total: "ユーザーの積算"
|
users-total: "ユーザーの積算"
|
||||||
|
active-users: "アクティブユーザー数"
|
||||||
drive: "ドライブ使用量の増減"
|
drive: "ドライブ使用量の増減"
|
||||||
drive-total: "ドライブ使用量の積算"
|
drive-total: "ドライブ使用量の積算"
|
||||||
drive-files: "ドライブのファイル数の増減"
|
drive-files: "ドライブのファイル数の増減"
|
||||||
@ -1085,6 +1106,10 @@ admin/views/charts.vue:
|
|||||||
network-time: "応答時間"
|
network-time: "応答時間"
|
||||||
network-usage: "通信量"
|
network-usage: "通信量"
|
||||||
admin/views/drive.vue:
|
admin/views/drive.vue:
|
||||||
|
operation: "操作"
|
||||||
|
fileid-or-url: "ファイルIDまたはファイルURL"
|
||||||
|
file-not-found: "ファイルが見つかりません"
|
||||||
|
lookup: "照会"
|
||||||
sort:
|
sort:
|
||||||
title: "ソート"
|
title: "ソート"
|
||||||
createdAtAsc: "アップロード日時が古い順"
|
createdAtAsc: "アップロード日時が古い順"
|
||||||
@ -1100,6 +1125,8 @@ admin/views/drive.vue:
|
|||||||
deleted: "削除しました"
|
deleted: "削除しました"
|
||||||
mark-as-sensitive: "閲覧注意に設定"
|
mark-as-sensitive: "閲覧注意に設定"
|
||||||
unmark-as-sensitive: "閲覧注意を解除"
|
unmark-as-sensitive: "閲覧注意を解除"
|
||||||
|
marked-as-sensitive: "閲覧注意に設定しました"
|
||||||
|
unmarked-as-sensitive: "閲覧注意を解除しました"
|
||||||
admin/views/users.vue:
|
admin/views/users.vue:
|
||||||
operation: "操作"
|
operation: "操作"
|
||||||
username-or-userid: "ユーザー名またはユーザーID"
|
username-or-userid: "ユーザー名またはユーザーID"
|
||||||
@ -1123,6 +1150,14 @@ admin/views/users.vue:
|
|||||||
createdAtDesc: "登録日時が新しい順"
|
createdAtDesc: "登録日時が新しい順"
|
||||||
updatedAtAsc: "更新日時が古い順"
|
updatedAtAsc: "更新日時が古い順"
|
||||||
updatedAtDesc: "更新日時が新しい順"
|
updatedAtDesc: "更新日時が新しい順"
|
||||||
|
state:
|
||||||
|
title: "状態"
|
||||||
|
all: "すべて"
|
||||||
|
admin: "管理者"
|
||||||
|
moderator: "モデレーター"
|
||||||
|
adminOrModerator: "管理者+モデレーター"
|
||||||
|
verified: "公式アカウント"
|
||||||
|
suspended: "凍結済み"
|
||||||
origin:
|
origin:
|
||||||
title: "オリジン"
|
title: "オリジン"
|
||||||
combined: "ローカル+リモート"
|
combined: "ローカル+リモート"
|
||||||
@ -1135,6 +1170,8 @@ admin/views/moderators.vue:
|
|||||||
title: "モデレーターの登録"
|
title: "モデレーターの登録"
|
||||||
add: "登録"
|
add: "登録"
|
||||||
added: "モデレーターを登録しました"
|
added: "モデレーターを登録しました"
|
||||||
|
remove: "解除"
|
||||||
|
removed: "モデレーター登録を解除しました"
|
||||||
admin/views/emoji.vue:
|
admin/views/emoji.vue:
|
||||||
add-emoji:
|
add-emoji:
|
||||||
title: "絵文字の登録"
|
title: "絵文字の登録"
|
||||||
@ -1216,22 +1253,11 @@ desktop/views/pages/user/user.photos.vue:
|
|||||||
no-photos: "写真はありません"
|
no-photos: "写真はありません"
|
||||||
desktop/views/pages/user/user.profile.vue:
|
desktop/views/pages/user/user.profile.vue:
|
||||||
follows-you: "フォローされています"
|
follows-you: "フォローされています"
|
||||||
stalk: "ストークする"
|
menu: "メニュー"
|
||||||
stalking: "ストーキングしています"
|
|
||||||
unstalk: "ストーク解除"
|
|
||||||
mute: "ミュートする"
|
|
||||||
muted: "ミュートしています"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロックする"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
block-confirm: "このユーザーをブロックしますか?"
|
|
||||||
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: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
is-bot: "このアカウントはBotです"
|
is-bot: "このアカウントはBotです"
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
year: "年"
|
year: "年"
|
||||||
@ -1472,14 +1498,7 @@ mobile/views/pages/user.vue:
|
|||||||
overview: "概要"
|
overview: "概要"
|
||||||
timeline: "Linha do tempo"
|
timeline: "Linha do tempo"
|
||||||
media: "Mídia"
|
media: "Mídia"
|
||||||
mute: "ミュート"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロック"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
push-to-list: "リストに追加"
|
|
||||||
select-list: "リストを選択してください"
|
|
||||||
list-pushed: "{user}を{list}に追加しました"
|
|
||||||
mobile/views/pages/user/home.vue:
|
mobile/views/pages/user/home.vue:
|
||||||
recent-notes: "Notas recentes"
|
recent-notes: "Notas recentes"
|
||||||
images: "Imagens"
|
images: "Imagens"
|
||||||
@ -1525,12 +1544,10 @@ deck/deck.user-column.vue:
|
|||||||
posts: "投稿"
|
posts: "投稿"
|
||||||
following: "フォロー"
|
following: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
images: "画像"
|
images: "画像"
|
||||||
activity: "アクティビティ"
|
activity: "アクティビティ"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
pinned-notes: "ピン留めされた投稿"
|
pinned-notes: "ピン留めされた投稿"
|
||||||
push-to-a-list: "リストに追加"
|
|
||||||
docs:
|
docs:
|
||||||
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
||||||
edit-this-page-on-github-link: "Edite esta página no GitHub!"
|
edit-this-page-on-github-link: "Edite esta página no GitHub!"
|
||||||
|
@ -27,6 +27,7 @@ common:
|
|||||||
do-not-copy-paste: "Пожалуйста, не вводите и не вставляйте сюда код. Аккаунту может угрожать опасность."
|
do-not-copy-paste: "Пожалуйста, не вводите и не вставляйте сюда код. Аккаунту может угрожать опасность."
|
||||||
load-more: "Загрузить больше"
|
load-more: "Загрузить больше"
|
||||||
enter-password: "Пожалуйста, введите ваш пароль"
|
enter-password: "Пожалуйста, введите ваш пароль"
|
||||||
|
2fa: "二段階認証"
|
||||||
got-it: "わかった"
|
got-it: "わかった"
|
||||||
customization-tips:
|
customization-tips:
|
||||||
title: "Советы по настройке"
|
title: "Советы по настройке"
|
||||||
@ -124,6 +125,8 @@ common:
|
|||||||
line-width-thin: "細い"
|
line-width-thin: "細い"
|
||||||
line-width-normal: "普通"
|
line-width-normal: "普通"
|
||||||
line-width-thick: "太い"
|
line-width-thick: "太い"
|
||||||
|
hide-password: "パスワードを隠す"
|
||||||
|
show-password: "パスワードを表示する"
|
||||||
do-not-use-in-production: "Эта сборка для разработчиков. Не используйте в продакшне."
|
do-not-use-in-production: "Эта сборка для разработчиков. Не используйте в продакшне."
|
||||||
user-suspended: "このユーザーは凍結されています。"
|
user-suspended: "このユーザーは凍結されています。"
|
||||||
is-remote-user: "このユーザー情報はコピーです。"
|
is-remote-user: "このユーザー情報はコピーです。"
|
||||||
@ -346,6 +349,18 @@ common/views/components/note-menu.vue:
|
|||||||
delete: "削除"
|
delete: "削除"
|
||||||
delete-confirm: "この投稿を削除しますか?"
|
delete-confirm: "この投稿を削除しますか?"
|
||||||
remote: "投稿元で見る"
|
remote: "投稿元で見る"
|
||||||
|
common/views/components/user-menu.vue:
|
||||||
|
mention: "メンション"
|
||||||
|
mute: "ミュート"
|
||||||
|
unmute: "ミュート解除"
|
||||||
|
block: "ブロック"
|
||||||
|
unblock: "ブロック解除"
|
||||||
|
push-to-list: "リストに追加"
|
||||||
|
select-list: "リストを選択してください"
|
||||||
|
list-pushed: "{user}を{list}に追加しました"
|
||||||
|
report-abuse: "スパムを報告"
|
||||||
|
report-abuse-detail: "どのような迷惑行為を行っていますか?"
|
||||||
|
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
|
||||||
common/views/components/poll.vue:
|
common/views/components/poll.vue:
|
||||||
vote-to: "「{}」に投票する"
|
vote-to: "「{}」に投票する"
|
||||||
vote-count: "{}票"
|
vote-count: "{}票"
|
||||||
@ -759,7 +774,6 @@ desktop/views/components/settings.vue:
|
|||||||
security: "セキュリティ"
|
security: "セキュリティ"
|
||||||
signin: "サインイン履歴"
|
signin: "サインイン履歴"
|
||||||
password: "パスワード"
|
password: "パスワード"
|
||||||
2fa: "二段階認証"
|
|
||||||
other: "その他"
|
other: "その他"
|
||||||
license: "ライセンス"
|
license: "ライセンス"
|
||||||
theme: "テーマ"
|
theme: "テーマ"
|
||||||
@ -773,9 +787,6 @@ desktop/views/components/settings.vue:
|
|||||||
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
|
||||||
auto-popout: "ウィンドウの自動ポップアウト"
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
advanced: "詳細設定"
|
|
||||||
api-via-stream: "ストリームを経由したAPIリクエスト"
|
|
||||||
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
|
||||||
deck-nav: "デッキ内ナビゲーション"
|
deck-nav: "デッキ内ナビゲーション"
|
||||||
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
|
||||||
deck-default: "デッキをデフォルトのUIにする"
|
deck-default: "デッキをデフォルトのUIにする"
|
||||||
@ -979,6 +990,7 @@ admin/views/index.vue:
|
|||||||
federation: "連合"
|
federation: "連合"
|
||||||
announcements: "お知らせ"
|
announcements: "お知らせ"
|
||||||
hashtags: "ハッシュタグ"
|
hashtags: "ハッシュタグ"
|
||||||
|
abuse: "スパム報告"
|
||||||
back-to-misskey: "Misskeyに戻る"
|
back-to-misskey: "Misskeyに戻る"
|
||||||
admin/views/dashboard.vue:
|
admin/views/dashboard.vue:
|
||||||
dashboard: "ダッシュボード"
|
dashboard: "ダッシュボード"
|
||||||
@ -988,6 +1000,12 @@ admin/views/dashboard.vue:
|
|||||||
instances: "インスタンス"
|
instances: "インスタンス"
|
||||||
this-instance: "このインスタンス"
|
this-instance: "このインスタンス"
|
||||||
federated: "連合"
|
federated: "連合"
|
||||||
|
admin/views/abuse.vue:
|
||||||
|
title: "スパム報告"
|
||||||
|
target: "対象"
|
||||||
|
reporter: "報告者"
|
||||||
|
details: "詳細"
|
||||||
|
remove-report: "削除"
|
||||||
admin/views/instance.vue:
|
admin/views/instance.vue:
|
||||||
instance: "インスタンス"
|
instance: "インスタンス"
|
||||||
instance-name: "インスタンス名"
|
instance-name: "インスタンス名"
|
||||||
@ -1034,6 +1052,8 @@ admin/views/instance.vue:
|
|||||||
max-note-text-length: "投稿の最大文字数"
|
max-note-text-length: "投稿の最大文字数"
|
||||||
disable-registration: "ユーザー登録の受付を停止する"
|
disable-registration: "ユーザー登録の受付を停止する"
|
||||||
disable-local-timeline: "ローカルタイムラインを無効にする"
|
disable-local-timeline: "ローカルタイムラインを無効にする"
|
||||||
|
disable-global-timeline: "グローバルタイムラインを無効にする"
|
||||||
|
disabling-timelines-info: "これらのタイムラインを無効にしても、管理者およびモデレーターは引き続き利用できます。"
|
||||||
invite: "招待"
|
invite: "招待"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "保存しました"
|
saved: "保存しました"
|
||||||
@ -1077,6 +1097,7 @@ admin/views/charts.vue:
|
|||||||
notes-total: "投稿の積算"
|
notes-total: "投稿の積算"
|
||||||
users: "ユーザーの増減"
|
users: "ユーザーの増減"
|
||||||
users-total: "ユーザーの積算"
|
users-total: "ユーザーの積算"
|
||||||
|
active-users: "アクティブユーザー数"
|
||||||
drive: "ドライブ使用量の増減"
|
drive: "ドライブ使用量の増減"
|
||||||
drive-total: "ドライブ使用量の積算"
|
drive-total: "ドライブ使用量の積算"
|
||||||
drive-files: "ドライブのファイル数の増減"
|
drive-files: "ドライブのファイル数の増減"
|
||||||
@ -1085,6 +1106,10 @@ admin/views/charts.vue:
|
|||||||
network-time: "応答時間"
|
network-time: "応答時間"
|
||||||
network-usage: "通信量"
|
network-usage: "通信量"
|
||||||
admin/views/drive.vue:
|
admin/views/drive.vue:
|
||||||
|
operation: "操作"
|
||||||
|
fileid-or-url: "ファイルIDまたはファイルURL"
|
||||||
|
file-not-found: "ファイルが見つかりません"
|
||||||
|
lookup: "照会"
|
||||||
sort:
|
sort:
|
||||||
title: "ソート"
|
title: "ソート"
|
||||||
createdAtAsc: "アップロード日時が古い順"
|
createdAtAsc: "アップロード日時が古い順"
|
||||||
@ -1100,6 +1125,8 @@ admin/views/drive.vue:
|
|||||||
deleted: "削除しました"
|
deleted: "削除しました"
|
||||||
mark-as-sensitive: "閲覧注意に設定"
|
mark-as-sensitive: "閲覧注意に設定"
|
||||||
unmark-as-sensitive: "閲覧注意を解除"
|
unmark-as-sensitive: "閲覧注意を解除"
|
||||||
|
marked-as-sensitive: "閲覧注意に設定しました"
|
||||||
|
unmarked-as-sensitive: "閲覧注意を解除しました"
|
||||||
admin/views/users.vue:
|
admin/views/users.vue:
|
||||||
operation: "操作"
|
operation: "操作"
|
||||||
username-or-userid: "ユーザー名またはユーザーID"
|
username-or-userid: "ユーザー名またはユーザーID"
|
||||||
@ -1123,6 +1150,14 @@ admin/views/users.vue:
|
|||||||
createdAtDesc: "登録日時が新しい順"
|
createdAtDesc: "登録日時が新しい順"
|
||||||
updatedAtAsc: "更新日時が古い順"
|
updatedAtAsc: "更新日時が古い順"
|
||||||
updatedAtDesc: "更新日時が新しい順"
|
updatedAtDesc: "更新日時が新しい順"
|
||||||
|
state:
|
||||||
|
title: "状態"
|
||||||
|
all: "すべて"
|
||||||
|
admin: "管理者"
|
||||||
|
moderator: "モデレーター"
|
||||||
|
adminOrModerator: "管理者+モデレーター"
|
||||||
|
verified: "公式アカウント"
|
||||||
|
suspended: "凍結済み"
|
||||||
origin:
|
origin:
|
||||||
title: "オリジン"
|
title: "オリジン"
|
||||||
combined: "ローカル+リモート"
|
combined: "ローカル+リモート"
|
||||||
@ -1135,6 +1170,8 @@ admin/views/moderators.vue:
|
|||||||
title: "モデレーターの登録"
|
title: "モデレーターの登録"
|
||||||
add: "登録"
|
add: "登録"
|
||||||
added: "モデレーターを登録しました"
|
added: "モデレーターを登録しました"
|
||||||
|
remove: "解除"
|
||||||
|
removed: "モデレーター登録を解除しました"
|
||||||
admin/views/emoji.vue:
|
admin/views/emoji.vue:
|
||||||
add-emoji:
|
add-emoji:
|
||||||
title: "絵文字の登録"
|
title: "絵文字の登録"
|
||||||
@ -1216,22 +1253,11 @@ desktop/views/pages/user/user.photos.vue:
|
|||||||
no-photos: "写真はありません"
|
no-photos: "写真はありません"
|
||||||
desktop/views/pages/user/user.profile.vue:
|
desktop/views/pages/user/user.profile.vue:
|
||||||
follows-you: "フォローされています"
|
follows-you: "フォローされています"
|
||||||
stalk: "ストークする"
|
menu: "メニュー"
|
||||||
stalking: "ストーキングしています"
|
|
||||||
unstalk: "ストーク解除"
|
|
||||||
mute: "ミュートする"
|
|
||||||
muted: "ミュートしています"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロックする"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
block-confirm: "このユーザーをブロックしますか?"
|
|
||||||
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: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
is-bot: "このアカウントはBotです"
|
is-bot: "このアカウントはBotです"
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
year: "年"
|
year: "年"
|
||||||
@ -1472,14 +1498,7 @@ mobile/views/pages/user.vue:
|
|||||||
overview: "概要"
|
overview: "概要"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
media: "メディア"
|
media: "メディア"
|
||||||
mute: "ミュート"
|
|
||||||
unmute: "ミュート解除"
|
|
||||||
block: "ブロック"
|
|
||||||
unblock: "ブロック解除"
|
|
||||||
years-old: "{age}歳"
|
years-old: "{age}歳"
|
||||||
push-to-list: "リストに追加"
|
|
||||||
select-list: "リストを選択してください"
|
|
||||||
list-pushed: "{user}を{list}に追加しました"
|
|
||||||
mobile/views/pages/user/home.vue:
|
mobile/views/pages/user/home.vue:
|
||||||
recent-notes: "最近の投稿"
|
recent-notes: "最近の投稿"
|
||||||
images: "画像"
|
images: "画像"
|
||||||
@ -1525,12 +1544,10 @@ deck/deck.user-column.vue:
|
|||||||
posts: "投稿"
|
posts: "投稿"
|
||||||
following: "フォロー"
|
following: "フォロー"
|
||||||
followers: "フォロワー"
|
followers: "フォロワー"
|
||||||
mention: "メンション"
|
|
||||||
images: "画像"
|
images: "画像"
|
||||||
activity: "アクティビティ"
|
activity: "アクティビティ"
|
||||||
timeline: "タイムライン"
|
timeline: "タイムライン"
|
||||||
pinned-notes: "ピン留めされた投稿"
|
pinned-notes: "ピン留めされた投稿"
|
||||||
push-to-a-list: "リストに追加"
|
|
||||||
docs:
|
docs:
|
||||||
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
||||||
edit-this-page-on-github-link: "このページをGitHubで編集"
|
edit-this-page-on-github-link: "このページをGitHubで編集"
|
||||||
|
@ -27,6 +27,7 @@ common:
|
|||||||
do-not-copy-paste: "请不要在这里输入或粘贴代码。您帐户可能会受到损害。"
|
do-not-copy-paste: "请不要在这里输入或粘贴代码。您帐户可能会受到损害。"
|
||||||
load-more: "加载更多"
|
load-more: "加载更多"
|
||||||
enter-password: "请输入您的密码"
|
enter-password: "请输入您的密码"
|
||||||
|
2fa: "二段階認証"
|
||||||
got-it: "没问题"
|
got-it: "没问题"
|
||||||
customization-tips:
|
customization-tips:
|
||||||
title: "客制化提示"
|
title: "客制化提示"
|
||||||
@ -109,7 +110,7 @@ common:
|
|||||||
my-token-regenerated: "您的 Token 已被重置, 您将自动登出。"
|
my-token-regenerated: "您的 Token 已被重置, 您将自动登出。"
|
||||||
i-like-sushi: "相比于布丁来说, 我更喜欢寿司。"
|
i-like-sushi: "相比于布丁来说, 我更喜欢寿司。"
|
||||||
show-reversi-board-labels: "在 Reversi 中显示行和列表签"
|
show-reversi-board-labels: "在 Reversi 中显示行和列表签"
|
||||||
use-avatar-reversi-stones: "リバーシの石にアバターを使う"
|
use-avatar-reversi-stones: "用头像作为 Reversi 中的 “石头”"
|
||||||
verified-user: "认证用户"
|
verified-user: "认证用户"
|
||||||
disable-animated-mfm: "在帖子中禁用动画文本"
|
disable-animated-mfm: "在帖子中禁用动画文本"
|
||||||
suggest-recent-hashtags: "在帖子表单上显示最近流行的主题标签"
|
suggest-recent-hashtags: "在帖子表单上显示最近流行的主题标签"
|
||||||
@ -120,12 +121,14 @@ common:
|
|||||||
reduce-motion: "减弱UI中的动画效果"
|
reduce-motion: "减弱UI中的动画效果"
|
||||||
this-setting-is-this-device-only: "设置仅在本设备中生效"
|
this-setting-is-this-device-only: "设置仅在本设备中生效"
|
||||||
use-os-default-emojis: "使用设备系统默认的 emojis"
|
use-os-default-emojis: "使用设备系统默认的 emojis"
|
||||||
line-width: "線の太さ"
|
line-width: "线条宽度"
|
||||||
line-width-thin: "細い"
|
line-width-thin: "细"
|
||||||
line-width-normal: "普通"
|
line-width-normal: "正常"
|
||||||
line-width-thick: "太い"
|
line-width-thick: "粗"
|
||||||
|
hide-password: "隐藏密码"
|
||||||
|
show-password: "显示密码"
|
||||||
do-not-use-in-production: "这是一个开发者测试版. 请勿在生产环境中使用."
|
do-not-use-in-production: "这是一个开发者测试版. 请勿在生产环境中使用."
|
||||||
user-suspended: "このユーザーは凍結されています。"
|
user-suspended: "该用户已被冻结。"
|
||||||
is-remote-user: "该用户的信息已被复制."
|
is-remote-user: "该用户的信息已被复制."
|
||||||
is-remote-post: "该投稿已被复制."
|
is-remote-post: "该投稿已被复制."
|
||||||
view-on-remote: "查看准确的信息"
|
view-on-remote: "查看准确的信息"
|
||||||
@ -264,7 +267,7 @@ common/views/components/media-banner.vue:
|
|||||||
sensitive: "阅读注意"
|
sensitive: "阅读注意"
|
||||||
click-to-show: "点击以显示"
|
click-to-show: "点击以显示"
|
||||||
common/views/components/theme.vue:
|
common/views/components/theme.vue:
|
||||||
theme: "テーマ"
|
theme: "主题"
|
||||||
light-theme: "主题"
|
light-theme: "主题"
|
||||||
dark-theme: "黑暗模式主题"
|
dark-theme: "黑暗模式主题"
|
||||||
light-themes: "明亮主题"
|
light-themes: "明亮主题"
|
||||||
@ -281,7 +284,7 @@ common/views/components/theme.vue:
|
|||||||
base-theme: "基础主题"
|
base-theme: "基础主题"
|
||||||
base-theme-light: "亮"
|
base-theme-light: "亮"
|
||||||
base-theme-dark: "暗"
|
base-theme-dark: "暗"
|
||||||
find-more-theme: "その他のテーマを入手"
|
find-more-theme: "获取更多主题"
|
||||||
theme-name: "主题名称"
|
theme-name: "主题名称"
|
||||||
preview-created-theme: "预览"
|
preview-created-theme: "预览"
|
||||||
invalid-theme: "无效主题"
|
invalid-theme: "无效主题"
|
||||||
@ -303,9 +306,9 @@ common/views/components/theme.vue:
|
|||||||
common/views/components/cw-button.vue:
|
common/views/components/cw-button.vue:
|
||||||
hide: "隐藏"
|
hide: "隐藏"
|
||||||
show: "查看更多"
|
show: "查看更多"
|
||||||
chars: "{count}文字"
|
chars: "{count} 字"
|
||||||
files: "{count} 个文件"
|
files: "{count} 个文件"
|
||||||
poll: "アンケート"
|
poll: "调查问卷"
|
||||||
common/views/components/messaging.vue:
|
common/views/components/messaging.vue:
|
||||||
search-user: "查找用户"
|
search-user: "查找用户"
|
||||||
you: "您"
|
you: "您"
|
||||||
@ -335,9 +338,9 @@ common/views/components/nav.vue:
|
|||||||
develop: "开发者"
|
develop: "开发者"
|
||||||
feedback: "反馈"
|
feedback: "反馈"
|
||||||
common/views/components/note-menu.vue:
|
common/views/components/note-menu.vue:
|
||||||
mention: "メンション"
|
mention: "提到"
|
||||||
detail: "详细信息"
|
detail: "详细信息"
|
||||||
copy-content: "内容をコピー"
|
copy-content: "复制内容"
|
||||||
copy-link: "复制链接"
|
copy-link: "复制链接"
|
||||||
favorite: "收藏这个投稿"
|
favorite: "收藏这个投稿"
|
||||||
unfavorite: "取消收藏"
|
unfavorite: "取消收藏"
|
||||||
@ -346,6 +349,18 @@ common/views/components/note-menu.vue:
|
|||||||
delete: "删除"
|
delete: "删除"
|
||||||
delete-confirm: "确定删除这个投稿吗?"
|
delete-confirm: "确定删除这个投稿吗?"
|
||||||
remote: "显示原始投稿"
|
remote: "显示原始投稿"
|
||||||
|
common/views/components/user-menu.vue:
|
||||||
|
mention: "メンション"
|
||||||
|
mute: "ミュート"
|
||||||
|
unmute: "ミュート解除"
|
||||||
|
block: "ブロック"
|
||||||
|
unblock: "ブロック解除"
|
||||||
|
push-to-list: "リストに追加"
|
||||||
|
select-list: "リストを選択してください"
|
||||||
|
list-pushed: "{user}を{list}に追加しました"
|
||||||
|
report-abuse: "スパムを報告"
|
||||||
|
report-abuse-detail: "どのような迷惑行為を行っていますか?"
|
||||||
|
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
|
||||||
common/views/components/poll.vue:
|
common/views/components/poll.vue:
|
||||||
vote-to: "为\"{}\"投票"
|
vote-to: "为\"{}\"投票"
|
||||||
vote-count: "{}票"
|
vote-count: "{}票"
|
||||||
@ -414,16 +429,16 @@ common/views/components/stream-indicator.vue:
|
|||||||
connected: "已连接"
|
connected: "已连接"
|
||||||
common/views/components/notification-settings.vue:
|
common/views/components/notification-settings.vue:
|
||||||
title: "通知"
|
title: "通知"
|
||||||
mark-as-read-all-notifications: "すべての通知を既読にする"
|
mark-as-read-all-notifications: "将所有通知标为已读"
|
||||||
mark-as-read-all-unread-notes: "すべての投稿を既読にする"
|
mark-as-read-all-unread-notes: "将所有帖子标为已读"
|
||||||
mark-as-read-all-talk-messages: "すべてのトークを既読にする"
|
mark-as-read-all-talk-messages: "将所有对话标为已读"
|
||||||
auto-watch: "投稿の自動ウォッチ"
|
auto-watch: "自动查看帖子"
|
||||||
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
|
auto-watch-desc: "自动接收有关您做出反应或回复的帖子的通知。"
|
||||||
common/views/components/integration-settings.vue:
|
common/views/components/integration-settings.vue:
|
||||||
title: "サービス連携"
|
title: "服务合作"
|
||||||
connect: "连接"
|
connect: "连接"
|
||||||
disconnect: "未连接"
|
disconnect: "未连接"
|
||||||
connected-to: "次のアカウントに接続されています"
|
connected-to: "您的账号已连接一下社交账号"
|
||||||
common/views/components/github-setting.vue:
|
common/views/components/github-setting.vue:
|
||||||
description: "当您用GitHub连接Misskey账户后,您将能够看到有关您自己的信息,并且您将能够使用GitHub登录。"
|
description: "当您用GitHub连接Misskey账户后,您将能够看到有关您自己的信息,并且您将能够使用GitHub登录。"
|
||||||
connected-to: "此账户已连接GitHub"
|
connected-to: "此账户已连接GitHub"
|
||||||
@ -476,7 +491,7 @@ common/views/components/profile-editor.vue:
|
|||||||
is-bot: "整个账户是机器人"
|
is-bot: "整个账户是机器人"
|
||||||
is-locked: "关注者请求需要批准"
|
is-locked: "关注者请求需要批准"
|
||||||
careful-bot: "机器人的关注者请求需要批准"
|
careful-bot: "机器人的关注者请求需要批准"
|
||||||
auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
|
auto-accept-followed: "自动同意来自您关注的人的关注申请"
|
||||||
advanced: "其他选项"
|
advanced: "其他选项"
|
||||||
privacy: "隐私"
|
privacy: "隐私"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
@ -543,11 +558,11 @@ common/views/widgets/tips.vue:
|
|||||||
tips-line19: "可以在浏览器外部分离多个窗口。"
|
tips-line19: "可以在浏览器外部分离多个窗口。"
|
||||||
tips-line20: "日历小部件的百分比显示经过的时间百分比。"
|
tips-line20: "日历小部件的百分比显示经过的时间百分比。"
|
||||||
tips-line21: "您也可以使用API开发机器人。"
|
tips-line21: "您也可以使用API开发机器人。"
|
||||||
tips-line23: "藍かわいいよ藍"
|
tips-line23: "Ai-chan kawaii!"
|
||||||
tips-line24: "Misskey自2014年开始运营。"
|
tips-line24: "Misskey自2014年开始运营。"
|
||||||
tips-line25: "在与通知功能兼容的浏览器中,您可以在Misskey未打开的情况下接收通知"
|
tips-line25: "在与通知功能兼容的浏览器中,您可以在Misskey未打开的情况下接收通知"
|
||||||
common/views/pages/not-found.vue:
|
common/views/pages/not-found.vue:
|
||||||
page-not-found: "ページが見つかりませんでした"
|
page-not-found: "啊喔, 页面走丢了..."
|
||||||
common/views/pages/follow.vue:
|
common/views/pages/follow.vue:
|
||||||
signed-in-as: "用 {}登录"
|
signed-in-as: "用 {}登录"
|
||||||
following: "正在关注"
|
following: "正在关注"
|
||||||
@ -759,7 +774,6 @@ desktop/views/components/settings.vue:
|
|||||||
security: "安全性"
|
security: "安全性"
|
||||||
signin: "登录历史"
|
signin: "登录历史"
|
||||||
password: "密码"
|
password: "密码"
|
||||||
2fa: "两步验证"
|
|
||||||
other: "其他"
|
other: "其他"
|
||||||
license: "许可证"
|
license: "许可证"
|
||||||
theme: "主题"
|
theme: "主题"
|
||||||
@ -773,9 +787,6 @@ desktop/views/components/settings.vue:
|
|||||||
web-search-engine-desc: "例如: https://www.google.com/?#q={{query}}"
|
web-search-engine-desc: "例如: https://www.google.com/?#q={{query}}"
|
||||||
auto-popout: "自动弹出窗口"
|
auto-popout: "自动弹出窗口"
|
||||||
auto-popout-desc: "如果可用,将使用弹出显示而不是打开新窗口。 此设置存储在浏览器中。"
|
auto-popout-desc: "如果可用,将使用弹出显示而不是打开新窗口。 此设置存储在浏览器中。"
|
||||||
advanced: "更多设置"
|
|
||||||
api-via-stream: "通过API请求的Stream"
|
|
||||||
api-via-stream-desc: "API请求通过WebSocket连接而不是本机提取API执行(以获得更好的性能)。 此设置存储在浏览器中。"
|
|
||||||
deck-nav: "Deck 内的导航"
|
deck-nav: "Deck 内的导航"
|
||||||
deck-nav-desc: "在使用Deck时,您会在导航期间获得一个没有页面过渡的临时列。"
|
deck-nav-desc: "在使用Deck时,您会在导航期间获得一个没有页面过渡的临时列。"
|
||||||
deck-default: "将Deck界面设置为默认UI显示界面"
|
deck-default: "将Deck界面设置为默认UI显示界面"
|
||||||
@ -979,6 +990,7 @@ admin/views/index.vue:
|
|||||||
federation: "联合"
|
federation: "联合"
|
||||||
announcements: "公告"
|
announcements: "公告"
|
||||||
hashtags: "标签"
|
hashtags: "标签"
|
||||||
|
abuse: "スパム報告"
|
||||||
back-to-misskey: "返回 Misskey"
|
back-to-misskey: "返回 Misskey"
|
||||||
admin/views/dashboard.vue:
|
admin/views/dashboard.vue:
|
||||||
dashboard: "Dashboard"
|
dashboard: "Dashboard"
|
||||||
@ -988,6 +1000,12 @@ admin/views/dashboard.vue:
|
|||||||
instances: "例子"
|
instances: "例子"
|
||||||
this-instance: "此实例"
|
this-instance: "此实例"
|
||||||
federated: "联合"
|
federated: "联合"
|
||||||
|
admin/views/abuse.vue:
|
||||||
|
title: "スパム報告"
|
||||||
|
target: "対象"
|
||||||
|
reporter: "報告者"
|
||||||
|
details: "詳細"
|
||||||
|
remove-report: "削除"
|
||||||
admin/views/instance.vue:
|
admin/views/instance.vue:
|
||||||
instance: "例子"
|
instance: "例子"
|
||||||
instance-name: "实例名称"
|
instance-name: "实例名称"
|
||||||
@ -1034,6 +1052,8 @@ admin/views/instance.vue:
|
|||||||
max-note-text-length: "最大帖子字符数"
|
max-note-text-length: "最大帖子字符数"
|
||||||
disable-registration: "停用新用户注册功能"
|
disable-registration: "停用新用户注册功能"
|
||||||
disable-local-timeline: "停用本地时间线功能"
|
disable-local-timeline: "停用本地时间线功能"
|
||||||
|
disable-global-timeline: "グローバルタイムラインを無効にする"
|
||||||
|
disabling-timelines-info: "これらのタイムラインを無効にしても、管理者およびモデレーターは引き続き利用できます。"
|
||||||
invite: "邀请"
|
invite: "邀请"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "保存完毕"
|
saved: "保存完毕"
|
||||||
@ -1077,6 +1097,7 @@ admin/views/charts.vue:
|
|||||||
notes-total: "帖子总数"
|
notes-total: "帖子总数"
|
||||||
users: "用户数量:增加/减少"
|
users: "用户数量:增加/减少"
|
||||||
users-total: "用户总数"
|
users-total: "用户总数"
|
||||||
|
active-users: "アクティブユーザー数"
|
||||||
drive: "存储容量:增加/减少"
|
drive: "存储容量:增加/减少"
|
||||||
drive-total: "云盘总容量"
|
drive-total: "云盘总容量"
|
||||||
drive-files: "云盘上的文件数:增加/减少"
|
drive-files: "云盘上的文件数:增加/减少"
|
||||||
@ -1085,6 +1106,10 @@ admin/views/charts.vue:
|
|||||||
network-time: "响应时间"
|
network-time: "响应时间"
|
||||||
network-usage: "网络流量"
|
network-usage: "网络流量"
|
||||||
admin/views/drive.vue:
|
admin/views/drive.vue:
|
||||||
|
operation: "操作"
|
||||||
|
fileid-or-url: "ファイルIDまたはファイルURL"
|
||||||
|
file-not-found: "ファイルが見つかりません"
|
||||||
|
lookup: "照会"
|
||||||
sort:
|
sort:
|
||||||
title: "排序"
|
title: "排序"
|
||||||
createdAtAsc: "アップロード日時が古い順"
|
createdAtAsc: "アップロード日時が古い順"
|
||||||
@ -1100,6 +1125,8 @@ admin/views/drive.vue:
|
|||||||
deleted: "已删除"
|
deleted: "已删除"
|
||||||
mark-as-sensitive: "标记为“敏感”"
|
mark-as-sensitive: "标记为“敏感”"
|
||||||
unmark-as-sensitive: "取消标记为“敏感”"
|
unmark-as-sensitive: "取消标记为“敏感”"
|
||||||
|
marked-as-sensitive: "閲覧注意に設定しました"
|
||||||
|
unmarked-as-sensitive: "閲覧注意を解除しました"
|
||||||
admin/views/users.vue:
|
admin/views/users.vue:
|
||||||
operation: "操作"
|
operation: "操作"
|
||||||
username-or-userid: "用户名或用户ID"
|
username-or-userid: "用户名或用户ID"
|
||||||
@ -1123,6 +1150,14 @@ admin/views/users.vue:
|
|||||||
createdAtDesc: "注册时间从新到旧"
|
createdAtDesc: "注册时间从新到旧"
|
||||||
updatedAtAsc: "更新时间从旧到新"
|
updatedAtAsc: "更新时间从旧到新"
|
||||||
updatedAtDesc: "更新时间从新到旧"
|
updatedAtDesc: "更新时间从新到旧"
|
||||||
|
state:
|
||||||
|
title: "状態"
|
||||||
|
all: "すべて"
|
||||||
|
admin: "管理者"
|
||||||
|
moderator: "モデレーター"
|
||||||
|
adminOrModerator: "管理者+モデレーター"
|
||||||
|
verified: "公式アカウント"
|
||||||
|
suspended: "凍結済み"
|
||||||
origin:
|
origin:
|
||||||
title: "源自"
|
title: "源自"
|
||||||
combined: "本地+远程"
|
combined: "本地+远程"
|
||||||
@ -1135,6 +1170,8 @@ admin/views/moderators.vue:
|
|||||||
title: "注册版主"
|
title: "注册版主"
|
||||||
add: "注册"
|
add: "注册"
|
||||||
added: "已注册版主。"
|
added: "已注册版主。"
|
||||||
|
remove: "解除"
|
||||||
|
removed: "モデレーター登録を解除しました"
|
||||||
admin/views/emoji.vue:
|
admin/views/emoji.vue:
|
||||||
add-emoji:
|
add-emoji:
|
||||||
title: "添加emoji"
|
title: "添加emoji"
|
||||||
@ -1216,22 +1253,11 @@ desktop/views/pages/user/user.photos.vue:
|
|||||||
no-photos: "没有图片"
|
no-photos: "没有图片"
|
||||||
desktop/views/pages/user/user.profile.vue:
|
desktop/views/pages/user/user.profile.vue:
|
||||||
follows-you: "关注您"
|
follows-you: "关注您"
|
||||||
stalk: "跟踪"
|
menu: "メニュー"
|
||||||
stalking: "正在跟踪"
|
|
||||||
unstalk: "解除跟踪"
|
|
||||||
mute: "静音"
|
|
||||||
muted: "正在静音"
|
|
||||||
unmute: "取消静音"
|
|
||||||
block: "屏蔽"
|
|
||||||
unblock: "取消屏蔽"
|
|
||||||
block-confirm: "您确定要屏蔽这个用户吗?"
|
|
||||||
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: "关注中"
|
||||||
followers: "关注者"
|
followers: "关注者"
|
||||||
mention: "メンション"
|
|
||||||
is-bot: "这个账户是Bot"
|
is-bot: "这个账户是Bot"
|
||||||
years-old: "{age}岁"
|
years-old: "{age}岁"
|
||||||
year: "年"
|
year: "年"
|
||||||
@ -1472,14 +1498,7 @@ mobile/views/pages/user.vue:
|
|||||||
overview: "概观"
|
overview: "概观"
|
||||||
timeline: "时间线"
|
timeline: "时间线"
|
||||||
media: "媒体"
|
media: "媒体"
|
||||||
mute: "静音"
|
|
||||||
unmute: "取消静音"
|
|
||||||
block: "屏蔽"
|
|
||||||
unblock: "取消屏蔽"
|
|
||||||
years-old: "{age}岁"
|
years-old: "{age}岁"
|
||||||
push-to-list: "添加至列表"
|
|
||||||
select-list: "选择一个列表"
|
|
||||||
list-pushed: "成功添加{user}到{list}"
|
|
||||||
mobile/views/pages/user/home.vue:
|
mobile/views/pages/user/home.vue:
|
||||||
recent-notes: "最近的帖子"
|
recent-notes: "最近的帖子"
|
||||||
images: "图片"
|
images: "图片"
|
||||||
@ -1525,12 +1544,10 @@ deck/deck.user-column.vue:
|
|||||||
posts: "帖子"
|
posts: "帖子"
|
||||||
following: "关注中"
|
following: "关注中"
|
||||||
followers: "关注者"
|
followers: "关注者"
|
||||||
mention: "メンション"
|
|
||||||
images: "图片"
|
images: "图片"
|
||||||
activity: "活动"
|
activity: "活动"
|
||||||
timeline: "时间线"
|
timeline: "时间线"
|
||||||
pinned-notes: "标记投稿"
|
pinned-notes: "标记投稿"
|
||||||
push-to-a-list: "添加至列表"
|
|
||||||
docs:
|
docs:
|
||||||
edit-this-page-on-github: "发现错误或想要为文档做出贡献?"
|
edit-this-page-on-github: "发现错误或想要为文档做出贡献?"
|
||||||
edit-this-page-on-github-link: "在GitHub上编辑这个页面。"
|
edit-this-page-on-github-link: "在GitHub上编辑这个页面。"
|
||||||
|
40
package.json
40
package.json
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "misskey",
|
"name": "misskey",
|
||||||
"author": "syuilo <i@syuilo.com>",
|
"author": "syuilo <i@syuilo.com>",
|
||||||
"version": "10.75.0",
|
"version": "10.78.0",
|
||||||
"clientVersion": "2.0.13368",
|
"clientVersion": "2.0.13640",
|
||||||
"codename": "nighthike",
|
"codename": "nighthike",
|
||||||
"main": "./built/index.js",
|
"main": "./built/index.js",
|
||||||
"private": true,
|
"private": true,
|
||||||
@ -24,7 +24,7 @@
|
|||||||
"@fortawesome/free-brands-svg-icons": "5.6.3",
|
"@fortawesome/free-brands-svg-icons": "5.6.3",
|
||||||
"@fortawesome/free-regular-svg-icons": "5.5.0",
|
"@fortawesome/free-regular-svg-icons": "5.5.0",
|
||||||
"@fortawesome/free-solid-svg-icons": "5.6.3",
|
"@fortawesome/free-solid-svg-icons": "5.6.3",
|
||||||
"@fortawesome/vue-fontawesome": "0.1.2",
|
"@fortawesome/vue-fontawesome": "0.1.5",
|
||||||
"@koa/cors": "2.2.3",
|
"@koa/cors": "2.2.3",
|
||||||
"@prezzemolo/rap": "0.1.2",
|
"@prezzemolo/rap": "0.1.2",
|
||||||
"@prezzemolo/zip": "0.0.3",
|
"@prezzemolo/zip": "0.0.3",
|
||||||
@ -43,6 +43,7 @@
|
|||||||
"@types/gulp-uglify": "3.0.6",
|
"@types/gulp-uglify": "3.0.6",
|
||||||
"@types/gulp-util": "3.0.34",
|
"@types/gulp-util": "3.0.34",
|
||||||
"@types/is-root": "1.0.0",
|
"@types/is-root": "1.0.0",
|
||||||
|
"@types/is-svg": "3.0.0",
|
||||||
"@types/is-url": "1.2.28",
|
"@types/is-url": "1.2.28",
|
||||||
"@types/js-yaml": "3.11.4",
|
"@types/js-yaml": "3.11.4",
|
||||||
"@types/katex": "0.5.0",
|
"@types/katex": "0.5.0",
|
||||||
@ -60,7 +61,7 @@
|
|||||||
"@types/minio": "7.0.1",
|
"@types/minio": "7.0.1",
|
||||||
"@types/mkdirp": "0.5.2",
|
"@types/mkdirp": "0.5.2",
|
||||||
"@types/mocha": "5.2.5",
|
"@types/mocha": "5.2.5",
|
||||||
"@types/mongodb": "3.1.14",
|
"@types/mongodb": "3.1.18",
|
||||||
"@types/ms": "0.7.30",
|
"@types/ms": "0.7.30",
|
||||||
"@types/node": "10.12.18",
|
"@types/node": "10.12.18",
|
||||||
"@types/nodemailer": "4.6.5",
|
"@types/nodemailer": "4.6.5",
|
||||||
@ -76,7 +77,7 @@
|
|||||||
"@types/rimraf": "2.0.2",
|
"@types/rimraf": "2.0.2",
|
||||||
"@types/seedrandom": "2.4.27",
|
"@types/seedrandom": "2.4.27",
|
||||||
"@types/sharp": "0.21.0",
|
"@types/sharp": "0.21.0",
|
||||||
"@types/showdown": "1.9.0",
|
"@types/showdown": "1.9.2",
|
||||||
"@types/speakeasy": "2.0.3",
|
"@types/speakeasy": "2.0.3",
|
||||||
"@types/systeminformation": "3.23.1",
|
"@types/systeminformation": "3.23.1",
|
||||||
"@types/tinycolor2": "1.4.1",
|
"@types/tinycolor2": "1.4.1",
|
||||||
@ -86,7 +87,7 @@
|
|||||||
"@types/webpack-stream": "3.2.10",
|
"@types/webpack-stream": "3.2.10",
|
||||||
"@types/websocket": "0.0.40",
|
"@types/websocket": "0.0.40",
|
||||||
"@types/ws": "6.0.1",
|
"@types/ws": "6.0.1",
|
||||||
"animejs": "2.2.0",
|
"animejs": "3.0.1",
|
||||||
"apexcharts": "2.5.1",
|
"apexcharts": "2.5.1",
|
||||||
"autobind-decorator": "2.4.0",
|
"autobind-decorator": "2.4.0",
|
||||||
"autosize": "4.0.2",
|
"autosize": "4.0.2",
|
||||||
@ -96,23 +97,23 @@
|
|||||||
"bootstrap-vue": "2.0.0-rc.11",
|
"bootstrap-vue": "2.0.0-rc.11",
|
||||||
"cafy": "12.0.0",
|
"cafy": "12.0.0",
|
||||||
"chai": "4.2.0",
|
"chai": "4.2.0",
|
||||||
"chai-http": "4.2.0",
|
"chalk": "2.4.2",
|
||||||
"chalk": "2.4.1",
|
"chai-http": "4.2.1",
|
||||||
"commander": "2.19.0",
|
"commander": "2.19.0",
|
||||||
"crc-32": "1.2.0",
|
"crc-32": "1.2.0",
|
||||||
"css-loader": "1.0.1",
|
"css-loader": "1.0.1",
|
||||||
"cssnano": "4.1.7",
|
"cssnano": "4.1.8",
|
||||||
"dateformat": "3.0.3",
|
"dateformat": "3.0.3",
|
||||||
"debug": "4.1.0",
|
"debug": "4.1.0",
|
||||||
"deep-equal": "1.0.1",
|
"deep-equal": "1.0.1",
|
||||||
"deepcopy": "0.6.3",
|
"deepcopy": "0.6.3",
|
||||||
"diskusage": "1.0.0",
|
"diskusage": "1.0.0",
|
||||||
"double-ended-queue": "2.1.0-0",
|
"double-ended-queue": "2.1.0-0",
|
||||||
"elasticsearch": "15.2.0",
|
"elasticsearch": "15.3.0",
|
||||||
"emojilib": "2.4.0",
|
"emojilib": "2.4.0",
|
||||||
"escape-regexp": "0.0.1",
|
"escape-regexp": "0.0.1",
|
||||||
"eslint": "5.11.1",
|
"eslint": "5.12.0",
|
||||||
"eslint-plugin-vue": "5.0.0",
|
"eslint-plugin-vue": "5.1.0",
|
||||||
"eventemitter3": "3.1.0",
|
"eventemitter3": "3.1.0",
|
||||||
"feed": "2.0.2",
|
"feed": "2.0.2",
|
||||||
"file-loader": "2.0.0",
|
"file-loader": "2.0.0",
|
||||||
@ -136,8 +137,9 @@
|
|||||||
"http-signature": "1.2.0",
|
"http-signature": "1.2.0",
|
||||||
"insert-text-at-cursor": "0.1.1",
|
"insert-text-at-cursor": "0.1.1",
|
||||||
"is-root": "2.0.0",
|
"is-root": "2.0.0",
|
||||||
|
"is-svg": "3.0.0",
|
||||||
"is-url": "1.2.4",
|
"is-url": "1.2.4",
|
||||||
"js-yaml": "3.12.0",
|
"js-yaml": "3.12.1",
|
||||||
"jsdom": "13.1.0",
|
"jsdom": "13.1.0",
|
||||||
"json5": "2.1.0",
|
"json5": "2.1.0",
|
||||||
"json5-loader": "1.0.1",
|
"json5-loader": "1.0.1",
|
||||||
@ -157,7 +159,7 @@
|
|||||||
"langmap": "0.0.16",
|
"langmap": "0.0.16",
|
||||||
"loader-utils": "1.2.3",
|
"loader-utils": "1.2.3",
|
||||||
"lookup-dns-cache": "2.1.0",
|
"lookup-dns-cache": "2.1.0",
|
||||||
"minio": "7.0.2",
|
"minio": "7.0.3",
|
||||||
"mkdirp": "0.5.1",
|
"mkdirp": "0.5.1",
|
||||||
"mocha": "5.2.0",
|
"mocha": "5.2.0",
|
||||||
"moji": "0.5.1",
|
"moji": "0.5.1",
|
||||||
@ -191,7 +193,7 @@
|
|||||||
"request": "2.88.0",
|
"request": "2.88.0",
|
||||||
"request-promise-native": "1.0.5",
|
"request-promise-native": "1.0.5",
|
||||||
"request-stats": "3.0.0",
|
"request-stats": "3.0.0",
|
||||||
"rimraf": "2.6.2",
|
"rimraf": "2.6.3",
|
||||||
"rndstr": "1.0.0",
|
"rndstr": "1.0.0",
|
||||||
"s-age": "1.1.2",
|
"s-age": "1.1.2",
|
||||||
"seedrandom": "2.4.4",
|
"seedrandom": "2.4.4",
|
||||||
@ -210,7 +212,7 @@
|
|||||||
"textarea-caret": "3.1.0",
|
"textarea-caret": "3.1.0",
|
||||||
"tinycolor2": "1.4.1",
|
"tinycolor2": "1.4.1",
|
||||||
"tmp": "0.0.33",
|
"tmp": "0.0.33",
|
||||||
"ts-loader": "5.3.1",
|
"ts-loader": "5.3.3",
|
||||||
"ts-node": "7.0.1",
|
"ts-node": "7.0.1",
|
||||||
"tslint": "5.12.0",
|
"tslint": "5.12.0",
|
||||||
"tslint-sonarts": "1.8.0",
|
"tslint-sonarts": "1.8.0",
|
||||||
@ -224,7 +226,7 @@
|
|||||||
"vue-color": "2.7.0",
|
"vue-color": "2.7.0",
|
||||||
"vue-content-loading": "1.5.3",
|
"vue-content-loading": "1.5.3",
|
||||||
"vue-cropperjs": "3.0.0",
|
"vue-cropperjs": "3.0.0",
|
||||||
"vue-i18n": "8.6.0",
|
"vue-i18n": "8.7.0",
|
||||||
"vue-js-modal": "1.3.28",
|
"vue-js-modal": "1.3.28",
|
||||||
"vue-loader": "15.4.2",
|
"vue-loader": "15.4.2",
|
||||||
"vue-marquee-text-component": "1.1.1",
|
"vue-marquee-text-component": "1.1.1",
|
||||||
@ -239,8 +241,8 @@
|
|||||||
"vuex-persistedstate": "2.5.4",
|
"vuex-persistedstate": "2.5.4",
|
||||||
"web-push": "3.3.3",
|
"web-push": "3.3.3",
|
||||||
"webfinger.js": "2.7.0",
|
"webfinger.js": "2.7.0",
|
||||||
"webpack": "4.28.3",
|
"webpack": "4.28.4",
|
||||||
"webpack-cli": "3.1.2",
|
"webpack-cli": "3.2.1",
|
||||||
"websocket": "1.0.28",
|
"websocket": "1.0.28",
|
||||||
"ws": "6.1.2",
|
"ws": "6.1.2",
|
||||||
"xev": "2.0.1"
|
"xev": "2.0.1"
|
||||||
|
48
src/chart/active-users.ts
Normal file
48
src/chart/active-users.ts
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
import autobind from 'autobind-decorator';
|
||||||
|
import Chart, { Obj } from '.';
|
||||||
|
import { IUser, isLocalUser } from '../models/user';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* アクティブユーザーに関するチャート
|
||||||
|
*/
|
||||||
|
type ActiveUsersLog = {
|
||||||
|
local: {
|
||||||
|
/**
|
||||||
|
* アクティブユーザー数
|
||||||
|
*/
|
||||||
|
count: number;
|
||||||
|
};
|
||||||
|
|
||||||
|
remote: ActiveUsersLog['local'];
|
||||||
|
};
|
||||||
|
|
||||||
|
class ActiveUsersChart extends Chart<ActiveUsersLog> {
|
||||||
|
constructor() {
|
||||||
|
super('activeUsers');
|
||||||
|
}
|
||||||
|
|
||||||
|
@autobind
|
||||||
|
protected async getTemplate(init: boolean, latest?: ActiveUsersLog): Promise<ActiveUsersLog> {
|
||||||
|
return {
|
||||||
|
local: {
|
||||||
|
count: 0
|
||||||
|
},
|
||||||
|
remote: {
|
||||||
|
count: 0
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@autobind
|
||||||
|
public async update(user: IUser) {
|
||||||
|
const update: Obj = {
|
||||||
|
count: 1
|
||||||
|
};
|
||||||
|
|
||||||
|
await this.incIfUnique({
|
||||||
|
[isLocalUser(user) ? 'local' : 'remote']: update
|
||||||
|
}, 'users', user._id.toHexString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default new ActiveUsersChart();
|
@ -316,21 +316,9 @@ export default abstract class Chart<T> {
|
|||||||
const res: ArrayValue<T> = {} as any;
|
const res: ArrayValue<T> = {} as any;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [{
|
* [{ foo: 1, bar: 5 }, { foo: 2, bar: 6 }, { foo: 3, bar: 7 }]
|
||||||
* xxxxx: 1, yyyyy: 5
|
|
||||||
* }, {
|
|
||||||
* xxxxx: 2, yyyyy: 6
|
|
||||||
* }, {
|
|
||||||
* xxxxx: 3, yyyyy: 7
|
|
||||||
* }]
|
|
||||||
*
|
|
||||||
* を
|
* を
|
||||||
*
|
* { foo: [1, 2, 3], bar: [5, 6, 7] }
|
||||||
* {
|
|
||||||
* xxxxx: [1, 2, 3],
|
|
||||||
* yyyyy: [5, 6, 7]
|
|
||||||
* }
|
|
||||||
*
|
|
||||||
* にする
|
* にする
|
||||||
*/
|
*/
|
||||||
const dive = (x: Obj, path?: string) => {
|
const dive = (x: Obj, path?: string) => {
|
||||||
|
83
src/client/app/admin/views/abuse.vue
Normal file
83
src/client/app/admin/views/abuse.vue
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<ui-card>
|
||||||
|
<div slot="title"><fa :icon="faExclamationCircle"/> {{ $t('title') }}</div>
|
||||||
|
<section class="fit-top">
|
||||||
|
<sequential-entrance animation="entranceFromTop" delay="25">
|
||||||
|
<div v-for="report in userReports" :key="report.id" class="haexwsjc">
|
||||||
|
<ui-horizon-group inputs>
|
||||||
|
<ui-input :value="report.user | acct" type="text">
|
||||||
|
<span>{{ $t('target') }}</span>
|
||||||
|
</ui-input>
|
||||||
|
<ui-input :value="report.reporter | acct" type="text">
|
||||||
|
<span>{{ $t('reporter') }}</span>
|
||||||
|
</ui-input>
|
||||||
|
</ui-horizon-group>
|
||||||
|
<ui-textarea :value="report.comment" readonly>
|
||||||
|
<span>{{ $t('details') }}</span>
|
||||||
|
</ui-textarea>
|
||||||
|
<ui-button @click="removeReport(report)">{{ $t('remove-report') }}</ui-button>
|
||||||
|
</div>
|
||||||
|
</sequential-entrance>
|
||||||
|
<ui-button v-if="existMore" @click="fetchUserReports">{{ $t('@.load-more') }}</ui-button>
|
||||||
|
</section>
|
||||||
|
</ui-card>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
import Vue from 'vue';
|
||||||
|
import i18n from '../../i18n';
|
||||||
|
import { faExclamationCircle } from '@fortawesome/free-solid-svg-icons';
|
||||||
|
|
||||||
|
export default Vue.extend({
|
||||||
|
i18n: i18n('admin/views/abuse.vue'),
|
||||||
|
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
limit: 10,
|
||||||
|
untilId: undefined,
|
||||||
|
userReports: [],
|
||||||
|
existMore: false,
|
||||||
|
faExclamationCircle
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
mounted() {
|
||||||
|
this.fetchUserReports();
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
fetchUserReports() {
|
||||||
|
this.$root.api('admin/abuse-user-reports', {
|
||||||
|
untilId: this.untilId,
|
||||||
|
limit: this.limit + 1
|
||||||
|
}).then(reports => {
|
||||||
|
if (reports.length == this.limit + 1) {
|
||||||
|
reports.pop();
|
||||||
|
this.existMore = true;
|
||||||
|
} else {
|
||||||
|
this.existMore = false;
|
||||||
|
}
|
||||||
|
this.userReports = this.userReports.concat(reports);
|
||||||
|
this.untilId = this.userReports[this.userReports.length - 1].id;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
removeReport(report) {
|
||||||
|
this.$root.api('admin/remove-abuse-user-report', {
|
||||||
|
reportId: report.id
|
||||||
|
}).then(() => {
|
||||||
|
this.userReports = this.userReports.filter(r => r.id != report.id);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="stylus" scoped>
|
||||||
|
.haexwsjc
|
||||||
|
padding-bottom 16px
|
||||||
|
border-bottom solid 1px var(--faceDivider)
|
||||||
|
|
||||||
|
</style>
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="cdeuzmsthagexbkpofbmatmugjuvogfb">
|
<div>
|
||||||
<ui-card>
|
<ui-card>
|
||||||
<div slot="title"><fa icon="broadcast-tower"/> {{ $t('announcements') }}</div>
|
<div slot="title"><fa icon="broadcast-tower"/> {{ $t('announcements') }}</div>
|
||||||
<section v-for="(announcement, i) in announcements" class="fit-top">
|
<section v-for="(announcement, i) in announcements" class="fit-top">
|
||||||
@ -83,10 +83,3 @@ export default Vue.extend({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
|
||||||
.cdeuzmsthagexbkpofbmatmugjuvogfb
|
|
||||||
@media (min-width 500px)
|
|
||||||
padding 16px
|
|
||||||
|
|
||||||
</style>
|
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
<optgroup :label="$t('users')">
|
<optgroup :label="$t('users')">
|
||||||
<option value="users">{{ $t('charts.users') }}</option>
|
<option value="users">{{ $t('charts.users') }}</option>
|
||||||
<option value="users-total">{{ $t('charts.users-total') }}</option>
|
<option value="users-total">{{ $t('charts.users-total') }}</option>
|
||||||
|
<option value="active-users">{{ $t('charts.active-users') }}</option>
|
||||||
</optgroup>
|
</optgroup>
|
||||||
<optgroup :label="$t('notes')">
|
<optgroup :label="$t('notes')">
|
||||||
<option value="notes">{{ $t('charts.notes') }}</option>
|
<option value="notes">{{ $t('charts.notes') }}</option>
|
||||||
@ -67,6 +68,7 @@ export default Vue.extend({
|
|||||||
case 'federation-instances-total': return this.federationInstancesChart(true);
|
case 'federation-instances-total': return this.federationInstancesChart(true);
|
||||||
case 'users': return this.usersChart(false);
|
case 'users': return this.usersChart(false);
|
||||||
case 'users-total': return this.usersChart(true);
|
case 'users-total': return this.usersChart(true);
|
||||||
|
case 'active-users': return this.activeUsersChart();
|
||||||
case 'notes': return this.notesChart('combined');
|
case 'notes': return this.notesChart('combined');
|
||||||
case 'local-notes': return this.notesChart('local');
|
case 'local-notes': return this.notesChart('local');
|
||||||
case 'remote-notes': return this.notesChart('remote');
|
case 'remote-notes': return this.notesChart('remote');
|
||||||
@ -107,12 +109,14 @@ export default Vue.extend({
|
|||||||
const [perHour, perDay] = await Promise.all([Promise.all([
|
const [perHour, perDay] = await Promise.all([Promise.all([
|
||||||
this.$root.api('charts/federation', { limit: limit, span: 'hour' }),
|
this.$root.api('charts/federation', { limit: limit, span: 'hour' }),
|
||||||
this.$root.api('charts/users', { limit: limit, span: 'hour' }),
|
this.$root.api('charts/users', { limit: limit, span: 'hour' }),
|
||||||
|
this.$root.api('charts/active-users', { limit: limit, span: 'hour' }),
|
||||||
this.$root.api('charts/notes', { limit: limit, span: 'hour' }),
|
this.$root.api('charts/notes', { limit: limit, span: 'hour' }),
|
||||||
this.$root.api('charts/drive', { limit: limit, span: 'hour' }),
|
this.$root.api('charts/drive', { limit: limit, span: 'hour' }),
|
||||||
this.$root.api('charts/network', { limit: limit, span: 'hour' })
|
this.$root.api('charts/network', { limit: limit, span: 'hour' })
|
||||||
]), Promise.all([
|
]), Promise.all([
|
||||||
this.$root.api('charts/federation', { limit: limit, span: 'day' }),
|
this.$root.api('charts/federation', { limit: limit, span: 'day' }),
|
||||||
this.$root.api('charts/users', { limit: limit, span: 'day' }),
|
this.$root.api('charts/users', { limit: limit, span: 'day' }),
|
||||||
|
this.$root.api('charts/active-users', { limit: limit, span: 'day' }),
|
||||||
this.$root.api('charts/notes', { limit: limit, span: 'day' }),
|
this.$root.api('charts/notes', { limit: limit, span: 'day' }),
|
||||||
this.$root.api('charts/drive', { limit: limit, span: 'day' }),
|
this.$root.api('charts/drive', { limit: limit, span: 'day' }),
|
||||||
this.$root.api('charts/network', { limit: limit, span: 'day' })
|
this.$root.api('charts/network', { limit: limit, span: 'day' })
|
||||||
@ -122,16 +126,18 @@ export default Vue.extend({
|
|||||||
perHour: {
|
perHour: {
|
||||||
federation: perHour[0],
|
federation: perHour[0],
|
||||||
users: perHour[1],
|
users: perHour[1],
|
||||||
notes: perHour[2],
|
activeUsers: perHour[2],
|
||||||
drive: perHour[3],
|
notes: perHour[3],
|
||||||
network: perHour[4]
|
drive: perHour[4],
|
||||||
|
network: perHour[5]
|
||||||
},
|
},
|
||||||
perDay: {
|
perDay: {
|
||||||
federation: perDay[0],
|
federation: perDay[0],
|
||||||
users: perDay[1],
|
users: perDay[1],
|
||||||
notes: perDay[2],
|
activeUsers: perDay[2],
|
||||||
drive: perDay[3],
|
notes: perDay[3],
|
||||||
network: perDay[4]
|
drive: perDay[4],
|
||||||
|
network: perDay[5]
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -183,7 +189,7 @@ export default Vue.extend({
|
|||||||
},
|
},
|
||||||
legend: {
|
legend: {
|
||||||
labels: {
|
labels: {
|
||||||
color: tinycolor(getComputedStyle(document.documentElement).getPropertyValue('--text')).toRgbString()
|
colors: tinycolor(getComputedStyle(document.documentElement).getPropertyValue('--text')).toRgbString()
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
xaxis: {
|
xaxis: {
|
||||||
@ -321,6 +327,24 @@ export default Vue.extend({
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
activeUsersChart(): any {
|
||||||
|
return {
|
||||||
|
series: [{
|
||||||
|
name: 'Combined',
|
||||||
|
type: 'line',
|
||||||
|
data: this.format(sum(this.stats.activeUsers.local.count, this.stats.activeUsers.remote.count))
|
||||||
|
}, {
|
||||||
|
name: 'Local',
|
||||||
|
type: 'area',
|
||||||
|
data: this.format(this.stats.activeUsers.local.count)
|
||||||
|
}, {
|
||||||
|
name: 'Remote',
|
||||||
|
type: 'area',
|
||||||
|
data: this.format(this.stats.activeUsers.remote.count)
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
driveChart(): any {
|
driveChart(): any {
|
||||||
return {
|
return {
|
||||||
bytes: true,
|
bytes: true,
|
||||||
|
@ -148,7 +148,7 @@ export default Vue.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
updateStats() {
|
updateStats() {
|
||||||
this.$root.api('stats', {}, false, true).then(stats => {
|
this.$root.api('stats', {}, true).then(stats => {
|
||||||
this.stats = stats;
|
this.stats = stats;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -161,7 +161,7 @@ export default Vue.extend({
|
|||||||
padding 16px
|
padding 16px
|
||||||
|
|
||||||
@media (min-width 500px)
|
@media (min-width 500px)
|
||||||
padding 32px
|
padding 16px
|
||||||
|
|
||||||
> header
|
> header
|
||||||
display flex
|
display flex
|
||||||
|
@ -1,5 +1,21 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="pwnqwyet">
|
<div>
|
||||||
|
<ui-card>
|
||||||
|
<div slot="title"><fa :icon="faTerminal"/> {{ $t('operation') }}</div>
|
||||||
|
<section class="fit-top">
|
||||||
|
<ui-input v-model="target" type="text">
|
||||||
|
<span>{{ $t('fileid-or-url') }}</span>
|
||||||
|
</ui-input>
|
||||||
|
<ui-horizon-group>
|
||||||
|
<ui-button @click="findAndToggleSensitive(true)"><fa :icon="faEyeSlash"/> {{ $t('mark-as-sensitive') }}</ui-button>
|
||||||
|
<ui-button @click="findAndToggleSensitive(false)"><fa :icon="faEye"/> {{ $t('unmark-as-sensitive') }}</ui-button>
|
||||||
|
</ui-horizon-group>
|
||||||
|
<ui-button @click="findAndDel()"><fa :icon="faTrashAlt"/> {{ $t('delete') }}</ui-button>
|
||||||
|
<ui-button @click="show()"><fa :icon="faSearch"/> {{ $t('lookup') }}</ui-button>
|
||||||
|
<ui-textarea v-if="file" :value="file | json5" readonly tall style="margin-top:16px;"></ui-textarea>
|
||||||
|
</section>
|
||||||
|
</ui-card>
|
||||||
|
|
||||||
<ui-card>
|
<ui-card>
|
||||||
<div slot="title"><fa :icon="faCloud"/> {{ $t('@.drive') }}</div>
|
<div slot="title"><fa :icon="faCloud"/> {{ $t('@.drive') }}</div>
|
||||||
<section class="fit-top">
|
<section class="fit-top">
|
||||||
@ -57,7 +73,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import i18n from '../../i18n';
|
import i18n from '../../i18n';
|
||||||
import { faCloud } from '@fortawesome/free-solid-svg-icons';
|
import { faCloud, faTerminal, faSearch } from '@fortawesome/free-solid-svg-icons';
|
||||||
import { faTrashAlt, faEye, faEyeSlash } from '@fortawesome/free-regular-svg-icons';
|
import { faTrashAlt, faEye, faEyeSlash } from '@fortawesome/free-regular-svg-icons';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
@ -65,13 +81,15 @@ export default Vue.extend({
|
|||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
file: null,
|
||||||
|
target: null,
|
||||||
sort: '+createdAt',
|
sort: '+createdAt',
|
||||||
origin: 'combined',
|
origin: 'combined',
|
||||||
limit: 10,
|
limit: 10,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
files: [],
|
files: [],
|
||||||
existMore: false,
|
existMore: false,
|
||||||
faCloud, faTrashAlt, faEye, faEyeSlash
|
faCloud, faTrashAlt, faEye, faEyeSlash, faTerminal, faSearch
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -94,6 +112,24 @@ export default Vue.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
async fetchFile() {
|
||||||
|
try {
|
||||||
|
return await this.$root.api('drive/files/show', this.target.startsWith('http') ? { url: this.target } : { fileId: this.target });
|
||||||
|
} catch (e) {
|
||||||
|
if (e == 'file-not-found') {
|
||||||
|
this.$root.dialog({
|
||||||
|
type: 'error',
|
||||||
|
text: this.$t('file-not-found')
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$root.dialog({
|
||||||
|
type: 'error',
|
||||||
|
text: e.toString()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
fetch() {
|
fetch() {
|
||||||
this.$root.api('admin/drive/files', {
|
this.$root.api('admin/drive/files', {
|
||||||
origin: this.origin,
|
origin: this.origin,
|
||||||
@ -147,43 +183,85 @@ export default Vue.extend({
|
|||||||
|
|
||||||
file.isSensitive = !file.isSensitive;
|
file.isSensitive = !file.isSensitive;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async show() {
|
||||||
|
const file = await this.fetchFile();
|
||||||
|
this.$root.api('admin/drive/show-file', { fileId: file.id }).then(info => {
|
||||||
|
this.file = info;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
async findAndToggleSensitive(sensitive) {
|
||||||
|
const process = async () => {
|
||||||
|
const file = await this.fetchFile();
|
||||||
|
await this.$root.api('drive/files/update', {
|
||||||
|
fileId: file.id,
|
||||||
|
isSensitive: sensitive
|
||||||
|
});
|
||||||
|
this.$root.dialog({
|
||||||
|
type: 'success',
|
||||||
|
text: sensitive ? this.$t('marked-as-sensitive') : this.$t('unmarked-as-sensitive')
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
await process().catch(e => {
|
||||||
|
this.$root.dialog({
|
||||||
|
type: 'error',
|
||||||
|
text: e.toString()
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
async findAndDel() {
|
||||||
|
const process = async () => {
|
||||||
|
const file = await this.fetchFile();
|
||||||
|
await this.$root.api('drive/files/delete', { fileId: file.id });
|
||||||
|
this.$root.dialog({
|
||||||
|
type: 'success',
|
||||||
|
text: this.$t('deleted')
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
await process().catch(e => {
|
||||||
|
this.$root.dialog({
|
||||||
|
type: 'error',
|
||||||
|
text: e.toString()
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
.pwnqwyet
|
.kidvdlkg
|
||||||
@media (min-width 500px)
|
padding 16px 0
|
||||||
padding 16px
|
border-top solid 1px var(--faceDivider)
|
||||||
|
|
||||||
.kidvdlkg
|
> div:first-child
|
||||||
padding 16px 0
|
display flex
|
||||||
border-top solid 1px var(--faceDivider)
|
cursor pointer
|
||||||
|
|
||||||
> div:first-child
|
> div:nth-child(1)
|
||||||
display flex
|
> .thumbnail
|
||||||
cursor pointer
|
display block
|
||||||
|
width 64px
|
||||||
|
height 64px
|
||||||
|
background-size cover
|
||||||
|
background-position center center
|
||||||
|
|
||||||
> div:nth-child(1)
|
> div:nth-child(2)
|
||||||
> .thumbnail
|
flex 1
|
||||||
display block
|
padding-left 16px
|
||||||
width 64px
|
|
||||||
height 64px
|
|
||||||
background-size cover
|
|
||||||
background-position center center
|
|
||||||
|
|
||||||
> div:nth-child(2)
|
@media (max-width 500px)
|
||||||
flex 1
|
font-size 14px
|
||||||
padding-left 16px
|
|
||||||
|
|
||||||
@media (max-width 500px)
|
> header
|
||||||
font-size 14px
|
word-break break-word
|
||||||
|
|
||||||
> header
|
> .username
|
||||||
word-break break-word
|
margin-left 8px
|
||||||
|
opacity 0.7
|
||||||
> .username
|
|
||||||
margin-left 8px
|
|
||||||
opacity 0.7
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="tumhkfkmgtvzljezfvmgkeurkfncshbe">
|
<div>
|
||||||
<ui-card>
|
<ui-card>
|
||||||
<div slot="title"><fa icon="plus"/> {{ $t('add-emoji.title') }}</div>
|
<div slot="title"><fa icon="plus"/> {{ $t('add-emoji.title') }}</div>
|
||||||
<section class="fit-top">
|
<section class="fit-top">
|
||||||
@ -150,25 +150,21 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
.tumhkfkmgtvzljezfvmgkeurkfncshbe
|
.oryfrbft
|
||||||
@media (min-width 500px)
|
@media (min-width 500px)
|
||||||
padding 16px
|
display flex
|
||||||
|
|
||||||
|
> div:first-child
|
||||||
|
@media (max-width 500px)
|
||||||
|
padding-bottom 16px
|
||||||
|
|
||||||
|
> img
|
||||||
|
vertical-align bottom
|
||||||
|
|
||||||
|
> div:last-child
|
||||||
|
flex 1
|
||||||
|
|
||||||
.oryfrbft
|
|
||||||
@media (min-width 500px)
|
@media (min-width 500px)
|
||||||
display flex
|
padding-left 16px
|
||||||
|
|
||||||
> div:first-child
|
|
||||||
@media (max-width 500px)
|
|
||||||
padding-bottom 16px
|
|
||||||
|
|
||||||
> img
|
|
||||||
vertical-align bottom
|
|
||||||
|
|
||||||
> div:last-child
|
|
||||||
flex 1
|
|
||||||
|
|
||||||
@media (min-width 500px)
|
|
||||||
padding-left 16px
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -39,10 +39,3 @@ export default Vue.extend({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
|
||||||
.jdnqwkzlnxcfftthoybjxrebyolvoucw
|
|
||||||
width 100%
|
|
||||||
min-height 300px
|
|
||||||
|
|
||||||
</style>
|
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
<li @click="nav('emoji')" :class="{ active: page == 'emoji' }"><fa :icon="faGrin" fixed-width/>{{ $t('emoji') }}</li>
|
<li @click="nav('emoji')" :class="{ active: page == 'emoji' }"><fa :icon="faGrin" fixed-width/>{{ $t('emoji') }}</li>
|
||||||
<li @click="nav('announcements')" :class="{ active: page == 'announcements' }"><fa icon="broadcast-tower" fixed-width/>{{ $t('announcements') }}</li>
|
<li @click="nav('announcements')" :class="{ active: page == 'announcements' }"><fa icon="broadcast-tower" fixed-width/>{{ $t('announcements') }}</li>
|
||||||
<li @click="nav('hashtags')" :class="{ active: page == 'hashtags' }"><fa icon="hashtag" fixed-width/>{{ $t('hashtags') }}</li>
|
<li @click="nav('hashtags')" :class="{ active: page == 'hashtags' }"><fa icon="hashtag" fixed-width/>{{ $t('hashtags') }}</li>
|
||||||
|
<li @click="nav('abuse')" :class="{ active: page == 'abuse' }"><fa :icon="faExclamationCircle" fixed-width/>{{ $t('abuse') }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="back-to-misskey">
|
<div class="back-to-misskey">
|
||||||
<a href="/"><fa :icon="faArrowLeft"/> {{ $t('back-to-misskey') }}</a>
|
<a href="/"><fa :icon="faArrowLeft"/> {{ $t('back-to-misskey') }}</a>
|
||||||
@ -45,7 +46,7 @@
|
|||||||
<div v-if="page == 'announcements'"><x-announcements/></div>
|
<div v-if="page == 'announcements'"><x-announcements/></div>
|
||||||
<div v-if="page == 'hashtags'"><x-hashtags/></div>
|
<div v-if="page == 'hashtags'"><x-hashtags/></div>
|
||||||
<div v-if="page == 'drive'"><x-drive/></div>
|
<div v-if="page == 'drive'"><x-drive/></div>
|
||||||
<div v-if="page == 'update'"></div>
|
<div v-if="page == 'abuse'"><x-abuse/></div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
@ -63,7 +64,8 @@ import XAnnouncements from "./announcements.vue";
|
|||||||
import XHashtags from "./hashtags.vue";
|
import XHashtags from "./hashtags.vue";
|
||||||
import XUsers from "./users.vue";
|
import XUsers from "./users.vue";
|
||||||
import XDrive from "./drive.vue";
|
import XDrive from "./drive.vue";
|
||||||
import { faHeadset, faArrowLeft, faShareAlt } from '@fortawesome/free-solid-svg-icons';
|
import XAbuse from "./abuse.vue";
|
||||||
|
import { faHeadset, faArrowLeft, faShareAlt, faExclamationCircle } from '@fortawesome/free-solid-svg-icons';
|
||||||
import { faGrin } from '@fortawesome/free-regular-svg-icons';
|
import { faGrin } from '@fortawesome/free-regular-svg-icons';
|
||||||
|
|
||||||
// Detect the user agent
|
// Detect the user agent
|
||||||
@ -81,6 +83,7 @@ export default Vue.extend({
|
|||||||
XHashtags,
|
XHashtags,
|
||||||
XUsers,
|
XUsers,
|
||||||
XDrive,
|
XDrive,
|
||||||
|
XAbuse,
|
||||||
},
|
},
|
||||||
provide: {
|
provide: {
|
||||||
isMobile
|
isMobile
|
||||||
@ -94,7 +97,8 @@ export default Vue.extend({
|
|||||||
faGrin,
|
faGrin,
|
||||||
faArrowLeft,
|
faArrowLeft,
|
||||||
faHeadset,
|
faHeadset,
|
||||||
faShareAlt
|
faShareAlt,
|
||||||
|
faExclamationCircle
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -270,6 +274,9 @@ export default Vue.extend({
|
|||||||
> .page
|
> .page
|
||||||
max-width 1150px
|
max-width 1150px
|
||||||
|
|
||||||
|
@media (min-width 500px)
|
||||||
|
padding 16px
|
||||||
|
|
||||||
&.isMobile
|
&.isMobile
|
||||||
> main
|
> main
|
||||||
padding $headerHeight 0 0 0
|
padding $headerHeight 0 0 0
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="axbwjelsbymowqjyywpirzhdlszoncqs">
|
<div>
|
||||||
<ui-card>
|
<ui-card>
|
||||||
<div slot="title"><fa icon="cog"/> {{ $t('instance') }}</div>
|
<div slot="title"><fa icon="cog"/> {{ $t('instance') }}</div>
|
||||||
<section class="fit-top fit-bottom">
|
<section class="fit-top fit-bottom">
|
||||||
@ -22,6 +22,8 @@
|
|||||||
<section>
|
<section>
|
||||||
<ui-switch v-model="disableRegistration">{{ $t('disable-registration') }}</ui-switch>
|
<ui-switch v-model="disableRegistration">{{ $t('disable-registration') }}</ui-switch>
|
||||||
<ui-switch v-model="disableLocalTimeline">{{ $t('disable-local-timeline') }}</ui-switch>
|
<ui-switch v-model="disableLocalTimeline">{{ $t('disable-local-timeline') }}</ui-switch>
|
||||||
|
<ui-switch v-model="disableGlobalTimeline">{{ $t('disable-global-timeline') }}</ui-switch>
|
||||||
|
<ui-info>{{ $t('disabling-timelines-info') }}</ui-info>
|
||||||
</section>
|
</section>
|
||||||
<section class="fit-bottom">
|
<section class="fit-bottom">
|
||||||
<header><fa icon="cloud"/> {{ $t('drive-config') }}</header>
|
<header><fa icon="cloud"/> {{ $t('drive-config') }}</header>
|
||||||
@ -150,6 +152,7 @@ export default Vue.extend({
|
|||||||
maintainerEmail: null,
|
maintainerEmail: null,
|
||||||
disableRegistration: false,
|
disableRegistration: false,
|
||||||
disableLocalTimeline: false,
|
disableLocalTimeline: false,
|
||||||
|
disableGlobalTimeline: false,
|
||||||
mascotImageUrl: null,
|
mascotImageUrl: null,
|
||||||
bannerUrl: null,
|
bannerUrl: null,
|
||||||
errorImageUrl: null,
|
errorImageUrl: null,
|
||||||
@ -198,6 +201,7 @@ export default Vue.extend({
|
|||||||
this.maintainerEmail = meta.maintainer.email;
|
this.maintainerEmail = meta.maintainer.email;
|
||||||
this.disableRegistration = meta.disableRegistration;
|
this.disableRegistration = meta.disableRegistration;
|
||||||
this.disableLocalTimeline = meta.disableLocalTimeline;
|
this.disableLocalTimeline = meta.disableLocalTimeline;
|
||||||
|
this.disableGlobalTimeline = meta.disableGlobalTimeline;
|
||||||
this.mascotImageUrl = meta.mascotImageUrl;
|
this.mascotImageUrl = meta.mascotImageUrl;
|
||||||
this.bannerUrl = meta.bannerUrl;
|
this.bannerUrl = meta.bannerUrl;
|
||||||
this.errorImageUrl = meta.errorImageUrl;
|
this.errorImageUrl = meta.errorImageUrl;
|
||||||
@ -256,6 +260,7 @@ export default Vue.extend({
|
|||||||
maintainerEmail: this.maintainerEmail,
|
maintainerEmail: this.maintainerEmail,
|
||||||
disableRegistration: this.disableRegistration,
|
disableRegistration: this.disableRegistration,
|
||||||
disableLocalTimeline: this.disableLocalTimeline,
|
disableLocalTimeline: this.disableLocalTimeline,
|
||||||
|
disableGlobalTimeline: this.disableGlobalTimeline,
|
||||||
mascotImageUrl: this.mascotImageUrl,
|
mascotImageUrl: this.mascotImageUrl,
|
||||||
bannerUrl: this.bannerUrl,
|
bannerUrl: this.bannerUrl,
|
||||||
errorImageUrl: this.errorImageUrl,
|
errorImageUrl: this.errorImageUrl,
|
||||||
@ -308,10 +313,3 @@ export default Vue.extend({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
|
||||||
.axbwjelsbymowqjyywpirzhdlszoncqs
|
|
||||||
@media (min-width 500px)
|
|
||||||
padding 16px
|
|
||||||
|
|
||||||
</style>
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="jnhmugbb">
|
<div>
|
||||||
<ui-card>
|
<ui-card>
|
||||||
<div slot="title"><fa icon="plus"/> {{ $t('add-moderator.title') }}</div>
|
<div slot="title"><fa icon="plus"/> {{ $t('add-moderator.title') }}</div>
|
||||||
<section class="fit-top">
|
<section class="fit-top">
|
||||||
@ -75,10 +75,3 @@ export default Vue.extend({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
|
||||||
.jnhmugbb
|
|
||||||
@media (min-width 500px)
|
|
||||||
padding 16px
|
|
||||||
|
|
||||||
</style>
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="ucnffhbtogqgscfmqcymwmmupoknpfsw">
|
<div>
|
||||||
<ui-card>
|
<ui-card>
|
||||||
<div slot="title"><fa :icon="faTerminal"/> {{ $t('operation') }}</div>
|
<div slot="title"><fa :icon="faTerminal"/> {{ $t('operation') }}</div>
|
||||||
<section class="fit-top">
|
<section class="fit-top">
|
||||||
@ -277,46 +277,42 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
.ucnffhbtogqgscfmqcymwmmupoknpfsw
|
.kofvwchc
|
||||||
@media (min-width 500px)
|
display flex
|
||||||
padding 16px
|
padding 16px 0
|
||||||
|
border-top solid 1px var(--faceDivider)
|
||||||
|
|
||||||
.kofvwchc
|
> div:first-child
|
||||||
display flex
|
> a
|
||||||
padding 16px 0
|
> .avatar
|
||||||
border-top solid 1px var(--faceDivider)
|
width 64px
|
||||||
|
height 64px
|
||||||
|
|
||||||
> div:first-child
|
> div:last-child
|
||||||
> a
|
flex 1
|
||||||
> .avatar
|
padding-left 16px
|
||||||
width 64px
|
|
||||||
height 64px
|
|
||||||
|
|
||||||
> div:last-child
|
@media (max-width 500px)
|
||||||
flex 1
|
font-size 14px
|
||||||
padding-left 16px
|
|
||||||
|
|
||||||
@media (max-width 500px)
|
> header
|
||||||
font-size 14px
|
> .username
|
||||||
|
margin-left 8px
|
||||||
|
opacity 0.7
|
||||||
|
|
||||||
> header
|
> .is-admin
|
||||||
> .username
|
> .is-moderator
|
||||||
margin-left 8px
|
flex-shrink 0
|
||||||
opacity 0.7
|
align-self center
|
||||||
|
margin 0 0 0 .5em
|
||||||
|
padding 1px 6px
|
||||||
|
font-size 80%
|
||||||
|
border-radius 3px
|
||||||
|
background var(--noteHeaderAdminBg)
|
||||||
|
color var(--noteHeaderAdminFg)
|
||||||
|
|
||||||
> .is-admin
|
> .is-verified
|
||||||
> .is-moderator
|
> .is-suspended
|
||||||
flex-shrink 0
|
margin 0 0 0 .5em
|
||||||
align-self center
|
color #4dabf7
|
||||||
margin 0 0 0 .5em
|
|
||||||
padding 1px 6px
|
|
||||||
font-size 80%
|
|
||||||
border-radius 3px
|
|
||||||
background var(--noteHeaderAdminBg)
|
|
||||||
color var(--noteHeaderAdminFg)
|
|
||||||
|
|
||||||
> .is-verified
|
|
||||||
> .is-suspended
|
|
||||||
margin 0 0 0 .5em
|
|
||||||
color #4dabf7
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -76,7 +76,7 @@ export default (opts: Opts = {}) => ({
|
|||||||
},
|
},
|
||||||
|
|
||||||
title(): string {
|
title(): string {
|
||||||
return new Date(this.appearNote.createdAt).toLocaleString();
|
return '';
|
||||||
},
|
},
|
||||||
|
|
||||||
urls(): string[] {
|
urls(): string[] {
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
import { faTimesCircle, faQuestionCircle } from '@fortawesome/free-regular-svg-icons';
|
import { faTimesCircle, faQuestionCircle } from '@fortawesome/free-regular-svg-icons';
|
||||||
import parseAcct from "../../../../../misc/acct/parse";
|
import parseAcct from "../../../../../misc/acct/parse";
|
||||||
|
|
||||||
@ -93,7 +93,7 @@ export default Vue.extend({
|
|||||||
opacity: 1,
|
opacity: 1,
|
||||||
scale: [1.2, 1],
|
scale: [1.2, 1],
|
||||||
duration: 300,
|
duration: 300,
|
||||||
easing: [0, 0.5, 0.5, 1]
|
easing: 'cubicBezier(0, 0.5, 0.5, 1)'
|
||||||
});
|
});
|
||||||
|
|
||||||
if (this.splash) {
|
if (this.splash) {
|
||||||
@ -142,7 +142,7 @@ export default Vue.extend({
|
|||||||
opacity: 0,
|
opacity: 0,
|
||||||
scale: 0.8,
|
scale: 0.8,
|
||||||
duration: 300,
|
duration: 300,
|
||||||
easing: [0, 0.5, 0.5, 1],
|
easing: 'cubicBezier(0, 0.5, 0.5, 1)',
|
||||||
complete: () => this.destroyDom()
|
complete: () => this.destroyDom()
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -93,8 +93,7 @@ export default Vue.extend({
|
|||||||
},
|
},
|
||||||
plotOptions: {
|
plotOptions: {
|
||||||
bar: {
|
bar: {
|
||||||
columnWidth: '90%',
|
columnWidth: '90%'
|
||||||
endingShape: 'rounded'
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
grid: {
|
grid: {
|
||||||
|
@ -4,13 +4,18 @@
|
|||||||
<header><b><router-link :to="blackUser | userPage"><mk-user-name :user="blackUser"/></router-link></b>({{ $t('@.reversi.black') }}) vs <b><router-link :to="whiteUser | userPage"><mk-user-name :user="whiteUser"/></router-link></b>({{ $t('@.reversi.white') }})</header>
|
<header><b><router-link :to="blackUser | userPage"><mk-user-name :user="blackUser"/></router-link></b>({{ $t('@.reversi.black') }}) vs <b><router-link :to="whiteUser | userPage"><mk-user-name :user="whiteUser"/></router-link></b>({{ $t('@.reversi.white') }})</header>
|
||||||
|
|
||||||
<div style="overflow: hidden; line-height: 28px;">
|
<div style="overflow: hidden; line-height: 28px;">
|
||||||
<p class="turn" v-if="!iAmPlayer && !game.isEnded">{{ $t('@.reversi.turn-of', { name: $options.filters.userName(turnUser) }) }}<mk-ellipsis/></p>
|
<p class="turn" v-if="!iAmPlayer && !game.isEnded">
|
||||||
<p class="turn" v-if="logPos != logs.length">{{ $t('@.reversi.past-turn-of', { name: $options.filters.userName(turnUser) }) }}</p>
|
<mfm :text="$t('@.reversi.turn-of', { name: $options.filters.userName(turnUser) })" :should-break="false" :plain-text="true" :custom-emojis="turnUser.emojis"/>
|
||||||
|
<mk-ellipsis/>
|
||||||
|
</p>
|
||||||
|
<p class="turn" v-if="logPos != logs.length">
|
||||||
|
<mfm :text="$t('@.reversi.past-turn-of', { name: $options.filters.userName(turnUser) })" :should-break="false" :plain-text="true" :custom-emojis="turnUser.emojis"/>
|
||||||
|
</p>
|
||||||
<p class="turn1" v-if="iAmPlayer && !game.isEnded && !isMyTurn">{{ $t('@.reversi.opponent-turn') }}<mk-ellipsis/></p>
|
<p class="turn1" v-if="iAmPlayer && !game.isEnded && !isMyTurn">{{ $t('@.reversi.opponent-turn') }}<mk-ellipsis/></p>
|
||||||
<p class="turn2" v-if="iAmPlayer && !game.isEnded && isMyTurn" v-animate-css="{ classes: 'tada', iteration: 'infinite' }">{{ $t('@.reversi.my-turn') }}</p>
|
<p class="turn2" v-if="iAmPlayer && !game.isEnded && isMyTurn" v-animate-css="{ classes: 'tada', iteration: 'infinite' }">{{ $t('@.reversi.my-turn') }}</p>
|
||||||
<p class="result" v-if="game.isEnded && logPos == logs.length">
|
<p class="result" v-if="game.isEnded && logPos == logs.length">
|
||||||
<template v-if="game.winner">
|
<template v-if="game.winner">
|
||||||
<misskey-flavored-markdown :text="$t('@.reversi.won', { name: $options.filters.userName(game.winner) })" :shouldBreak="false" :plainText="true" :custom-emojis="game.winner.emojis"/>
|
<mfm :text="$t('@.reversi.won', { name: $options.filters.userName(game.winner) })" :should-break="false" :plain-text="true" :custom-emojis="game.winner.emojis"/>
|
||||||
<span v-if="game.surrendered != null"> ({{ $t('surrendered') }})</span>
|
<span v-if="game.surrendered != null"> ({{ $t('surrendered') }})</span>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>{{ $t('@.reversi.drawn') }}</template>
|
<template v-else>{{ $t('@.reversi.drawn') }}</template>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
props: ['image'],
|
props: ['image'],
|
||||||
|
@ -45,6 +45,7 @@ import uiInfo from './ui/info.vue';
|
|||||||
import formButton from './ui/form/button.vue';
|
import formButton from './ui/form/button.vue';
|
||||||
import formRadio from './ui/form/radio.vue';
|
import formRadio from './ui/form/radio.vue';
|
||||||
|
|
||||||
|
Vue.component('mfm', misskeyFlavoredMarkdown);
|
||||||
Vue.component('mk-user-name', userName);
|
Vue.component('mk-user-name', userName);
|
||||||
Vue.component('mk-follow-button', followButton);
|
Vue.component('mk-follow-button', followButton);
|
||||||
Vue.component('mk-error', error);
|
Vue.component('mk-error', error);
|
||||||
@ -63,7 +64,6 @@ Vue.component('mk-forkit', forkit);
|
|||||||
Vue.component('mk-acct', acct);
|
Vue.component('mk-acct', acct);
|
||||||
Vue.component('mk-avatar', avatar);
|
Vue.component('mk-avatar', avatar);
|
||||||
Vue.component('mk-nav', nav);
|
Vue.component('mk-nav', nav);
|
||||||
Vue.component('misskey-flavored-markdown', misskeyFlavoredMarkdown);
|
|
||||||
Vue.component('mk-poll', poll);
|
Vue.component('mk-poll', poll);
|
||||||
Vue.component('mk-poll-editor', pollEditor);
|
Vue.component('mk-poll-editor', pollEditor);
|
||||||
Vue.component('mk-reaction-icon', reactionIcon);
|
Vue.component('mk-reaction-icon', reactionIcon);
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
props: {
|
props: {
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<img src="/assets/desktop/remove.png" alt="Delete"/>
|
<img src="/assets/desktop/remove.png" alt="Delete"/>
|
||||||
</button>
|
</button>
|
||||||
<div class="content" v-if="!message.isDeleted">
|
<div class="content" v-if="!message.isDeleted">
|
||||||
<misskey-flavored-markdown class="text" v-if="message.text" ref="text" :text="message.text" :i="$store.state.i"/>
|
<mfm class="text" v-if="message.text" ref="text" :text="message.text" :i="$store.state.i"/>
|
||||||
<div class="file" v-if="message.file">
|
<div class="file" v-if="message.file">
|
||||||
<a :href="message.file.url" target="_blank" :title="message.file.name">
|
<a :href="message.file.url" target="_blank" :title="message.file.name">
|
||||||
<img v-if="message.file.type.split('/')[0] == 'image'" :src="message.file.url" :alt="message.file.name"
|
<img v-if="message.file.type.split('/')[0] == 'image'" :src="message.file.url" :alt="message.file.name"
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<mfm v-bind="$attrs" class="havbbuyv"/>
|
<mfm-core v-bind="$attrs" class="havbbuyv"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import Mfm from './mfm';
|
import MfmCore from './mfm';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
components: {
|
components: {
|
||||||
Mfm
|
MfmCore
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import i18n from '../../../i18n';
|
import i18n from '../../../i18n';
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
i18n: i18n('common/views/components/reaction-picker.vue'),
|
i18n: i18n('common/views/components/reaction-picker.vue'),
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import Icon from './reaction-icon.vue';
|
import Icon from './reaction-icon.vue';
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
props: {
|
props: {
|
||||||
|
@ -10,7 +10,10 @@
|
|||||||
<span>{{ $t('password') }}</span>
|
<span>{{ $t('password') }}</span>
|
||||||
<span slot="prefix"><fa icon="lock"/></span>
|
<span slot="prefix"><fa icon="lock"/></span>
|
||||||
</ui-input>
|
</ui-input>
|
||||||
<ui-input v-if="user && user.twoFactorEnabled" v-model="token" type="number" required styl="fill"/>
|
<ui-input v-if="user && user.twoFactorEnabled" v-model="token" type="number" required styl="fill">
|
||||||
|
<span>{{ $t('@.2fa') }}</span>
|
||||||
|
<span slot="prefix"><fa icon="gavel"/></span>
|
||||||
|
</ui-input>
|
||||||
<ui-button type="submit" :disabled="signing">{{ signing ? $t('signing-in') : $t('signin') }}</ui-button>
|
<ui-button type="submit" :disabled="signing">{{ signing ? $t('signing-in') : $t('signin') }}</ui-button>
|
||||||
<p v-if="meta && meta.enableTwitterIntegration" style="margin: 8px 0;"><a :href="`${apiUrl}/signin/twitter`">{{ $t('signin-with-twitter') }}</a></p>
|
<p v-if="meta && meta.enableTwitterIntegration" style="margin: 8px 0;"><a :href="`${apiUrl}/signin/twitter`">{{ $t('signin-with-twitter') }}</a></p>
|
||||||
<p v-if="meta && meta.enableGithubIntegration" style="margin: 8px 0;"><a :href="`${apiUrl}/signin/github`">{{ $t('signin-with-github') }}</a></p>
|
<p v-if="meta && meta.enableGithubIntegration" style="margin: 8px 0;"><a :href="`${apiUrl}/signin/github`">{{ $t('signin-with-github') }}</a></p>
|
||||||
@ -72,7 +75,7 @@ export default Vue.extend({
|
|||||||
username: this.username,
|
username: this.username,
|
||||||
password: this.password,
|
password: this.password,
|
||||||
token: this.user && this.user.twoFactorEnabled ? this.token : undefined
|
token: this.user && this.user.twoFactorEnabled ? this.token : undefined
|
||||||
}, true).then(res => {
|
}).then(res => {
|
||||||
localStorage.setItem('i', res.i);
|
localStorage.setItem('i', res.i);
|
||||||
location.reload();
|
location.reload();
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
|
@ -142,11 +142,11 @@ export default Vue.extend({
|
|||||||
password: this.password,
|
password: this.password,
|
||||||
invitationCode: this.invitationCode,
|
invitationCode: this.invitationCode,
|
||||||
'g-recaptcha-response': this.meta.enableRecaptcha ? (window as any).grecaptcha.getResponse() : null
|
'g-recaptcha-response': this.meta.enableRecaptcha ? (window as any).grecaptcha.getResponse() : null
|
||||||
}, true).then(() => {
|
}).then(() => {
|
||||||
this.$root.api('signin', {
|
this.$root.api('signin', {
|
||||||
username: this.username,
|
username: this.username,
|
||||||
password: this.password
|
password: this.password
|
||||||
}, true).then(res => {
|
}).then(res => {
|
||||||
localStorage.setItem('i', res.i);
|
localStorage.setItem('i', res.i);
|
||||||
location.reload();
|
location.reload();
|
||||||
});
|
});
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import i18n from '../../../i18n';
|
import i18n from '../../../i18n';
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
i18n: i18n('common/views/components/stream-indicator.vue'),
|
i18n: i18n('common/views/components/stream-indicator.vue'),
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<time class="mk-time">
|
<time class="mk-time" :title="absolute">
|
||||||
<span v-if=" mode == 'relative' ">{{ relative }}</span>
|
<span v-if=" mode == 'relative' ">{{ relative }}</span>
|
||||||
<span v-if=" mode == 'absolute' ">{{ absolute }}</span>
|
<span v-if=" mode == 'absolute' ">{{ absolute }}</span>
|
||||||
<span v-if=" mode == 'detail' ">{{ absolute }} ({{ relative }})</span>
|
<span v-if=" mode == 'detail' ">{{ absolute }} ({{ relative }})</span>
|
||||||
|
157
src/client/app/common/views/components/user-menu.vue
Normal file
157
src/client/app/common/views/components/user-menu.vue
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
<template>
|
||||||
|
<div style="position:initial">
|
||||||
|
<mk-menu :source="source" :items="items" @closed="closed"/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
import Vue from 'vue';
|
||||||
|
import i18n from '../../../i18n';
|
||||||
|
import copyToClipboard from '../../../common/scripts/copy-to-clipboard';
|
||||||
|
import { faExclamationCircle } from '@fortawesome/free-solid-svg-icons';
|
||||||
|
|
||||||
|
export default Vue.extend({
|
||||||
|
i18n: i18n('common/views/components/user-menu.vue'),
|
||||||
|
|
||||||
|
props: ['user', 'source'],
|
||||||
|
|
||||||
|
data() {
|
||||||
|
let menu = [{
|
||||||
|
icon: ['fas', 'at'],
|
||||||
|
text: this.$t('mention'),
|
||||||
|
action: () => {
|
||||||
|
this.$post({ mention: this.user });
|
||||||
|
}
|
||||||
|
}, null, {
|
||||||
|
icon: ['fas', 'list'],
|
||||||
|
text: this.$t('push-to-list'),
|
||||||
|
action: this.pushList
|
||||||
|
}, null, {
|
||||||
|
icon: this.user.isMuted ? ['fas', 'eye'] : ['far', 'eye-slash'],
|
||||||
|
text: this.user.isMuted ? this.$t('unmute') : this.$t('mute'),
|
||||||
|
action: this.toggleMute
|
||||||
|
}, {
|
||||||
|
icon: 'ban',
|
||||||
|
text: this.user.isBlocking ? this.$t('unblock') : this.$t('block'),
|
||||||
|
action: this.toggleBlock
|
||||||
|
}, null, {
|
||||||
|
icon: faExclamationCircle,
|
||||||
|
text: this.$t('report-abuse'),
|
||||||
|
action: this.reportAbuse
|
||||||
|
}];
|
||||||
|
|
||||||
|
return {
|
||||||
|
items: menu
|
||||||
|
};
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
closed() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.destroyDom();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
async pushList() {
|
||||||
|
const lists = await this.$root.api('users/lists/list');
|
||||||
|
const { canceled, result: listId } = await this.$root.dialog({
|
||||||
|
type: null,
|
||||||
|
title: this.$t('select-list'),
|
||||||
|
select: {
|
||||||
|
items: lists.map(list => ({
|
||||||
|
value: list.id, text: list.title
|
||||||
|
}))
|
||||||
|
},
|
||||||
|
showCancelButton: true
|
||||||
|
});
|
||||||
|
if (canceled) return;
|
||||||
|
await this.$root.api('users/lists/push', {
|
||||||
|
listId: listId,
|
||||||
|
userId: this.user.id
|
||||||
|
});
|
||||||
|
this.$root.dialog({
|
||||||
|
type: 'success',
|
||||||
|
text: this.$t('list-pushed', {
|
||||||
|
user: this.user.name,
|
||||||
|
list: lists.find(l => l.id === listId).title
|
||||||
|
})
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
toggleMute() {
|
||||||
|
if (this.user.isMuted) {
|
||||||
|
this.$root.api('mute/delete', {
|
||||||
|
userId: this.user.id
|
||||||
|
}).then(() => {
|
||||||
|
this.user.isMuted = false;
|
||||||
|
}, () => {
|
||||||
|
this.$root.dialog({
|
||||||
|
type: 'error',
|
||||||
|
text: e
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$root.api('mute/create', {
|
||||||
|
userId: this.user.id
|
||||||
|
}).then(() => {
|
||||||
|
this.user.isMuted = true;
|
||||||
|
}, () => {
|
||||||
|
this.$root.dialog({
|
||||||
|
type: 'error',
|
||||||
|
text: e
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
toggleBlock() {
|
||||||
|
if (this.user.isBlocking) {
|
||||||
|
this.$root.api('blocking/delete', {
|
||||||
|
userId: this.user.id
|
||||||
|
}).then(() => {
|
||||||
|
this.user.isBlocking = false;
|
||||||
|
}, () => {
|
||||||
|
this.$root.dialog({
|
||||||
|
type: 'error',
|
||||||
|
text: e
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$root.api('blocking/create', {
|
||||||
|
userId: this.user.id
|
||||||
|
}).then(() => {
|
||||||
|
this.user.isBlocking = true;
|
||||||
|
}, () => {
|
||||||
|
this.$root.dialog({
|
||||||
|
type: 'error',
|
||||||
|
text: e
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
async reportAbuse() {
|
||||||
|
const reported = this.$t('report-abuse-reported'); // なぜか後で参照すると null になるので最初にメモリに確保しておく
|
||||||
|
const { canceled, result: comment } = await this.$root.dialog({
|
||||||
|
title: this.$t('report-abuse-detail'),
|
||||||
|
input: true
|
||||||
|
});
|
||||||
|
if (canceled) return;
|
||||||
|
this.$root.api('users/report-abuse', {
|
||||||
|
userId: this.user.id,
|
||||||
|
comment: comment
|
||||||
|
}).then(() => {
|
||||||
|
this.$root.dialog({
|
||||||
|
type: 'success',
|
||||||
|
text: reported
|
||||||
|
});
|
||||||
|
}, e => {
|
||||||
|
this.$root.dialog({
|
||||||
|
type: 'error',
|
||||||
|
text: e
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<misskey-flavored-markdown :text="user.name || user.username" :should-break="false" :plain-text="true" :custom-emojis="user.emojis"/>
|
<mfm :text="user.name || user.username" :should-break="false" :plain-text="true" :custom-emojis="user.emojis"/>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
@ -55,7 +55,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import i18n from '../../../i18n';
|
import i18n from '../../../i18n';
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
i18n: i18n('common/views/components/visibility-chooser.vue'),
|
i18n: i18n('common/views/components/visibility-chooser.vue'),
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<div class="text">
|
<div class="text">
|
||||||
<misskey-flavored-markdown v-if="note.text" :text="note.cw != null ? note.cw : note.text" :author="note.user" :custom-emojis="note.emojis"/>
|
<mfm v-if="note.text" :text="note.cw != null ? note.cw : note.text" :author="note.user" :custom-emojis="note.emojis"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="syxhndwprovvuqhmyvveewmbqayniwkv" v-if="!fetching">
|
<div class="syxhndwprovvuqhmyvveewmbqayniwkv" v-if="!fetching">
|
||||||
<div class="signed-in-as" v-html="this.$t('signed-in-as').replace('{}', `<b>${myName}`)"></div>
|
<div class="signed-in-as">
|
||||||
|
<mfm :text="$t('signed-in-as').replace('{}', myName)" :should-break="false" :plain-text="true" :custom-emojis="$store.state.i.emojis"/>
|
||||||
|
</div>
|
||||||
<main>
|
<main>
|
||||||
<div class="banner" :style="bannerStyle"></div>
|
<div class="banner" :style="bannerStyle"></div>
|
||||||
<mk-avatar class="avatar" :user="user" :disable-preview="true"/>
|
<mk-avatar class="avatar" :user="user" :disable-preview="true"/>
|
||||||
@ -11,7 +12,7 @@
|
|||||||
</router-link>
|
</router-link>
|
||||||
<span class="username">@{{ user | acct }}</span>
|
<span class="username">@{{ user | acct }}</span>
|
||||||
<div class="description">
|
<div class="description">
|
||||||
<misskey-flavored-markdown v-if="user.description" :text="user.description" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
|
<mfm v-if="user.description" :text="user.description" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
@ -127,6 +128,7 @@ export default Vue.extend({
|
|||||||
> .signed-in-as
|
> .signed-in-as
|
||||||
margin-bottom 16px
|
margin-bottom 16px
|
||||||
font-size 14px
|
font-size 14px
|
||||||
|
font-weight bold
|
||||||
|
|
||||||
> main
|
> main
|
||||||
margin-bottom 16px
|
margin-bottom 16px
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
import define from '../../../common/define-widget';
|
import define from '../../../common/define-widget';
|
||||||
import i18n from '../../../i18n';
|
import i18n from '../../../i18n';
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
import define from '../../../common/define-widget';
|
import define from '../../../common/define-widget';
|
||||||
import i18n from '../../../i18n';
|
import i18n from '../../../i18n';
|
||||||
|
|
||||||
|
@ -147,7 +147,7 @@ init(async (launch) => {
|
|||||||
{ path: '/search', component: MkSearch },
|
{ path: '/search', component: MkSearch },
|
||||||
{ path: '/tags/:tag', name: 'tag', component: MkTag },
|
{ path: '/tags/:tag', name: 'tag', component: MkTag },
|
||||||
{ path: '/share', component: MkShare },
|
{ path: '/share', component: MkShare },
|
||||||
{ path: '/reversi/:game?', component: MkReversi },
|
{ path: '/games/reversi/:game?', component: MkReversi },
|
||||||
{ path: '/@:user', name: 'user', component: MkUser },
|
{ path: '/@:user', name: 'user', component: MkUser },
|
||||||
{ path: '/@:user/following', name: 'userFollowing', component: MkUserFollowingOrFollowers },
|
{ path: '/@:user/following', name: 'userFollowing', component: MkUserFollowingOrFollowers },
|
||||||
{ path: '/@:user/followers', name: 'userFollowers', component: MkUserFollowingOrFollowers },
|
{ path: '/@:user/followers', name: 'userFollowers', component: MkUserFollowingOrFollowers },
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
import contains from '../../../common/scripts/contains';
|
import contains from '../../../common/scripts/contains';
|
||||||
import XMenu from './context-menu.menu.vue';
|
import XMenu from './context-menu.menu.vue';
|
||||||
|
|
||||||
|
@ -34,8 +34,10 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import i18n from '../../../i18n';
|
import i18n from '../../../i18n';
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
import copyToClipboard from '../../../common/scripts/copy-to-clipboard';
|
import copyToClipboard from '../../../common/scripts/copy-to-clipboard';
|
||||||
|
import updateAvatar from '../../api/update-avatar';
|
||||||
|
import updateBanner from '../../api/update-banner';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
i18n: i18n('desktop/views/components/drive.file.vue'),
|
i18n: i18n('desktop/views/components/drive.file.vue'),
|
||||||
@ -180,11 +182,11 @@ export default Vue.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
setAsAvatar() {
|
setAsAvatar() {
|
||||||
this.$updateAvatar(this.file);
|
updateAvatar(this.$root)(this.file);
|
||||||
},
|
},
|
||||||
|
|
||||||
setAsBanner() {
|
setAsBanner() {
|
||||||
this.$updateBanner(this.file);
|
updateBanner(this.$root)(this.file);
|
||||||
},
|
},
|
||||||
|
|
||||||
addApp() {
|
addApp() {
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
props: ['video', 'start'],
|
props: ['video', 'start'],
|
||||||
|
@ -40,14 +40,14 @@
|
|||||||
</header>
|
</header>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<p v-if="appearNote.cw != null" class="cw">
|
<p v-if="appearNote.cw != null" class="cw">
|
||||||
<misskey-flavored-markdown v-if="appearNote.cw != ''" class="text" :text="appearNote.cw" :author="appearNote.user" :i="$store.state.i" :custom-emojis="appearNote.emojis" />
|
<mfm v-if="appearNote.cw != ''" class="text" :text="appearNote.cw" :author="appearNote.user" :i="$store.state.i" :custom-emojis="appearNote.emojis" />
|
||||||
<mk-cw-button v-model="showContent" :note="appearNote"/>
|
<mk-cw-button v-model="showContent" :note="appearNote"/>
|
||||||
</p>
|
</p>
|
||||||
<div class="content" v-show="appearNote.cw == null || showContent">
|
<div class="content" v-show="appearNote.cw == null || showContent">
|
||||||
<div class="text">
|
<div class="text">
|
||||||
<span v-if="appearNote.isHidden" style="opacity: 0.5">{{ $t('private') }}</span>
|
<span v-if="appearNote.isHidden" style="opacity: 0.5">{{ $t('private') }}</span>
|
||||||
<span v-if="appearNote.deletedAt" style="opacity: 0.5">{{ $t('deleted') }}</span>
|
<span v-if="appearNote.deletedAt" style="opacity: 0.5">{{ $t('deleted') }}</span>
|
||||||
<misskey-flavored-markdown v-if="appearNote.text" :text="appearNote.text" :author="appearNote.user" :i="$store.state.i" :custom-emojis="appearNote.emojis" />
|
<mfm v-if="appearNote.text" :text="appearNote.text" :author="appearNote.user" :i="$store.state.i" :custom-emojis="appearNote.emojis" />
|
||||||
</div>
|
</div>
|
||||||
<div class="files" v-if="appearNote.files.length > 0">
|
<div class="files" v-if="appearNote.files.length > 0">
|
||||||
<mk-media-list :media-list="appearNote.files" :raw="true"/>
|
<mk-media-list :media-list="appearNote.files" :raw="true"/>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<mk-note-header class="header" :note="note" :mini="true"/>
|
<mk-note-header class="header" :note="note" :mini="true"/>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<p v-if="note.cw != null" class="cw">
|
<p v-if="note.cw != null" class="cw">
|
||||||
<misskey-flavored-markdown v-if="note.cw != ''" class="text" :text="note.cw" :author="note.user" :i="$store.state.i" :custom-emojis="note.emojis" />
|
<mfm v-if="note.cw != ''" class="text" :text="note.cw" :author="note.user" :i="$store.state.i" :custom-emojis="note.emojis" />
|
||||||
<mk-cw-button v-model="showContent" :note="note"/>
|
<mk-cw-button v-model="showContent" :note="note"/>
|
||||||
</p>
|
</p>
|
||||||
<div class="content" v-show="note.cw == null || showContent">
|
<div class="content" v-show="note.cw == null || showContent">
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<mk-note-header class="header" :note="note"/>
|
<mk-note-header class="header" :note="note"/>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<p v-if="note.cw != null" class="cw">
|
<p v-if="note.cw != null" class="cw">
|
||||||
<misskey-flavored-markdown v-if="note.cw != ''" class="text" :text="note.cw" :author="note.user" :i="$store.state.i" :custom-emojis="note.emojis" />
|
<mfm v-if="note.cw != ''" class="text" :text="note.cw" :author="note.user" :i="$store.state.i" :custom-emojis="note.emojis" />
|
||||||
<mk-cw-button v-model="showContent" :note="note"/>
|
<mk-cw-button v-model="showContent" :note="note"/>
|
||||||
</p>
|
</p>
|
||||||
<div class="content" v-show="note.cw == null || showContent">
|
<div class="content" v-show="note.cw == null || showContent">
|
||||||
|
@ -20,14 +20,14 @@
|
|||||||
<mk-note-header class="header" :note="appearNote" :mini="mini"/>
|
<mk-note-header class="header" :note="appearNote" :mini="mini"/>
|
||||||
<div class="body" v-if="appearNote.deletedAt == null">
|
<div class="body" v-if="appearNote.deletedAt == null">
|
||||||
<p v-if="appearNote.cw != null" class="cw">
|
<p v-if="appearNote.cw != null" class="cw">
|
||||||
<misskey-flavored-markdown v-if="appearNote.cw != ''" class="text" :text="appearNote.cw" :author="appearNote.user" :i="$store.state.i" :custom-emojis="appearNote.emojis" />
|
<mfm v-if="appearNote.cw != ''" class="text" :text="appearNote.cw" :author="appearNote.user" :i="$store.state.i" :custom-emojis="appearNote.emojis" />
|
||||||
<mk-cw-button v-model="showContent" :note="appearNote"/>
|
<mk-cw-button v-model="showContent" :note="appearNote"/>
|
||||||
</p>
|
</p>
|
||||||
<div class="content" v-show="appearNote.cw == null || showContent">
|
<div class="content" v-show="appearNote.cw == null || showContent">
|
||||||
<div class="text">
|
<div class="text">
|
||||||
<span v-if="appearNote.isHidden" style="opacity: 0.5">{{ $t('private') }}</span>
|
<span v-if="appearNote.isHidden" style="opacity: 0.5">{{ $t('private') }}</span>
|
||||||
<a class="reply" v-if="appearNote.reply"><fa icon="reply"/></a>
|
<a class="reply" v-if="appearNote.reply"><fa icon="reply"/></a>
|
||||||
<misskey-flavored-markdown v-if="appearNote.text" :text="appearNote.text" :author="appearNote.user" :i="$store.state.i" :custom-emojis="appearNote.emojis"/>
|
<mfm v-if="appearNote.text" :text="appearNote.text" :author="appearNote.user" :i="$store.state.i" :custom-emojis="appearNote.emojis"/>
|
||||||
<a class="rp" v-if="appearNote.renote">RN:</a>
|
<a class="rp" v-if="appearNote.renote">RN:</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="files" v-if="appearNote.files.length > 0">
|
<div class="files" v-if="appearNote.files.length > 0">
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
||||||
<fa icon="quote-left"/>
|
<fa icon="quote-left"/>
|
||||||
<misskey-flavored-markdown :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
<mfm :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
||||||
<fa icon="quote-right"/>
|
<fa icon="quote-right"/>
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
@ -40,7 +40,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note.renote)">
|
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note.renote)">
|
||||||
<fa icon="quote-left"/>
|
<fa icon="quote-left"/>
|
||||||
<misskey-flavored-markdown :text="getNoteSummary(notification.note.renote)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.renote.emojis"/>
|
<mfm :text="getNoteSummary(notification.note.renote)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.renote.emojis"/>
|
||||||
<fa icon="quote-right"/>
|
<fa icon="quote-right"/>
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
@ -55,7 +55,7 @@
|
|||||||
</router-link>
|
</router-link>
|
||||||
</p>
|
</p>
|
||||||
<router-link class="note-preview" :to="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
<router-link class="note-preview" :to="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
||||||
<misskey-flavored-markdown :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
<mfm :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -91,7 +91,7 @@
|
|||||||
</router-link>
|
</router-link>
|
||||||
</p>
|
</p>
|
||||||
<router-link class="note-preview" :to="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
<router-link class="note-preview" :to="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
||||||
<misskey-flavored-markdown :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
<mfm :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -105,7 +105,7 @@
|
|||||||
</router-link>
|
</router-link>
|
||||||
</p>
|
</p>
|
||||||
<a class="note-preview" :href="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
<a class="note-preview" :href="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
||||||
<misskey-flavored-markdown :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
<mfm :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -118,7 +118,7 @@
|
|||||||
</a></p>
|
</a></p>
|
||||||
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
||||||
<fa icon="quote-left"/>
|
<fa icon="quote-left"/>
|
||||||
<misskey-flavored-markdown :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
<mfm :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
||||||
<fa icon="quote-right"/>
|
<fa icon="quote-right"/>
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
|
@ -222,12 +222,6 @@ export default Vue.extend({
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// keep cw when reply
|
|
||||||
if (this.reply && this.reply.cw != null) {
|
|
||||||
this.useCw = true;
|
|
||||||
this.cw = this.reply.cw;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
// 書きかけの投稿を復元
|
// 書きかけの投稿を復元
|
||||||
if (!this.instant && !this.mention) {
|
if (!this.instant && !this.mention) {
|
||||||
|
@ -32,13 +32,6 @@
|
|||||||
<span slot="desc">{{ $t('auto-popout-desc') }}</span>
|
<span slot="desc">{{ $t('auto-popout-desc') }}</span>
|
||||||
</ui-switch>
|
</ui-switch>
|
||||||
<ui-switch v-model="deckNav">{{ $t('deck-nav') }}<span slot="desc">{{ $t('deck-nav-desc') }}</span></ui-switch>
|
<ui-switch v-model="deckNav">{{ $t('deck-nav') }}<span slot="desc">{{ $t('deck-nav-desc') }}</span></ui-switch>
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>{{ $t('advanced') }}</summary>
|
|
||||||
<ui-switch v-model="apiViaStream">{{ $t('api-via-stream') }}
|
|
||||||
<span slot="desc">{{ $t('api-via-stream-desc') }}</span>
|
|
||||||
</ui-switch>
|
|
||||||
</details>
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
@ -203,7 +196,7 @@
|
|||||||
</ui-card>
|
</ui-card>
|
||||||
|
|
||||||
<ui-card class="2fa" v-show="page == 'security'">
|
<ui-card class="2fa" v-show="page == 'security'">
|
||||||
<div slot="title"><fa icon="mobile-alt"/> {{ $t('2fa') }}</div>
|
<div slot="title"><fa icon="mobile-alt"/> {{ $t('@.2fa') }}</div>
|
||||||
<section>
|
<section>
|
||||||
<x-2fa/>
|
<x-2fa/>
|
||||||
</section>
|
</section>
|
||||||
@ -333,11 +326,6 @@ export default Vue.extend({
|
|||||||
set(value) { this.$store.commit('device/set', { key: 'reduceMotion', value }); }
|
set(value) { this.$store.commit('device/set', { key: 'reduceMotion', value }); }
|
||||||
},
|
},
|
||||||
|
|
||||||
apiViaStream: {
|
|
||||||
get() { return this.$store.state.device.apiViaStream; },
|
|
||||||
set(value) { this.$store.commit('device/set', { key: 'apiViaStream', value }); }
|
|
||||||
},
|
|
||||||
|
|
||||||
autoPopout: {
|
autoPopout: {
|
||||||
get() { return this.$store.state.device.autoPopout; },
|
get() { return this.$store.state.device.autoPopout; },
|
||||||
set(value) { this.$store.commit('device/set', { key: 'autoPopout', value }); }
|
set(value) { this.$store.commit('device/set', { key: 'autoPopout', value }); }
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<span v-if="note.isHidden" style="opacity: 0.5">{{ $t('private') }}</span>
|
<span v-if="note.isHidden" style="opacity: 0.5">{{ $t('private') }}</span>
|
||||||
<span v-if="note.deletedAt" style="opacity: 0.5">{{ $t('deleted') }}</span>
|
<span v-if="note.deletedAt" style="opacity: 0.5">{{ $t('deleted') }}</span>
|
||||||
<a class="reply" v-if="note.replyId"><fa icon="reply"/></a>
|
<a class="reply" v-if="note.replyId"><fa icon="reply"/></a>
|
||||||
<misskey-flavored-markdown v-if="note.text" :text="note.text" :author="note.user" :i="$store.state.i" :custom-emojis="note.emojis"/>
|
<mfm v-if="note.text" :text="note.text" :author="note.user" :i="$store.state.i" :custom-emojis="note.emojis"/>
|
||||||
<a class="rp" v-if="note.renoteId" :href="`/notes/${note.renoteId}`">RN: ...</a>
|
<a class="rp" v-if="note.renoteId" :href="`/notes/${note.renoteId}`">RN: ...</a>
|
||||||
</div>
|
</div>
|
||||||
<details v-if="note.files.length > 0">
|
<details v-if="note.files.length > 0">
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<span :data-active="src == 'home'" @click="src = 'home'"><fa icon="home"/> {{ $t('home') }}</span>
|
<span :data-active="src == 'home'" @click="src = 'home'"><fa icon="home"/> {{ $t('home') }}</span>
|
||||||
<span :data-active="src == 'local'" @click="src = 'local'" v-if="enableLocalTimeline"><fa :icon="['far', 'comments']"/> {{ $t('local') }}</span>
|
<span :data-active="src == 'local'" @click="src = 'local'" v-if="enableLocalTimeline"><fa :icon="['far', 'comments']"/> {{ $t('local') }}</span>
|
||||||
<span :data-active="src == 'hybrid'" @click="src = 'hybrid'" v-if="enableLocalTimeline"><fa icon="share-alt"/> {{ $t('hybrid') }}</span>
|
<span :data-active="src == 'hybrid'" @click="src = 'hybrid'" v-if="enableLocalTimeline"><fa icon="share-alt"/> {{ $t('hybrid') }}</span>
|
||||||
<span :data-active="src == 'global'" @click="src = 'global'"><fa icon="globe"/> {{ $t('global') }}</span>
|
<span :data-active="src == 'global'" @click="src = 'global'" v-if="enableGlobalTimeline"><fa icon="globe"/> {{ $t('global') }}</span>
|
||||||
<span :data-active="src == 'tag'" @click="src = 'tag'" v-if="tagTl"><fa icon="hashtag"/> {{ tagTl.title }}</span>
|
<span :data-active="src == 'tag'" @click="src = 'tag'" v-if="tagTl"><fa icon="hashtag"/> {{ tagTl.title }}</span>
|
||||||
<span :data-active="src == 'list'" @click="src = 'list'" v-if="list"><fa icon="list"/> {{ list.title }}</span>
|
<span :data-active="src == 'list'" @click="src = 'list'" v-if="list"><fa icon="list"/> {{ list.title }}</span>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
@ -43,7 +43,8 @@ export default Vue.extend({
|
|||||||
src: 'home',
|
src: 'home',
|
||||||
list: null,
|
list: null,
|
||||||
tagTl: null,
|
tagTl: null,
|
||||||
enableLocalTimeline: false
|
enableLocalTimeline: false,
|
||||||
|
enableGlobalTimeline: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -65,7 +66,8 @@ export default Vue.extend({
|
|||||||
|
|
||||||
created() {
|
created() {
|
||||||
this.$root.getMeta().then(meta => {
|
this.$root.getMeta().then(meta => {
|
||||||
this.enableLocalTimeline = !meta.disableLocalTimeline;
|
this.enableLocalTimeline = !meta.disableLocalTimeline || this.$store.state.i.isModerator || this.$store.state.i.isAdmin;
|
||||||
|
this.enableGlobalTimeline = !meta.disableGlobalTimeline || this.$store.state.i.isModerator || this.$store.state.i.isAdmin;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (this.$store.state.device.tl) {
|
if (this.$store.state.device.tl) {
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
props: ['message'],
|
props: ['message'],
|
||||||
|
@ -29,7 +29,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import i18n from '../../../i18n';
|
import i18n from '../../../i18n';
|
||||||
import * as anime from 'animejs';
|
|
||||||
import { env } from '../../../config';
|
import { env } from '../../../config';
|
||||||
|
|
||||||
import XNav from './ui.header.nav.vue';
|
import XNav from './ui.header.nav.vue';
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<span class="username">@{{ user | acct }} <fa v-if="user.isLocked == true" class="locked" icon="lock" fixed-width/></span>
|
<span class="username">@{{ user | acct }} <fa v-if="user.isLocked == true" class="locked" icon="lock" fixed-width/></span>
|
||||||
|
|
||||||
<div class="description">
|
<div class="description">
|
||||||
<misskey-flavored-markdown v-if="user.description" :text="user.description" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
|
<mfm v-if="user.description" :text="user.description" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
<p class="username"><mk-acct :user="u"/></p>
|
<p class="username"><mk-acct :user="u"/></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="description">
|
<div class="description">
|
||||||
<misskey-flavored-markdown v-if="u.description" :text="u.description" :author="u" :i="$store.state.i" :custom-emojis="u.emojis"/>
|
<mfm v-if="u.description" :text="u.description" :author="u" :i="$store.state.i" :custom-emojis="u.emojis"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="status">
|
<div class="status">
|
||||||
<div>
|
<div>
|
||||||
@ -29,7 +29,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import i18n from '../../../i18n';
|
import i18n from '../../../i18n';
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
import parseAcct from '../../../../../misc/acct/parse';
|
import parseAcct from '../../../../../misc/acct/parse';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import i18n from '../../../i18n';
|
import i18n from '../../../i18n';
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
import contains from '../../../common/scripts/contains';
|
import contains from '../../../common/scripts/contains';
|
||||||
|
|
||||||
const minHeight = 40;
|
const minHeight = 40;
|
||||||
@ -196,7 +196,7 @@ export default Vue.extend({
|
|||||||
opacity: 0,
|
opacity: 0,
|
||||||
scale: 0.8,
|
scale: 0.8,
|
||||||
duration: this.animation ? 300 : 0,
|
duration: this.animation ? 300 : 0,
|
||||||
easing: [0.5, -0.5, 1, 0.5]
|
easing: 'cubicBezier(0.5, -0.5, 1, 0.5)'
|
||||||
});
|
});
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<x-column>
|
<x-column>
|
||||||
<span slot="header">
|
<span slot="header">
|
||||||
<fa :icon="['far', 'comment-alt']"/><span>{{ title }}</span>
|
<fa :icon="['far', 'comment-alt']"/><mk-user-name :user="note.user" v-if="note"/>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<div class="rvtscbadixhhbsczoorqoaygovdeecsx" v-if="note">
|
<div class="rvtscbadixhhbsczoorqoaygovdeecsx" v-if="note">
|
||||||
@ -45,12 +45,6 @@ export default Vue.extend({
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
|
||||||
title(): string {
|
|
||||||
return this.note ? Vue.filter('userName')(this.note.user) : '';
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
created() {
|
created() {
|
||||||
this.$root.api('notes/show', { noteId: this.noteId }).then(note => {
|
this.$root.api('notes/show', { noteId: this.noteId }).then(note => {
|
||||||
this.note = note;
|
this.note = note;
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
</header>
|
</header>
|
||||||
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
||||||
<fa icon="quote-left"/>
|
<fa icon="quote-left"/>
|
||||||
<misskey-flavored-markdown :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
<mfm :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
||||||
<fa icon="quote-right"/>
|
<fa icon="quote-right"/>
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
@ -30,7 +30,7 @@
|
|||||||
</header>
|
</header>
|
||||||
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note.renote)">
|
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note.renote)">
|
||||||
<fa icon="quote-left"/>
|
<fa icon="quote-left"/>
|
||||||
<misskey-flavored-markdown :text="getNoteSummary(notification.note.renote)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.renote.emojis"/>
|
<mfm :text="getNoteSummary(notification.note.renote)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.renote.emojis"/>
|
||||||
<fa icon="quote-right"/>
|
<fa icon="quote-right"/>
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
@ -74,7 +74,7 @@
|
|||||||
</header>
|
</header>
|
||||||
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
||||||
<fa icon="quote-left"/>
|
<fa icon="quote-left"/>
|
||||||
<misskey-flavored-markdown :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
<mfm :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
||||||
<fa icon="quote-right"/>
|
<fa icon="quote-right"/>
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<x-column>
|
<x-column>
|
||||||
<span slot="header">
|
<span slot="header">
|
||||||
<fa icon="user"/><span>{{ title }}</span>
|
<fa icon="user"/><mk-user-name :user="user" v-if="user"/>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<div class="zubukjlciycdsyynicqrnlsmdwmymzqu" v-if="user">
|
<div class="zubukjlciycdsyynicqrnlsmdwmymzqu" v-if="user">
|
||||||
@ -24,15 +24,15 @@
|
|||||||
</header>
|
</header>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<div class="description">
|
<div class="description">
|
||||||
<misskey-flavored-markdown v-if="user.description" :text="user.description" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
|
<mfm v-if="user.description" :text="user.description" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="fields" v-if="user.fields">
|
<div class="fields" v-if="user.fields">
|
||||||
<dl class="field" v-for="(field, i) in user.fields" :key="i">
|
<dl class="field" v-for="(field, i) in user.fields" :key="i">
|
||||||
<dt class="name">
|
<dt class="name">
|
||||||
<misskey-flavored-markdown :text="field.name" :shouldBreak="false" :plainText="true" :custom-emojis="user.emojis"/>
|
<mfm :text="field.name" :should-break="false" :plain-text="true" :custom-emojis="user.emojis"/>
|
||||||
</dt>
|
</dt>
|
||||||
<dd class="value">
|
<dd class="value">
|
||||||
<misskey-flavored-markdown :text="field.value" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
|
<mfm :text="field.value" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
@ -49,9 +49,6 @@
|
|||||||
<b>{{ user.followersCount | number }}</b>
|
<b>{{ user.followersCount | number }}</b>
|
||||||
<span>{{ $t('followers') }}</span>
|
<span>{{ $t('followers') }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="mention">
|
|
||||||
<button @click="mention" :title="$t('mention')"><fa icon="at"/></button>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="pinned" v-if="user.pinnedNotes && user.pinnedNotes.length > 0">
|
<div class="pinned" v-if="user.pinnedNotes && user.pinnedNotes.length > 0">
|
||||||
@ -100,8 +97,7 @@ import parseAcct from '../../../../../../misc/acct/parse';
|
|||||||
import XColumn from './deck.column.vue';
|
import XColumn from './deck.column.vue';
|
||||||
import XNotes from './deck.notes.vue';
|
import XNotes from './deck.notes.vue';
|
||||||
import XNote from '../../components/note.vue';
|
import XNote from '../../components/note.vue';
|
||||||
import Menu from '../../../../common/views/components/menu.vue';
|
import XUserMenu from '../../../../common/views/components/user-menu.vue';
|
||||||
import MkUserListsWindow from '../../components/user-lists-window.vue';
|
|
||||||
import { concat } from '../../../../../../prelude/array';
|
import { concat } from '../../../../../../prelude/array';
|
||||||
import * as ApexCharts from 'apexcharts';
|
import * as ApexCharts from 'apexcharts';
|
||||||
|
|
||||||
@ -137,10 +133,6 @@ export default Vue.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
title(): string {
|
|
||||||
return this.user ? Vue.filter('userName')(this.user) : '';
|
|
||||||
},
|
|
||||||
|
|
||||||
bannerStyle(): any {
|
bannerStyle(): any {
|
||||||
if (this.user == null) return {};
|
if (this.user == null) return {};
|
||||||
if (this.user.bannerUrl == null) return {};
|
if (this.user.bannerUrl == null) return {};
|
||||||
@ -223,8 +215,7 @@ export default Vue.extend({
|
|||||||
},
|
},
|
||||||
plotOptions: {
|
plotOptions: {
|
||||||
bar: {
|
bar: {
|
||||||
columnWidth: '90%',
|
columnWidth: '90%'
|
||||||
endingShape: 'rounded'
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
grid: {
|
grid: {
|
||||||
@ -311,33 +302,10 @@ export default Vue.extend({
|
|||||||
return promise;
|
return promise;
|
||||||
},
|
},
|
||||||
|
|
||||||
mention() {
|
|
||||||
this.$post({ mention: this.user });
|
|
||||||
},
|
|
||||||
|
|
||||||
menu() {
|
menu() {
|
||||||
let menu = [{
|
this.$root.new(XUserMenu, {
|
||||||
icon: 'list',
|
|
||||||
text: this.$t('push-to-a-list'),
|
|
||||||
action: () => {
|
|
||||||
const w = this.$root.new(MkUserListsWindow);
|
|
||||||
w.$once('choosen', async list => {
|
|
||||||
w.close();
|
|
||||||
await this.$root.api('users/lists/push', {
|
|
||||||
listId: list.id,
|
|
||||||
userId: this.user.id
|
|
||||||
});
|
|
||||||
this.$root.dialog({
|
|
||||||
type: 'success',
|
|
||||||
splash: true
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}];
|
|
||||||
|
|
||||||
this.$root.new(Menu, {
|
|
||||||
source: this.$refs.menu,
|
source: this.$refs.menu,
|
||||||
items: menu
|
user: this.user
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -464,7 +432,7 @@ export default Vue.extend({
|
|||||||
|
|
||||||
> .counts
|
> .counts
|
||||||
display grid
|
display grid
|
||||||
grid-template-columns 2fr 2fr 2fr 1fr
|
grid-template-columns 2fr 2fr 2fr
|
||||||
margin-top 8px
|
margin-top 8px
|
||||||
border-top solid var(--lineWidth) var(--faceDivider)
|
border-top solid var(--lineWidth) var(--faceDivider)
|
||||||
|
|
||||||
@ -481,9 +449,6 @@ export default Vue.extend({
|
|||||||
font-size 80%
|
font-size 80%
|
||||||
opacity 0.7
|
opacity 0.7
|
||||||
|
|
||||||
> .mention
|
|
||||||
display flex
|
|
||||||
|
|
||||||
> *
|
> *
|
||||||
> p.caption
|
> p.caption
|
||||||
margin 0
|
margin 0
|
||||||
|
@ -16,15 +16,15 @@
|
|||||||
<mk-avatar class="avatar" :user="user" :disable-preview="true"/>
|
<mk-avatar class="avatar" :user="user" :disable-preview="true"/>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<div class="description">
|
<div class="description">
|
||||||
<misskey-flavored-markdown v-if="user.description" :text="user.description" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
|
<mfm v-if="user.description" :text="user.description" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="fields" v-if="user.fields">
|
<div class="fields" v-if="user.fields">
|
||||||
<dl class="field" v-for="(field, i) in user.fields" :key="i">
|
<dl class="field" v-for="(field, i) in user.fields" :key="i">
|
||||||
<dt class="name">
|
<dt class="name">
|
||||||
<misskey-flavored-markdown :text="field.name" :shouldBreak="false" :plainText="true" :custom-emojis="user.emojis"/>
|
<mfm :text="field.name" :should-break="false" :plain-text="true" :custom-emojis="user.emojis"/>
|
||||||
</dt>
|
</dt>
|
||||||
<dd class="value">
|
<dd class="value">
|
||||||
<misskey-flavored-markdown :text="field.value" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
|
<mfm :text="field.value" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
@ -36,7 +36,6 @@
|
|||||||
<span class="notes-count"><b>{{ user.notesCount | number }}</b>{{ $t('posts') }}</span>
|
<span class="notes-count"><b>{{ user.notesCount | number }}</b>{{ $t('posts') }}</span>
|
||||||
<router-link :to="user | userPage('following')" class="following clickable"><b>{{ user.followingCount | number }}</b>{{ $t('following') }}</router-link>
|
<router-link :to="user | userPage('following')" class="following clickable"><b>{{ user.followingCount | number }}</b>{{ $t('following') }}</router-link>
|
||||||
<router-link :to="user | userPage('followers')" class="followers clickable"><b>{{ user.followersCount | number }}</b>{{ $t('followers') }}</router-link>
|
<router-link :to="user | userPage('followers')" class="followers clickable"><b>{{ user.followersCount | number }}</b>{{ $t('followers') }}</router-link>
|
||||||
<button @click="mention" :title="$t('mention')"><fa icon="at"/></button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -3,21 +3,9 @@
|
|||||||
<div class="friend-form" v-if="$store.state.i.id != user.id">
|
<div class="friend-form" v-if="$store.state.i.id != user.id">
|
||||||
<mk-follow-button :user="user" block/>
|
<mk-follow-button :user="user" block/>
|
||||||
<p class="followed" v-if="user.isFollowed">{{ $t('follows-you') }}</p>
|
<p class="followed" v-if="user.isFollowed">{{ $t('follows-you') }}</p>
|
||||||
<p class="stalk" v-if="user.isFollowing">
|
|
||||||
<span v-if="user.isStalking">{{ $t('stalking') }} <a @click="unstalk"><fa icon="meh"/> {{ $t('unstalk') }}</a></span>
|
|
||||||
<span v-if="!user.isStalking"><a @click="stalk"><fa icon="user-secret"/> {{ $t('stalk') }}</a></span>
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="action-form">
|
<div class="action-form">
|
||||||
<ui-button @click="user.isMuted ? unmute() : mute()" v-if="$store.state.i.id != user.id">
|
<ui-button @click="menu" ref="menu">{{ $t('menu') }}</ui-button>
|
||||||
<span v-if="user.isMuted"><fa icon="eye"/> {{ $t('unmute') }}</span>
|
|
||||||
<span v-else><fa :icon="['far', 'eye-slash']"/> {{ $t('mute') }}</span>
|
|
||||||
</ui-button>
|
|
||||||
<ui-button @click="user.isBlocking ? unblock() : block()" v-if="$store.state.i.id != user.id">
|
|
||||||
<span v-if="user.isBlocking"><fa icon="ban"/> {{ $t('unblock') }}</span>
|
|
||||||
<span v-else><fa icon="ban"/> {{ $t('block') }}</span>
|
|
||||||
</ui-button>
|
|
||||||
<ui-button @click="list"><fa icon="list"/> {{ $t('push-to-a-list') }}</ui-button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -25,99 +13,19 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import i18n from '../../../../i18n';
|
import i18n from '../../../../i18n';
|
||||||
import MkUserListsWindow from '../../components/user-lists-window.vue';
|
import XUserMenu from '../../../../common/views/components/user-menu.vue';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
i18n: i18n('desktop/views/pages/user/user.profile.vue'),
|
i18n: i18n('desktop/views/pages/user/user.profile.vue'),
|
||||||
props: ['user'],
|
props: ['user'],
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
stalk() {
|
menu() {
|
||||||
this.$root.api('following/stalk', {
|
this.$root.new(XUserMenu, {
|
||||||
userId: this.user.id
|
source: this.$refs.menu.$el,
|
||||||
}).then(() => {
|
user: this.user
|
||||||
this.user.isStalking = true;
|
|
||||||
}, () => {
|
|
||||||
alert('error');
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
unstalk() {
|
|
||||||
this.$root.api('following/unstalk', {
|
|
||||||
userId: this.user.id
|
|
||||||
}).then(() => {
|
|
||||||
this.user.isStalking = false;
|
|
||||||
}, () => {
|
|
||||||
alert('error');
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
mute() {
|
|
||||||
this.$root.api('mute/create', {
|
|
||||||
userId: this.user.id
|
|
||||||
}).then(() => {
|
|
||||||
this.user.isMuted = true;
|
|
||||||
}, () => {
|
|
||||||
alert('error');
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
unmute() {
|
|
||||||
this.$root.api('mute/delete', {
|
|
||||||
userId: this.user.id
|
|
||||||
}).then(() => {
|
|
||||||
this.user.isMuted = false;
|
|
||||||
}, () => {
|
|
||||||
alert('error');
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
block() {
|
|
||||||
this.$root.dialog({
|
|
||||||
type: 'warning',
|
|
||||||
text: this.$t('block-confirm'),
|
|
||||||
showCancelButton: true
|
|
||||||
}).then(({ canceled }) => {
|
|
||||||
if (canceled) return;
|
|
||||||
|
|
||||||
this.$root.api('blocking/create', {
|
|
||||||
userId: this.user.id
|
|
||||||
}).then(() => {
|
|
||||||
this.user.isBlocking = true;
|
|
||||||
}, () => {
|
|
||||||
alert('error');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
unblock() {
|
|
||||||
this.$root.api('blocking/delete', {
|
|
||||||
userId: this.user.id
|
|
||||||
}).then(() => {
|
|
||||||
this.user.isBlocking = false;
|
|
||||||
}, () => {
|
|
||||||
alert('error');
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
list() {
|
|
||||||
const w = this.$root.new(MkUserListsWindow);
|
|
||||||
w.$once('choosen', async list => {
|
|
||||||
w.close();
|
|
||||||
await this.$root.api('users/lists/push', {
|
|
||||||
listId: list.id,
|
|
||||||
userId: this.user.id
|
|
||||||
});
|
|
||||||
this.$root.dialog({
|
|
||||||
type: 'success',
|
|
||||||
title: 'Done!',
|
|
||||||
text: this.$t('list-pushed', {
|
|
||||||
user: this.user.name,
|
|
||||||
list: list.title
|
|
||||||
})
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@ -146,9 +54,6 @@ export default Vue.extend({
|
|||||||
background #eefaff
|
background #eefaff
|
||||||
border-radius 4px
|
border-radius 4px
|
||||||
|
|
||||||
> .stalk
|
|
||||||
margin 12px 0 0 0
|
|
||||||
|
|
||||||
> .action-form
|
> .action-form
|
||||||
padding 16px
|
padding 16px
|
||||||
text-align center
|
text-align center
|
||||||
|
@ -124,7 +124,8 @@ import {
|
|||||||
faMapMarker,
|
faMapMarker,
|
||||||
faRobot,
|
faRobot,
|
||||||
faHourglassHalf,
|
faHourglassHalf,
|
||||||
faAlignLeft
|
faAlignLeft,
|
||||||
|
faGavel
|
||||||
} from '@fortawesome/free-solid-svg-icons';
|
} from '@fortawesome/free-solid-svg-icons';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
@ -257,6 +258,7 @@ library.add(
|
|||||||
faRobot,
|
faRobot,
|
||||||
faHourglassHalf,
|
faHourglassHalf,
|
||||||
faAlignLeft,
|
faAlignLeft,
|
||||||
|
faGavel,
|
||||||
|
|
||||||
farBell,
|
farBell,
|
||||||
farEnvelope,
|
farEnvelope,
|
||||||
|
@ -385,7 +385,7 @@ export default class MiOS extends EventEmitter {
|
|||||||
* @param data パラメータ
|
* @param data パラメータ
|
||||||
*/
|
*/
|
||||||
@autobind
|
@autobind
|
||||||
public api(endpoint: string, data: { [x: string]: any } = {}, forceFetch = false, silent = false): Promise<{ [x: string]: any }> {
|
public api(endpoint: string, data: { [x: string]: any } = {}, silent = false): Promise<{ [x: string]: any }> {
|
||||||
if (!silent) {
|
if (!silent) {
|
||||||
if (++pending === 1) {
|
if (++pending === 1) {
|
||||||
spinner = document.createElement('div');
|
spinner = document.createElement('div');
|
||||||
@ -401,66 +401,44 @@ export default class MiOS extends EventEmitter {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const promise = new Promise((resolve, reject) => {
|
const promise = new Promise((resolve, reject) => {
|
||||||
const viaStream = this.stream && this.stream.state == 'connected' && this.store.state.device.apiViaStream && !forceFetch;
|
// Append a credential
|
||||||
|
if (this.store.getters.isSignedIn) (data as any).i = this.store.state.i.token;
|
||||||
|
|
||||||
if (viaStream) {
|
const req = {
|
||||||
const id = Math.random().toString().substr(2, 8);
|
id: uuid(),
|
||||||
|
date: new Date(),
|
||||||
|
name: endpoint,
|
||||||
|
data,
|
||||||
|
res: null,
|
||||||
|
status: null
|
||||||
|
};
|
||||||
|
|
||||||
this.stream.once(`api:${id}`, res => {
|
if (this.debug) {
|
||||||
if (res == null || Object.keys(res).length == 0) {
|
this.requests.push(req);
|
||||||
resolve(null);
|
}
|
||||||
} else if (res.res) {
|
|
||||||
resolve(res.res);
|
|
||||||
} else {
|
|
||||||
reject(res.e);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this.stream.send('api', {
|
// Send request
|
||||||
id: id,
|
fetch(endpoint.indexOf('://') > -1 ? endpoint : `${apiUrl}/${endpoint}`, {
|
||||||
ep: endpoint,
|
method: 'POST',
|
||||||
data: data
|
body: JSON.stringify(data),
|
||||||
});
|
credentials: endpoint === 'signin' ? 'include' : 'omit',
|
||||||
} else {
|
cache: 'no-cache'
|
||||||
// Append a credential
|
}).then(async (res) => {
|
||||||
if (this.store.getters.isSignedIn) (data as any).i = this.store.state.i.token;
|
const body = res.status === 204 ? null : await res.json();
|
||||||
|
|
||||||
const req = {
|
|
||||||
id: uuid(),
|
|
||||||
date: new Date(),
|
|
||||||
name: endpoint,
|
|
||||||
data,
|
|
||||||
res: null,
|
|
||||||
status: null
|
|
||||||
};
|
|
||||||
|
|
||||||
if (this.debug) {
|
if (this.debug) {
|
||||||
this.requests.push(req);
|
req.status = res.status;
|
||||||
|
req.res = body;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send request
|
if (res.status === 200) {
|
||||||
fetch(endpoint.indexOf('://') > -1 ? endpoint : `${apiUrl}/${endpoint}`, {
|
resolve(body);
|
||||||
method: 'POST',
|
} else if (res.status === 204) {
|
||||||
body: JSON.stringify(data),
|
resolve();
|
||||||
credentials: endpoint === 'signin' ? 'include' : 'omit',
|
} else {
|
||||||
cache: 'no-cache'
|
reject(body.error);
|
||||||
}).then(async (res) => {
|
}
|
||||||
const body = res.status === 204 ? null : await res.json();
|
}).catch(reject);
|
||||||
|
|
||||||
if (this.debug) {
|
|
||||||
req.status = res.status;
|
|
||||||
req.res = body;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (res.status === 200) {
|
|
||||||
resolve(body);
|
|
||||||
} else if (res.status === 204) {
|
|
||||||
resolve();
|
|
||||||
} else {
|
|
||||||
reject(body.error);
|
|
||||||
}
|
|
||||||
}).catch(reject);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
promise.then(onFinally, onFinally);
|
promise.then(onFinally, onFinally);
|
||||||
|
@ -135,7 +135,7 @@ init((launch) => {
|
|||||||
{ path: '/search', component: MkSearch },
|
{ path: '/search', component: MkSearch },
|
||||||
{ path: '/tags/:tag', component: MkTag },
|
{ path: '/tags/:tag', component: MkTag },
|
||||||
{ path: '/share', component: MkShare },
|
{ path: '/share', component: MkShare },
|
||||||
{ path: '/reversi/:game?', name: 'reversi', component: MkReversi },
|
{ path: '/games/reversi/:game?', name: 'reversi', component: MkReversi },
|
||||||
{ path: '/@:user', component: () => import('./views/pages/user.vue').then(m => m.default) },
|
{ path: '/@:user', component: () => import('./views/pages/user.vue').then(m => m.default) },
|
||||||
{ path: '/@:user/followers', component: MkFollowers },
|
{ path: '/@:user/followers', component: MkFollowers },
|
||||||
{ path: '/@:user/following', component: MkFollowing },
|
{ path: '/@:user/following', component: MkFollowing },
|
||||||
|
@ -59,8 +59,7 @@ export default Vue.extend({
|
|||||||
},
|
},
|
||||||
plotOptions: {
|
plotOptions: {
|
||||||
bar: {
|
bar: {
|
||||||
columnWidth: '90%',
|
columnWidth: '90%'
|
||||||
endingShape: 'rounded'
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
grid: {
|
grid: {
|
||||||
|
@ -26,14 +26,14 @@
|
|||||||
</header>
|
</header>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<p v-if="appearNote.cw != null" class="cw">
|
<p v-if="appearNote.cw != null" class="cw">
|
||||||
<misskey-flavored-markdown v-if="appearNote.cw != ''" class="text" :text="appearNote.cw" :author="appearNote.user" :i="$store.state.i" :custom-emojis="appearNote.emojis" />
|
<mfm v-if="appearNote.cw != ''" class="text" :text="appearNote.cw" :author="appearNote.user" :i="$store.state.i" :custom-emojis="appearNote.emojis" />
|
||||||
<mk-cw-button v-model="showContent" :note="appearNote"/>
|
<mk-cw-button v-model="showContent" :note="appearNote"/>
|
||||||
</p>
|
</p>
|
||||||
<div class="content" v-show="appearNote.cw == null || showContent">
|
<div class="content" v-show="appearNote.cw == null || showContent">
|
||||||
<div class="text">
|
<div class="text">
|
||||||
<span v-if="appearNote.isHidden" style="opacity: 0.5">({{ $t('private') }})</span>
|
<span v-if="appearNote.isHidden" style="opacity: 0.5">({{ $t('private') }})</span>
|
||||||
<span v-if="appearNote.deletedAt" style="opacity: 0.5">({{ $t('deleted') }})</span>
|
<span v-if="appearNote.deletedAt" style="opacity: 0.5">({{ $t('deleted') }})</span>
|
||||||
<misskey-flavored-markdown v-if="appearNote.text" :text="appearNote.text" :author="appearNote.user" :i="$store.state.i" :custom-emojis="appearNote.emojis"/>
|
<mfm v-if="appearNote.text" :text="appearNote.text" :author="appearNote.user" :i="$store.state.i" :custom-emojis="appearNote.emojis"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="files" v-if="appearNote.files.length > 0">
|
<div class="files" v-if="appearNote.files.length > 0">
|
||||||
<mk-media-list :media-list="appearNote.files" :raw="true"/>
|
<mk-media-list :media-list="appearNote.files" :raw="true"/>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<mk-note-header class="header" :note="note" :mini="true"/>
|
<mk-note-header class="header" :note="note" :mini="true"/>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<p v-if="note.cw != null" class="cw">
|
<p v-if="note.cw != null" class="cw">
|
||||||
<misskey-flavored-markdown v-if="note.cw != ''" class="text" :text="note.cw" :author="note.user" :i="$store.state.i" :custom-emojis="note.emojis" />
|
<mfm v-if="note.cw != ''" class="text" :text="note.cw" :author="note.user" :i="$store.state.i" :custom-emojis="note.emojis" />
|
||||||
<mk-cw-button v-model="showContent" :note="note"/>
|
<mk-cw-button v-model="showContent" :note="note"/>
|
||||||
</p>
|
</p>
|
||||||
<div class="content" v-show="note.cw == null || showContent">
|
<div class="content" v-show="note.cw == null || showContent">
|
||||||
|
@ -16,14 +16,14 @@
|
|||||||
<mk-note-header class="header" :note="appearNote" :mini="true"/>
|
<mk-note-header class="header" :note="appearNote" :mini="true"/>
|
||||||
<div class="body" v-if="appearNote.deletedAt == null">
|
<div class="body" v-if="appearNote.deletedAt == null">
|
||||||
<p v-if="appearNote.cw != null" class="cw">
|
<p v-if="appearNote.cw != null" class="cw">
|
||||||
<misskey-flavored-markdown v-if="appearNote.cw != ''" class="text" :text="appearNote.cw" :author="appearNote.user" :i="$store.state.i" :custom-emojis="appearNote.emojis" />
|
<mfm v-if="appearNote.cw != ''" class="text" :text="appearNote.cw" :author="appearNote.user" :i="$store.state.i" :custom-emojis="appearNote.emojis" />
|
||||||
<mk-cw-button v-model="showContent" :note="appearNote"/>
|
<mk-cw-button v-model="showContent" :note="appearNote"/>
|
||||||
</p>
|
</p>
|
||||||
<div class="content" v-show="appearNote.cw == null || showContent">
|
<div class="content" v-show="appearNote.cw == null || showContent">
|
||||||
<div class="text">
|
<div class="text">
|
||||||
<span v-if="appearNote.isHidden" style="opacity: 0.5">({{ $t('private') }})</span>
|
<span v-if="appearNote.isHidden" style="opacity: 0.5">({{ $t('private') }})</span>
|
||||||
<a class="reply" v-if="appearNote.reply"><fa icon="reply"/></a>
|
<a class="reply" v-if="appearNote.reply"><fa icon="reply"/></a>
|
||||||
<misskey-flavored-markdown v-if="appearNote.text" :text="appearNote.text" :author="appearNote.user" :i="$store.state.i" :custom-emojis="appearNote.emojis"/>
|
<mfm v-if="appearNote.text" :text="appearNote.text" :author="appearNote.user" :i="$store.state.i" :custom-emojis="appearNote.emojis"/>
|
||||||
<a class="rp" v-if="appearNote.renote != null">RN:</a>
|
<a class="rp" v-if="appearNote.renote != null">RN:</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="files" v-if="appearNote.files.length > 0">
|
<div class="files" v-if="appearNote.files.length > 0">
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
</header>
|
</header>
|
||||||
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
||||||
<fa icon="quote-left"/>
|
<fa icon="quote-left"/>
|
||||||
<misskey-flavored-markdown :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
<mfm :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
||||||
<fa icon="quote-right"/>
|
<fa icon="quote-right"/>
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
@ -26,7 +26,7 @@
|
|||||||
</header>
|
</header>
|
||||||
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note.renote)">
|
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note.renote)">
|
||||||
<fa icon="quote-left"/>
|
<fa icon="quote-left"/>
|
||||||
<misskey-flavored-markdown :text="getNoteSummary(notification.note.renote)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.renote.emojis"/>
|
<mfm :text="getNoteSummary(notification.note.renote)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.renote.emojis"/>
|
||||||
<fa icon="quote-right"/>
|
<fa icon="quote-right"/>
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
@ -64,7 +64,7 @@
|
|||||||
</header>
|
</header>
|
||||||
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
<router-link class="note-ref" :to="notification.note | notePage" :title="getNoteSummary(notification.note)">
|
||||||
<fa icon="quote-left"/>
|
<fa icon="quote-left"/>
|
||||||
<misskey-flavored-markdown :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
<mfm :text="getNoteSummary(notification.note)" :should-break="false" :plain-text="true" :custom-emojis="notification.note.emojis"/>
|
||||||
<fa icon="quote-right"/>
|
<fa icon="quote-right"/>
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
props: ['notification'],
|
props: ['notification'],
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import * as anime from 'animejs';
|
import anime from 'animejs';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
props: {
|
props: {
|
||||||
|
@ -211,12 +211,6 @@ export default Vue.extend({
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// keep cw when reply
|
|
||||||
if (this.reply && this.reply.cw != null) {
|
|
||||||
this.useCw = true;
|
|
||||||
this.cw = this.reply.cw;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.focus();
|
this.focus();
|
||||||
|
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<span v-if="note.isHidden" style="opacity: 0.5">({{ $t('private') }})</span>
|
<span v-if="note.isHidden" style="opacity: 0.5">({{ $t('private') }})</span>
|
||||||
<span v-if="note.deletedAt" style="opacity: 0.5">({{ $t('deleted') }})</span>
|
<span v-if="note.deletedAt" style="opacity: 0.5">({{ $t('deleted') }})</span>
|
||||||
<a class="reply" v-if="note.replyId"><fa icon="reply"/></a>
|
<a class="reply" v-if="note.replyId"><fa icon="reply"/></a>
|
||||||
<misskey-flavored-markdown v-if="note.text" :text="note.text" :author="note.user" :i="$store.state.i" :custom-emojis="note.emojis"/>
|
<mfm v-if="note.text" :text="note.text" :author="note.user" :i="$store.state.i" :custom-emojis="note.emojis"/>
|
||||||
<a class="rp" v-if="note.renoteId">RN: ...</a>
|
<a class="rp" v-if="note.renoteId">RN: ...</a>
|
||||||
</div>
|
</div>
|
||||||
<details v-if="note.files.length > 0">
|
<details v-if="note.files.length > 0">
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import i18n from '../../../i18n';
|
import i18n from '../../../i18n';
|
||||||
import * as anime from 'animejs';
|
|
||||||
import { env } from '../../../config';
|
import { env } from '../../../config';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
</header>
|
</header>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<div class="description">
|
<div class="description">
|
||||||
<misskey-flavored-markdown v-if="user.description" :text="user.description" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
|
<mfm v-if="user.description" :text="user.description" :author="user" :i="$store.state.i" :custom-emojis="user.emojis"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<mk-ui>
|
<mk-ui>
|
||||||
<template slot="header" v-if="!fetching">
|
<template slot="header" v-if="!fetching">
|
||||||
<img :src="user.avatarUrl" alt="">{{ $t('followers-of', { name }) }}
|
<img :src="user.avatarUrl" alt="">
|
||||||
|
<mfm :text="$t('followers-of', { name })" :should-break="false" :plain-text="true" :custom-emojis="user.emojis"/>
|
||||||
</template>
|
</template>
|
||||||
<mk-users-list
|
<mk-users-list
|
||||||
v-if="!fetching"
|
v-if="!fetching"
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<mk-ui>
|
<mk-ui>
|
||||||
<template slot="header" v-if="!fetching">
|
<template slot="header" v-if="!fetching">
|
||||||
<img :src="user.avatarUrl" alt="">{{ $t('following-of', { name }) }}
|
<img :src="user.avatarUrl" alt="">
|
||||||
|
<mfm :text="$t('following-of', { name })" :should-break="false" :plain-text="true" :custom-emojis="user.emojis"/>
|
||||||
</template>
|
</template>
|
||||||
<mk-users-list
|
<mk-users-list
|
||||||
v-if="!fetching"
|
v-if="!fetching"
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
<span :data-active="src == 'home'" @click="src = 'home'"><fa icon="home"/> {{ $t('home') }}</span>
|
<span :data-active="src == 'home'" @click="src = 'home'"><fa icon="home"/> {{ $t('home') }}</span>
|
||||||
<span :data-active="src == 'local'" @click="src = 'local'" v-if="enableLocalTimeline"><fa :icon="['far', 'comments']"/> {{ $t('local') }}</span>
|
<span :data-active="src == 'local'" @click="src = 'local'" v-if="enableLocalTimeline"><fa :icon="['far', 'comments']"/> {{ $t('local') }}</span>
|
||||||
<span :data-active="src == 'hybrid'" @click="src = 'hybrid'" v-if="enableLocalTimeline"><fa icon="share-alt"/> {{ $t('hybrid') }}</span>
|
<span :data-active="src == 'hybrid'" @click="src = 'hybrid'" v-if="enableLocalTimeline"><fa icon="share-alt"/> {{ $t('hybrid') }}</span>
|
||||||
<span :data-active="src == 'global'" @click="src = 'global'"><fa icon="globe"/> {{ $t('global') }}</span>
|
<span :data-active="src == 'global'" @click="src = 'global'" v-if="enableGlobalTimeline"><fa icon="globe"/> {{ $t('global') }}</span>
|
||||||
<div class="hr"></div>
|
<div class="hr"></div>
|
||||||
<span :data-active="src == 'mentions'" @click="src = 'mentions'"><fa icon="at"/> {{ $t('mentions') }}<i class="badge" v-if="$store.state.i.hasUnreadMentions"><fa icon="circle"/></i></span>
|
<span :data-active="src == 'mentions'" @click="src = 'mentions'"><fa icon="at"/> {{ $t('mentions') }}<i class="badge" v-if="$store.state.i.hasUnreadMentions"><fa icon="circle"/></i></span>
|
||||||
<span :data-active="src == 'messages'" @click="src = 'messages'"><fa :icon="['far', 'envelope']"/> {{ $t('messages') }}<i class="badge" v-if="$store.state.i.hasUnreadSpecifiedNotes"><fa icon="circle"/></i></span>
|
<span :data-active="src == 'messages'" @click="src = 'messages'"><fa :icon="['far', 'envelope']"/> {{ $t('messages') }}<i class="badge" v-if="$store.state.i.hasUnreadSpecifiedNotes"><fa icon="circle"/></i></span>
|
||||||
@ -79,7 +79,8 @@ export default Vue.extend({
|
|||||||
lists: null,
|
lists: null,
|
||||||
tagTl: null,
|
tagTl: null,
|
||||||
showNav: false,
|
showNav: false,
|
||||||
enableLocalTimeline: false
|
enableLocalTimeline: false,
|
||||||
|
enableGlobalTimeline: false,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -112,7 +113,8 @@ export default Vue.extend({
|
|||||||
|
|
||||||
created() {
|
created() {
|
||||||
this.$root.getMeta().then(meta => {
|
this.$root.getMeta().then(meta => {
|
||||||
this.enableLocalTimeline = !meta.disableLocalTimeline;
|
this.enableLocalTimeline = !meta.disableLocalTimeline || this.$store.state.i.isModerator || this.$store.state.i.isAdmin;
|
||||||
|
this.enableGlobalTimeline = !meta.disableGlobalTimeline || this.$store.state.i.isModerator || this.$store.state.i.isAdmin;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (this.$store.state.device.tl) {
|
if (this.$store.state.device.tl) {
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user