Compare commits
300 Commits
Author | SHA1 | Date | |
---|---|---|---|
4ea60d36e5 | |||
95111ef8a1 | |||
145389768d | |||
be183206e6 | |||
8b853b7970 | |||
5450b78f71 | |||
a3283c71ef | |||
7231f5ff0b | |||
38a68ea946 | |||
bf9486edc2 | |||
aadfafaef9 | |||
c102978dd5 | |||
9784ade84f | |||
677f06961a | |||
57c3ea3dbe | |||
c01210d4fe | |||
64bbfed432 | |||
a482d9b078 | |||
08456dbb89 | |||
ea662b5c49 | |||
58a8fff895 | |||
bb302a90a6 | |||
99e34e9ee2 | |||
f1417c6bb1 | |||
729db347a2 | |||
f2465ca11f | |||
0294061c00 | |||
71e5892308 | |||
a1597047b4 | |||
d6a8889d84 | |||
070f1f3c6e | |||
234294d564 | |||
d1be8b43f6 | |||
0ed94ee52e | |||
f07564a452 | |||
37419886a1 | |||
b9f0a9ed88 | |||
d0f68bb5d1 | |||
11a350a114 | |||
778ac79c44 | |||
766c00c305 | |||
97cdfa662e | |||
4a08d5295e | |||
b77788b947 | |||
729116c9e5 | |||
d57d55a226 | |||
4cccdb8a98 | |||
54045f95ca | |||
ee6c7cbc59 | |||
00508dc778 | |||
a3ff1bfda7 | |||
f57888eb4b | |||
b2c703c173 | |||
9053b9635e | |||
b5e87a46b0 | |||
ddbdb94ba6 | |||
304e3d58ea | |||
ca6a70e555 | |||
9a611b24f3 | |||
77adf26236 | |||
805472482e | |||
01411327b8 | |||
9daa900793 | |||
b862c055ae | |||
7860839220 | |||
e17e8bbb6f | |||
136d0683b0 | |||
0eded8f5a9 | |||
f62eb0fee9 | |||
077bf11e45 | |||
ebdbd6a84a | |||
69975c2fdd | |||
9aac6a65c6 | |||
7d7c206f24 | |||
15690d853c | |||
14ddca3875 | |||
a8b4df6eae | |||
0683fa6b97 | |||
808c680184 | |||
2bb0a61a89 | |||
dfa129febf | |||
3b49d233f8 | |||
f08d7df419 | |||
cd94d79cbb | |||
2314133112 | |||
06a47a7bd3 | |||
05a785ebd0 | |||
2ee5835186 | |||
19e1abe110 | |||
d19441f3ae | |||
6e3ee05cb6 | |||
51476ad06f | |||
1f998168e2 | |||
e72011f1da | |||
0df3e22e51 | |||
5a9530ccd4 | |||
0a4d119d86 | |||
2ee0e07bb6 | |||
533c9a4fe1 | |||
30c000116f | |||
dc649fe420 | |||
4a8ec173ae | |||
26d6fe9a4e | |||
46f5175a0d | |||
f704e7a602 | |||
8cefcaa55f | |||
164c6505f2 | |||
0a1b83c70f | |||
e60048eb96 | |||
8957eec475 | |||
e790af566c | |||
43fe0cd62e | |||
e22a296dc7 | |||
ac19ebc850 | |||
1e0060193a | |||
72271d905d | |||
8d39283d46 | |||
4364122804 | |||
3b6dbd6dc3 | |||
7c61fc37c5 | |||
f530b5237d | |||
9b9b6ade64 | |||
e184c1cdfb | |||
e0e4b43707 | |||
1d70b33894 | |||
44ea1be930 | |||
a1bf54fe16 | |||
88c57359b3 | |||
050564f717 | |||
75d59a9c9b | |||
9139c863bf | |||
84a1ec01bc | |||
36e59c5b5f | |||
5389b16c59 | |||
da3008af1c | |||
6637766554 | |||
2bc63631a4 | |||
5215721942 | |||
d02e14cb94 | |||
fa75b40dfd | |||
f32d8b7069 | |||
90e8527556 | |||
66377d3f27 | |||
c6ae93df80 | |||
55e9099091 | |||
c6ace29446 | |||
b0b885aacd | |||
3615b5d353 | |||
74c71e6283 | |||
9b07c5af05 | |||
cda1803e59 | |||
96eab7e12b | |||
916512fd47 | |||
58d3a37908 | |||
a19e252c9e | |||
63225ed0fd | |||
11cc9cbc7c | |||
36b9a0d42f | |||
e7da10ae58 | |||
f07047d1e8 | |||
c62aff76af | |||
1c20de4e9c | |||
4903eb4a4a | |||
b5981ab544 | |||
00e1dbfdfb | |||
df69ca4d56 | |||
cb631d4abb | |||
3c351d8300 | |||
ca66acac2b | |||
9fcf94b197 | |||
aa34000f0b | |||
d3c0f3c251 | |||
bb7edfee04 | |||
caa14c70ef | |||
3a0f72867f | |||
10d72742f5 | |||
1b9f8a87d3 | |||
d4a630902d | |||
fef5ec874b | |||
f2e347fec1 | |||
cd3c2484ee | |||
6a396ef5e3 | |||
eec1af1f52 | |||
99fc77b678 | |||
8bb311df51 | |||
a77df249c2 | |||
2883bca257 | |||
dd3af6886b | |||
33bcf2d1ea | |||
795fb0eb60 | |||
9e9d378bf1 | |||
4a6b0edce6 | |||
356225af14 | |||
331305e6c7 | |||
917b9475a5 | |||
e895fc954b | |||
6d3e18a6a1 | |||
79354f4faf | |||
28f8933c3c | |||
10356b4041 | |||
6a732ab1cd | |||
47322b35ff | |||
4c6d0386b9 | |||
a448172952 | |||
244ef0cb8f | |||
cc66a1f9c7 | |||
e2183400e5 | |||
afc531bd26 | |||
02cc1891f2 | |||
09e3ddbd57 | |||
d0fff562ea | |||
8ce5366e80 | |||
bfcda7cc02 | |||
c52aeb6618 | |||
f5ebfdca61 | |||
db93838729 | |||
bb835a6e8a | |||
52feba0e3a | |||
a1076c3108 | |||
bad068b20e | |||
ec41d461c0 | |||
a826cd6845 | |||
a950b6193a | |||
2cc4de2b23 | |||
03ef6996ff | |||
d1e5def30e | |||
02fbda2154 | |||
c21694a24a | |||
cb98336b0a | |||
97d25bc6a3 | |||
b36a1a9d0e | |||
cd44ff0aaa | |||
032571c326 | |||
6b890e3f82 | |||
9998845b21 | |||
7ee4385deb | |||
695277c9eb | |||
f014a79f8d | |||
1a6d47a633 | |||
12eed8f859 | |||
549092d9aa | |||
b245393bc4 | |||
dcd43a17ba | |||
b8088dc01a | |||
8e1b90ab43 | |||
614a1d74dd | |||
9ea1ed8559 | |||
3e1e234799 | |||
62f5ecd278 | |||
27733e2119 | |||
6be127e18b | |||
4bf1c23b3c | |||
608b8bb741 | |||
ef01eec36e | |||
5dbdd0e685 | |||
5273050ab3 | |||
fae3b02e5a | |||
3489e4af1e | |||
8e9bd0bbd5 | |||
3725b5bc34 | |||
998a59aa5e | |||
86c017674a | |||
cbae87cd11 | |||
5bc1f8d468 | |||
d3a355e164 | |||
45413c9d28 | |||
082ee8836f | |||
2f5bd5e6d7 | |||
639e0137cc | |||
2f898aa037 | |||
a43a225740 | |||
833c39969b | |||
e25dea27e7 | |||
dac962580b | |||
b12bf78c6d | |||
a44b005f7c | |||
4ea65dbe41 | |||
90ba51ee9c | |||
ecf44084dc | |||
9f49c663f8 | |||
c8c9a67485 | |||
837358df66 | |||
498bc7cebe | |||
9c3a4eb947 | |||
de1ecbaef4 | |||
4eb05efa7c | |||
ffa40227ec | |||
b44e1820a2 | |||
eb461481ed | |||
92f47cc9cb | |||
f82c6f7ab4 | |||
9f32e46921 | |||
eba96282d6 | |||
dd8423fbb5 | |||
76f992906d | |||
402d6de02d | |||
43e3ce1ed5 | |||
15050018f2 | |||
71d6394bc8 | |||
1d6791e4c2 |
13
.babelrc
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"plugins": [
|
||||
[
|
||||
"@babel/plugin-transform-runtime",
|
||||
{
|
||||
"corejs": {
|
||||
"version": 3,
|
||||
"proposals": true
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
@ -142,6 +142,11 @@ id: 'aid'
|
||||
# Proxy for HTTP/HTTPS
|
||||
#proxy: http://127.0.0.1:3128
|
||||
|
||||
#proxyBypassHosts: [
|
||||
# 'example.com',
|
||||
# '192.0.2.8'
|
||||
#]
|
||||
|
||||
# Proxy for SMTP/SMTPS
|
||||
#proxySmtp: http://127.0.0.1:3128 # use HTTP/1.1 CONNECT
|
||||
#proxySmtp: socks4://127.0.0.1:1080 # use SOCKS4
|
||||
|
2
.github/workflows/docker.yml
vendored
@ -11,7 +11,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
- name: Pull previous build result (for cache)
|
||||
run: docker pull misskey/misskey:latest
|
||||
- name: Build docker container
|
||||
|
4
.github/workflows/nodejs.yml
vendored
@ -12,7 +12,7 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [11.10.x, 12.x]
|
||||
node-version: [11.10.x, 12.x, 13.x, 14.x]
|
||||
|
||||
services:
|
||||
postgres:
|
||||
@ -28,7 +28,7 @@ jobs:
|
||||
- 6379:6379
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
|
@ -1,4 +1,7 @@
|
||||
{
|
||||
"extension": ["ts","js","cjs","mjs"],
|
||||
"require": "ts-node/register",
|
||||
"slow": 1000,
|
||||
"timeout": 30000,
|
||||
"slow": 1000
|
||||
"exit": true
|
||||
}
|
||||
|
225
CHANGELOG.md
@ -1,7 +1,230 @@
|
||||
ChangeLog
|
||||
=========
|
||||
|
||||
12.22.0 (2020/02/23)
|
||||
12.37.0 (2020/5/10)
|
||||
-------------------
|
||||
### ✨Improvements
|
||||
* Node.js v14をサポート [#6294](https://github.com/syuilo/misskey/pull/6294)
|
||||
* 依存パッケージを最新に [#6297](https://github.com/syuilo/misskey/pull/6297)
|
||||
* nginxサンプルのSSL/TLS設定の変更 [#6298](https://github.com/syuilo/misskey/pull/6298)
|
||||
* DockerイメージでPostgreSQL v12・Node.js v14を使用するように [2bb0a61](https://github.com/syuilo/misskey/commit/2bb0a61a891445df4d78bfc0d4a64551ac9b7a39), [808c680](https://github.com/syuilo/misskey/commit/808c6801843b9e10fa575f5f7fbd3a4a3a80252a)
|
||||
* hCaptchaサポート
|
||||
* サイドバーカスタマイズ機能
|
||||
* LD-Signatureの検証に対応 [#6300](https://github.com/syuilo/misskey/pull/6300)
|
||||
* リモートからの通報の受信に対応 [#6331](https://github.com/syuilo/misskey/pull/6331)
|
||||
* Misskey Rooms復活
|
||||
* ノートへの返信を再帰的に表示するように(threaded replies)
|
||||
* pub-relay [#6341](https://github.com/syuilo/misskey/pull/6341)
|
||||
|
||||
### 🐛Fixes
|
||||
* CatだとMFMでURLプレビューを隠しても表示される問題を修正 [7d7c206](https://github.com/syuilo/misskey/commit/7d7c206f245387d32283fbb4e82bd9d526427936)
|
||||
* アップロードプログレスバーが動かないのを修正 [#6307](https://github.com/syuilo/misskey/pull/6307)
|
||||
* WebAuthnでログインできないのを修正 [#6327](https://github.com/syuilo/misskey/pull/6327)
|
||||
* あなた宛て/メッセージで個々のノートが展開されるのを修正
|
||||
* アンケートへの投票通知が正しく表示されない問題を修正
|
||||
|
||||
12.36.1 (2020/4/23)
|
||||
-------------------
|
||||
### 🐛Fixes
|
||||
* Pagesのifブロックが機能しない [2ee5835](https://github.com/syuilo/misskey/commit/2ee583518608333312caa4c4303a74835b087069)
|
||||
* AiScriptのアップデート
|
||||
|
||||
12.36.0 (2020/4/22)
|
||||
-------------------
|
||||
### ✨Improvements
|
||||
* ドライブの画面を広く [1f99816](https://github.com/syuilo/misskey/commit/1f998168e2f6ff94d0119fe5f95ad03b47d19d60)
|
||||
* ドライブのデフォルトのアップロード先フォルダを設定できるように [1f99816](https://github.com/syuilo/misskey/commit/1f998168e2f6ff94d0119fe5f95ad03b47d19d60)
|
||||
* AiScriptのアップデート
|
||||
* Webpackを5に [e72011f](https://github.com/syuilo/misskey/commit/e72011f1dafc11ea70dd60b653d25b0e48832cce)
|
||||
|
||||
### 🐛Fixes
|
||||
* WebUIでアンテナを保存するとexcludeKeywordsに空文字列が入るせいで動かない [5a9530c](https://github.com/syuilo/misskey/commit/5a9530ccd4249cf37d50769015adbffba34014ab)
|
||||
* 管理画面のカスタム絵文字でカテゴリが空だと更新できない [0df3e22](https://github.com/syuilo/misskey/commit/0df3e22e519d854c88ae8f5eabdc8eee4b18aeed)
|
||||
|
||||
12.35.2 (2020/4/19)
|
||||
-------------------
|
||||
### ✨Improvements
|
||||
* Pagesの環境変数を調整 [0a1b83c](https://github.com/syuilo/misskey/commit/0a1b83c70fc546d7514176a220e1381ecc0b13ec)
|
||||
* Pagesのチャートを調整 [f704e7a](https://github.com/syuilo/misskey/commit/f704e7a6025cb3f8ec7e474df70de1b171722bde)
|
||||
* AiScriptのアップデート
|
||||
* デザインの調整
|
||||
|
||||
### 🐛Fixes
|
||||
* 画像のみのノートができない問題を修正 [8cefcaa](https://github.com/syuilo/misskey/commit/8cefcaa55f86e03f3965c5cb419787778681c269)
|
||||
|
||||
12.35.1 (2020/4/19)
|
||||
-------------------
|
||||
### 🐛Fixes
|
||||
* Pagesのチャート描画を調整
|
||||
|
||||
12.35.0 (2020/4/19)
|
||||
-------------------
|
||||
### ✨Improvements
|
||||
* Pagesでチャートを描画できるように
|
||||
* Pagesでキャンバスの画像を投稿フォームで添付できるように
|
||||
* AiScriptのバージョンアップ
|
||||
|
||||
### 🐛Fixes
|
||||
* タイムラインウィジェットの数が多ければ多いほど、リアクションが多く付いて見える問題を修正
|
||||
* カスタム絵文字リアクションがプレビューされない不具合を修正
|
||||
|
||||
12.34.0 (2020/4/17)
|
||||
-------------------
|
||||
### ✨Improvements
|
||||
* Pagesでrectメソッドを追加
|
||||
* AiScriptのバージョンアップ
|
||||
|
||||
12.33.0 (2020/4/16)
|
||||
-------------------
|
||||
### ✨Improvements
|
||||
* Pagesで円を書くメソッドを追加
|
||||
* AiScriptのバージョンアップ
|
||||
|
||||
### 🐛Fixes
|
||||
* PagesでAiScript変数があると編集が機能しなくなる問題を修正
|
||||
|
||||
12.32.0 (2020/4/16)
|
||||
-------------------
|
||||
### ✨Improvements
|
||||
* Pagesで画像を描画できるように
|
||||
* AiScriptのバージョンアップ
|
||||
* 0以下のリアクションは送らないように
|
||||
|
||||
### 🐛Fixes
|
||||
* リアクションの修正
|
||||
* Fix Media List in CW Content
|
||||
|
||||
12.31.0 (2020/4/14)
|
||||
-------------------
|
||||
### ✨Improvements
|
||||
* プロキシの除外ホスト指定とオブジェクトストレージへの適用を除外するオプション
|
||||
* AiScript
|
||||
* モデレーション関連機能
|
||||
* sensitiveではないメディアも非表示にできるように
|
||||
* 投稿のURLプレビューポップアップを改良
|
||||
* リモートのカスタム絵文字リアクションを表示できるように
|
||||
|
||||
### 🐛Fixes
|
||||
* リアクションカウントがおかしくなることがあるのを修正
|
||||
|
||||
12.30.0 (2020/4/11)
|
||||
-------------------
|
||||
### ✨Improvements
|
||||
* リクエストライブラリをrequestからnode-fetchに変更
|
||||
* オブジェクトストレージのhttpスキーマリクエストでもProxyが適用されるように
|
||||
* DNSキャッシュとKeep-Alive適用箇所を増やす
|
||||
* ドイツ語と中国語(繁体)を有効に
|
||||
* NSFWを再度隠せるように
|
||||
* Implement AiScript scratchpad (/scratchpad)
|
||||
|
||||
### 🐛Fixes
|
||||
* APのurl処理の修正
|
||||
|
||||
12.29.0 (2020/4/5)
|
||||
-------------------
|
||||
### ✨Improvements
|
||||
* トークン系の乱数ソースではcryptoを使うように
|
||||
* broadcast stream が追加され emojiAdded イベントをサポート
|
||||
* APIリファレンスの高速化等
|
||||
* Ability to set header image for a Page
|
||||
* ログの改善
|
||||
|
||||
### 🐛Fixes
|
||||
* アプリ一覧に1回も使用していないアプリが表示されないのを修正
|
||||
* admin/accounts/createで一般ユーザーがアカウントを作成し放題なのを修正
|
||||
* 翻訳の未適用箇所を修正
|
||||
* APIの権限設定漏れを修正
|
||||
* インストール直後にアクティビティが飛んで来たりするともう初期管理者セットアップがができなくなるのを修正
|
||||
* リモート投稿でurlがあればそちらをリンクするように修正
|
||||
|
||||
12.28.0 (2020/3/29)
|
||||
-------------------
|
||||
### ✨Improvements
|
||||
* インストールされたアプリのページでアプリの権限を確認できるように
|
||||
* API: api/meta.features.miauthを追加
|
||||
MiAuthに対応しているかどうかを確認するために利用できます。
|
||||
値はつねにtrueを取ります。
|
||||
* インスタンス一覧でソートできるように
|
||||
|
||||
12.27.1 (2020/03/28)
|
||||
-------------------
|
||||
|
||||
### ✨Improvements
|
||||
* MiAuthのバグを修正
|
||||
|
||||
12.27.0 (2020/03/28)
|
||||
-------------------
|
||||
|
||||
### ✨Improvements
|
||||
* サードパーティーアプリケーションの認証方法にMiAuthを追加 ([Misskey API ドキュメント](https://github.com/syuilo/misskey/blob/b8088dc01a0c53b264c0697082ff5b16b06c4cda/src/docs/api.ja-JP.md#%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A8%E3%81%97%E3%81%A6%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B))
|
||||
従来の、API `app/create` => `auth/session/generate` => `auth/session/userkey` を使用する方法は依然として使用可能です。
|
||||
UIからアプリを作成する画面 (`/dev/apps`) は廃止されました、同等の操作を行いたい場合は API `app/create` で可能です。
|
||||
MiAuthに対応しているかどうかは`api/meta.features.miauth`で確認できます(12.28.0~)。
|
||||
* テーマをインポートする前にプレビューできるように
|
||||
* アプリから通知を作成できるように
|
||||
* インストールしたアプリを見たり削除したりできるように
|
||||
|
||||
12.26.0 (2020/03/25)
|
||||
-------------------
|
||||
|
||||
### ✨Improvements
|
||||
* ロゴが新しく
|
||||
* インスタンス設定の「ユーザー」が登録の逆順で表示されるように
|
||||
|
||||
### 🐛Fixes
|
||||
* 新規登録フォームの「利用規約」のリンク色が通常の文字と同じだった問題を修正
|
||||
* ダークモードの同期の問題を修正
|
||||
|
||||
12.25.0 (2020/03/24)
|
||||
-------------------
|
||||
|
||||
### ✨Improvements
|
||||
* テーマインポート機能を実装
|
||||
|
||||
### 🐛Fixes
|
||||
* 誰もフォローしていないときにタイムラインの読み込みが遅い問題を修正
|
||||
|
||||
|
||||
12.24.2 (2020/03/22)
|
||||
-------------------
|
||||
|
||||
### 🐛Fixes
|
||||
* ダークモードの同期を修正
|
||||
|
||||
12.24.1 (2020/03/22)
|
||||
-------------------
|
||||
|
||||
### ✨Improvements
|
||||
* SVG形式のアイコンファイルを追加
|
||||
|
||||
### 🐛Fixes
|
||||
* iOSで起動できない問題を修正
|
||||
* Pages画面にタイトルがない問題を修正
|
||||
|
||||
12.24.0 (2020/03/22)
|
||||
-------------------
|
||||
|
||||
### ✨Improvements
|
||||
* クライアント設定にアカウント設定へのリンクを追加
|
||||
* ダークモードの同期を強化
|
||||
|
||||
### 🐛Fixes
|
||||
* 画面が小さいとメニューがすべて見えない問題を修正
|
||||
|
||||
12.23.0 (2020/03/22)
|
||||
-------------------
|
||||
|
||||
### ✨Improvements
|
||||
* 削除して編集できるように
|
||||
* 基底テーマ分離
|
||||
* 端末がダークモードか否かでテーマを切り替えられるように
|
||||
|
||||
### 🐛Fixes
|
||||
* ユーザー名のサジェストをアクティブであるユーザー順に表示するのがうまくいっていないのを修正
|
||||
* 招待コードが発行できない問題を修正
|
||||
* CIが通らない問題を修正
|
||||
|
||||
12.22.0 (2020/03/21)
|
||||
-------------------
|
||||
|
||||
### ✨Improvements
|
||||
|
4
COPYING
@ -13,3 +13,7 @@ https://github.com/twitter/twemoji-parser/blob/master/LICENSE.md
|
||||
Emoji keywords for Unicode 11 and below by Mu-An Chiou
|
||||
License: MIT
|
||||
https://github.com/muan/emojilib/blob/master/LICENSE
|
||||
|
||||
RsaSignature2017 implementation by Transmute Industries Inc
|
||||
License: MIT
|
||||
https://github.com/transmute-industries/RsaSignature2017/blob/master/LICENSE
|
||||
|
@ -1,4 +1,4 @@
|
||||
FROM node:12.11.1-alpine AS base
|
||||
FROM node:14.2.0-alpine AS base
|
||||
|
||||
ENV NODE_ENV=production
|
||||
|
||||
@ -22,7 +22,7 @@ RUN apk add --no-cache \
|
||||
python \
|
||||
zlib-dev
|
||||
|
||||
COPY package.json ./
|
||||
COPY package.json yarn.lock ./
|
||||
RUN yarn install
|
||||
COPY . ./
|
||||
RUN yarn build
|
||||
|
104
README.md
@ -109,100 +109,102 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
|
||||
----------------------------------------------------------------
|
||||
<!-- PATREON_START -->
|
||||
<table><tr>
|
||||
<td><img src="https://c8.patreon.com/2/200/20832595" alt="Roujo" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/20832595" alt="Roujo " width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/27956229" alt="Oliver Maximilian Seidel" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12190916/fb7fa7983c14425f890369535b1506a4/3.png?token-time=2145916800&token-hash=oH_i7gJjNT7Ot6j9JiVwy7ZJIBqACVnzLqlz4YrDAZA%3D" alt="weepjp" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12190916/fb7fa7983c14425f890369535b1506a4/3.png?token-time=2145916800&token-hash=oH_i7gJjNT7Ot6j9JiVwy7ZJIBqACVnzLqlz4YrDAZA%3D" alt="weepjp " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/605366/c9dc408fdcbf412fb183ca5b06235f8d/1.jpeg?token-time=2145916800&token-hash=oaqsjLqOFjWN5I9hm2epOaTXaEtKwQUy5OW-EpAz6-g%3D" alt="Jon Leibowitz" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/19045173/cb91c0f345c24d4ebfd05f19906d5e26/1.png?token-time=2145916800&token-hash=o_zKBytJs_AxHwSYw_5R8eD0eSJe3RoTR3kR3Q0syN0%3D" alt="kiritan" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/19045173/cb91c0f345c24d4ebfd05f19906d5e26/1.png?token-time=2145916800&token-hash=o_zKBytJs_AxHwSYw_5R8eD0eSJe3RoTR3kR3Q0syN0%3D" alt="kiritan " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/24430516/b1964ac5b9f746d2a12ff53dbc9aa40a/1.jpg?token-time=2145916800&token-hash=bmEiMGYpp3bS7hCCbymjGGsHBZM3AXuBOFO3Kro37PU%3D" alt="Eduardo Quiros" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/14215107/1cbe1912c26143919fa0faca16f12ce1/3.png?token-time=2145916800&token-hash=Zq1TCK2tdY7xudEm_aV70bc_wxmol6pNj3ZWbpFUNbI%3D" alt="Nesakko" width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/user?u=20832595">Roujo</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=20832595">Roujo </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=27956229">Oliver Maximilian Seidel</a></td>
|
||||
<td><a href="https://www.patreon.com/weepjp">weepjp</a></td>
|
||||
<td><a href="https://www.patreon.com/weepjp">weepjp </a></td>
|
||||
<td><a href="https://www.patreon.com/jonleibowitz">Jon Leibowitz</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=19045173">kiritan</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=19045173">kiritan </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=24430516">Eduardo Quiros</a></td>
|
||||
<td><a href="https://www.patreon.com/Nesakko">Nesakko</a></td>
|
||||
</tr></table>
|
||||
<table><tr>
|
||||
<td><img src="https://c8.patreon.com/2/200/776209" alt="Denshi" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/776209" alt="Denshi " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/3075183/c2ae575c604e420297f000ccc396e395/1.jpeg?token-time=2145916800&token-hash=O9qmPtpo6wWb0OuvnkEekhk_1WO2MTdytLr7ZgsAr80%3D" alt="Liaizon Wakest" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/557245" alt="mkatze" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/23915207/25428766ecd745478e600b3d7f871eb2/1.png?token-time=2145916800&token-hash=urCLLA4KjJZX92Y1CxcBP4d8bVTHGkiaPnQZp-Tqz68%3D" alt="kabo2468y" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/8249688/4aacf36b6b244ab1bc6653591b6640df/2.png?token-time=2145916800&token-hash=1ZEf2w6L34253cZXS_HlVevLEENWS9QqrnxGUAYblPo%3D" alt="AureoleArk" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5670915/ee175f0bfb6347ffa4ea101a8c097bff/1.jpg?token-time=2145916800&token-hash=mPLM9CA-riFHx-myr3bLZJuH2xBRHA9se5VbHhLIOuA%3D" alt="osapon" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/16869916" alt="見当かなみ" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/18899730/6a22797f68254034a854d69ea2445fc8/1.png?token-time=2145916800&token-hash=b_uj57yxo5VzkSOUS7oXE_762dyOTB_oxzbO6lFNG3k%3D" alt="YuzuRyo61" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/557245" alt="mkatze " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/23915207/25428766ecd745478e600b3d7f871eb2/1.png?token-time=2145916800&token-hash=urCLLA4KjJZX92Y1CxcBP4d8bVTHGkiaPnQZp-Tqz68%3D" alt="kabo2468y " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/8249688/4aacf36b6b244ab1bc6653591b6640df/2.png?token-time=2145916800&token-hash=1ZEf2w6L34253cZXS_HlVevLEENWS9QqrnxGUAYblPo%3D" alt="AureoleArk " width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/21285325" alt="Nie(sha) " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5670915/ee175f0bfb6347ffa4ea101a8c097bff/1.jpg?token-time=2145916800&token-hash=mPLM9CA-riFHx-myr3bLZJuH2xBRHA9se5VbHhLIOuA%3D" alt="osapon " width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/16869916" alt="見当かなみ " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/18899730/6a22797f68254034a854d69ea2445fc8/1.png?token-time=2145916800&token-hash=b_uj57yxo5VzkSOUS7oXE_762dyOTB_oxzbO6lFNG3k%3D" alt="YuzuRyo61 " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5788159/af42076ab3354bb49803cfba65f94bee/1.jpg?token-time=2145916800&token-hash=iSaxp_Yr2-ZiU2YVi9rcpZZj9mj3UvNSMrZr4CU4qtA%3D" alt="mewl hayabusa" width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/user?u=776209">Denshi</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=776209">Denshi </a></td>
|
||||
<td><a href="https://www.patreon.com/wakest">Liaizon Wakest</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=557245">mkatze</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=23915207">kabo2468y</a></td>
|
||||
<td><a href="https://www.patreon.com/AureoleArk">AureoleArk</a></td>
|
||||
<td><a href="https://www.patreon.com/osapon">osapon</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=16869916">見当かなみ</a></td>
|
||||
<td><a href="https://www.patreon.com/Yuzulia">YuzuRyo61</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=557245">mkatze </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=23915207">kabo2468y </a></td>
|
||||
<td><a href="https://www.patreon.com/AureoleArk">AureoleArk </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=21285325">Nie(sha) </a></td>
|
||||
<td><a href="https://www.patreon.com/osapon">osapon </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=16869916">見当かなみ </a></td>
|
||||
<td><a href="https://www.patreon.com/Yuzulia">YuzuRyo61 </a></td>
|
||||
<td><a href="https://www.patreon.com/hs_sh_net">mewl hayabusa</a></td>
|
||||
</tr></table>
|
||||
<table><tr>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/28779508/3cd4cb7f017f4ee0864341e3464d42f9/1.png?token-time=2145916800&token-hash=eGQtR15be44kgvh8fw2Jx8Db4Bv15YBp2ldxh0EKRxA%3D" alt="S Y" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/16542964" alt="Takumi Sugita" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/17866454" alt="sikyosyounin" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/17866454" alt="sikyosyounin " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5881381/6235ca5d3fb04c8e95ef5b4ff2abcc18/3.png?token-time=2145916800&token-hash=KjfQL8nf3AIf6WqzLshBYAyX44piAqOAZiYXgZS_H6A%3D" alt="YUKIMOCHI" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/26340354/08834cf767b3449e93098ef73a434e2f/2.png?token-time=2145916800&token-hash=nyM8DnKRL8hR47HQ619mUzsqVRpkWZjgtgBU9RY15Uc%3D" alt="totokoro" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/19356899/496b4681d33b4520bd7688e0fd19c04d/2.jpeg?token-time=2145916800&token-hash=_sTj3dUBOhn9qwiJ7F19Qd-yWWfUqJC_0jG1h0agEqQ%3D" alt="sheeta.s" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5827393/59893c191dda408f9cabd0f20a3a5627/1.jpeg?token-time=2145916800&token-hash=i9N05vOph-eP1LTLb9_npATjYOpntL0ZsHNaZFSsPmE%3D" alt="motcha" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/20494440/540beaf2445f408ea6597bc61e077bb3/1.png?token-time=2145916800&token-hash=UJ0JQge64Bx9XmN_qYA1inMQhrWf4U91fqz7VAKJeSg%3D" alt="axtuki1" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/26340354/08834cf767b3449e93098ef73a434e2f/2.png?token-time=2145916800&token-hash=nyM8DnKRL8hR47HQ619mUzsqVRpkWZjgtgBU9RY15Uc%3D" alt="totokoro " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/19356899/496b4681d33b4520bd7688e0fd19c04d/2.jpeg?token-time=2145916800&token-hash=_sTj3dUBOhn9qwiJ7F19Qd-yWWfUqJC_0jG1h0agEqQ%3D" alt="sheeta.s " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5827393/59893c191dda408f9cabd0f20a3a5627/1.jpeg?token-time=2145916800&token-hash=i9N05vOph-eP1LTLb9_npATjYOpntL0ZsHNaZFSsPmE%3D" alt="motcha " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/20494440/540beaf2445f408ea6597bc61e077bb3/1.png?token-time=2145916800&token-hash=UJ0JQge64Bx9XmN_qYA1inMQhrWf4U91fqz7VAKJeSg%3D" alt="axtuki1 " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13737140/1adf7835017d479280d90fe8d30aade2/1.png?token-time=2145916800&token-hash=0pdle8h5pDZrww0BDOjdz6zO-HudeGTh36a3qi1biVU%3D" alt="Satsuki Yanagi" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/17880724/311738c8a48f4a6b9443c2445a75adde/1.jpg?token-time=2145916800&token-hash=nVAntpybQrznE0rg05keLrSE6ogPKJXB13rmrJng42c%3D" alt="takimura" width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/user?u=28779508">S Y</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=17866454">sikyosyounin</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=17866454">sikyosyounin </a></td>
|
||||
<td><a href="https://www.patreon.com/yukimochi">YUKIMOCHI</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=26340354">totokoro</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=19356899">sheeta.s</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=5827393">motcha</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=20494440">axtuki1</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=26340354">totokoro </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=19356899">sheeta.s </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=5827393">motcha </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=20494440">axtuki1 </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=13737140">Satsuki Yanagi</a></td>
|
||||
<td><a href="https://www.patreon.com/takimura">takimura</a></td>
|
||||
</tr></table>
|
||||
<table><tr>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/17880724/311738c8a48f4a6b9443c2445a75adde/1.jpg?token-time=2145916800&token-hash=nVAntpybQrznE0rg05keLrSE6ogPKJXB13rmrJng42c%3D" alt="takimura " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13100201/fc5be4fa90444f09a9c8a06f72385272/1.png?token-time=2145916800&token-hash=i8PjlgfOB2LPEdbtWyx8ZPsBKhGcNZqcw_FQmH71UGU%3D" alt="aqz tamaina" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/28295158/cd2451bfb94a449dbf705ef4718cd355/2.jpeg?token-time=2145916800&token-hash=MRv3BxufHPuCyiBSxU5UYmLGvD6YZlhtSFRfMWg2k4U%3D" alt="012" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/9109588/e3cffc48d20a4e43afe04123e696781d/3.png?token-time=2145916800&token-hash=T_VIUA0IFIbleZv4pIjiszZGnQonwn34sLCYFIhakBo%3D" alt="nafuchoco" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/28295158/cd2451bfb94a449dbf705ef4718cd355/2.jpeg?token-time=2145916800&token-hash=MRv3BxufHPuCyiBSxU5UYmLGvD6YZlhtSFRfMWg2k4U%3D" alt="012 " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/9109588/e3cffc48d20a4e43afe04123e696781d/3.png?token-time=2145916800&token-hash=T_VIUA0IFIbleZv4pIjiszZGnQonwn34sLCYFIhakBo%3D" alt="nafuchoco " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/16900731/619ab87cc08448439222631ebb26802f/1.gif?token-time=2145916800&token-hash=o27K7M02s1z-LkDUEO5Oa7cu-GviRXeOXxryi4o_6VU%3D" alt="Atsuko Tominaga" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/4389829/9f709180ac714651a70f74a82f3ffdb9/3.png?token-time=2145916800&token-hash=FTm3WVom4dJ9NwWMU4OpCL_8Yc13WiwEbKrDPyTZTPs%3D" alt="natalie" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5923936/2a743cbfbff946c2af3f09026047c0da/2.png?token-time=2145916800&token-hash=h6yphW1qnM0n_NOWaf8qtszMRLXEwIxfk5beu4RxdT0%3D" alt="noellabo" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/2384390/5681180e1efb46a8b28e0e8d4c8b9037/1.jpg?token-time=2145916800&token-hash=SJcMy-Q1BcS940-LFUVOMfR7-5SgrzsEQGhYb3yowFk%3D" alt="CG" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/18072312/98e894d960314fa7bc236a72a39488fe/1.jpg?token-time=2145916800&token-hash=7bkMqTwHPRsJPGAq42PYdDXDZBVGLqdgr1ZmBxX8GFQ%3D" alt="Hekovic" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/4389829/9f709180ac714651a70f74a82f3ffdb9/3.png?token-time=2145916800&token-hash=FTm3WVom4dJ9NwWMU4OpCL_8Yc13WiwEbKrDPyTZTPs%3D" alt="natalie " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/26144593/9514b10a5c1b42a3af58621aee213d1d/1.png?token-time=2145916800&token-hash=v1PYRsjzu4c_mndN4Hvi_dlispZJsuGRCQeNS82pUSM%3D" alt="EBISUME" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5923936/2a743cbfbff946c2af3f09026047c0da/2.png?token-time=2145916800&token-hash=h6yphW1qnM0n_NOWaf8qtszMRLXEwIxfk5beu4RxdT0%3D" alt="noellabo " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/2384390/5681180e1efb46a8b28e0e8d4c8b9037/1.jpg?token-time=2145916800&token-hash=SJcMy-Q1BcS940-LFUVOMfR7-5SgrzsEQGhYb3yowFk%3D" alt="CG " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/18072312/98e894d960314fa7bc236a72a39488fe/1.jpg?token-time=2145916800&token-hash=7bkMqTwHPRsJPGAq42PYdDXDZBVGLqdgr1ZmBxX8GFQ%3D" alt="Hekovic " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/24641572/b4fd175424814f15b0ca9178d2d2d2e4/1.png?token-time=2145916800&token-hash=e2fyqdbuJbpCckHcwux7rbuW6OPkKdERcus0u2wIEWU%3D" alt="uroco @99" width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/takimura">takimura </a></td>
|
||||
<td><a href="https://www.patreon.com/aqz">aqz tamaina</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=28295158">012</a></td>
|
||||
<td><a href="https://www.patreon.com/nijimiss">nafuchoco</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=28295158">012 </a></td>
|
||||
<td><a href="https://www.patreon.com/nijimiss">nafuchoco </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=16900731">Atsuko Tominaga</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=4389829">natalie</a></td>
|
||||
<td><a href="https://www.patreon.com/noellabo">noellabo</a></td>
|
||||
<td><a href="https://www.patreon.com/Corset">CG</a></td>
|
||||
<td><a href="https://www.patreon.com/hekovic">Hekovic</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=4389829">natalie </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=26144593">EBISUME</a></td>
|
||||
<td><a href="https://www.patreon.com/noellabo">noellabo </a></td>
|
||||
<td><a href="https://www.patreon.com/Corset">CG </a></td>
|
||||
<td><a href="https://www.patreon.com/hekovic">Hekovic </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=24641572">uroco @99</a></td>
|
||||
</tr></table>
|
||||
<table><tr>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5731881/4b6038e6cda34c04b83a5fcce3806a93/1.png?token-time=2145916800&token-hash=hBayGfOmQH3kRMdNnDe4oCZD_9fsJWSt29xXR3KRMVk%3D" alt="Nokotaro Takeda" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/23932002" alt="nenohi" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/9481273/7fa89168e72943859c3d3c96e424ed31/4.jpeg?token-time=2145916800&token-hash=5w1QV1qXe-NdWbdFmp1H7O_-QBsSiV0haumk3XTHIEg%3D" alt="Efertone" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/23932002" alt="nenohi " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/9481273/7fa89168e72943859c3d3c96e424ed31/4.jpeg?token-time=2145916800&token-hash=5w1QV1qXe-NdWbdFmp1H7O_-QBsSiV0haumk3XTHIEg%3D" alt="Efertone " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12531784/93a45137841849329ba692da92ac7c60/1.jpeg?token-time=2145916800&token-hash=vGe7wXGqmA8Q7m-kDNb6fyGdwk-Dxk4F-ut8ZZu51RM%3D" alt="Takashi Shibuya" width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/takenoko">Nokotaro Takeda</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=23932002">nenohi</a></td>
|
||||
<td><a href="https://www.patreon.com/efertone">Efertone</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=23932002">nenohi </a></td>
|
||||
<td><a href="https://www.patreon.com/efertone">Efertone </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=12531784">Takashi Shibuya</a></td>
|
||||
</tr></table>
|
||||
|
||||
**Last updated:** Tue, 17 Mar 2020 18:57:08 UTC
|
||||
**Last updated:** Thu, 07 May 2020 18:00:08 UTC
|
||||
<!-- PATREON_END -->
|
||||
|
||||
[backer-url]: #backers
|
||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 7.2 KiB |
27
assets/icon.svg
Normal file
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<g transform="matrix(0.413372,0,0,0.469741,64.564,40.5821)">
|
||||
<rect x="-156.189" y="-86.393" width="619.297" height="544.981" style="fill:rgb(27,30,31);"/>
|
||||
</g>
|
||||
<g transform="matrix(0.898356,0,0,0.898356,-130.722,-120.968)">
|
||||
<g transform="matrix(0.5,0.866025,-0.866025,0.5,288,-166.277)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653Z" style="fill:white;"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,-96,166.277)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653Z" style="fill:white;"/>
|
||||
</g>
|
||||
<g transform="matrix(0.5,-0.866025,0.866025,0.5,-96,498.831)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653Z" style="fill:white;"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,-95.9902,55.4086)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653ZM385.681,139.653C385.332,139.049 384.688,138.677 383.99,138.677C383.293,138.677 382.648,139.049 382.299,139.653C378.289,146.599 373.342,155.168 369.8,161.303C368.017,164.391 368.017,168.196 369.8,171.285C373.339,177.414 378.28,185.972 382.288,192.915C382.639,193.523 383.288,193.898 383.99,193.898C384.692,193.898 385.341,193.523 385.692,192.915C389.701,185.972 394.642,177.414 398.181,171.284C399.964,168.196 399.964,164.391 398.181,161.303L385.681,139.653Z" style="fill:rgb(150,208,74);"/>
|
||||
</g>
|
||||
<g transform="matrix(0.5,-0.866025,0.866025,0.5,-2.64322e-11,554.256)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653ZM385.681,139.653C385.332,139.049 384.688,138.677 383.99,138.677C383.293,138.677 382.648,139.049 382.299,139.653C378.289,146.599 373.342,155.168 369.8,161.303C368.017,164.391 368.017,168.196 369.8,171.285C373.339,177.414 378.28,185.972 382.288,192.915C382.639,193.523 383.288,193.898 383.99,193.898C384.692,193.898 385.341,193.523 385.692,192.915C389.701,185.972 394.642,177.414 398.181,171.284C399.964,168.196 399.964,164.391 398.181,161.303L385.681,139.653Z" style="fill:rgb(150,208,74);"/>
|
||||
</g>
|
||||
<g transform="matrix(0.5,0.866025,-0.866025,0.5,192,-110.851)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653ZM385.681,139.653C385.332,139.049 384.688,138.677 383.99,138.677C383.293,138.677 382.648,139.049 382.299,139.653C378.289,146.599 373.342,155.168 369.8,161.303C368.017,164.391 368.017,168.196 369.8,171.285C373.339,177.414 378.28,185.972 382.288,192.915C382.639,193.523 383.288,193.898 383.99,193.898C384.692,193.898 385.341,193.523 385.692,192.915C389.701,185.972 394.642,177.414 398.181,171.284C399.964,168.196 399.964,164.391 398.181,161.303L385.681,139.653Z" style="fill:rgb(150,208,74);"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 18 KiB |
@ -24,7 +24,7 @@ services:
|
||||
|
||||
db:
|
||||
restart: always
|
||||
image: postgres:11.2-alpine
|
||||
image: postgres:12.2-alpine
|
||||
networks:
|
||||
- internal_network
|
||||
env_file:
|
||||
|
@ -39,8 +39,8 @@ server {
|
||||
#ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
|
||||
|
||||
# SSL protocol settings
|
||||
ssl_protocols TLSv1 TLSv1.2;
|
||||
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES128-SHA;
|
||||
ssl_protocols TLSv1.2;
|
||||
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES128-SHA;
|
||||
ssl_prefer_server_ciphers on;
|
||||
|
||||
# Change to your upload limit
|
||||
@ -53,6 +53,7 @@ server {
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto https;
|
||||
proxy_set_header Accept-Encoding "";
|
||||
proxy_http_version 1.1;
|
||||
proxy_redirect off;
|
||||
|
||||
|
17
gulpfile.ts
@ -5,7 +5,6 @@
|
||||
import * as fs from 'fs';
|
||||
import * as gulp from 'gulp';
|
||||
import * as ts from 'gulp-typescript';
|
||||
import * as mocha from 'gulp-mocha';
|
||||
import * as rimraf from 'rimraf';
|
||||
import * as rename from 'gulp-rename';
|
||||
const cleanCSS = require('gulp-clean-css');
|
||||
@ -39,7 +38,11 @@ gulp.task('build:copy:locales', cb => {
|
||||
cb();
|
||||
});
|
||||
|
||||
gulp.task('build:copy', gulp.parallel('build:copy:views', 'build:copy:locales', () =>
|
||||
gulp.task('build:copy:fonts', () =>
|
||||
gulp.src('./node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/client/assets/fonts/'))
|
||||
);
|
||||
|
||||
gulp.task('build:copy', gulp.parallel('build:copy:views', 'build:copy:locales', 'build:copy:fonts', () =>
|
||||
gulp.src([
|
||||
'./src/emojilist.json',
|
||||
'./src/server/web/views/**/*',
|
||||
@ -93,14 +96,4 @@ gulp.task('build', gulp.parallel(
|
||||
'build:client',
|
||||
));
|
||||
|
||||
gulp.task('mocha', () =>
|
||||
gulp.src('./test/**/*.ts')
|
||||
.pipe(mocha({
|
||||
exit: true,
|
||||
require: 'ts-node/register'
|
||||
} as any))
|
||||
);
|
||||
|
||||
gulp.task('test', gulp.task('mocha'));
|
||||
|
||||
gulp.task('default', gulp.task('build'));
|
||||
|
@ -1,11 +1,12 @@
|
||||
---
|
||||
_lang_: "Deutsch"
|
||||
introMisskey: "Willkommen! Misskey ist eine dezentralisierte Open-Source Microblogging-Platform.\nVerfasse \"Notizen\" um mitzuteilen, was gerade passiert oder um Ereignisse mit Anderen zu teilen. 📡\nMit \"Reaktionen\" kannst du außerdem schnell deine Gefühle über Notizen anderer Benutzer zum Ausdruck bringen. 👍\nLass uns eine neue Welt erforschen! 🚀"
|
||||
monthAndDay: "{day}/{month}"
|
||||
search: "Suchen"
|
||||
notifications: "Benachrichtigungen"
|
||||
username: "Benutzername"
|
||||
password: "Passwort"
|
||||
fetchingAsApObject: "Aus Fediverse holen"
|
||||
fetchingAsApObject: "Wird aus dem Fediverse angefragt..."
|
||||
ok: "OK"
|
||||
gotIt: "Verstanden!"
|
||||
cancel: "Abbrechen"
|
||||
@ -16,17 +17,17 @@ noNotifications: "Keine Benachrichtigungen"
|
||||
instance: "Instanz"
|
||||
settings: "Einstellungen"
|
||||
profile: "Profil"
|
||||
timeline: "Zeitleiste"
|
||||
noAccountDescription: "Keine Selbsteinführung"
|
||||
timeline: "Chronik"
|
||||
noAccountDescription: "Dieser Nutzer hat seine Profilbeschreibung noch nicht ausgefüllt."
|
||||
login: "Einloggen"
|
||||
loggingIn: "Einloggen in bearbeitung"
|
||||
loggingIn: "Du wirst eingeloggt..."
|
||||
logout: "Ausloggen"
|
||||
signup: "Registrieren"
|
||||
uploading: "Upload läuft"
|
||||
save: "Speichern"
|
||||
users: "Benutzer"
|
||||
addUser: "Benutzer hinzufügen"
|
||||
favorite: "Favoriten"
|
||||
favorite: "Zu Favoriten hinzufügen"
|
||||
favorites: "Favoriten"
|
||||
unfavorite: "Aus Favoriten entfernen"
|
||||
pin: "Anheften"
|
||||
@ -34,57 +35,60 @@ unpin: "Lösen"
|
||||
copyContent: "Inhalt kopieren"
|
||||
copyLink: "Link kopieren"
|
||||
delete: "Löschen"
|
||||
addToList: "Zur Liste hinzufügen"
|
||||
deleteAndEdit: "Löschen und Bearbeiten"
|
||||
deleteAndEditConfirm: "Möchtest du diese Notiz wirklich löschen und bearbeiten? Alle Reaktionen, Renotes und Antworten dieser Notiz werden verloren gehen."
|
||||
addToList: "Zu Liste hinzufügen"
|
||||
sendMessage: "Nachricht senden"
|
||||
copyUsername: "Benutzernamen kopieren"
|
||||
reply: "Antworten"
|
||||
loadMore: "Zeige mehr"
|
||||
youGotNewFollower: "Sie haben einen neuen Follower"
|
||||
receiveFollowRequest: "Follow Request erhalten."
|
||||
followRequestAccepted: "FollowRequestAkzeptiert"
|
||||
loadMore: "Mehr anzeigen"
|
||||
youGotNewFollower: "Du hast einen neuen Follower"
|
||||
receiveFollowRequest: "Follow-Anfrage erhalten."
|
||||
followRequestAccepted: "Follow-Anfrage akzeptiert"
|
||||
mentions: "Erwähnungen"
|
||||
directNotes: "Direktnachrichten"
|
||||
importAndExport: "Importieren und Exportieren"
|
||||
import: "Importieren"
|
||||
export: "Exportieren"
|
||||
files: "Dateien"
|
||||
download: "Download"
|
||||
download: "Herunterladen"
|
||||
driveFileDeleteConfirm: "Möchtest du die Datei \"{name}\" löschen? Die zugehörige Notiz wird ebenso verschwinden."
|
||||
unfollowConfirm: "Möchtest du {name} nicht mehr folgen?"
|
||||
exportRequested: "Du hast einen Export angefragt. Dies kann etwas Zeit in Anspruch nehmen. Sobald der Export abgeschlossen ist, wird er deiner Drive hinzugefügt."
|
||||
importRequested: "Du hast einen Import angefragt. Dies kann etwas Zeit in Anspruch nehmen."
|
||||
lists: "Listen"
|
||||
noLists: "Keine Liste!"
|
||||
noLists: "Du hast keine Listen"
|
||||
note: "Notiz"
|
||||
notes: "Notizen"
|
||||
following: "Folgen"
|
||||
followers: "Folgende"
|
||||
following: "Folgt"
|
||||
followers: "Gefolgt von"
|
||||
followsYou: "Folgt dir"
|
||||
createList: "Liste erstellen"
|
||||
manageLists: "Liste verwalten"
|
||||
manageLists: "Listen verwalten"
|
||||
error: "Ein Problem ist aufgetreten"
|
||||
retry: "Wiederholen"
|
||||
enterListName: "Listennamen eingeben"
|
||||
privacy: "Privatsphäre"
|
||||
makeFollowManuallyApprove: "Folgeanfragen benötigen Bestätigung"
|
||||
defaultNoteVisibility: "Die Standardsichtbarkeit"
|
||||
makeFollowManuallyApprove: "Follow-Anfragen benötigen Bestätigung"
|
||||
defaultNoteVisibility: "Standardsichtbarkeit"
|
||||
follow: "Folgen"
|
||||
followRequest: "Follower-Anfragen"
|
||||
followRequests: "Follower-Anfragen"
|
||||
followRequest: "Follow-Anfrage"
|
||||
followRequests: "Follow-Anfragen"
|
||||
unfollow: "Nicht mehr folgen"
|
||||
followRequestPending: "Ausstehend"
|
||||
followRequestPending: "Ausstehende Follow-Anfrage"
|
||||
enterEmoji: "Gib ein Emoji ein"
|
||||
renote: "Renote"
|
||||
unrenote: "Renote zurücknehmen"
|
||||
quote: "Zitieren"
|
||||
pinnedNote: "Angepinnte Notiz"
|
||||
you: "Du"
|
||||
clickToShow: "Klicke zum den Inhalt anzusehen"
|
||||
clickToShow: "Klicke, um diesen Inhalt anzusehen"
|
||||
sensitive: "Dieser Inhalt ist NSFW"
|
||||
add: "Hinzufügen"
|
||||
reaction: "Reaktionen"
|
||||
reactionSettingDescription: "Weisen Sie Ihre lieblings reaktionen zu, die Sie in den Reaktionenswähler stecken möchten."
|
||||
reactionSettingDescription: "Gib deine Lieblingsreaktionen ein, um sie der Reaktionsauswahl hinzuzufügen."
|
||||
rememberNoteVisibility: "Notizsichtbarkeit merken"
|
||||
renameFile: "Datei umbenennen"
|
||||
attachCancel: "Anhängen abbrechen"
|
||||
attachCancel: "Anhang entfernen"
|
||||
markAsSensitive: "Als sensitiv markieren"
|
||||
unmarkAsSensitive: "Markierung als sensitiv zurücknehmen"
|
||||
enterFileName: "Dateinamen eingeben"
|
||||
@ -94,40 +98,55 @@ block: "Blockieren"
|
||||
unblock: "Blockierung aufheben"
|
||||
suspend: "Sperren"
|
||||
unsuspend: "Sperrung aufheben"
|
||||
blockConfirm: "Möchtest du diesen Account wirklich blockieren?"
|
||||
blockConfirm: "Möchtest du diesen Benutzer wirklich blockieren?"
|
||||
unblockConfirm: "Möchtest du diese Blockierung wirklich aufheben?"
|
||||
suspendConfirm: "Möchtest du diesen Account wirklich sperren?"
|
||||
unsuspendConfirm: "Möchtest du die Sperrung dieses Accounts wirklich aufheben?"
|
||||
suspendConfirm: "Möchtest du diesen Benutzer wirklich sperren?"
|
||||
unsuspendConfirm: "Möchtest du die Sperrung dieses Benutzers wirklich aufheben?"
|
||||
selectList: "Wähle eine Liste aus"
|
||||
customEmojis: "Benutzerdefinierte Emojis"
|
||||
emojiName: "Emojiname"
|
||||
emojiUrl: "Emoji-URL"
|
||||
addEmoji: "Emoji hinzufügen"
|
||||
settingGuide: "Empfohlene Einstellung"
|
||||
cacheRemoteFiles: "Dateien von anderen Instanzen im Cache speichern"
|
||||
cacheRemoteFilesDescription: "Wenn diese Einstellung deaktiviert ist, werden Dateien anderer Instanzen direkt von dort geladen. Hierdurch wird Speicherplatz gespart, aber mehr Bandbreite verbraucht, da keine Vorschaubilder generiert werden."
|
||||
flagAsBot: "Als Bot markieren"
|
||||
flagAsCat: "Als Katze markieren"
|
||||
autoAcceptFollowed: "Folgeanfragen automatisch akzeptieren"
|
||||
autoAcceptFollowed: "Follow-Anfragen automatisch akzeptieren"
|
||||
addAcount: "Benutzerkonto hinzufügen"
|
||||
loginFailed: "Login fehlgeschlagen"
|
||||
showOnRemote: "Auf Ursprungsinstanz ansehen"
|
||||
general: "Allgemein"
|
||||
wallpaper: "Hintergrund"
|
||||
setWallpaper: "Hintergrund festlegen"
|
||||
removeWallpaper: "Hintergrund entfernen"
|
||||
searchWith: "Suche: {q}"
|
||||
youHaveNoLists: "Du hast keine Listen"
|
||||
followConfirm: "Möchtest du {name} wirklich folgen?"
|
||||
proxyAccount: "Proxy-Benutzerkonto"
|
||||
proxyAccountDescription: "Ein Proxy-Benutzerkonto ist ein Benutzerkonto, das sich für Nutzer unter bestimmten Konditionen wie ein Follower aus einer fremden Instanz verhält. Zum Beispiel wird die Aktivität eines Nutzers aus einer fremden Instanz nicht an diese Instanz übermittelt, falls es keinen Benutzer dieser Instanz gibt, der diesem Nutzer aus fremder Instanz folgt. In diesem Fall folgt stattdessen das Proxy-Benutzerkonto."
|
||||
host: "Host"
|
||||
selectUser: "Benutzer wählen"
|
||||
recipient: "Empfänger"
|
||||
annotation: "Anmerkung"
|
||||
federation: "Föderation"
|
||||
instances: "Instanz"
|
||||
registeredAt: "Registriert am"
|
||||
latestRequestSentAt: "Letzte Anfrage gesendet am"
|
||||
latestRequestReceivedAt: "Letzte Anfrage erhalten am"
|
||||
latestStatus: "Neuester Status"
|
||||
storageUsage: "Speicherplatzverbrauch"
|
||||
charts: "Charts"
|
||||
charts: "Diagramme"
|
||||
perHour: "Pro Stunde"
|
||||
perDay: "Pro Tag"
|
||||
stopActivityDelivery: "Senden von Aktivitäten einstellen"
|
||||
blockThisInstance: "Diese Instanz blockieren"
|
||||
operations: "Aktionen"
|
||||
software: "Software"
|
||||
version: "Version"
|
||||
metadata: "Metadaten"
|
||||
withNFiles: "{n} Datei(en)"
|
||||
monitor: "Beobachten"
|
||||
jobQueue: "Job-Warteschlange"
|
||||
cpuAndMemory: "CPU und Arbeitsspeicher"
|
||||
network: "Netzwerk"
|
||||
@ -138,6 +157,7 @@ clearQueue: "Warteschlange leeren"
|
||||
clearQueueConfirmTitle: "Möchtest du die Warteschlange wirklich leeren?"
|
||||
clearQueueConfirmText: "Jegliche Notizen, die sich noch in der Warteschlange befinden, werden hierdurch nicht föderiert. Diese Aktion wird normalerweise NICHT benötigt."
|
||||
clearCachedFiles: "Cache leeren"
|
||||
clearCachedFilesConfirm: "Sollen alle im Cache gespeicherten Dateien von anderen Instanzen wirklich gelöscht werden?"
|
||||
blockedInstances: "Blockierte Instanzen"
|
||||
blockedInstancesDescription: "Gib den Hostnamen der Instanz an, die blockiert werden soll. Blockierte Instanzen können nicht mehr mit dieser kommunizieren."
|
||||
muteAndBlock: "Stummgeschaltet / Blockiert"
|
||||
@ -153,11 +173,18 @@ processing: "In Bearbeitung"
|
||||
preview: "Vorschau"
|
||||
default: "Standard"
|
||||
noCustomEmojis: "Es existieren keine Emojis"
|
||||
customEmojisOfRemote: "Emojis von anderen Instanzen"
|
||||
noJobs: "Es gibt keine Jobs"
|
||||
federating: "Föderiert"
|
||||
blocked: "Blockiert"
|
||||
suspended: "Gesperrt"
|
||||
all: "Alles"
|
||||
subscribing: "Abonnieren"
|
||||
publishing: "Veröffentlichen"
|
||||
notResponding: "Antwortet nicht"
|
||||
instanceFollowing: "Gefolgt auf der Instanz"
|
||||
instanceFollowers: "Follower der Instanz"
|
||||
instanceUsers: "Benutzer dieser Instanz"
|
||||
changePassword: "Passwort ändern"
|
||||
security: "Sicherheit"
|
||||
retypedNotMatch: "Eingaben stimmen nicht überein."
|
||||
@ -166,47 +193,68 @@ newPassword: "Neues Passwort"
|
||||
newPasswordRetype: "Neues Passwort (wiederholen)"
|
||||
attachFile: "Datei anhängen"
|
||||
more: "Mehr!"
|
||||
featured: "Hervorgehoben"
|
||||
featured: "Beliebt"
|
||||
usernameOrUserId: "Benutzername oder Benutzer-ID"
|
||||
noSuchUser: "Benutzer nicht gefunden"
|
||||
lookup: "Abfragen"
|
||||
announcements: "Ankündigungen"
|
||||
imageUrl: "Bild-URL"
|
||||
remove: "Löschen"
|
||||
removed: "Erfolgreich gelöscht"
|
||||
removeAreYouSure: "Möchtest du \"{x}\" wirklich löschen?"
|
||||
saved: "Gespeichert"
|
||||
messaging: "Nachrichten"
|
||||
messaging: "Privatnachrichten"
|
||||
upload: "Hochladen"
|
||||
fromDrive: "Aus Drive"
|
||||
fromUrl: "Von einer URL"
|
||||
uploadFromUrl: "Von einer URL hochladen"
|
||||
uploadFromUrlDescription: "URL der hochzuladenden Datei"
|
||||
uploadFromUrlRequested: "Upload angefordert"
|
||||
uploadFromUrlMayTakeTime: "Es kann eine Weile dauern, bis der Upload abgeschlossen ist."
|
||||
explore: "Erkunden"
|
||||
games: "Misskey Spiele"
|
||||
messageRead: "Gelesen"
|
||||
recentUsedEmojis: "Kürzlich genutzte Emojis"
|
||||
noMoreHistory: "Kein weiterer Verlauf vorhanden"
|
||||
startMessaging: "Neue Privatnachricht erstellen"
|
||||
nUsersRead: "Von {n} gelesen"
|
||||
agreeTo: "Ich stimme {0} zu"
|
||||
tos: "Nutzungsbedingungen"
|
||||
start: "Anfangen"
|
||||
home: "Startseite"
|
||||
remoteUserCaution: "Diese Informationen sind möglicherweise veraltet, da der Benutzer von einer anderen Instanz stammt."
|
||||
activity: "Aktivität"
|
||||
images: "Bilder"
|
||||
birthday: "Geburtstag"
|
||||
yearsOld: "{age} Jahre alt"
|
||||
registeredDate: "Registierdatum"
|
||||
registeredDate: "Registrationsdatum"
|
||||
location: "Ort"
|
||||
theme: "Farbthemen"
|
||||
themeForLightMode: "Farbthema, das im Hellmodus genutzt wird"
|
||||
themeForDarkMode: "Farbthema, das im Dunkelmodus genutzt wird"
|
||||
light: "Hell"
|
||||
dark: "Dunkel"
|
||||
lightThemes: "Helle Farbthemen"
|
||||
darkThemes: "Dunkle Farbthemen"
|
||||
syncDeviceDarkMode: "Dunkelmodus mit den Einstellungen deines Gerätes synchronisieren"
|
||||
drive: "Drive"
|
||||
fileName: "Dateiname"
|
||||
selectFile: "Datei auswählen"
|
||||
selectFiles: "Dateien auswählen"
|
||||
renameFolder: "Ordner umbenennen"
|
||||
selectFolder: "Wähle einen Ordner"
|
||||
selectFolders: "Wähle Ordner"
|
||||
renameFile: "Datei umbenennen"
|
||||
folderName: "Ordnername"
|
||||
createFolder: "Ordner erstellen"
|
||||
renameFolder: "Ordner umbenennen"
|
||||
deleteFolder: "Ordner löschen"
|
||||
addFile: "Datei hinzufügen"
|
||||
emptyDrive: "Drive ist leer"
|
||||
emptyFolder: "Der Ordner ist leer"
|
||||
unableToDelete: "Nicht löschbar"
|
||||
inputNewFileName: "Gib einen neuen Dateinamen ein"
|
||||
inputNewFolderName: "Gib einen neuen Ordnernamen ein"
|
||||
circularReferenceFolder: "Der Zielordner ist ein Unterorder des Ordners, den du verschieben möchtest."
|
||||
hasChildFilesOrFolders: "Dieser Ordner kann nicht gelöscht werden, da er nicht leer ist."
|
||||
copyUrl: "URL kopieren"
|
||||
rename: "Umbenennen"
|
||||
avatar: "Profilbild"
|
||||
@ -215,34 +263,52 @@ nsfw: "Dieser Inhalt ist NSFW"
|
||||
disconnectedFromServer: "Verbindung zum Server wurde getrennt"
|
||||
reload: "Aktualisieren"
|
||||
doNothing: "Ignorieren"
|
||||
reloadConfirm: "Möchtest du die Chronik aktualisieren?"
|
||||
watch: "Beobachten"
|
||||
unwatch: "Nicht mehr beobachten"
|
||||
accept: "Akzeptieren"
|
||||
reject: "Ablehnen"
|
||||
normal: "Normal"
|
||||
instanceName: "Name der Instanz"
|
||||
instanceDescription: "Beschreibung der Instanz"
|
||||
maintainerName: "Betreiber"
|
||||
maintainerEmail: "Betreiberemail"
|
||||
maintainerEmail: "Betreiber-Email"
|
||||
tosUrl: "URL der Nutzungsbedingungen"
|
||||
thisYear: "Dieses Jahr"
|
||||
thisMonth: "Dieser Monat"
|
||||
today: "Heute"
|
||||
dayX: "{day}"
|
||||
monthX: "{month}"
|
||||
yearX: "{year}"
|
||||
pages: "Seiten"
|
||||
integration: "Integration"
|
||||
connectSerice: "Verbinden"
|
||||
disconnectSerice: "Trennen"
|
||||
enableLocalTimeline: "Lokale Chronik aktivieren"
|
||||
enableGlobalTimeline: "Globale Chronik aktivieren"
|
||||
disablingTimelinesInfo: "Administratoren und Moderatoren haben immer Zugriff auf alle Chroniken, auch wenn diese deaktiviert sind."
|
||||
registration: "Registrieren"
|
||||
enableRegistration: "Registration neuer Benutzer erlauben"
|
||||
invite: "Einladen"
|
||||
proxyRemoteFiles: "Dateien anderer Instanzen durch Proxy leiten"
|
||||
proxyRemoteFilesDescription: "Wenn diese Einstellung aktiviert ist, dann werden Dateien von anderen Instanzen, welche entweder nicht lokal gespeichert sind oder durch Überschreiten des Speicherlimits gelöscht wurden, durch einen Proxy geleitet. Hierbei wird auch ein Vorschaubild generiert. \n Dies hat keinen Effekt auf den Speicherplatz des Servers."
|
||||
driveCapacityPerLocalAccount: "Drivekapazität pro lokales Benutzerkonto"
|
||||
driveCapacityPerRemoteAccount: "Drive-Kapazität pro Benutzer anderer Instanzen"
|
||||
inMb: "In Megabytes"
|
||||
iconUrl: "Icon-URL"
|
||||
bannerUrl: "Banner-URL"
|
||||
basicInfo: "Basisdaten"
|
||||
pinnedUsers: "Angepinnte Benutzer"
|
||||
pinnedUsersDescription: "Gib einen Benutzernamen pro Zeile ein. Diese werden im \"Erkunden\" Tab angezeigt."
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "hCaptcha aktivieren"
|
||||
hcaptchaSiteKey: "Site key"
|
||||
hcaptchaSecretKey: "Secret key"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "reCAPTCHA aktivieren"
|
||||
recaptchaSiteKey: "Site key"
|
||||
recaptchaSecretKey: "Secret key"
|
||||
avoidMultiCaptchaConfirm: "Das Verwenden von mehreren Captcha-Systemen kann zu Störungen führen. Möchtest du die anderen Systeme deaktivieren? Du kannst mehrere aktiviert lassen, in dem du auf Abbrechen drückst."
|
||||
antennas: "Antennen"
|
||||
manageAntennas: "Antennen verwalten"
|
||||
name: "Name"
|
||||
@ -250,6 +316,8 @@ antennaSource: "Antennenquelle"
|
||||
antennaKeywords: "Schlüsselwörter, die beobachtet werden sollen"
|
||||
antennaExcludeKeywords: "Schlüsselwörter, die ignoriert werden sollen"
|
||||
antennaKeywordsDescription: "Mit Leerzeichen für eine \"UND\"-Verknüpfung trennen, durch Zeilenumbrüche für eine \"ODER\"-Verknüpfung trennen."
|
||||
notifyAntenna: "Über neue Notizen benachrichtigen"
|
||||
withFileAntenna: "Nur Notizen mit Dateien"
|
||||
serviceworker: "ServiceWorker"
|
||||
enableServiceworker: "ServiceWorker aktivieren"
|
||||
antennaUsersDescription: "Benutzernamen getrennt durch Zeilenumbrüche angeben"
|
||||
@ -257,20 +325,43 @@ caseSensitive: "Groß-/Kleinschreibung unterscheiden"
|
||||
withReplies: "Antworten beinhalten"
|
||||
connectedTo: "Mit folgenden Benutzerkonten verknüpft"
|
||||
notesAndReplies: "Notizen und Antworten"
|
||||
withFiles: "Dateien beinhalten"
|
||||
withFiles: "Notizen mit Dateien"
|
||||
silence: "Instanzweit stummschalten"
|
||||
silenceConfirm: "Möchtest du diesen Benutzer wirklich instanzweit stummschalten?"
|
||||
unsilence: "Instanzweite Stummschaltung aufheben"
|
||||
unsilenceConfirm: "Möchtest du die instanzweite Stummschaltung dieses Benutzers wirklich aufheben?"
|
||||
popularUsers: "Beliebte Benutzer"
|
||||
recentlyUpdatedUsers: "Vor kurzem aktive Benutzer"
|
||||
recentlyRegisteredUsers: "Vor kurzem registrierte Benutzer"
|
||||
recentlyDiscoveredUsers: "Vor kurzem gefundene Benutzer"
|
||||
exploreUsersCount: "Es gibt {count} Benutzer"
|
||||
exploreFediverse: "Das Fediverse erkunden"
|
||||
popularTags: "Beliebte Schlagwörter"
|
||||
userList: "Listen"
|
||||
about: "Über"
|
||||
aboutMisskey: "Über Misskey"
|
||||
aboutMisskeyText: "Misskey ist Open-Source-Software die von syuilo seit 2014 entwickelt wird."
|
||||
misskeyMembers: "Misskey wird momentan von den unten aufgelisteten Mitgliedern weiterentwickelt und instand gehalten:"
|
||||
misskeySource: "Der Quelltext ist hier verfügbar:"
|
||||
misskeyTranslation: "Hilf dabei, Misskey zu übersetzen:"
|
||||
misskeyDonate: "Spende an Misskey, um die Weiterentwicklung zu unterstützen:"
|
||||
morePatrons: "Wir schätzen ebenso die Unterstützung vieler anderer hier nicht gelisteter Personen sehr. Danke! 🥰"
|
||||
patrons: "UnterstützerInnen"
|
||||
administrator: "Administrator"
|
||||
token: "Token"
|
||||
twoStepAuthentication: "Zwei-Faktor-Authentifizierung"
|
||||
moderator: "Moderator"
|
||||
nUsersMentioned: "{n} Benutzer reden darüber"
|
||||
securityKey: "Sicherheitsschlüssel"
|
||||
securityKeyName: "Schlüsselname"
|
||||
registerSecurityKey: "Sicherheitsschlüssel registrieren"
|
||||
lastUsed: "Zuletzt benutzt"
|
||||
unregister: "Deaktivieren"
|
||||
passwordLessLogin: "Passwortloses Anmelden einrichten"
|
||||
resetPassword: "Passwort zurücksetzen"
|
||||
newPasswordIs: "Das neue Passwort ist \"{password}\""
|
||||
posted: "Gesendet"
|
||||
autoReloadWhenDisconnected: "Automatisch aktualisieren wenn die Serververbindung getrennt wird"
|
||||
autoNoteWatch: "Notiz automatisch beobachten"
|
||||
autoNoteWatch: "Notizen automatisch beobachten"
|
||||
autoNoteWatchDescription: "Werde über Notizen, auf die du reagiert oder geantwortet hast, informiert"
|
||||
reduceUiAnimation: "Animationen der Benutzeroberfläche reduzieren"
|
||||
share: "Teilen"
|
||||
@ -280,7 +371,21 @@ uploadFolder: "Standardordner für Uploads"
|
||||
cacheClear: "Cache leeren"
|
||||
markAsReadAllNotifications: "Alle Benachrichtigungen als gelesen markieren"
|
||||
markAsReadAllUnreadNotes: "Alle Notizen als gelesen markieren"
|
||||
invites: "Einladen"
|
||||
markAsReadAllTalkMessages: "Alle Nachrichten als gelesen markieren"
|
||||
help: "Hilfe"
|
||||
inputMessageHere: "Hier Nachricht eingeben"
|
||||
close: "Schließen"
|
||||
group: "Gruppe"
|
||||
groups: "Gruppen"
|
||||
createGroup: "Gruppe erstellen"
|
||||
ownedGroups: "Eigene Gruppen"
|
||||
joinedGroups: "Beigetretene Gruppen"
|
||||
invites: "Einladungen"
|
||||
groupName: "Gruppenname"
|
||||
members: "Mitglieder"
|
||||
transfer: "Übertragen"
|
||||
messagingWithUser: "Privatnachrichten mit einem Benutzer"
|
||||
messagingWithGroup: "Privatnachrichten mit einer Gruppe"
|
||||
title: "Betreff"
|
||||
text: "Text"
|
||||
enable: "Aktivieren"
|
||||
@ -289,13 +394,40 @@ retype: "Erneut eingeben"
|
||||
noteOf: "Notiz von {user}"
|
||||
inviteToGroup: "Zu Gruppe einladen"
|
||||
maxNoteTextLength: "Maximale Länge von Notizen"
|
||||
quoteAttached: "Zitiert"
|
||||
quoteQuestion: "Als Zitat anfügen?"
|
||||
noMessagesYet: "Noch keine Nachrichten"
|
||||
newMessageExists: "Du hast eine neue Nachricht"
|
||||
onlyOneFileCanBeAttached: "Es kann pro Nachricht nur eine Datei angehängt werden"
|
||||
signinRequired: "Anmeldung erforderlich"
|
||||
invitationCode: "Einladungscode"
|
||||
checking: "Wird überprüft..."
|
||||
available: "Verfügbar"
|
||||
unavailable: "Unverfügbar"
|
||||
usernameInvalidFormat: "Buchstaben, Zahlen und Unterstriche sind verwendbar."
|
||||
tooShort: "Zu kurz"
|
||||
tooLong: "Zu lang"
|
||||
weakPassword: "Schwaches Passwort"
|
||||
normalPassword: "Standardpasswort"
|
||||
strongPassword: "Starkes Passwort"
|
||||
passwordMatched: "Stimmt überein"
|
||||
passwordNotMatched: "Stimmt nicht überein"
|
||||
signinWith: "Mit {x} anmelden"
|
||||
signinFailed: "Anmeldung fehlgeschlagen. Überprüfe Benutzername und Passswort."
|
||||
tapSecurityKey: "Tippe deinen Sicherheitsschlüssel an"
|
||||
or: "Oder"
|
||||
uiLanguage: "Sprache der Benutzeroberfläche"
|
||||
groupInvited: "Du wurdest in eine Gruppe eingeladen"
|
||||
aboutX: "Über {x}"
|
||||
useOsNativeEmojis: "Eingebaute Emojis des Betriebssystems benutzen"
|
||||
noGroups: "Keine Gruppen vorhanden"
|
||||
youHaveNoGroups: "Keine Gruppen vorhanden"
|
||||
joinOrCreateGroup: "Lass dich zu einer Gruppe einladen oder erstelle deine eigene."
|
||||
noHistory: "Kein Verlauf"
|
||||
disableAnimatedMfm: "MFM, die Animationen enthalten, deaktivieren"
|
||||
doing: "In Bearbeitung"
|
||||
category: "Kategorie"
|
||||
tags: "Schlagwörter"
|
||||
docSource: "Quelle dieses Dokuments"
|
||||
createAccount: "Benutzerkonto erstellen"
|
||||
existingAcount: "Bestehendes Benutzerkonto"
|
||||
regenerate: "Regenerieren"
|
||||
@ -304,29 +436,89 @@ noFollowRequests: "Du hast keine Follow-Anfragen"
|
||||
openImageInNewTab: "Bilder in neuem Tab öffnen"
|
||||
dashboard: "Dashboard"
|
||||
local: "Lokal"
|
||||
remote: "Fremd"
|
||||
total: "Gesamt"
|
||||
weekOverWeekChanges: "Wöchentlich"
|
||||
dayOverDayChanges: "Täglich"
|
||||
accessibility: "Barrierefreiheit"
|
||||
clinetSettings: "Client-Einstellungen"
|
||||
accountSettings: "Benutzerkontoeinstellungen"
|
||||
accountSettings: "Benutzerkonto-Einstellungen"
|
||||
promotion: "Hervorgehoben"
|
||||
promote: "Hervorheben"
|
||||
numberOfDays: "Anzahl der Tage"
|
||||
hideThisNote: "Diese Notiz verstecken"
|
||||
showFeaturedNotesInTimeline: "Beliebte Notizen in Chronik anzeigen"
|
||||
objectStorage: "Objektspeicher"
|
||||
useObjectStorage: "Objektspeicher verwenden"
|
||||
objectStorageBaseUrl: "Basis-URL"
|
||||
objectStorageBaseUrlDesc: "URL-Prefix, der zum Konstruieren der Objekt- bzw. Mediareferenz-URL genutzt wird. Falls du ein CDN- oder einen Proxy nutzt, gib dessen URL ein. Ansonsten gib die Adresse, der dir von deinem Anbieter z.B. in dessen Servicehandbuch gegeben wurde, an. Beispielsweise 'https://<bucket>.s3.amazonaws.com' für AWS S3 oder 'https://storage.googleapis.com/<bucket>' für GCS."
|
||||
objectStorageBucket: "Bucket"
|
||||
objectStorageBucketDesc: "Bitte gib den Bucket-Namen an, der bei deinem Anbieter verwendet wird."
|
||||
objectStoragePrefix: "Prefix"
|
||||
objectStoragePrefixDesc: "Dateien werden im Ordner dieses Prefixes gespeichert."
|
||||
objectStorageEndpoint: "Endpoint"
|
||||
objectStorageEndpointDesc: "Dieses Feld leerlassen, falls du AWS S3 verwendest. Ansonsten trage den Endpoint im Format \"<host>\" oder \"<host>:<port>\" an, den Angaben deines Anbieters entsprechend."
|
||||
objectStorageRegion: "Region"
|
||||
objectStorageRegionDesc: "Gib eine Region (wie z.B. \"xx-east-1\") an. Falls dein Anbieter nicht zwischen Regionen unterscheidet, lass dieses Feld leer oder gib \"us-east-1\" an."
|
||||
objectStorageUseSSL: "SSL verwenden"
|
||||
objectStorageUseSSLDesc: "Deaktiviere dies falls du für die API-Verbindungen kein HTTPS verwenden wirst"
|
||||
objectStorageUseProxy: "Über Proxy verbinden"
|
||||
objectStorageUseProxyDesc: "Deaktiviere dies falls du keinen Proxy für den Objektspeicher verwenden wirst"
|
||||
serverLogs: "Serverprotokolle"
|
||||
deleteAll: "Alle löschen"
|
||||
showFixedPostForm: "Bereich zum Schreiben neuer Notizen am Anfang der Chronik anzeigen"
|
||||
newNoteRecived: "Es gibt neue Notizen"
|
||||
sounds: "Töne"
|
||||
listen: "Anhören"
|
||||
none: "Keine"
|
||||
volume: "Lautstärke"
|
||||
details: "Details"
|
||||
chooseEmoji: "Wähle ein Emoji"
|
||||
unableToProcess: "Der Vorgang konnte nicht abgeschlossen werden."
|
||||
recentUsed: "Vor kurzem verwendet"
|
||||
install: "Installieren"
|
||||
uninstall: "Uninstallieren"
|
||||
installedApps: "Authorisierte Anwendungen"
|
||||
nothing: "Hier gibt es nichts zu sehen"
|
||||
installedDate: "Authorisiert"
|
||||
lastUsedDate: "Zuletzt verwendet"
|
||||
state: "Status"
|
||||
sort: "Sortieren"
|
||||
ascendingOrder: "Aufsteigende Reihenfolge"
|
||||
descendingOrder: "Absteigende Reihenfolge"
|
||||
scratchpad: "Testumgebung"
|
||||
scratchpadDescription: "Die Testumgebung bietet eine experimentale Umgebung für AiScript. Dort kannst du AiScript schreiben, ausführen sowie dessen Auswirkungen auf Misskey überprüfen."
|
||||
output: "Ausgabe"
|
||||
script: "Skript"
|
||||
disablePagesScript: "AiScript auf Seiten deaktivieren"
|
||||
updateRemoteUser: "Informationen über den Benutzer der fremder Instanz aktualisieren"
|
||||
deleteAllFiles: "Alle Dateien löschen"
|
||||
deleteAllFilesConfirm: "Möchtest du wirklich alle Dateien löschen?"
|
||||
removeAllFollowing: "Allen gefolgten Benutzern entfolgen"
|
||||
removeAllFollowingDescription: "Allen Benutzerkonten von {host} entfolgen. Bitte führe dies durch, falls diese Instanz nicht mehr existiert."
|
||||
userSuspended: "Dieser Benutzer wurde gesperrt."
|
||||
userSilenced: "Dieser Benutzer wurde instanzweit stummgeschaltet."
|
||||
sidebar: "Seitenleiste"
|
||||
divider: "Trenner"
|
||||
addItem: "Element hinzufügen"
|
||||
rooms: "Raum"
|
||||
relays: "Relays"
|
||||
addRelay: "Relay hinzufügen"
|
||||
inboxUrl: "inbox-URL"
|
||||
addedRelays: "Hinzugefügte Relays"
|
||||
_theme:
|
||||
explore: "Themen erforschen"
|
||||
install: "Thema installieren"
|
||||
manage: "Themaverwaltung"
|
||||
code: "Themencode"
|
||||
installed: "{name} wurde installiert"
|
||||
alreadyInstalled: "Dieses Thema ist bereits installiert"
|
||||
invalid: "Themenformat ist ungültig"
|
||||
_sfx:
|
||||
note: "Notizen"
|
||||
noteMy: "Meine Notizen"
|
||||
notification: "Benachrichtigungen"
|
||||
chat: "Nachrichten"
|
||||
chat: "Privatnachrichten"
|
||||
chatBg: "Nachrichten (Hintergrund)"
|
||||
antenna: "Antennen"
|
||||
_ago:
|
||||
@ -341,14 +533,82 @@ _ago:
|
||||
monthsAgo: "vor {n} Monat(en)"
|
||||
yearsAgo: "vor {n} Jahr(en)"
|
||||
_time:
|
||||
second: "Sekunde"
|
||||
minute: "Minute"
|
||||
hour: "Stunde"
|
||||
second: "Sekunde(n)"
|
||||
minute: "Minute(n)"
|
||||
hour: "Stunde(n)"
|
||||
day: "Tag(en)"
|
||||
_tutorial:
|
||||
title: "Wie du Misskey verwendest"
|
||||
step1_1: "Willkommen!"
|
||||
step1_2: "Diese Seite ist die \"Chronik\". Sie zeigt dir deine geschrieben \"Notizen\" sowie die aller Benutzer, denen du \"folgst\" in chronologischer Reihenfolge."
|
||||
step1_3: "Deine Chronik sollte momentan leer sein, da du bis jetzt nocht keine Notizen geschrieben hast und auch noch keinen Benutzern folgst."
|
||||
step2_1: "Lass uns zuerst dein Profil vervollständigen, bevor du Notizen schreibst oder jemandem folgst."
|
||||
step2_2: "Informationen darüber, wer du bist, macht es anderen leichter zu wissen, ob sie deine Notizen sehen wollen und ob sie dir folgen möchten."
|
||||
step3_1: "Mit dem Einrichten deines Profils fertig?"
|
||||
step3_2: "Der nächste Schritt ist das Schreiben einer Notiz. Dies kannst du tun, indem du auf das Stift-Icon auf dem Bildschirm drückst."
|
||||
step3_3: "Fülle das Fenster aus und drücke auf den Knopf oben rechts zum Senden."
|
||||
step3_4: "Gibt es nichts, das du momentan sagen möchtest? Versuch's mit \"Hallo Misskey!\""
|
||||
step4_1: "Fertig mit dem Senden deiner ersten Notiz?"
|
||||
step4_2: "Falls deine Notiz nun auf deiner Chronik auftaucht, hast du alles richtig gemacht."
|
||||
step5_1: "Lass uns nun deiner Chronik etwas mehr Leben einhauchen, indem du einigen anderen Benutzern folgst."
|
||||
step5_2: "{featured} zeigt dir beliebte Notizen dieser Instanz. In {explore} kannst du beliebte Benutzer finden. Schau dort, ob du Benutzer findest, die dich interessieren."
|
||||
step5_3: "Um anderen Benutzern zu folgen, klicke auf ihr Profilbild und klicke dann auf den \"Folgen\" Knopf in ihrem Profil."
|
||||
step5_4: "Wenn der Benutzer neben seinem Namen ein Schloss hat, dann muss er deine Follow-Anfrage manuell bestätigen."
|
||||
step6_1: "Wenn du nun auch die Notizen anderer Benutzer auf deiner Chronik siehst, hast du alles richtig gemacht."
|
||||
step6_2: "Du kannst ebenso \"Reaktionen\" verwenden, um schnell auf Notizen anderer Benutzer zu antworten."
|
||||
step6_3: "Um eine \"Reaktion\" anzufügen, klicke auf das \"+\"-Symbol in der Notiz eines anderen Benutzers und wähle ein Emoji, mit dem du reagieren möchtest."
|
||||
step7_1: "Glückwunsch! Du hast die Misskey-Einführung abgeschlossen."
|
||||
step7_2: "Wenn du mehr über Misskey lernen möchtest, schau dich im {help}-Bereich um."
|
||||
step7_3: "Und nun, viel Spaß mit Misskey! 🚀"
|
||||
_2fa:
|
||||
alreadyRegistered: "Du hast bereits ein Gerät für Zwei-Faktor-Authentifizierung registriert"
|
||||
registerDevice: "Neues Gerät registrieren"
|
||||
registerKey: "Neuen Sicherheitsschlüssel registrieren"
|
||||
step1: "Als Erstes, installiere eine Authentifizierungsapp (z.B. {a} oder {b}) auf deinem Gerät."
|
||||
step2: "Dann, scanne den angezeigten QR-Code mit deinem Gerät."
|
||||
step3: "Um die Einrichtung abzuschließen, gib den Token ein, der von deiner Authentifizierungsapp angezeigt wird."
|
||||
step4: "Ab jetzt benötigen alle Loginversuche auch einen Login-Token."
|
||||
securityKeyInfo: "Du kannst neben Fingerabdruck- oder PIN-Authentifizierung auf deinem Gerät auch Authentifizierung mit FIDO2-kompatiblen Hardware-Sicherheitsschlüsseln einrichten."
|
||||
_permissions:
|
||||
"read:messaging": "Nachrichten lesen"
|
||||
"write:messaging": "Nachrichten schicken oder löschen"
|
||||
"read:reactions": "Reaktionen sehen"
|
||||
"read:account": "Deine Benutzerkontoinformationen lesen"
|
||||
"write:account": "Deine Benutzerkontoinformationen bearbeiten"
|
||||
"read:blocks": "Die Liste deiner blockierten Benutzer lesen"
|
||||
"write:blocks": "Die Liste deiner blockierten Benutzer bearbeiten"
|
||||
"read:drive": "Deine Drive-Dateien und Ordner lesen"
|
||||
"write:drive": "Deine Drive-Dateien und Ordner bearbeiten oder löschen"
|
||||
"read:favorites": "Deine Favoriten-Liste lesen"
|
||||
"write:favorites": "Deine Favoriten-Liste bearbeiten"
|
||||
"read:following": "Deine Follower-Liste lesen"
|
||||
"write:following": "Anderen Benutzern folgen oder entfolgen"
|
||||
"read:messaging": "Privatnachrichten lesen"
|
||||
"write:messaging": "Privatnachrichten schicken oder löschen"
|
||||
"read:mutes": "Stummschaltungen lesen"
|
||||
"write:mutes": "Stummschaltungen bearbeiten"
|
||||
"write:notes": "Notizen schreiben oder löschen"
|
||||
"read:notifications": "Benachrichtigungen lesen"
|
||||
"write:notifications": "Mit Benachrichtigungen arbeiten"
|
||||
"read:reactions": "Reaktionen lesen"
|
||||
"write:reactions": "Reaktionen hinzufügen und bearbeiten"
|
||||
"write:votes": "In Umfragen abstimmen"
|
||||
"read:pages": "Deine Seiten lesen"
|
||||
"write:pages": "Deine Seiten bearbeiten oder löschen"
|
||||
"read:page-likes": "Liste der Seiten, die mir gefallen, lesen"
|
||||
"write:page-likes": "Liste der Seiten, die mir gefallen, bearbeiten"
|
||||
"read:user-groups": "Benutzergruppen lesen"
|
||||
"write:user-groups": "Benutzergruppen bearbeiten oder löschen"
|
||||
_auth:
|
||||
shareAccess: "Möchtest du \"{name}\" authorisieren, auf dieses Benuzerkonto zugreifen zu können?"
|
||||
shareAccessAsk: "Bist du dir sicher, dass du diese Anwendung authorisieren möchtest, auf dein Benutzerkonto zugreifen zu können?"
|
||||
permissionAsk: "Diese Anwendung erfordert folgende Berechtigungen:"
|
||||
pleaseGoBack: "Bitte gehe zurück zur Anwendung"
|
||||
callback: "Rückkehr zur Anwendung"
|
||||
denied: "Zugriff verweigert"
|
||||
_antennaSources:
|
||||
all: "Alle Notizen"
|
||||
homeTimeline: "Notizen von Benutzern, denen gefolgt wird"
|
||||
users: "Notizen von konkreten Benutzern"
|
||||
userList: "Notizen von allen Benutzern aus einer Liste"
|
||||
userGroup: "Notizen von allen Benutzern aus einer Gruppe"
|
||||
_weekday:
|
||||
sunday: "Sonntag"
|
||||
monday: "Montag"
|
||||
@ -360,7 +620,7 @@ _weekday:
|
||||
_widgets:
|
||||
memo: "Memo"
|
||||
notifications: "Benachrichtigungen"
|
||||
timeline: "Zeitleiste"
|
||||
timeline: "Chronik"
|
||||
calendar: "Kalender"
|
||||
trends: "Trends"
|
||||
clock: "Uhr"
|
||||
@ -369,21 +629,21 @@ _widgets:
|
||||
photos: "Fotos"
|
||||
_cw:
|
||||
hide: "Ausblenden"
|
||||
show: "Zeige mehr"
|
||||
show: "Mehr anzeigen"
|
||||
chars: "{count} Zeichen"
|
||||
files: "{count} Dateien"
|
||||
poll: "Umfrage"
|
||||
_poll:
|
||||
noOnlyOneChoice: "Mindestens zwei Antwortmöglichkeiten werden benötigt."
|
||||
choiceN: "Auswahl {n}"
|
||||
noMore: "Du kannst keine weiteren Auswahlen hinzufügen"
|
||||
noMore: "Du kannst keine weiteren Auswahlmöglichkeiten hinzufügen"
|
||||
canMultipleVote: "Mehrfachantworten erlauben"
|
||||
expiration: "Abstimmung endet am"
|
||||
infinite: "Nie"
|
||||
at: "Beenden am..."
|
||||
after: "Beenden nach..."
|
||||
deadlineDate: "Enddatum"
|
||||
deadlineTime: "Stunde"
|
||||
deadlineDate: "Abstimmungsende"
|
||||
deadlineTime: "Zeit"
|
||||
duration: "Laufzeit"
|
||||
votesCount: "{n} Stimmen"
|
||||
totalVotes: "Insgesamt {n} Stimmen"
|
||||
@ -399,10 +659,11 @@ _visibility:
|
||||
public: "Öffentlich"
|
||||
publicDescription: "Deine Notiz wird global sichtbar sein"
|
||||
home: "Startseite"
|
||||
followers: "Folgende"
|
||||
homeDescription: "Deine Notiz wird nur in der Chronik deiner Instanz angezeigt."
|
||||
followers: "Follower"
|
||||
followersDescription: "Nur für Follower sichtbar"
|
||||
specified: "Direkt"
|
||||
specifiedDescription: "Nur für erwähnte Benutzer sichtbar"
|
||||
specifiedDescription: "Nur für bestimmte Benutzer sichtbar"
|
||||
localOnly: "Nur Lokal"
|
||||
_postForm:
|
||||
replyPlaceholder: "Dieser Notiz antworten..."
|
||||
@ -424,9 +685,9 @@ _profile:
|
||||
metadataContent: "Inhalt"
|
||||
_exportOrImport:
|
||||
allNotes: "Alle Notizen"
|
||||
followingList: "Folgen"
|
||||
muteList: "Stummschalten"
|
||||
blockingList: "Blockieren"
|
||||
followingList: "Gefolgte Benutzer"
|
||||
muteList: "Stummschaltungen"
|
||||
blockingList: "Blockierungen"
|
||||
userLists: "Listen"
|
||||
_charts:
|
||||
federationInstancesIncDec: "Unterschied in der Anzahl von förderierenden Instanzen"
|
||||
@ -436,6 +697,7 @@ _charts:
|
||||
activeUsers: "Aktive Benutzer"
|
||||
notesIncDec: "Unterschied in der Anzahl von Notizen"
|
||||
localNotesIncDec: "Unterschied in der Anzahl von lokalen Notizen"
|
||||
remoteNotesIncDec: "Unterschied in Anzahl der Notizen von anderen Instanzen"
|
||||
notesTotal: "Anzahl aller Notizen"
|
||||
filesIncDec: "Unterschied in der Anzahl von Dateien"
|
||||
filesTotal: "Anzahl aller Dateien"
|
||||
@ -444,39 +706,117 @@ _charts:
|
||||
_instanceCharts:
|
||||
requests: "Anfragen"
|
||||
users: "Unterschied in der Anzahl von Benutzern"
|
||||
usersTotal: "Anzahl aller Benutzer"
|
||||
usersTotal: "Gesamtanzahl an Benutzern"
|
||||
notes: "Unterschied in der Anzahl von Notizen"
|
||||
notesTotal: "Anzahl aller Notizen"
|
||||
notesTotal: "Gesamtanzahl an Notizen"
|
||||
ff: "Unterschied in der Anzahl von Followern"
|
||||
ffTotal: "Gesamtanzahl der Follower"
|
||||
ffTotal: "Gesamtanzahl an Followern"
|
||||
cacheSize: "Unterschied in der Größe des Caches"
|
||||
cacheSizeTotal: "Gesamtgröße des Caches"
|
||||
files: "Unterschied in der Anzahl der Dateien"
|
||||
filesTotal: "Gesamtanzahl der Dateien"
|
||||
filesTotal: "Gesamtanzahl an Dateien"
|
||||
_timelines:
|
||||
home: "Startseite"
|
||||
local: "Lokal"
|
||||
social: "Sozial"
|
||||
global: "Global"
|
||||
_rooms:
|
||||
roomOf: "{user}'s Raum"
|
||||
addFurniture: "Möbel hinzufügen"
|
||||
translate: "Bewegen"
|
||||
rotate: "Drehen"
|
||||
exit: "Zurück"
|
||||
remove: "Entfernen"
|
||||
clear: "Aufräumen"
|
||||
clearConfirm: "Möchtest du wirklich alle Möbel entfernen?"
|
||||
leaveConfirm: "Es gibt ungespeicherte Änderungen. Möchtest du wirklich gehen?"
|
||||
chooseImage: "Bild auswählen"
|
||||
roomType: "Raumtyp"
|
||||
carpetColor: "Teppichfarbe"
|
||||
_roomType:
|
||||
default: "Standard"
|
||||
washitsu: "Japanischer Stil"
|
||||
_furnitures:
|
||||
milk: "Milchkarton"
|
||||
bed: "Bett"
|
||||
low-table: "Niedrigtisch"
|
||||
desk: "Schreibtisch"
|
||||
chair: "Stuhl"
|
||||
chair2: "Stuhl 2"
|
||||
fan: "Ventilator"
|
||||
pc: "Computer"
|
||||
plant: "Deko-Pflanze"
|
||||
plant2: "Deko-Pflanze 2"
|
||||
eraser: "Radiergummi"
|
||||
pencil: "Bleistift"
|
||||
pudding: "Pudding"
|
||||
cardboard-box: "Pappkarton"
|
||||
cardboard-box2: "Pappkarton 2"
|
||||
cardboard-box3: "Pappkarton 3"
|
||||
book: "Buch"
|
||||
book2: "Buch 2"
|
||||
piano: "Piano"
|
||||
facial-tissue: "Taschentücher"
|
||||
server: "Server"
|
||||
moon: "Mond"
|
||||
corkboard: "Pinnwand"
|
||||
mousepad: "Mauspad"
|
||||
monitor: "Beobachten"
|
||||
keyboard: "Tastatur"
|
||||
carpet-stripe: "Gestreifter Teppich"
|
||||
mat: "Matte"
|
||||
color-box: "Farbige Box"
|
||||
wall-clock: "Wanduhr"
|
||||
photoframe: "Bilderrahmen"
|
||||
cube: "Würfel"
|
||||
tv: "Fernseher"
|
||||
pinguin: "Pinguin"
|
||||
rubik-cube: "Zauberwürfel"
|
||||
poster-h: "Poster (Horizontal)"
|
||||
poster-v: "Poster (Vertikal)"
|
||||
sofa: "Sofa"
|
||||
spiral: "Spiraltreppe"
|
||||
bin: "Papierkorb"
|
||||
cup-noodle: "Instantnudeln"
|
||||
holo-display: "Holographischer Bildschirm"
|
||||
energy-drink: "Energy Drink"
|
||||
_pages:
|
||||
newPage: "Seite erstellen"
|
||||
editPage: "Diese Seite bearbeiten"
|
||||
readPage: "Quelltext-Ansicht"
|
||||
created: "Seite erfolgreich erstellt"
|
||||
updated: "Seite erfolgreich aktualisiert"
|
||||
deleted: "Seite erfolgreich gelöscht"
|
||||
nameAlreadyExists: "Die angegebene Seiten-URL existiert bereits"
|
||||
invalidNameTitle: "Die angegebene Seiten-URL ist ungültig"
|
||||
invalidNameText: "Überprüfe, ob der Seitentitel nicht leer ist"
|
||||
editThisPage: "Diese Seite bearbeiten"
|
||||
viewSource: "Quelltext anzeigen"
|
||||
viewPage: "Seite anschauen"
|
||||
like: "Gefällt mir"
|
||||
unlike: "\"Gefällt mir\" entfernen"
|
||||
my: "Meine Seiten"
|
||||
liked: "Seiten, die mir gefallen"
|
||||
inspector: "Inspektor"
|
||||
content: "Inhalt"
|
||||
more-details: "Mehr Informationen"
|
||||
variables: "Variablen"
|
||||
title: "Titel"
|
||||
url: "Seiten-URL"
|
||||
summary: "Zusammenfassung"
|
||||
alignCenter: "Mittig ausrichten"
|
||||
hide-title-when-pinned: "Seitentitel wenn angepinnt ausblenden"
|
||||
alignCenter: "Bestandteile zentrieren"
|
||||
hideTitleWhenPinned: "Seitentitel ausblenden, wenn an dein Profil angepinnt "
|
||||
font: "Schriftart"
|
||||
fontSerif: "Serif"
|
||||
fontSansSerif: "Sans Serif"
|
||||
eyeCatchingImageSet: "Vorschaubild festlegen"
|
||||
eyeCatchingImageRemove: "Vorschaubild entfernen"
|
||||
chooseBlock: "Block hinzufügen"
|
||||
selectType: "Wähle einen Typ"
|
||||
enterVariableName: "Gib einen Namen für deine Variable ein"
|
||||
the-variable-name-is-already-used: "Der Variablenname wird bereits verwendet"
|
||||
content-blocks: "Inhalt"
|
||||
input-blocks: "Eingabe"
|
||||
special-blocks: "Speziell"
|
||||
post-from-post-form: "Diesen Inhalt senden"
|
||||
posted-from-post-form: "Erfolgreich gesendet!"
|
||||
variableNameIsAlreadyUsed: "Dieser Name wird bereits von einer anderen Variable verwendet"
|
||||
contentBlocks: "Inhalt"
|
||||
inputBlocks: "Eingabe"
|
||||
specialBlocks: "Spezial"
|
||||
blocks:
|
||||
text: "Text"
|
||||
textarea: "Textfeld"
|
||||
@ -489,24 +829,36 @@ _pages:
|
||||
post: "Neue Notiz anfertigen"
|
||||
_post:
|
||||
text: "Inhalt"
|
||||
attachCanvasImage: "Leinwand als Bild anfügen"
|
||||
canvasId: "Leinwand-ID"
|
||||
textInput: "Texteingabe"
|
||||
_textInput:
|
||||
name: "Variablenname"
|
||||
text: "Titel"
|
||||
default: "Standardwert"
|
||||
textareaInput: "Eingabe des mehrzeiligen Textfelds"
|
||||
_textareaInput:
|
||||
name: "Variablenname"
|
||||
text: "Titel"
|
||||
default: "Standardwert"
|
||||
numberInput: "Nummereingabe"
|
||||
_numberInput:
|
||||
name: "Variablenname"
|
||||
text: "Titel"
|
||||
default: "Standardwert"
|
||||
canvas: "Leinwand"
|
||||
_canvas:
|
||||
id: "Leinwand-ID"
|
||||
width: "Breite"
|
||||
height: "Höhe"
|
||||
switch: "Fallunterscheidung"
|
||||
_switch:
|
||||
name: "Variablenname"
|
||||
text: "Titel"
|
||||
default: "Standardwert"
|
||||
counter: "Zähler"
|
||||
_counter:
|
||||
name: "Variablenname"
|
||||
text: "Titel"
|
||||
inc: "Erhöhen um"
|
||||
_button:
|
||||
@ -524,13 +876,18 @@ _pages:
|
||||
message: "Nachricht, die bei Aktivierung gezeigt werden soll"
|
||||
variable: "Variable, die gesendet werden soll"
|
||||
no-variable: "Keine"
|
||||
callAiScript: "AiScript ausführen"
|
||||
_callAiScript:
|
||||
functionName: "Funktionsname"
|
||||
radioButton: "Optionsfeld"
|
||||
_radioButton:
|
||||
name: "Variablenname"
|
||||
title: "Titel"
|
||||
values: "Auswahlmöglichkeiten (getrennt durch Zeilenumbrüche)"
|
||||
default: "Standardwert"
|
||||
script:
|
||||
categories:
|
||||
flow: "Steuerung"
|
||||
logical: "Logische Operationen"
|
||||
operation: "Berechnungen"
|
||||
comparison: "Vergleiche"
|
||||
@ -681,17 +1038,30 @@ _pages:
|
||||
splitStrByLine: "Text nach Zeilenumbrüchen aufteilen"
|
||||
_splitStrByLine:
|
||||
arg1: "Text"
|
||||
ref: "Variablen"
|
||||
aiScriptVar: "AiScript Variablen"
|
||||
fn: "Funktionen"
|
||||
_fn:
|
||||
slots: "Slots"
|
||||
slots-info: "Trenne jeden Slot mit einem Zeilenumbruch"
|
||||
arg1: "Ausgabe"
|
||||
for: "Wiederholen"
|
||||
_for:
|
||||
arg1: "Anzahl der Wiederholungen"
|
||||
arg2: "Aktion"
|
||||
typeError: "Slot {slot} akzeptiert Werte vom Typ \"{expect}\", aber es wurde ein \"{actual}\" Wert angegeben!"
|
||||
thereIsEmptySlot: "Slot {slot} ist leer!"
|
||||
types:
|
||||
string: "Text"
|
||||
number: "Nummer"
|
||||
boolean: "Flag"
|
||||
array: "Listen"
|
||||
stringArray: "Textliste"
|
||||
emptySlot: "Leerer Slot"
|
||||
enviromentVariables: "Umgebungsvariable"
|
||||
pageVariables: "Seitenelement"
|
||||
argVariables: "Eingabe-Slot"
|
||||
_relayStatus:
|
||||
requesting: "Ausstehend"
|
||||
accepted: "Akzeptiert"
|
||||
rejected: "Abgelehnt"
|
||||
|
@ -18,7 +18,7 @@ instance: "Instance"
|
||||
settings: "Settings"
|
||||
profile: "Profile"
|
||||
timeline: "Timeline"
|
||||
noAccountDescription: "This user has not created their bio yet."
|
||||
noAccountDescription: "This user has not written their bio yet."
|
||||
login: "Sign In"
|
||||
loggingIn: "Signing In"
|
||||
logout: "Sign Out"
|
||||
@ -35,6 +35,8 @@ unpin: "Unpin from profile"
|
||||
copyContent: "Copy contents"
|
||||
copyLink: "Copy link"
|
||||
delete: "Delete"
|
||||
deleteAndEdit: "Delete and Edit"
|
||||
deleteAndEditConfirm: "Are you sure you want to delete this note and edit it? You will lose all reactions, renotes and replies to it."
|
||||
addToList: "Add to list"
|
||||
sendMessage: "Send a message"
|
||||
copyUsername: "Copy username"
|
||||
@ -86,7 +88,6 @@ add: "Add"
|
||||
reaction: "Reaction"
|
||||
reactionSettingDescription: "Assign your favorite reactions which want to pin in reaction picker."
|
||||
rememberNoteVisibility: "Remember note visibility settings"
|
||||
renameFile: "Rename file"
|
||||
attachCancel: "Remove attachment"
|
||||
markAsSensitive: "Mark as NSFW"
|
||||
unmarkAsSensitive: "Undo NSFW"
|
||||
@ -106,6 +107,7 @@ customEmojis: "Custom Emoji"
|
||||
emojiName: "Emoji name"
|
||||
emojiUrl: "Emoji URL"
|
||||
addEmoji: "Add an emoji"
|
||||
settingGuide: "Suggested Configuration"
|
||||
cacheRemoteFiles: "Cache remote files"
|
||||
cacheRemoteFilesDescription: "When this setting is disabled, remote files are loaded directly from the remote instance. Disabling this will decrease storage usage, but will increase traffic, because thumbnails will not be generated."
|
||||
flagAsBot: "This account is a bot"
|
||||
@ -116,6 +118,7 @@ loginFailed: "Failed to sign in"
|
||||
showOnRemote: "View on remote instance"
|
||||
general: "General"
|
||||
wallpaper: "Wallpaper"
|
||||
setWallpaper: "Set wallpaper"
|
||||
removeWallpaper: "Remove wallpaper"
|
||||
searchWith: "Search: {q}"
|
||||
youHaveNoLists: "You don't have any lists"
|
||||
@ -204,10 +207,13 @@ messaging: "Messaging"
|
||||
upload: "Upload"
|
||||
fromDrive: "From Drive"
|
||||
fromUrl: "From URL"
|
||||
uploadFromUrl: "Upload from a URL"
|
||||
uploadFromUrlDescription: "URL of the file you want to upload"
|
||||
uploadFromUrlRequested: "Upload requested"
|
||||
uploadFromUrlMayTakeTime: "It may take some time until the upload is complete."
|
||||
explore: "Explore"
|
||||
games: "Misskey Games"
|
||||
messageRead: "Read"
|
||||
recentUsedEmojis: "Recently used emojis"
|
||||
noMoreHistory: "There is no further history"
|
||||
startMessaging: "Start messaging"
|
||||
nUsersRead: "read by {n}"
|
||||
@ -223,30 +229,46 @@ yearsOld: "{age} years old"
|
||||
registeredDate: "Joined on"
|
||||
location: "Location"
|
||||
theme: "Theme"
|
||||
themeForLightMode: "Theme to use in Light Mode"
|
||||
themeForDarkMode: "Theme to use in Dark Mode"
|
||||
light: "Light"
|
||||
dark: "Dark"
|
||||
lightThemes: "Light theme"
|
||||
darkThemes: "Dark theme"
|
||||
syncDeviceDarkMode: "Sync Dark Mode with your device settings"
|
||||
drive: "Drive"
|
||||
fileName: "Filename"
|
||||
selectFile: "Select a file"
|
||||
selectFiles: "Select files"
|
||||
renameFolder: "Rename this folder"
|
||||
selectFolder: "Select a folder"
|
||||
selectFolders: "Select folders"
|
||||
renameFile: "Rename file"
|
||||
folderName: "Folder name"
|
||||
createFolder: "Create a folder"
|
||||
renameFolder: "Rename this folder"
|
||||
deleteFolder: "Delete this folder"
|
||||
addFile: "Add a file"
|
||||
emptyDrive: "The drive is empty"
|
||||
emptyFolder: "This folder is empty"
|
||||
unableToDelete: "Unable to delete"
|
||||
inputNewFileName: "Enter a new filename"
|
||||
inputNewFolderName: "Enter a new folder name"
|
||||
circularReferenceFolder: "The destination folder is a subfolder of the folder you wish to move."
|
||||
hasChildFilesOrFolders: "Since this folder is not empty, it can not be deleted."
|
||||
copyUrl: "Copy URL"
|
||||
rename: "Rename"
|
||||
avatar: "Avatar"
|
||||
banner: "Banner"
|
||||
nsfw: "NSFW"
|
||||
disconnectedFromServer: "Connection to the server was inturrupted"
|
||||
disconnectedFromServer: "Connection to the server was interrupted."
|
||||
reload: "Refresh"
|
||||
doNothing: "Ignore"
|
||||
reloadConfirm: "Would you like to retry?"
|
||||
reloadConfirm: "Would you like to refresh timeline?"
|
||||
watch: "Watch"
|
||||
unwatch: "Undo Watch"
|
||||
accept: "Accept"
|
||||
reject: "Reject"
|
||||
normal: "Normal"
|
||||
instanceName: "Instance name"
|
||||
instanceDescription: "Instance description"
|
||||
maintainerName: "Maintainer"
|
||||
@ -278,10 +300,15 @@ bannerUrl: "Banner image URL"
|
||||
basicInfo: "Basic info"
|
||||
pinnedUsers: "Pinned user"
|
||||
pinnedUsersDescription: "List one username per line. Users listed here will be pinned under \"Explore\" tab."
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "Enable hCaptcha"
|
||||
hcaptchaSiteKey: "Site key"
|
||||
hcaptchaSecretKey: "Secret key"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "Enable reCAPTCHA"
|
||||
recaptchaSiteKey: "Site key"
|
||||
recaptchaSecretKey: "Secret key"
|
||||
avoidMultiCaptchaConfirm: "Using multiple Captchas may cause interference. Would you like to disable the other Captcha? You can leave multiple Captchas enabled by press cancel."
|
||||
antennas: "Antennas"
|
||||
manageAntennas: "Manage Antennas"
|
||||
name: "Name"
|
||||
@ -301,6 +328,7 @@ notesAndReplies: "Notes and replies"
|
||||
withFiles: "Media"
|
||||
silence: "Silence"
|
||||
silenceConfirm: "Are you sure that you want to silence this user?"
|
||||
unsilence: "Unsilence"
|
||||
unsilenceConfirm: "Are you sure that you want to undo silence of this user?"
|
||||
popularUsers: "Trending users"
|
||||
recentlyUpdatedUsers: "Users with recent activity"
|
||||
@ -313,7 +341,7 @@ userList: "Lists"
|
||||
about: "About"
|
||||
aboutMisskey: "About Misskey"
|
||||
aboutMisskeyText: "Misskey is an open-source software developed by syuilo since 2014."
|
||||
misskeyMembers: "It is currently developed an maintained by the members listed below:"
|
||||
misskeyMembers: "It is currently developed and maintained by the members listed below:"
|
||||
misskeySource: "Source code is available here:"
|
||||
misskeyTranslation: "Help us with your contribution to translate Misskey:"
|
||||
misskeyDonate: "Help us to keep improving the software by donating here:"
|
||||
@ -332,12 +360,10 @@ unregister: "Unregister"
|
||||
passwordLessLogin: "Set up password-less login"
|
||||
resetPassword: "Reset password"
|
||||
newPasswordIs: "The new password is \"{password}\""
|
||||
post: "Post"
|
||||
posted: "Posted!"
|
||||
autoReloadWhenDisconnected: "Auto reload when disconnected with server"
|
||||
autoReloadWhenDisconnected: "Auto refresh when disconnected from server"
|
||||
autoNoteWatch: "Watch note automatically"
|
||||
autoNoteWatchDescription: "Get notified about the notes which you reactioned or replied."
|
||||
reduceUiAnimation: "Reduce animations of User Interface"
|
||||
reduceUiAnimation: "Reduce UI animation"
|
||||
share: "Share"
|
||||
notFound: "Not found"
|
||||
notFoundDescription: "There was no page corresponding to the specified URL."
|
||||
@ -387,16 +413,17 @@ strongPassword: "Strong password"
|
||||
passwordMatched: "Matched"
|
||||
passwordNotMatched: "Doesn't match"
|
||||
signinWith: "Sign in with {x}"
|
||||
signinFailed: "Unable to sign in. The username or password you entered is incorrect."
|
||||
tapSecurityKey: "Tap your security key"
|
||||
or: "Or"
|
||||
uiLanguage: "UI display language"
|
||||
groupInvited: "Invited to group"
|
||||
aboutX: "About {x}"
|
||||
useOsNativeEmojis: "Use the OS native Emojis"
|
||||
noGroups: "No groups"
|
||||
useOsNativeEmojis: "Use OS native Emojis"
|
||||
youHaveNoGroups: "You have no groups"
|
||||
joinOrCreateGroup: "Get invited to join the groups or you can create your own group."
|
||||
noHistory: "No history items"
|
||||
disableAnimatedMfm: "Disable MFM which has animations"
|
||||
disableAnimatedMfm: "Disable MFM with animation"
|
||||
doing: "On my way"
|
||||
category: "Category"
|
||||
tags: "Tags"
|
||||
@ -435,6 +462,8 @@ objectStorageRegion: "Region"
|
||||
objectStorageRegionDesc: "Specify a region like 'xx-east-1'. If your service does not have distinction about regions, leave it blank or fill with 'us-east-1'."
|
||||
objectStorageUseSSL: "Use SSL"
|
||||
objectStorageUseSSLDesc: "Turn off this if you are not going to use HTTPS for API connection"
|
||||
objectStorageUseProxy: "Connect over Proxy"
|
||||
objectStorageUseProxyDesc: "Turn off this if you are not going to use Proxy for ObjectStorage connection"
|
||||
serverLogs: "Server logs"
|
||||
deleteAll: "Delete all"
|
||||
showFixedPostForm: "Display the posting form at the top of the timeline"
|
||||
@ -445,6 +474,42 @@ none: "None"
|
||||
volume: "Volume"
|
||||
details: "Details"
|
||||
chooseEmoji: "Choose an emoji"
|
||||
unableToProcess: "The operation could not be completed."
|
||||
recentUsed: "Recently used"
|
||||
install: "Install"
|
||||
uninstall: "Uninstall"
|
||||
installedApps: "Authorized Applications"
|
||||
nothing: "There's nothing to see here"
|
||||
installedDate: "Authorized"
|
||||
lastUsedDate: "Last used"
|
||||
state: "State"
|
||||
sort: "Sort"
|
||||
ascendingOrder: "Ascending"
|
||||
descendingOrder: "Descending"
|
||||
scratchpad: "Scratch pad"
|
||||
scratchpadDescription: "Scratchpad provides experimental environment for AiScript. You can write, execute, and check the results that interact with Misskey."
|
||||
output: "Output"
|
||||
script: "Script"
|
||||
disablePagesScript: "Disable AiScript on Pages"
|
||||
updateRemoteUser: "Update remote user information"
|
||||
deleteAllFiles: "Delete All Files"
|
||||
deleteAllFilesConfirm: "Are you sure that you want to delete all files?"
|
||||
removeAllFollowing: "Withhold All Followings"
|
||||
removeAllFollowingDescription: "Unfollow all accounts from {host}. Please run this if the instance no longer exists."
|
||||
userSuspended: "This user has been suspended."
|
||||
userSilenced: "This user has been silenced."
|
||||
sidebar: "Sidebar"
|
||||
divider: "Divider"
|
||||
addItem: "Add Item"
|
||||
rooms: "Room"
|
||||
_theme:
|
||||
explore: "Explore Themes"
|
||||
install: "Install theme"
|
||||
manage: "Themes manager"
|
||||
code: "Theme code"
|
||||
installed: "{name} has been installed"
|
||||
alreadyInstalled: "The theme is already installed"
|
||||
invalid: "Theme format is invalid"
|
||||
_sfx:
|
||||
note: "New note"
|
||||
noteMy: "My note"
|
||||
@ -477,7 +542,7 @@ _tutorial:
|
||||
step2_2: "Providing some information about who you are will make it easier for others to follow you back."
|
||||
step3_1: "Finished setting up your profile?"
|
||||
step3_2: "The next step is to post a note. You can do this by pressing the pencil icon on the screen."
|
||||
step3_3: "Fill in the modal and press the button on the right top to post."
|
||||
step3_3: "Fill in the modal and press the button on the top right to post."
|
||||
step3_4: "Have nothing to say? Try \"just setting up my msky\"!"
|
||||
step4_1: "Finished posting your first note?"
|
||||
step4_2: "Hurray! Now your first note is displayed on your timeline."
|
||||
@ -529,7 +594,11 @@ _permissions:
|
||||
"write:user-groups": "Edit or delete user groups"
|
||||
_auth:
|
||||
shareAccess: "Would you like to authorize \"{name}\" to access this account?"
|
||||
shareAccessAsk: "Are you sure you want to authorize this application to access your account?"
|
||||
permissionAsk: "This application requires following permissions:"
|
||||
pleaseGoBack: "Please go back to the application"
|
||||
callback: "Returning back to the application"
|
||||
denied: "Access Denied"
|
||||
_antennaSources:
|
||||
all: "All notes"
|
||||
homeTimeline: "Notes from following users"
|
||||
@ -633,63 +702,117 @@ _charts:
|
||||
_instanceCharts:
|
||||
requests: "Requests"
|
||||
users: "Difference in # of users"
|
||||
usersTotal: "Total # of users"
|
||||
usersTotal: "Cumulative total # of users"
|
||||
notes: "Difference in # of notes"
|
||||
notesTotal: "Total # of notes"
|
||||
notesTotal: "Cumulative total # of notes"
|
||||
ff: "Difference in # of followers"
|
||||
ffTotal: "Total # of followers"
|
||||
ffTotal: "Cumulative total # of followers"
|
||||
cacheSize: "Difference in cache size"
|
||||
cacheSizeTotal: "Total accumulated cache"
|
||||
cacheSizeTotal: "Cumulative total cache size"
|
||||
files: "Difference in # of files"
|
||||
filesTotal: "Total # of files"
|
||||
filesTotal: "Cumulative total # of files"
|
||||
_timelines:
|
||||
home: "Home"
|
||||
local: "Local"
|
||||
social: "Social"
|
||||
global: "Global"
|
||||
_rooms:
|
||||
roomOf: "{user}'s room"
|
||||
addFurniture: "Place furniture"
|
||||
translate: "Move"
|
||||
rotate: "Rotate"
|
||||
exit: "Back"
|
||||
remove: "Remove"
|
||||
clear: "Remove All"
|
||||
clearConfirm: "Are you sure to remove all furnitures in your room?"
|
||||
leaveConfirm: "There are unsaved changes. Do you really want to leave?"
|
||||
chooseImage: "Select an image"
|
||||
roomType: "Room type"
|
||||
carpetColor: "Color of carpet"
|
||||
_roomType:
|
||||
default: "Default"
|
||||
washitsu: "Japanese-style"
|
||||
_furnitures:
|
||||
milk: "Milk carton"
|
||||
bed: "Bed"
|
||||
low-table: "Low Table"
|
||||
desk: "Desk"
|
||||
chair: "Chair"
|
||||
chair2: "Chair 2"
|
||||
fan: "Fan"
|
||||
pc: "Computer"
|
||||
plant: "Houseplant"
|
||||
plant2: "Houseplant 2"
|
||||
eraser: "Eraser"
|
||||
pencil: "Pencil"
|
||||
pudding: "Pudding"
|
||||
cardboard-box: "Cardboard Box"
|
||||
cardboard-box2: "Cardboard Box 2"
|
||||
cardboard-box3: "Cardboard Box 3"
|
||||
book: "Book"
|
||||
book2: "Book 2"
|
||||
piano: "Piano"
|
||||
facial-tissue: "Facial tissue"
|
||||
server: "Servers"
|
||||
moon: "Moon"
|
||||
corkboard: "Cork board"
|
||||
mousepad: "Mousepad"
|
||||
monitor: "Monitor"
|
||||
keyboard: "Keyboard"
|
||||
carpet-stripe: "Carpet (stripe)"
|
||||
mat: "Mat"
|
||||
color-box: "Bookshelf"
|
||||
wall-clock: "Wall clock"
|
||||
photoframe: "Picture frame"
|
||||
cube: "Cube"
|
||||
tv: "TV"
|
||||
pinguin: "Penguin"
|
||||
rubik-cube: "Rubik's Cube"
|
||||
poster-h: "Poster (Horizontal)"
|
||||
poster-v: "Poster (Vertical)"
|
||||
sofa: "Sofa"
|
||||
spiral: "Spiral Staircase"
|
||||
bin: "Waste bin"
|
||||
cup-noodle: "Cup noodle"
|
||||
holo-display: "Holographic display"
|
||||
energy-drink: "Energy drink"
|
||||
_pages:
|
||||
newPage: "Create a page"
|
||||
editPage: "Edit this page"
|
||||
readPage: "Source view activated"
|
||||
page-created: "Successfully created a page!"
|
||||
page-updated: "Successfully updated the page!"
|
||||
name-already-exists: "Specified page URL already exists."
|
||||
title-invalid-name: "The specified page URL is invalid."
|
||||
text-invalid-name: "Please double-check if it is not empty."
|
||||
created: "Successfully created a page!"
|
||||
updated: "Successfully updated the page!"
|
||||
deleted: "The page has been deleted"
|
||||
nameAlreadyExists: "The specified page URL already exists"
|
||||
invalidNameTitle: "The specified page URL is invalid"
|
||||
invalidNameText: "Check whether that is not a blank"
|
||||
editThisPage: "Edit this page"
|
||||
viewSource: "View source"
|
||||
viewPage: "View your pages"
|
||||
like: "Like"
|
||||
unlike: "Undo like"
|
||||
liked-pages: "Liked pages"
|
||||
my-pages: "My pages"
|
||||
my: "My pages"
|
||||
liked: "Liked pages"
|
||||
inspector: "Inspector"
|
||||
content: "Page block"
|
||||
variables: "Variables"
|
||||
variables-info: "You can make your page more interactive by using variables. If you write down <b>{ variable name }</b> in the text, you can embed the value of the variable. For example, source text <b>Hello { thing } world!</b> with <b> ai </b> as the value of variable 'thing' will result in the text being <b>Hello ai world!</b>."
|
||||
variables-info2: "Because the evaluation of variables are performed from top to bottom, the variable cannot refer to another variables which appear on later lines. For example, when defining three variables <b>A</b>, <b>B</b> and <b>C</b>, variable <b>C</b> <i>can</i> refer to variables <b>A</b> and <b>B</b> in its expression. However, variable <b>A</b> <i>cannot</i> refer to variables <b>B</b> or <b>C</b> in its expression."
|
||||
variables-info3: "To get an input from user, insert \"user input\" block with your desired variable name (that variable will be declared automatically). You could then use that variable to perform actions on your page."
|
||||
variables-info4: "Functions make it easier to perform repetitive tasks. To create a function, declare a variable of \"Function\" type. A function can have a slot (argument/parameter) which can be used inside the function as a variable. Thanks to AiScript specification, you can also use function itself as a parameter for other functions. (Search \"callback functions\" on google for more details)."
|
||||
more-details: "More information"
|
||||
title: "Title"
|
||||
url: "Page URL"
|
||||
summary: "Page summary"
|
||||
alignCenter: "Center elements"
|
||||
hide-title-when-pinned: "Hide page title when pinned"
|
||||
hideTitleWhenPinned: "Hide page title when pinned to profile"
|
||||
font: "Font"
|
||||
fontSerif: "Serif"
|
||||
fontSansSerif: "Sans serif"
|
||||
set-eye-catching-image: "Set thumbnail image"
|
||||
remove-eye-catching-image: "Remove thumbnail image"
|
||||
eyeCatchingImageSet: "Set the eye-catching image"
|
||||
eyeCatchingImageRemove: "Delete the eye-catching image"
|
||||
chooseBlock: "Add a block"
|
||||
selectType: "Select a type"
|
||||
enterVariableName: "Please enter a name for your variable"
|
||||
the-variable-name-is-already-used: "This name is already being used by other variable"
|
||||
content-blocks: "Content"
|
||||
input-blocks: "Input"
|
||||
special-blocks: "Special"
|
||||
post-from-post-form: "Post this content"
|
||||
posted-from-post-form: "Successfully posted!"
|
||||
variableNameIsAlreadyUsed: "This name is already being used by other variable"
|
||||
contentBlocks: "Content"
|
||||
inputBlocks: "Input"
|
||||
specialBlocks: "Special"
|
||||
blocks:
|
||||
text: "Text"
|
||||
textarea: "Text area"
|
||||
@ -702,6 +825,8 @@ _pages:
|
||||
post: "Compose a note"
|
||||
_post:
|
||||
text: "Content"
|
||||
attachCanvasImage: "Post with Canvas as Image"
|
||||
canvasId: "Canvas ID"
|
||||
textInput: "Text input"
|
||||
_textInput:
|
||||
name: "Variable name"
|
||||
@ -717,6 +842,11 @@ _pages:
|
||||
name: "Variable name"
|
||||
text: "Title"
|
||||
default: "Default value"
|
||||
canvas: "Canvas"
|
||||
_canvas:
|
||||
id: "Canvas ID"
|
||||
width: "Width"
|
||||
height: "Height"
|
||||
switch: "Switch"
|
||||
_switch:
|
||||
name: "Variable name"
|
||||
@ -742,6 +872,9 @@ _pages:
|
||||
message: "Message to display when activated"
|
||||
variable: "Variable to send"
|
||||
no-variable: "None"
|
||||
callAiScript: "Invoke AiScript"
|
||||
_callAiScript:
|
||||
functionName: "Function name"
|
||||
radioButton: "Choice"
|
||||
_radioButton:
|
||||
name: "Variable name"
|
||||
@ -902,6 +1035,7 @@ _pages:
|
||||
_splitStrByLine:
|
||||
arg1: "Text"
|
||||
ref: "Variables"
|
||||
aiScriptVar: "Variable of AiScript"
|
||||
fn: "Functions"
|
||||
_fn:
|
||||
slots: "Slots"
|
||||
|
@ -35,6 +35,8 @@ unpin: "Desfijar"
|
||||
copyContent: "Copiar contenido"
|
||||
copyLink: "Copiar enlace"
|
||||
delete: "Borrar"
|
||||
deleteAndEdit: "Borrar y editar"
|
||||
deleteAndEditConfirm: "¿Quieres borrar y editar este nota? Las reacciones, renotes, respuestas y todo desaparecerán."
|
||||
addToList: "Agregar a lista"
|
||||
sendMessage: "Énviar mensaje"
|
||||
copyUsername: "Copiar nombre de usuario"
|
||||
@ -58,7 +60,7 @@ lists: "Listas"
|
||||
noLists: "No tiene listas"
|
||||
note: "Notas"
|
||||
notes: "Notas"
|
||||
following: "Sigue"
|
||||
following: "Siguiendo"
|
||||
followers: "Seguidores"
|
||||
followsYou: "Te sigue"
|
||||
createList: "Crear lista"
|
||||
@ -86,7 +88,6 @@ add: "Añadir"
|
||||
reaction: "Reacción"
|
||||
reactionSettingDescription: "Asigne sus reacción favoritas que desean anclar en el selector de reacciones."
|
||||
rememberNoteVisibility: "Recordar visibilidad"
|
||||
renameFile: "Renombrar archivo"
|
||||
attachCancel: "Quitar adjunto"
|
||||
markAsSensitive: "Marcar como sensible"
|
||||
unmarkAsSensitive: "Desmarcar como sensible"
|
||||
@ -106,6 +107,7 @@ customEmojis: "Emojis personalizados"
|
||||
emojiName: "Nombre del emoji"
|
||||
emojiUrl: "URL de la imágen del emoji"
|
||||
addEmoji: "Añadir emoji"
|
||||
settingGuide: "Configuración sugerida"
|
||||
cacheRemoteFiles: "Mantener en cache los archivos remotos"
|
||||
cacheRemoteFilesDescription: "Si desactiva esta configuración, Los archivos remotos se cargarán desde el link directo sin usar la caché. Con eso se puede ahorrar almacenamiento del servidor, pero eso aumentará el tráfico al no crear miniaturas."
|
||||
flagAsBot: "Esta cuenta es un bot"
|
||||
@ -116,6 +118,7 @@ loginFailed: "Error al iniciar sesión."
|
||||
showOnRemote: "Ver en una instancia remota"
|
||||
general: "General"
|
||||
wallpaper: "Fondo de pantalla"
|
||||
setWallpaper: "Establecer fondo de pantalla"
|
||||
removeWallpaper: "Quitar fondo de pantalla"
|
||||
searchWith: "Buscar: {q}"
|
||||
youHaveNoLists: "No tienes listas"
|
||||
@ -204,10 +207,13 @@ messaging: "Chat"
|
||||
upload: "Subir"
|
||||
fromDrive: "Desde el drive"
|
||||
fromUrl: "Desde la URL"
|
||||
uploadFromUrl: "Subir desde una URL"
|
||||
uploadFromUrlDescription: "URL del fichero que quieres subir"
|
||||
uploadFromUrlRequested: "Subida solicitada"
|
||||
uploadFromUrlMayTakeTime: "Subir el fichero puede tardar un tiempo."
|
||||
explore: "Explorar"
|
||||
games: "Misskey Games"
|
||||
messageRead: "Ya leído"
|
||||
recentUsedEmojis: "Emojis usados recientemente"
|
||||
noMoreHistory: "El historial se ha acabado"
|
||||
startMessaging: "Iniciar chat"
|
||||
nUsersRead: "Leído por {n} personas"
|
||||
@ -223,17 +229,32 @@ yearsOld: "{age} años"
|
||||
registeredDate: "Fecha de registro"
|
||||
location: "Lugar"
|
||||
theme: "Tema"
|
||||
themeForLightMode: "Tema para usar en Modo Linterna"
|
||||
themeForDarkMode: "Tema para usar en Modo Oscuro"
|
||||
light: "Linterna"
|
||||
dark: "Oscuro"
|
||||
lightThemes: "Tema claro"
|
||||
darkThemes: "Tema oscuro"
|
||||
syncDeviceDarkMode: "Sincronice el Modo Oscuro con la configuración de su dispositivo"
|
||||
drive: "Drive"
|
||||
fileName: "Nombre de archivo"
|
||||
selectFile: "Elegir archivo"
|
||||
selectFiles: "Elegir archivos"
|
||||
renameFolder: "Renombrar carpeta"
|
||||
selectFolder: "Seleccione una carpeta"
|
||||
selectFolders: "Seleccione carpetas"
|
||||
renameFile: "Renombrar archivo"
|
||||
folderName: "Nombre de la carpeta"
|
||||
createFolder: "Crear carpeta"
|
||||
renameFolder: "Renombrar carpeta"
|
||||
deleteFolder: "Borrar carpeta"
|
||||
addFile: "Añadir archivo"
|
||||
emptyDrive: "El drive está vacío"
|
||||
emptyFolder: "La carpeta está vacía"
|
||||
unableToDelete: "No se puede borrar"
|
||||
inputNewFileName: "Ingrese un nuevo nombre de archivo"
|
||||
inputNewFolderName: "Ingrese un nuevo nombre de la carpeta"
|
||||
circularReferenceFolder: "La carpeta de destino es una sub-carpeta de la carpeta que quieres mover."
|
||||
hasChildFilesOrFolders: "No se puede borrar esta carpeta. No está vacía."
|
||||
copyUrl: "Copiar URL"
|
||||
rename: "Renombrar"
|
||||
avatar: "Avatar"
|
||||
@ -247,6 +268,7 @@ watch: "Ver"
|
||||
unwatch: "Dejar de ver"
|
||||
accept: "Aceptar"
|
||||
reject: "Rechazar"
|
||||
normal: "Normal"
|
||||
instanceName: "Nombre de la instancia"
|
||||
instanceDescription: "Descripción de la instancia"
|
||||
maintainerName: "Nombre del administrador"
|
||||
@ -278,10 +300,15 @@ bannerUrl: "URL de la imagen del banner"
|
||||
basicInfo: "Información básica"
|
||||
pinnedUsers: "Usuarios fijados"
|
||||
pinnedUsersDescription: "Describir los usuarios que quiere fijar en la página \"Descubrir\" separados por una linea nueva"
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "Habilitar hCaptcha"
|
||||
hcaptchaSiteKey: "Clave del sitio"
|
||||
hcaptchaSecretKey: "Clave secreta"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "activar reCAPTCHA"
|
||||
recaptchaSiteKey: "Clave del sitio"
|
||||
recaptchaSecretKey: "Clave secreta"
|
||||
avoidMultiCaptchaConfirm: "El uso de múltiples Captchas puede causar interferencia. ¿Desea desactivar el otro Captcha? Puede dejar múltiples Captchas habilitadas presionando cancelar."
|
||||
antennas: "Antenas"
|
||||
manageAntennas: "Administrar antenas"
|
||||
name: "Nombre"
|
||||
@ -301,6 +328,7 @@ notesAndReplies: "Notas y respuestas"
|
||||
withFiles: "Adjuntos"
|
||||
silence: "Silenciar"
|
||||
silenceConfirm: "¿Desea silenciar al usuario?"
|
||||
unsilence: "Dejar de silenciar"
|
||||
unsilenceConfirm: "¿Desea dejar de silenciar al usuario?"
|
||||
popularUsers: "Usuarios populares"
|
||||
recentlyUpdatedUsers: "Usuarios activos recientemente"
|
||||
@ -332,8 +360,6 @@ unregister: "Cancelar registro"
|
||||
passwordLessLogin: "Iniciar sesión sin contraseña"
|
||||
resetPassword: "Resetear contraseña"
|
||||
newPasswordIs: "La nueva contraseña es \"{password}\""
|
||||
post: "Nota"
|
||||
posted: "Posteado"
|
||||
autoReloadWhenDisconnected: "Recargar automáticamente cuando el servidor está desconectado"
|
||||
autoNoteWatch: "Ver nota automáticamente"
|
||||
autoNoteWatchDescription: "Recibe notificaciones sobre las notas de otros usuarios que a los que respondiste y reaccionaste"
|
||||
@ -387,13 +413,14 @@ strongPassword: "Muy buena contraseña"
|
||||
passwordMatched: "Correcto"
|
||||
passwordNotMatched: "Las contraseñas no son las mismas"
|
||||
signinWith: "Inicie sesión con {x}"
|
||||
signinFailed: "Autenticación fallida. Asegúrate de haber usado el nombre de usuario y contraseña correctos."
|
||||
tapSecurityKey: "Toque la clave de seguridad"
|
||||
or: "O"
|
||||
uiLanguage: "Idioma de visualización de la interfaz"
|
||||
groupInvited: "Invitado al grupo"
|
||||
aboutX: "Acerca de {x}"
|
||||
useOsNativeEmojis: "Usa los emojis nativos de la plataforma"
|
||||
noGroups: "Sin grupos"
|
||||
youHaveNoGroups: "Sin grupos"
|
||||
joinOrCreateGroup: "Obtenga una invitación para unirse al grupos o puede crear su propio grupo."
|
||||
noHistory: "No hay datos en el historial"
|
||||
disableAnimatedMfm: "Deshabilitar MFM que tiene animaciones"
|
||||
@ -435,6 +462,8 @@ objectStorageRegion: "Region"
|
||||
objectStorageRegionDesc: "Especifique una región como 'xx-east-1'. Si su servicio no tiene distinción sobre regiones, déjelo en blanco o complete con 'us-east-1'."
|
||||
objectStorageUseSSL: "Usar SSL"
|
||||
objectStorageUseSSLDesc: "Desactive esto si no va a usar HTTPS para la conexión API"
|
||||
objectStorageUseProxy: "Conectarse a través de Proxy"
|
||||
objectStorageUseProxyDesc: "Desactive esto si no va a usar Proxy para la conexión de Almacenamiento de objetos"
|
||||
serverLogs: "Registros del servidor"
|
||||
deleteAll: "Eliminar todos"
|
||||
showFixedPostForm: "Mostrar el formulario de las entradas encima de la línea de tiempo"
|
||||
@ -445,6 +474,42 @@ none: "Ninguna"
|
||||
volume: "Volumen"
|
||||
details: "Detalles"
|
||||
chooseEmoji: "Elije un emoji"
|
||||
unableToProcess: "La operación no se puede llevar a cabo"
|
||||
recentUsed: "Usado recientemente"
|
||||
install: "Instalación"
|
||||
uninstall: "Desinstalar"
|
||||
installedApps: "Aplicaciones Autorizadas"
|
||||
nothing: "No hay nada que ver aqui"
|
||||
installedDate: "Autorizado"
|
||||
lastUsedDate: "Utilizado el"
|
||||
state: "Estado"
|
||||
sort: "Ordenar"
|
||||
ascendingOrder: "Ascendente"
|
||||
descendingOrder: "Descendente"
|
||||
scratchpad: "Scratch pad"
|
||||
scratchpadDescription: "Scratchpad proporciona un entorno experimental para AiScript. Puede escribir, ejecutar y verificar los resultados que interactúan con Misskey."
|
||||
output: "Salida"
|
||||
script: "Script"
|
||||
disablePagesScript: "Deshabilitar AiScript en Páginas"
|
||||
updateRemoteUser: "Actualizar información de usuario remoto"
|
||||
deleteAllFiles: "Borrar todos los archivos"
|
||||
deleteAllFilesConfirm: "¿Desea borrar todos los archivos?"
|
||||
removeAllFollowing: "Retener todos los siguientes"
|
||||
removeAllFollowingDescription: "Cancelar todos los siguientes del servidor {host}. Ejecutar en caso de que esta instancia haya dejado de existir"
|
||||
userSuspended: "Este usuario ha sido suspendido."
|
||||
userSilenced: "Este usuario ha sido silenciado."
|
||||
sidebar: "Barra lateral"
|
||||
divider: "Divisor"
|
||||
addItem: "Agregar elemento"
|
||||
rooms: "Cuartos"
|
||||
_theme:
|
||||
explore: "Explorar temas"
|
||||
install: "Instalar tema"
|
||||
manage: "Gestor de temas"
|
||||
code: "Código del tema"
|
||||
installed: "{name} ha sido instalado"
|
||||
alreadyInstalled: "Este tema ya está instalado"
|
||||
invalid: "El formato del tema no es válido"
|
||||
_sfx:
|
||||
note: "Notas"
|
||||
noteMy: "Nota (a mí mismo)"
|
||||
@ -529,7 +594,11 @@ _permissions:
|
||||
"write:user-groups": "Administrar grupos de usuarios"
|
||||
_auth:
|
||||
shareAccess: "¿Desea permitir el acceso a la cuenta \"{name}\"?"
|
||||
shareAccessAsk: "¿Está seguro de que desea autorizar esta aplicación para acceder a su cuenta?"
|
||||
permissionAsk: "Esta aplicación requiere los siguientes permisos"
|
||||
pleaseGoBack: "Por favor, vuelve a la aplicación"
|
||||
callback: "Volviendo a la aplicación"
|
||||
denied: "Acceso denegado"
|
||||
_antennaSources:
|
||||
all: "Todas las notas"
|
||||
homeTimeline: "Notas de los usuarios que sigues"
|
||||
@ -633,63 +702,117 @@ _charts:
|
||||
_instanceCharts:
|
||||
requests: "Pedidos"
|
||||
users: "Variación de usuarios"
|
||||
usersTotal: "Total de usuarios"
|
||||
usersTotal: "Total acumulado de usuarios"
|
||||
notes: "Variación de la cantidad de notas"
|
||||
notesTotal: "Estimación de notas"
|
||||
notesTotal: "Total acumulado de la cantidad de notas"
|
||||
ff: "Variación de cantidad de seguidos/seguidores"
|
||||
ffTotal: "Total de seguidos/seguidores"
|
||||
ffTotal: "Total acumulado de cantidad de seguidos/seguidores"
|
||||
cacheSize: "Variación del tamaño de la caché"
|
||||
cacheSizeTotal: "Total del tamaño de la caché"
|
||||
cacheSizeTotal: "Total acumulado del tamaño de la caché"
|
||||
files: "Variación de cantidad de archivos"
|
||||
filesTotal: "Total de archivos"
|
||||
filesTotal: "Total acumulado de cantidad de archivos"
|
||||
_timelines:
|
||||
home: "Inicio"
|
||||
local: "Local"
|
||||
social: "Social"
|
||||
global: "Global"
|
||||
_rooms:
|
||||
roomOf: "Cuarto de {user}"
|
||||
addFurniture: "Colocar muebles"
|
||||
translate: "Mover"
|
||||
rotate: "Rotar"
|
||||
exit: "Deseleccionar"
|
||||
remove: "Quitar"
|
||||
clear: "Quitar todo"
|
||||
clearConfirm: "¿Quiere quitar todos los muebles?"
|
||||
leaveConfirm: "Hay modificaciones sin guardar. ¿Desea irse?"
|
||||
chooseImage: "Escoger una imagen"
|
||||
roomType: "Estilo de cuarto"
|
||||
carpetColor: "Color de piso"
|
||||
_roomType:
|
||||
default: "Predeterminado"
|
||||
washitsu: "Estilo japonés"
|
||||
_furnitures:
|
||||
milk: "Cartón de leche"
|
||||
bed: "Cama"
|
||||
low-table: "Mesa chica"
|
||||
desk: "Escritorio"
|
||||
chair: "Silla"
|
||||
chair2: "Silla 2"
|
||||
fan: "Ventilador"
|
||||
pc: "Computadora"
|
||||
plant: "Planta decorativa"
|
||||
plant2: "Planta decorativa 2"
|
||||
eraser: "Goma de borrar"
|
||||
pencil: "lápiz"
|
||||
pudding: "Pudín"
|
||||
cardboard-box: "Caja de cartón"
|
||||
cardboard-box2: "Caja de cartón 2"
|
||||
cardboard-box3: "Caja de cartón 3"
|
||||
book: "Libro"
|
||||
book2: "Libro 2"
|
||||
piano: "Piano"
|
||||
facial-tissue: "Caja de pañuelos"
|
||||
server: "Servidor"
|
||||
moon: "Luna"
|
||||
corkboard: "Pizarra de corcho"
|
||||
mousepad: "Alfombrilla de ratón"
|
||||
monitor: "Monitor"
|
||||
keyboard: "Teclado"
|
||||
carpet-stripe: "Alfombra (a rayas)"
|
||||
mat: "Tapete"
|
||||
color-box: "Caja de colores"
|
||||
wall-clock: "Reloj de pared"
|
||||
photoframe: "Fotograma"
|
||||
cube: "Cubo"
|
||||
tv: "Televisor"
|
||||
pinguin: "Pinguino"
|
||||
rubik-cube: "Cubo rubik"
|
||||
poster-h: "Poster (horizontal)"
|
||||
poster-v: "Poster (vertical)"
|
||||
sofa: "Sillón"
|
||||
spiral: "Escalera en espiral"
|
||||
bin: "Papelera"
|
||||
cup-noodle: "Taza de sopa de fideos"
|
||||
holo-display: "Poster holográfico"
|
||||
energy-drink: "Bebida energética"
|
||||
_pages:
|
||||
newPage: "Crear página"
|
||||
editPage: "Editar página"
|
||||
readPage: "Viendo la fuente"
|
||||
page-created: "La página fue creada"
|
||||
page-updated: "La página fue actualizada"
|
||||
name-already-exists: "La URL de la página seleccionada ya existe"
|
||||
title-invalid-name: "URL inválida"
|
||||
text-invalid-name: "Verifique que no tenga espacios en blanco"
|
||||
created: "La página fue creada"
|
||||
updated: "La página fue actualizada"
|
||||
deleted: "La página borrada"
|
||||
nameAlreadyExists: "La URL de la página especificada ya existe"
|
||||
invalidNameTitle: "URL inválida"
|
||||
invalidNameText: "Verifique que no tenga espacios en blanco"
|
||||
editThisPage: "Editar esta página"
|
||||
viewSource: "Ver la fuente"
|
||||
viewPage: "Ver página"
|
||||
like: "Me gusta"
|
||||
unlike: "Quitar me gusta"
|
||||
liked-pages: "Páginas que me gustan"
|
||||
my-pages: "Mis páginas"
|
||||
my: "Mis páginas"
|
||||
liked: "Páginas que me gustan"
|
||||
inspector: "Inspector"
|
||||
content: "Bloque de página"
|
||||
variables: "Variables"
|
||||
variables-info: "Puedes crear una página dinámica usando variables. Al escribir el <b>{ nombre de la variable }</b> dentro del texto, se puede embeber el valor de la variable allí. Por ejemplo, si en el texto <b>¡Hola { thing } mundo!</b> el valor de la variable (thing) es <b>ai</b>, el texto se vuelve <b>¡Hola ai mundo!</b>"
|
||||
variables-info2: "La evaluación de las variables (el cálculo de los valores) se hace de arriba a abajo, por eso una variable no puede referenciar a otra que esté debajo. Por ejemplo, cuando se definen las variables <b>A、B、C</b>, <b>C</b> puede referenciar a <b>A</b> o <b>B</b>, pero <b>A</b> no puede referenciar a <b>B</b> ni a <b>C</b>."
|
||||
variables-info3: "Para recibir la entrada del usuario, agregue un bloque \"entrada de usuario\" en la página, y configure el nombre de las variables que desea almacenar en el campo \"nombre de variables\" (Las variables se crearán automáticamente). Se ejecutaran acciones en base a la entrada del usuario de esas variables."
|
||||
variables-info4: "Al usar funciones, se pueden agrupar el cálculo de valores de forma reutilizable. Para crear una función, se crea una variable de tipo \"función\". A la función de le puede configurar un slot (argumento), y el valor del slot está disponible como variable dentro de la función. También existen funciones que usan funciones como argumentos bajo el estandar AiScript (llamadas funciones de orden superior). Además de las funciones definidas previamente, se pueden definir funciones al momento en los slots de las funciones de orden superior."
|
||||
more-details: "Más detalles"
|
||||
title: "Título"
|
||||
url: "URL de la página"
|
||||
summary: "Resumen de la página"
|
||||
alignCenter: "Centrar"
|
||||
hide-title-when-pinned: "Ocultar el título de la página al fijarse"
|
||||
hideTitleWhenPinned: "Ocultar el título de la página al fijarse"
|
||||
font: "Fuente"
|
||||
fontSerif: "Serif"
|
||||
fontSansSerif: "Sans Serif"
|
||||
set-eye-catching-image: "Elegir imagen llamativa"
|
||||
remove-eye-catching-image: "Borrar imagen llamativa"
|
||||
eyeCatchingImageSet: "Elegir imagen llamativa"
|
||||
eyeCatchingImageRemove: "Borrar imagen llamativa"
|
||||
chooseBlock: "Agregar bloque"
|
||||
selectType: "Elegir tipo"
|
||||
enterVariableName: "Ingrese el nombre de la variable"
|
||||
the-variable-name-is-already-used: "El nombre de la variable ya está en uso"
|
||||
content-blocks: "Contenido"
|
||||
input-blocks: "Entrada"
|
||||
special-blocks: "Especial"
|
||||
post-from-post-form: "Postear este contenido"
|
||||
posted-from-post-form: "Posteado"
|
||||
variableNameIsAlreadyUsed: "El nombre de la variable ya está en uso"
|
||||
contentBlocks: "Contenido"
|
||||
inputBlocks: "Entrada"
|
||||
specialBlocks: "Especial"
|
||||
blocks:
|
||||
text: "Texto"
|
||||
textarea: "Área de texto"
|
||||
@ -702,6 +825,8 @@ _pages:
|
||||
post: "Formulario"
|
||||
_post:
|
||||
text: "Contenido"
|
||||
attachCanvasImage: "Nota con lienzo como imagen"
|
||||
canvasId: "Lienzo ID"
|
||||
textInput: "Entrada de texto"
|
||||
_textInput:
|
||||
name: "Nombre de variable"
|
||||
@ -717,6 +842,11 @@ _pages:
|
||||
name: "Nombre de variable"
|
||||
text: "Título"
|
||||
default: "Valor predeterminado"
|
||||
canvas: "Lienzo"
|
||||
_canvas:
|
||||
id: "Lienzo ID"
|
||||
width: "Ancho"
|
||||
height: "Altura"
|
||||
switch: "Interruptor"
|
||||
_switch:
|
||||
name: "Nombre de variable"
|
||||
@ -742,6 +872,9 @@ _pages:
|
||||
message: "Mensaje mostrado al apretar"
|
||||
variable: "Variable a enviar"
|
||||
no-variable: "Ninguna"
|
||||
callAiScript: "Invocar AiScript"
|
||||
_callAiScript:
|
||||
functionName: "Nombre de la función"
|
||||
radioButton: "Botón de opción"
|
||||
_radioButton:
|
||||
name: "Nombre de variable"
|
||||
@ -902,6 +1035,7 @@ _pages:
|
||||
_splitStrByLine:
|
||||
arg1: "Texto"
|
||||
ref: "Variables"
|
||||
aiScriptVar: "Variable de AiScript"
|
||||
fn: "funciones"
|
||||
_fn:
|
||||
slots: "Slots"
|
||||
|
@ -1,13 +1,13 @@
|
||||
---
|
||||
_lang_: "Français"
|
||||
introMisskey: "Bienvenue! Misskey est un service de microblogage décentralisé open source.\nÉcrivez des «notes» pour partager ce qui vous arrive maintenant ou pour parler de vous à tout le monde 📡\nAvec la fonction «réactions», vous pouvez également ajouter une réaction rapide aux notes de chacun 👍\nExplorez un nouveau monde 🚀"
|
||||
introMisskey: "Bienvenue ! Misskey est un service de microblogage décentralisé et open-source.\nÉcrivez des « notes » pour partager ce qui se passe, ou pour parler de vous à tout le monde 📡\nAvec la fonction « réactions », vous pouvez également ajouter une réaction rapide aux notes de chacun 👍\nExplorez un nouveau monde 🚀"
|
||||
monthAndDay: "{day}/{month}"
|
||||
search: "Rechercher"
|
||||
notifications: "Notifications"
|
||||
username: "Nom d'utilisateur·rice"
|
||||
password: "Mot de passe"
|
||||
fetchingAsApObject: "Récupération depuis le fédiverse"
|
||||
ok: "D'accord"
|
||||
fetchingAsApObject: "Récupération depuis le Fediverse"
|
||||
ok: "Soumettre"
|
||||
gotIt: "J'ai compris !"
|
||||
cancel: "Annuler"
|
||||
enterUsername: "Entrer un nom d'utilisateur·rice"
|
||||
@ -18,11 +18,11 @@ instance: "Instance"
|
||||
settings: "Paramètres"
|
||||
profile: "Profil"
|
||||
timeline: "Fil d'actualité"
|
||||
noAccountDescription: "L'utilisateur·rice n'a pas renseigné de présentation sur son profil"
|
||||
noAccountDescription: "L'utilisateur·rice n'a pas encore renseigné de présentation sur son profil"
|
||||
login: "Se connecter"
|
||||
loggingIn: "Connexion en cours"
|
||||
logout: "Se déconnecter"
|
||||
signup: "S'enregistrer"
|
||||
signup: "S'inscrire"
|
||||
uploading: "Envoi en cours"
|
||||
save: "Enregistrer"
|
||||
users: "Utilisateur·rice·s"
|
||||
@ -35,23 +35,25 @@ unpin: "Désépingler"
|
||||
copyContent: "Copier le contenu"
|
||||
copyLink: "Copier le lien"
|
||||
delete: "Supprimer"
|
||||
deleteAndEdit: "Supprimer et réécrire"
|
||||
deleteAndEditConfirm: "Êtes-vous sûr·e de vouloir effacer cette note et la modifier ? Vous perdrez toutes les réactions, renotes et réponses."
|
||||
addToList: "Ajouter à une liste"
|
||||
sendMessage: "Envoyer un message"
|
||||
copyUsername: "Copier le nom d'utilisateur"
|
||||
reply: "Répondre"
|
||||
loadMore: "Voir plus"
|
||||
youGotNewFollower: "Vous a abonnés"
|
||||
receiveFollowRequest: "Demande de abonnés reçue"
|
||||
followRequestAccepted: "L'abonne la demande acceptée"
|
||||
youGotNewFollower: "Vous suit"
|
||||
receiveFollowRequest: "Demande de suivi reçue"
|
||||
followRequestAccepted: "La demande d'abonnement a été acceptée"
|
||||
mentions: "Mentions"
|
||||
directNotes: "Messages directs"
|
||||
importAndExport: "Import et export"
|
||||
import: "Importer"
|
||||
export: "Exporter"
|
||||
files: "Fichier·s"
|
||||
files: "Fichiers"
|
||||
download: "Télécharger"
|
||||
driveFileDeleteConfirm: "Êtes-vous sûr·e de vouloir supprimer le fichier \"{name}\" ? Les notes avec ce fichier joint seront aussi supprimées."
|
||||
unfollowConfirm: "Êtes-vous sûr·de ne plus vouloir abonne {name} ?"
|
||||
unfollowConfirm: "Se désabonner de {name} ?"
|
||||
exportRequested: "Vous avez demandé une exportation. Cela pourrait prendre un peu de temps. Une fois l'exportation terminée, le fichier résultant sera ajouté dans le Drive."
|
||||
importRequested: "Vous avez initié un import. Cela pourrait prendre un peu de temps."
|
||||
lists: "Listes"
|
||||
@ -60,34 +62,33 @@ note: "Note"
|
||||
notes: "Notes"
|
||||
following: "Abonnements"
|
||||
followers: "Abonné·e·s"
|
||||
followsYou: "Votre abonné"
|
||||
followsYou: "Vous suit"
|
||||
createList: "Créer une liste"
|
||||
manageLists: "Gérer les listes"
|
||||
error: "Une erreur est survenue"
|
||||
retry: "Réessayer"
|
||||
enterListName: "Nom de la liste"
|
||||
privacy: "Vie privée"
|
||||
makeFollowManuallyApprove: "Demandes d’abonnements requiert l’approbation"
|
||||
privacy: "Confidentialité"
|
||||
makeFollowManuallyApprove: "Approuver manuellement les demandes de suivi"
|
||||
defaultNoteVisibility: "Visibilité par défaut"
|
||||
follow: "Abonnement"
|
||||
followRequest: "Demande d’abonnement"
|
||||
follow: "S'abonner"
|
||||
followRequest: "Demande de suivi"
|
||||
followRequests: "Demandes d’abonnement"
|
||||
unfollow: "Se désabonner"
|
||||
followRequestPending: "En attente d’approbation"
|
||||
enterEmoji: "ou entrez un émoji"
|
||||
renote: "Renote"
|
||||
unrenote: "Annuler Renote"
|
||||
quote: "Citation"
|
||||
quote: "Citer"
|
||||
pinnedNote: "Note épinglée"
|
||||
you: "Vous"
|
||||
clickToShow: "Cliquer pour afficher"
|
||||
sensitive: "Contenu sensible"
|
||||
add: "Ajouter"
|
||||
reaction: "Réactions"
|
||||
reactionSettingDescription: "Attribuez vos réactions préférées qui souhaitent épingler le sélecteur de réaction."
|
||||
reactionSettingDescription: "Choisissez vos réactions préférées que vous souhaitez épingler dans le sélecteur de réaction."
|
||||
rememberNoteVisibility: "Se souvenir de la visibilité des notes"
|
||||
renameFile: "Renommer le ficher"
|
||||
attachCancel: "Enlever le fichier attaché"
|
||||
attachCancel: "Supprimer le fichier attaché"
|
||||
markAsSensitive: "Marquer comme sensible"
|
||||
unmarkAsSensitive: "Enlever le marquage comme sensible"
|
||||
enterFileName: "Entrer le nom du fichier"
|
||||
@ -97,31 +98,33 @@ block: "Bloquer"
|
||||
unblock: "Débloquer"
|
||||
suspend: "Suspendre"
|
||||
unsuspend: "Annuler la suspension"
|
||||
blockConfirm: "Désirez-vous bloquer ce compte ?"
|
||||
unblockConfirm: "Désirez-vous débloquer ce compte ?"
|
||||
suspendConfirm: "Désirez-vous suspendre ce compte ?"
|
||||
unsuspendConfirm: "Désirez-vous annuler la suspension de ce compte ?"
|
||||
blockConfirm: "Êtes-vous sûr·e de vouloir bloquer ce compte ?"
|
||||
unblockConfirm: "Êtes-vous sûr·e de vouloir débloquer ce compte ?"
|
||||
suspendConfirm: "Êtes-vous sûr·e de vouloir suspendre ce compte ?"
|
||||
unsuspendConfirm: "Êtes-vous sûr·e de vouloir annuler la suspension de ce compte ?"
|
||||
selectList: "Sélectionner une liste"
|
||||
customEmojis: "Émojis personnalisés"
|
||||
emojiName: "Nom de l’émoji"
|
||||
emojiUrl: "URL de l’émoji"
|
||||
addEmoji: "Ajouter un émoji"
|
||||
cacheRemoteFiles: "Mettre en cache des fichiers distants"
|
||||
cacheRemoteFilesDescription: "Quand ce paramètre est désactivé, les fichiers distants sont chargés directement de l'instance distante. Désactiver cela diminuera l'utilisation du stockage mais augmentera le trafic parce les miniatures ne seront pas générées."
|
||||
settingGuide: "Configuration suggérée"
|
||||
cacheRemoteFiles: "Mise en cache des fichiers distants"
|
||||
cacheRemoteFilesDescription: "Quand ce paramètre est désactivé, les fichiers distants sont chargés directement depuis l'instance distante. Désactiver cela diminuera l'utilisation du stockage, mais augmentera le trafic réseau, puisque les miniatures ne seront pas générées."
|
||||
flagAsBot: "Ce compte est un robot"
|
||||
flagAsCat: "Ce compte est un chat"
|
||||
autoAcceptFollowed: "Approuver automatiquement les abonnements des utilisateurs abonné·e·s"
|
||||
autoAcceptFollowed: "Approuver automatiquement les demandes de suivi venant d'utilisateur·rice·s que vous suivez"
|
||||
addAcount: "Ajouter un compte"
|
||||
loginFailed: "Échec de la connexion"
|
||||
showOnRemote: "Voir sur l'instance distante"
|
||||
general: "Général"
|
||||
wallpaper: "Arrière plan"
|
||||
removeWallpaper: "Supprimer l'arrière plan"
|
||||
wallpaper: "Fond d'écran"
|
||||
setWallpaper: "Définir le fond d'écran"
|
||||
removeWallpaper: "Supprimer le fond d'écran"
|
||||
searchWith: "Recherche : {q}"
|
||||
youHaveNoLists: "Vous n'avez aucune liste"
|
||||
followConfirm: "Désirez-vous abonne {name} ?"
|
||||
followConfirm: "Êtes-vous sûr·e de vouloir suivre {name} ?"
|
||||
proxyAccount: "Compte proxy"
|
||||
proxyAccountDescription: "Un compte proxy se comporte, dans certaines conditions, comme un·e abonné·e distant pour les utilisateurs d'autres instances.\nExemple : quand un·e utilisateur·rice distant·e est ajouté·e à une liste, ses notes ne serait pas visibles sur l'instance si personne ne le·la abonné. Le compte proxy va donc le·la abonne pour que ses notes soient acheminées."
|
||||
proxyAccountDescription: "Un compte proxy se comporte, dans certaines conditions, comme un·e abonné·e distant·e pour les utilisateurs d'autres instances. Par exemple, quand un·e utilisateur·rice ajoute un·e utilisateur·rice distant·e à une liste, ses notes ne seront pas visibles sur l'instance si personne ne suit cet·te utilisateur·rice. Le compte proxy va donc suivre cet·te utilisateur·rice pour que ses notes soient acheminées."
|
||||
host: "Hôte"
|
||||
selectUser: "Sélectionner un·e utilisateur·rice"
|
||||
recipient: "Correspondant·e"
|
||||
@ -131,13 +134,13 @@ instances: "Instance"
|
||||
registeredAt: "Premier contact le"
|
||||
latestRequestSentAt: "Dernière requête envoyée"
|
||||
latestRequestReceivedAt: "Dernière requête reçue"
|
||||
latestStatus: "Dernière statut"
|
||||
latestStatus: "Dernier statut"
|
||||
storageUsage: "Stockage utilisé"
|
||||
charts: "Graphiques"
|
||||
perHour: "par heure"
|
||||
perDay: "par jour"
|
||||
stopActivityDelivery: "Arrêter l'envoi d'activités"
|
||||
blockThisInstance: "Bloquer cette instnce"
|
||||
blockThisInstance: "Bloquer cette instance"
|
||||
operations: "Opérations"
|
||||
software: "Logiciel"
|
||||
version: "Version"
|
||||
@ -156,43 +159,43 @@ clearQueueConfirmText: "Les notes non distribuées ne seront pas livrées. Norma
|
||||
clearCachedFiles: "Vider le cache"
|
||||
clearCachedFilesConfirm: "Êtes-vous sûr·e de vouloir vider le cache de fichiers distants ?"
|
||||
blockedInstances: "Instances bloquées"
|
||||
blockedInstancesDescription: "Listez les instance que vous désirez bloquer, une par ligne. Ces instances bloquées ne seront pas capable d'interagir avec cette instance."
|
||||
muteAndBlock: "Masqués / Bloqués"
|
||||
blockedInstancesDescription: "Listez les instances que vous désirez bloquer, une par ligne. Ces instances ne seront plus en capacité d'interagir avec votre instance."
|
||||
muteAndBlock: "Masqué·e·s / Bloqué·e·s"
|
||||
mutedUsers: "Utilisateur·rice·s en sourdine"
|
||||
blockedUsers: "Utilisateur·rice·s bloqué·e·s"
|
||||
noUsers: "Il n'y a aucun utilisateur·rice"
|
||||
editProfile: "Modifier votre profil"
|
||||
noteDeleteConfirm: "Confirmez-vous la suppression de cette note ?"
|
||||
pinLimitExceeded: "Je ne peux plus épingler"
|
||||
intro: "L'installation de Misskey est terminée! Créons le compte administrateur."
|
||||
noteDeleteConfirm: "Êtes-vous sûr·e de vouloir supprimer cette note ?"
|
||||
pinLimitExceeded: "Vous ne pouvez plus épingler d'autres notes."
|
||||
intro: "L'installation de Misskey est terminée ! Créons le compte administrateur."
|
||||
done: "Terminé"
|
||||
processing: "Traitement en cours"
|
||||
preview: "Prévisualisation"
|
||||
default: "Par défaut"
|
||||
noCustomEmojis: "Il a pas d’émoji"
|
||||
customEmojisOfRemote: "Émojis l'instance distante"
|
||||
noCustomEmojis: "Il n'y a pas d’émoji"
|
||||
customEmojisOfRemote: "Émojis d'autres instances"
|
||||
noJobs: "Il n'y a aucune tâche planifiée"
|
||||
federating: "En cours de fédération"
|
||||
blocked: "Bloqué"
|
||||
suspended: "Suspendu"
|
||||
blocked: "Bloqué·e"
|
||||
suspended: "Suspendu·e"
|
||||
all: "Tous"
|
||||
subscribing: "Abonné"
|
||||
publishing: "Publié"
|
||||
notResponding: "Ne répond pas"
|
||||
instanceFollowing: "Abonnements une instance"
|
||||
instanceFollowers: "Abonné·e·s de l'instance"
|
||||
instanceUsers: "Utilisateur·e·s de l'instance"
|
||||
instanceUsers: "Utilisateur·rice·s de l'instance"
|
||||
changePassword: "Modifier votre mot de passe"
|
||||
security: "Sécurité"
|
||||
retypedNotMatch: "Les saisies ne correspondent pas."
|
||||
currentPassword: "Mot de passe actuel"
|
||||
newPassword: "Nouveau mot de passe"
|
||||
newPasswordRetype: "Nouveau mot de passe (répéter)"
|
||||
newPasswordRetype: "Répéter le nouveau mot de passe"
|
||||
attachFile: "Joindre un fichier"
|
||||
more: "Plus !"
|
||||
featured: "Surlignage"
|
||||
featured: "Tendances"
|
||||
usernameOrUserId: "Nom d'utilisateur ou ID utilisateur"
|
||||
noSuchUser: "Utilisateur non trouvé"
|
||||
noSuchUser: "Utilisateur·rice non trouvé"
|
||||
lookup: "Recherche"
|
||||
announcements: "Annonces"
|
||||
imageUrl: "URL de l’image"
|
||||
@ -201,72 +204,91 @@ removed: "Supprimé"
|
||||
removeAreYouSure: "Supprimer «{x}» ?"
|
||||
saved: "Enregistré"
|
||||
messaging: "Discuter"
|
||||
upload: "Téléchargez"
|
||||
upload: "Téléverser"
|
||||
fromDrive: "Depuis le Drive"
|
||||
fromUrl: "De l'URL"
|
||||
fromUrl: "Depuis une URL"
|
||||
uploadFromUrl: "Téléverser via une URL"
|
||||
uploadFromUrlDescription: "URL du fichier que vous souhaitez téléverser"
|
||||
uploadFromUrlRequested: "Téléversement demandé"
|
||||
uploadFromUrlMayTakeTime: "Le téléversement de votre fichier peut prendre un certain temps."
|
||||
explore: "Découvrir"
|
||||
games: "Jeux de Misskey"
|
||||
messageRead: "Lus"
|
||||
recentUsedEmojis: "Emoji récemment utilisé"
|
||||
noMoreHistory: "Plus d'histoire passée"
|
||||
startMessaging: "Commencer à écrire un discutez"
|
||||
nUsersRead: "{n} personnes ont lu"
|
||||
agreeTo: "D'accord {0}"
|
||||
noMoreHistory: "Il n'y a plus d'historique"
|
||||
startMessaging: "Commencer à discuter"
|
||||
nUsersRead: "Lu par {n} personnes"
|
||||
agreeTo: "J'accepte {0}"
|
||||
tos: "Conditions d'utilisation"
|
||||
start: "Commencer"
|
||||
home: "Principal"
|
||||
remoteUserCaution: "Les informations sont incomplètes en raison de l'utilisateur distant."
|
||||
remoteUserCaution: "Les informations peuvent être incomplètes, parce que l'utilisateur·rice est d'une instance distante."
|
||||
activity: "Activités"
|
||||
images: "Images"
|
||||
birthday: "Date de naissance"
|
||||
yearsOld: "{age} ans"
|
||||
registeredDate: "Date de création"
|
||||
registeredDate: "Inscrit le"
|
||||
location: "Localisation"
|
||||
theme: "Thème"
|
||||
lightThemes: "Thème lumineux"
|
||||
themeForLightMode: "Thème à utiliser en Mode Clair"
|
||||
themeForDarkMode: "Thème à utiliser en Mode Sombre"
|
||||
light: "Clair"
|
||||
dark: "Sombre"
|
||||
lightThemes: "Thème clair"
|
||||
darkThemes: "Thème sombre"
|
||||
syncDeviceDarkMode: "Synchronisez le mode sombre avec les paramètres de votre appareil"
|
||||
drive: "Drive"
|
||||
fileName: "Nom du fichier"
|
||||
selectFile: "Choisir le fichier"
|
||||
selectFiles: "Choisir le fichiers"
|
||||
renameFolder: "Renommer le dossier"
|
||||
selectFiles: "Choisir les fichiers"
|
||||
selectFolder: "Sélectionnez un dossier"
|
||||
selectFolders: "Sélectionnez des dossiers"
|
||||
renameFile: "Renommer le ficher"
|
||||
folderName: "Nom du dossier"
|
||||
createFolder: "Créer un dossier"
|
||||
renameFolder: "Renommer le dossier"
|
||||
deleteFolder: "Supprimer le dossier"
|
||||
addFile: "Ajoutez un fichier"
|
||||
emptyDrive: "Le Drive est vide"
|
||||
emptyFolder: "Le dossier est vide"
|
||||
unableToDelete: "Ne peut pas être supprimé"
|
||||
inputNewFileName: "Entrez un nouveau nom de fichier"
|
||||
inputNewFolderName: "Entrez un nouveau nom de dossier"
|
||||
circularReferenceFolder: "Le dossier de destination est un sous-dossier du dossier que vous souhaitez déplacer."
|
||||
hasChildFilesOrFolders: "Ce dossier n'est pas vide, il ne peut donc pas être supprimé"
|
||||
copyUrl: "Copier l’URL"
|
||||
rename: "Renommer"
|
||||
avatar: "Avatar"
|
||||
banner: "Bannière"
|
||||
nsfw: "Contenu sensible"
|
||||
disconnectedFromServer: "Déconnecté du serveur"
|
||||
disconnectedFromServer: "Déconnecté·e du serveur"
|
||||
reload: "Rafraîchir"
|
||||
doNothing: "Ignorer"
|
||||
reloadConfirm: "Voulez-vous recharger?"
|
||||
reloadConfirm: "Voulez-vous recharger le fil ?"
|
||||
watch: "Surveiller"
|
||||
unwatch: "Ne plus surveiller"
|
||||
accept: "Autoriser"
|
||||
reject: "Refuser"
|
||||
normal: "Normal"
|
||||
instanceName: "Nom de l’instance"
|
||||
instanceDescription: "Description de l’instance"
|
||||
maintainerName: "Nom d'administrateur"
|
||||
maintainerEmail: "Email de l'administrateur"
|
||||
maintainerName: "Nom de l'administrateur·rice"
|
||||
maintainerEmail: "Email de l'administrateur·rice"
|
||||
tosUrl: "URL des conditions d'utilisation"
|
||||
thisYear: "Cette année"
|
||||
thisMonth: "Ce mois-ci"
|
||||
today: "Aujourd'hui"
|
||||
dayX: "{day} jour"
|
||||
monthX: "{month} mois"
|
||||
yearX: "{year} année"
|
||||
dayX: "{day}"
|
||||
monthX: "{month}"
|
||||
yearX: "{year}"
|
||||
pages: "Pages"
|
||||
integration: "Intégrations"
|
||||
connectSerice: "Connecter"
|
||||
disconnectSerice: "Déconnecter"
|
||||
enableLocalTimeline: "Activer le fil local"
|
||||
enableGlobalTimeline: "Activer le fil global"
|
||||
disablingTimelinesInfo: "Si vous désactivez ces le fils, les administrateurs et les modérateurs pourront toujours y accéder pour plus de commodité."
|
||||
disablingTimelinesInfo: "Si vous désactivez ces fils, les administrateurs et les modérateurs pourront toujours y accéder."
|
||||
registration: "S'inscrire"
|
||||
enableRegistration: "Autoriser n’importe qui à s’enregistrés"
|
||||
enableRegistration: "Autoriser n’importe qui à s’inscrire"
|
||||
invite: "Inviter"
|
||||
proxyRemoteFiles: "Proxy fichiers distants"
|
||||
proxyRemoteFilesDescription: "Si vous activez ce paramètre, les fichiers distants non stockés ou supprimés en raison d'une capacité excédentaire seront affichés via un proxy local et généreront une miniature. Cela n'affectera pas le stockage du serveur."
|
||||
@ -277,37 +299,43 @@ iconUrl: "URL de l'image de l'icône"
|
||||
bannerUrl: "URL de l'image de la bannière"
|
||||
basicInfo: "Informations basiques"
|
||||
pinnedUsers: "Utilisateur·rice épinglé·e"
|
||||
pinnedUsersDescription: "Décrivez les utilisateurs que vous souhaitez définir sur la page \"Découvrir\" séparés par une nouvelle ligne"
|
||||
pinnedUsersDescription: "Listez les utilisateur·rice·s que vous souhaitez voir épinglé·e·s sur la page \"Découvrir\", un·e par ligne."
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "Activer hCaptcha"
|
||||
hcaptchaSiteKey: "Clé du site"
|
||||
hcaptchaSecretKey: "Clé secrète"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "Activation de reCAPTCHA"
|
||||
enableRecaptcha: "Activer reCAPTCHA"
|
||||
recaptchaSiteKey: "Clé du site"
|
||||
recaptchaSecretKey: "Clé secrète"
|
||||
avoidMultiCaptchaConfirm: "L'utilisation de plusieurs Captchas peut provoquer des interférences. Souhaitez-vous désactiver l'autre Captcha? Vous pouvez laisser plusieurs Captcha activés en appuyant sur Annuler."
|
||||
antennas: "Antenne"
|
||||
manageAntennas: "Gestion d'antenne"
|
||||
name: "Nom"
|
||||
antennaSource: "Recevoir la source"
|
||||
antennaKeywords: "Mots clés à recevoir"
|
||||
antennaExcludeKeywords: "Mots clés à exclure"
|
||||
antennaKeywordsDescription: "Lorsqu'il est séparé par un espace, il devient une spécification ET, et lorsqu'il est séparé par un saut de ligne, il devient une spécification OU."
|
||||
antennaKeywordsDescription: "Séparez avec des espaces pour une condition ET. Séparez avec un saut de ligne pour une condition OU."
|
||||
notifyAntenna: "Notifier les nouvelles notes"
|
||||
withFileAntenna: "Notes uniquement avec fichiers joints"
|
||||
serviceworker: "ServiceWorker"
|
||||
enableServiceworker: "Activer ServiceWorker"
|
||||
antennaUsersDescription: "Spécifiez les noms d'utilisateurs séparés par des sauts de ligne"
|
||||
caseSensitive: "Sensible à la casse"
|
||||
withReplies: "Y compris répondres"
|
||||
withReplies: "Inclure les réponses"
|
||||
connectedTo: "Vous êtes connectés aux services suivants"
|
||||
notesAndReplies: "Notes et Répondres"
|
||||
notesAndReplies: "Notes et Réponses"
|
||||
withFiles: "Avec fichiers joints"
|
||||
silence: "Mettre en masquer"
|
||||
silenceConfirm: "Mettre l'utilisateur sous masquer ?"
|
||||
unsilenceConfirm: "Voulez-vous annuler le masquer ?"
|
||||
silence: "Mettre en sourdine"
|
||||
silenceConfirm: "Êtes-vous sûr·e de vouloir mettre l'utilisateur·rice en sourdine ?"
|
||||
unsilence: "Annuler la mise en sourdine"
|
||||
unsilenceConfirm: "Êtes-vous sûr·e de vouloir annuler la mise en sourdine de cette utilisateur·rice ?"
|
||||
popularUsers: "Utilisateur·rice·s populaires"
|
||||
recentlyUpdatedUsers: "Utilisateur·rice·s actif·ve·s récemment"
|
||||
recentlyRegisteredUsers: "Utilisateur·rice·s récemment enregistrés"
|
||||
recentlyRegisteredUsers: "Utilisateur·rice·s récemment inscrit·e·s"
|
||||
recentlyDiscoveredUsers: "Utilisateur·rice·s récemment découverts"
|
||||
exploreUsersCount: "Il y a {count} utilisateur·rice·s"
|
||||
exploreFediverse: "Explorer le Fédiverse"
|
||||
exploreFediverse: "Explorer le Fediverse"
|
||||
popularTags: "Mots-clés populaires"
|
||||
userList: "Listes"
|
||||
about: "Informations"
|
||||
@ -332,8 +360,6 @@ unregister: "Se désinscrire"
|
||||
passwordLessLogin: "Connectez-vous sans mot de passe"
|
||||
resetPassword: "Réinitialiser mot de passe"
|
||||
newPasswordIs: "Votre nouveau mot de passe est \"{password}\""
|
||||
post: "Publier"
|
||||
posted: "Publié !"
|
||||
autoReloadWhenDisconnected: "Rechargement automatique lorsque le serveur se déconnecte"
|
||||
autoNoteWatch: "Surveiller automatique pour les notes"
|
||||
autoNoteWatchDescription: "Soyez informé des notes auxquelles vous avez réagi ou répondu."
|
||||
@ -345,7 +371,7 @@ uploadFolder: "Emplacement de téléversement par défaut"
|
||||
cacheClear: "Vider le cache"
|
||||
markAsReadAllNotifications: "Marquer toutes les notifications comme lues"
|
||||
markAsReadAllUnreadNotes: "Marquer toutes les notes comme lues"
|
||||
markAsReadAllTalkMessages: "Marquer toutes les discutez comme lues"
|
||||
markAsReadAllTalkMessages: "Marquer toutes les discussions comme lues"
|
||||
help: "Aide"
|
||||
inputMessageHere: "Tapez ici votre message"
|
||||
close: "Fermer"
|
||||
@ -387,13 +413,14 @@ strongPassword: "Fort mot de passe"
|
||||
passwordMatched: "Correcte"
|
||||
passwordNotMatched: "Ne correspond pas"
|
||||
signinWith: "Connectez-vous avec {x}"
|
||||
signinFailed: "Échec d’authentification. Veuillez vérifier que votre nom d’utilisateur et mot de passe sont corrects."
|
||||
tapSecurityKey: "Touchez la clé de sécurité"
|
||||
or: "OU"
|
||||
uiLanguage: "Langue d'affichage de l'interface"
|
||||
groupInvited: "Invité au groupe"
|
||||
aboutX: "À propos de {x}"
|
||||
useOsNativeEmojis: "Utilisez les emojis natifs de la plateforme"
|
||||
noGroups: "Pas de groupes"
|
||||
useOsNativeEmojis: "Utiliser les émojis natifs du système"
|
||||
youHaveNoGroups: "Vous n'avez aucune groupe"
|
||||
joinOrCreateGroup: "Soyez invité à rejoindre les groupes ou vous pouvez créer votre propre groupe."
|
||||
noHistory: "Pas d'historique"
|
||||
disableAnimatedMfm: "Désactiver MFM qui a des animations"
|
||||
@ -435,6 +462,8 @@ objectStorageRegion: "Region"
|
||||
objectStorageRegionDesc: "Spécifiez une région comme 'xx-east-1'. Si votre service ne fait pas de distinction entre les régions, laissez-le vide ou remplissez 'us-east-1'."
|
||||
objectStorageUseSSL: "Utiliser SSL"
|
||||
objectStorageUseSSLDesc: "Désactivez-le si vous n'utilisez pas HTTPS pour la connexion API"
|
||||
objectStorageUseProxy: "Se connecter via proxy"
|
||||
objectStorageUseProxyDesc: "Désactivez-le si vous n'utilisez pas Proxy pour la connexion de stockage d'objets"
|
||||
serverLogs: "Journaux serveur"
|
||||
deleteAll: "Supprimer tout"
|
||||
showFixedPostForm: "Afficher le formulaire en haut du fil d'actualité"
|
||||
@ -444,7 +473,43 @@ listen: "Écouter"
|
||||
none: "Rien"
|
||||
volume: "Volume"
|
||||
details: "Détails"
|
||||
chooseEmoji: "Choisissez des emojis"
|
||||
chooseEmoji: "Choisissez un émoji"
|
||||
unableToProcess: "L'opération n'a pas pu être complétée"
|
||||
recentUsed: "Récemment utilisé"
|
||||
install: "Installation"
|
||||
uninstall: "Désinstaller"
|
||||
installedApps: "Applications Autorisées"
|
||||
nothing: "Il n'y a rien à voir ici"
|
||||
installedDate: "Autorisé"
|
||||
lastUsedDate: "Dernière utilisation"
|
||||
state: "État"
|
||||
sort: "Trier"
|
||||
ascendingOrder: "Ascendant"
|
||||
descendingOrder: "Descendant"
|
||||
scratchpad: "Scratch pad"
|
||||
scratchpadDescription: "Scratchpad fournit un environnement expérimental pour AiScript. Vous pouvez écrire, exécuter et vérifier les résultats qui interagissent avec Misskey."
|
||||
output: "Sortie"
|
||||
script: "Script"
|
||||
disablePagesScript: "Désactiver AiScript sur les Pages"
|
||||
updateRemoteUser: "Mettre à jour les informations de l’utilisateur·rice distant·e"
|
||||
deleteAllFiles: "Supprimer tous les fichiers"
|
||||
deleteAllFilesConfirm: "Êtes vous surs de vouloir supprimer tous les fichiers ?"
|
||||
removeAllFollowing: "Retenir tous les abonnements"
|
||||
removeAllFollowingDescription: "Se désabonner de tous les comptes de {host}. Exécutez cette commande si l'instance n'existe plus."
|
||||
userSuspended: "Cette utilisateur·trice a été suspendue."
|
||||
userSilenced: "Cette utilisateur·trice a été masquer."
|
||||
sidebar: "Barre latérale"
|
||||
divider: "Séparateur"
|
||||
addItem: "Ajouter élément"
|
||||
rooms: "Pièce"
|
||||
_theme:
|
||||
explore: "Explorer les thèmes"
|
||||
install: "Installer un thème"
|
||||
manage: "Gestion des thèmes"
|
||||
code: "Code du thème"
|
||||
installed: "{name} a été installé"
|
||||
alreadyInstalled: "Ce thème est déjà installé"
|
||||
invalid: "Le format du thème n'est pas valide"
|
||||
_sfx:
|
||||
note: "Nouvelle note"
|
||||
noteMy: "Ma note"
|
||||
@ -493,7 +558,7 @@ _tutorial:
|
||||
step7_3: "Alors, profitez de Misskey 🚀"
|
||||
_2fa:
|
||||
alreadyRegistered: "Cette étape à déjà été complétée"
|
||||
registerDevice: "S’inscrire l'appareil"
|
||||
registerDevice: "Ajouter un appareil"
|
||||
registerKey: "S’inscrire la clé"
|
||||
step1: "Tout d'abord, installez une application d'authentification, telle que {a} ou {b}, sur votre appareil."
|
||||
step2: "Ensuite, scannez le code QR affiché avec l'application."
|
||||
@ -529,7 +594,11 @@ _permissions:
|
||||
"write:user-groups": "Éditer les groupes des utilisateur·rice·s"
|
||||
_auth:
|
||||
shareAccess: "Autoriser \"{name}\" à accéder à votre compte ?"
|
||||
shareAccessAsk: "Voulez-vous vraiment autoriser cette application à accéder à votre compte?"
|
||||
permissionAsk: "Cette application nécessite les autorisations suivantes "
|
||||
pleaseGoBack: "Veillez retourner à l'application"
|
||||
callback: "Retour vers l’application"
|
||||
denied: "Accès refusé"
|
||||
_antennaSources:
|
||||
all: "Toutes les notes"
|
||||
homeTimeline: "Notes de l'utilisateur auquel je m'abonne"
|
||||
@ -620,7 +689,7 @@ _charts:
|
||||
federationInstancesIncDec: "Variation du nombre d'instances"
|
||||
federationInstancesTotal: "Nombre d'instances au total"
|
||||
usersIncDec: "Variation du nombre d'utilisateur·rice·s"
|
||||
usersTotal: "Nombre d'utilsateur·rice·s au total"
|
||||
usersTotal: "Nombre d'utilisateur·rice·s au total"
|
||||
activeUsers: "Utilisateur·rice·s actif·ve·s"
|
||||
notesIncDec: "Variation du nombre d'notes"
|
||||
localNotesIncDec: "Variation du nombre de notes local"
|
||||
@ -633,63 +702,117 @@ _charts:
|
||||
_instanceCharts:
|
||||
requests: "Requêtes"
|
||||
users: "Variation du nombre d'utilisateur·rice·s"
|
||||
usersTotal: "Somme du nombre d'utilisateur·rice·s accumulés"
|
||||
usersTotal: "Nombre d'utilisateur·rice·s au total cumulé"
|
||||
notes: "Variation du nombre d'notes"
|
||||
notesTotal: "Somme du nombre d’notes accumulés"
|
||||
notesTotal: "Nombre d'notes au total cumulé"
|
||||
ff: "Variation des abonné·e·s"
|
||||
ffTotal: "Somme du nombre d'abonnements accumulés"
|
||||
ffTotal: "Nombre d'abonné·e·s au total cumulé"
|
||||
cacheSize: "Variation de la taille du cache"
|
||||
cacheSizeTotal: "Somme de la taille du cache accumulé"
|
||||
cacheSizeTotal: "La taille du cache au total cumulé"
|
||||
files: "Variation du nombre de fichiers"
|
||||
filesTotal: "Somme du nombre de fichiers accumulés"
|
||||
filesTotal: "Nombre de fichiers au total cumulé"
|
||||
_timelines:
|
||||
home: "Principal"
|
||||
local: "Local"
|
||||
social: "Social"
|
||||
global: "Global"
|
||||
_rooms:
|
||||
roomOf: "Pièce de {user}"
|
||||
addFurniture: "Placer des meubles"
|
||||
translate: "Déplacer"
|
||||
rotate: "Pivoter"
|
||||
exit: "Retour"
|
||||
remove: "Enlever"
|
||||
clear: "Tout enlever"
|
||||
clearConfirm: "Désirez-vous enlever tout les meubles de votre chambre ?"
|
||||
leaveConfirm: "Vous avez des modifications non-sauvegardées. Voulez-vous vraiment quitter ?"
|
||||
chooseImage: "Sélectionnez une image"
|
||||
roomType: "Style de pièce"
|
||||
carpetColor: "Couleur du tapis"
|
||||
_roomType:
|
||||
default: "Par défaut"
|
||||
washitsu: "Style japonnais"
|
||||
_furnitures:
|
||||
milk: "Lait en carton"
|
||||
bed: "Lit"
|
||||
low-table: "Table basse"
|
||||
desk: "Bureau"
|
||||
chair: "Chaise"
|
||||
chair2: "Chaise 2"
|
||||
fan: "Ventilateur"
|
||||
pc: "Ordinateur"
|
||||
plant: "Plante d’intérieur"
|
||||
plant2: "Plante d’intérieur 2"
|
||||
eraser: "Gomme"
|
||||
pencil: "Crayon"
|
||||
pudding: "Pudding"
|
||||
cardboard-box: "Boîte en carton"
|
||||
cardboard-box2: "Boîte en carton 2"
|
||||
cardboard-box3: "Boîte en carton 3"
|
||||
book: "Livre"
|
||||
book2: "Livre 2"
|
||||
piano: "Piano"
|
||||
facial-tissue: "Mouchoirs en papier"
|
||||
server: "Serveurs"
|
||||
moon: "Lune"
|
||||
corkboard: "Tableau en liège"
|
||||
mousepad: "Tapis de souris"
|
||||
monitor: "Écran de contrôle"
|
||||
keyboard: "Clavier"
|
||||
carpet-stripe: "Tapis (zébré)"
|
||||
mat: "Tapis"
|
||||
color-box: "Étagère"
|
||||
wall-clock: "Horloge murale"
|
||||
photoframe: "Cadre photo"
|
||||
cube: "Cube"
|
||||
tv: "Téléviseur"
|
||||
pinguin: "Pingouin"
|
||||
rubik-cube: "Cube de Rubik"
|
||||
poster-h: "Affiche (horizontale)"
|
||||
poster-v: "Affiche (verticale)"
|
||||
sofa: "Canapé"
|
||||
spiral: "Escaliers en spirale"
|
||||
bin: "Corbeille"
|
||||
cup-noodle: "Bol de nouilles"
|
||||
holo-display: "Affichage holographique"
|
||||
energy-drink: "Boisson énergétique"
|
||||
_pages:
|
||||
newPage: "Créer une page"
|
||||
editPage: "Modifier une page"
|
||||
readPage: "Voir la source"
|
||||
page-created: "Page a été créée !"
|
||||
page-updated: "A mis à jour la page"
|
||||
name-already-exists: "Une page portant le même nom existe déjà"
|
||||
title-invalid-name: "L’URL de la page spécifiée n’est pas valide"
|
||||
text-invalid-name: "Assurez-vous qu'il n'est pas vide"
|
||||
created: "La page a été créée !"
|
||||
updated: "La page a été mise à jour !"
|
||||
deleted: "La page a bien été supprimée"
|
||||
nameAlreadyExists: "La URL de page spécifiée existe déjà"
|
||||
invalidNameTitle: "La URL de la page spécifiée n’est pas valide"
|
||||
invalidNameText: "Assurez-vous qu'il n'est pas vide"
|
||||
editThisPage: "Éditer cette page"
|
||||
viewSource: "Afficher la source"
|
||||
viewPage: "Afficher la page"
|
||||
like: "Favori"
|
||||
unlike: "Je n’favoris pas"
|
||||
liked-pages: "Pages favoris"
|
||||
my-pages: "Mes pages"
|
||||
my: "Mes pages"
|
||||
liked: "Pages favoris"
|
||||
inspector: "Inspecteur"
|
||||
content: "Bloc de page"
|
||||
variables: "Variables"
|
||||
variables-info: "Vous pouvez créer une page dynamique à l'aide de variables. En tapant le <b>{nom de variable}</b> dans le texte, vous pouvez y incorporer la valeur de la variable. Par exemple, si dans le texte <b>Bonjour {chose} monde!</b> la valeur de la variable (chose) est <b>ai</b>, le texte devient est <b>Bonjour ai monde!</b>."
|
||||
variables-info2: "L'évaluation des variables (le calcul des valeurs) se fait de haut en bas, donc l'variable ne peut pas se référer à une autre qui est en dessous. Par exemple, lorsque les variables <b>A、B、C</b> sont définies, <b>C</b> peut faire référence à <b>A</b> ou <b>B</b>, mais <b>A</b> ne peut pas faire référence à <b>B</b> ou <b>C</b>."
|
||||
variables-info3: "Pour recevoir une entrée utilisateur, ajoutez un bloc \"Entrée\" sur la page et définissez le nom des variables que vous souhaitez stocker dans le champ \"Nom de la variable\" (les variables seront créées automatiquement). Les actions seront exécutées en fonction de l'entrée utilisateur de ces variables."
|
||||
variables-info4: "Les fonctions vous permettent d'organiser le processus de calcul des valeurs sous une forme réutilisable. Pour créer une fonction, créez une variable de type \"fonction\". Une fonction peut avoir un slot (argument) et sa valeur peut être utilisée comme variable dans la fonction. Il existe également une fonction qui prend une fonction comme argument dans la norme AiScript (appelée fonction d'ordre supérieur). En plus des fonctions prédéfinies, elles peuvent être définies instantanément dans ces emplacements de fonction d'ordre supérieur."
|
||||
more-details: "Description"
|
||||
title: "Titre"
|
||||
url: "URL de page"
|
||||
summary: "Résumé de page"
|
||||
alignCenter: "Centrée"
|
||||
hide-title-when-pinned: "Masquer le titre de la page lorsque celle-ci est épinglée au profil"
|
||||
hideTitleWhenPinned: "Masquer le titre de la page lorsque celle-ci est épinglée au profil"
|
||||
font: "Police de caractères"
|
||||
fontSerif: "Serif"
|
||||
fontSansSerif: "Sans Serif"
|
||||
set-eye-catching-image: "Définir une image attirante"
|
||||
remove-eye-catching-image: "Supprimer une image attirante"
|
||||
eyeCatchingImageSet: "Définir une image attirante"
|
||||
eyeCatchingImageRemove: "Supprimer une image attirante"
|
||||
chooseBlock: "Ajouter un bloc"
|
||||
selectType: "Choisir un type"
|
||||
enterVariableName: "Veuillez entrer un nom de variable"
|
||||
the-variable-name-is-already-used: "Cette variable est déjà utilisée"
|
||||
content-blocks: "Contenu"
|
||||
input-blocks: "Entrée"
|
||||
special-blocks: "Spécial"
|
||||
post-from-post-form: "Publier ce contenu"
|
||||
posted-from-post-form: "Publié !"
|
||||
variableNameIsAlreadyUsed: "Cette variable est déjà utilisée"
|
||||
contentBlocks: "Contenu"
|
||||
inputBlocks: "Entrée"
|
||||
specialBlocks: "Spécial"
|
||||
blocks:
|
||||
text: "Texte"
|
||||
textarea: "Zone de texte"
|
||||
@ -702,6 +825,8 @@ _pages:
|
||||
post: "Formulaire à publier"
|
||||
_post:
|
||||
text: "Contenu"
|
||||
attachCanvasImage: "Publier avec Toile comme image"
|
||||
canvasId: "Toile ID"
|
||||
textInput: "Entrée de textuelle"
|
||||
_textInput:
|
||||
name: "Nom de la variable"
|
||||
@ -717,6 +842,11 @@ _pages:
|
||||
name: "Nom de la variable"
|
||||
text: "Titre"
|
||||
default: "Valeur par défaut"
|
||||
canvas: "Toile"
|
||||
_canvas:
|
||||
id: "Toile ID"
|
||||
width: "Largeur"
|
||||
height: "Hauteur"
|
||||
switch: "Basculer"
|
||||
_switch:
|
||||
name: "Nom de la variable"
|
||||
@ -742,6 +872,9 @@ _pages:
|
||||
message: "Message à afficher lorsque appuyé"
|
||||
variable: "Variable à envoyer"
|
||||
no-variable: "Rien"
|
||||
callAiScript: "Appeler AiScript"
|
||||
_callAiScript:
|
||||
functionName: "Nom de la fonction"
|
||||
radioButton: "Choix"
|
||||
_radioButton:
|
||||
name: "Nom de la variable"
|
||||
@ -902,6 +1035,7 @@ _pages:
|
||||
_splitStrByLine:
|
||||
arg1: "Texte"
|
||||
ref: "Variables"
|
||||
aiScriptVar: "Variable d'AiScript"
|
||||
fn: "Fonction"
|
||||
_fn:
|
||||
slots: "Slots"
|
||||
|
@ -16,7 +16,7 @@ const merge = (...args) => args.reduce((a, c) => ({
|
||||
const languages = [
|
||||
//'cs-CZ',
|
||||
//'da-DK',
|
||||
//'de-DE',
|
||||
'de-DE',
|
||||
'en-US',
|
||||
'es-ES',
|
||||
'fr-FR',
|
||||
@ -26,7 +26,7 @@ const languages = [
|
||||
//'nl-NL',
|
||||
//'pl-PL',
|
||||
'zh-CN',
|
||||
//'zh-TW',
|
||||
'zh-TW',
|
||||
];
|
||||
|
||||
const primaries = {
|
||||
|
@ -107,6 +107,7 @@ customEmojis: "カスタム絵文字"
|
||||
emojiName: "絵文字名"
|
||||
emojiUrl: "絵文字画像URL"
|
||||
addEmoji: "絵文字を追加"
|
||||
settingGuide: "おすすめ設定"
|
||||
cacheRemoteFiles: "リモートのファイルをキャッシュする"
|
||||
cacheRemoteFilesDescription: "この設定を無効にすると、リモートファイルをキャッシュせず直リンクするようになります。サーバーのストレージを節約できますが、サムネイルが生成されないので通信量が増加します。"
|
||||
flagAsBot: "Botとして設定"
|
||||
@ -239,6 +240,8 @@ drive: "ドライブ"
|
||||
fileName: "ファイル名"
|
||||
selectFile: "ファイルを選択"
|
||||
selectFiles: "ファイルを選択"
|
||||
selectFolder: "フォルダーを選択"
|
||||
selectFolders: "フォルダーを選択"
|
||||
renameFile: "ファイル名を変更"
|
||||
folderName: "フォルダー名"
|
||||
createFolder: "フォルダーを作成"
|
||||
@ -265,6 +268,7 @@ watch: "ウォッチ"
|
||||
unwatch: "ウォッチ解除"
|
||||
accept: "許可"
|
||||
reject: "拒否"
|
||||
normal: "正常"
|
||||
instanceName: "インスタンス名"
|
||||
instanceDescription: "インスタンスの紹介"
|
||||
maintainerName: "管理者の名前"
|
||||
@ -296,10 +300,15 @@ bannerUrl: "バナー画像のURL"
|
||||
basicInfo: "基本情報"
|
||||
pinnedUsers: "ピン留めユーザー"
|
||||
pinnedUsersDescription: "「みつける」ページなどにピン留めしたいユーザーを改行で区切って記述します。"
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "hCaptchaを有効にする"
|
||||
hcaptchaSiteKey: "サイトキー"
|
||||
hcaptchaSecretKey: "シークレットキー"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "reCAPTCHAを有効にする"
|
||||
recaptchaSiteKey: "サイトキー"
|
||||
recaptchaSecretKey: "シークレットキー"
|
||||
avoidMultiCaptchaConfirm: "複数のCaptchaを使用すると干渉を起こす可能性があります。他のCaptchaを無効にしますか?キャンセルして複数のCaptchaを有効化したままにすることも可能です。"
|
||||
antennas: "アンテナ"
|
||||
manageAntennas: "アンテナの管理"
|
||||
name: "名前"
|
||||
@ -319,6 +328,7 @@ notesAndReplies: "投稿と返信"
|
||||
withFiles: "ファイル付き"
|
||||
silence: "サイレンス"
|
||||
silenceConfirm: "サイレンスしますか?"
|
||||
unsilence: "サイレンス解除"
|
||||
unsilenceConfirm: "サイレンス解除しますか?"
|
||||
popularUsers: "人気のユーザー"
|
||||
recentlyUpdatedUsers: "最近投稿したユーザー"
|
||||
@ -350,8 +360,6 @@ unregister: "登録を解除"
|
||||
passwordLessLogin: "パスワード無しログイン"
|
||||
resetPassword: "パスワードをリセット"
|
||||
newPasswordIs: "新しいパスワードは「{password}」です"
|
||||
post: "投稿"
|
||||
posted: "投稿しました"
|
||||
autoReloadWhenDisconnected: "サーバー切断時に自動リロード"
|
||||
autoNoteWatch: "ノートの自動ウォッチ"
|
||||
autoNoteWatchDescription: "あなたがリアクションしたり返信したりした他のユーザーのノートに関する通知を受け取るようにします。"
|
||||
@ -406,7 +414,7 @@ passwordMatched: "一致しました"
|
||||
passwordNotMatched: "一致していません"
|
||||
signinWith: "{x}でログイン"
|
||||
signinFailed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
|
||||
tapSecurityKey: "セキュリティーキーにタッチ"
|
||||
tapSecurityKey: "セキュリティキーにタッチ"
|
||||
or: "もしくは"
|
||||
uiLanguage: "UIの表示言語"
|
||||
groupInvited: "グループに招待されました"
|
||||
@ -454,6 +462,8 @@ objectStorageRegion: "Region"
|
||||
objectStorageRegionDesc: "'xx-east-1'のようなregionを指定してください。使用サービスにregionの概念がない場合は、空または'us-east-1'にしてください。"
|
||||
objectStorageUseSSL: "SSLを使用する"
|
||||
objectStorageUseSSLDesc: "API接続にhttpsを使用しない場合はオフにしてください"
|
||||
objectStorageUseProxy: "Proxyを利用する"
|
||||
objectStorageUseProxyDesc: "API接続にproxyを利用しない場合はオフにしてください"
|
||||
serverLogs: "サーバーログ"
|
||||
deleteAll: "全て削除"
|
||||
showFixedPostForm: "タイムライン上部に投稿フォームを表示する"
|
||||
@ -466,6 +476,45 @@ details: "詳細"
|
||||
chooseEmoji: "絵文字を選択"
|
||||
unableToProcess: "操作を完了できません"
|
||||
recentUsed: "最近使用"
|
||||
install: "インストール"
|
||||
uninstall: "アンインストール"
|
||||
installedApps: "インストールされたアプリ"
|
||||
nothing: "ありません"
|
||||
installedDate: "インストール日時"
|
||||
lastUsedDate: "最終使用日時"
|
||||
state: "状態"
|
||||
sort: "ソート"
|
||||
ascendingOrder: "昇順"
|
||||
descendingOrder: "降順"
|
||||
scratchpad: "スクラッチパッド"
|
||||
scratchpadDescription: "スクラッチパッドは、AiScriptの実験環境を提供します。Misskeyと対話するコードの記述、実行、結果の確認ができます。"
|
||||
output: "出力"
|
||||
script: "スクリプト"
|
||||
disablePagesScript: "Pagesのスクリプトを無効にする"
|
||||
updateRemoteUser: "リモートユーザー情報の更新"
|
||||
deleteAllFiles: "すべてのファイルを削除"
|
||||
deleteAllFilesConfirm: "すべてのファイルを削除しますか?"
|
||||
removeAllFollowing: "フォローを全解除"
|
||||
removeAllFollowingDescription: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
|
||||
userSuspended: "このユーザーは凍結されています。"
|
||||
userSilenced: "このユーザーはサイレンスされています。"
|
||||
sidebar: "サイドバー"
|
||||
divider: "分割線"
|
||||
addItem: "項目を追加"
|
||||
rooms: "ルーム"
|
||||
relays: "リレー"
|
||||
addRelay: "リレーの追加"
|
||||
inboxUrl: "inboxのURL"
|
||||
addedRelays: "追加済みのリレー"
|
||||
|
||||
_theme:
|
||||
explore: "テーマを探す"
|
||||
install: "テーマのインストール"
|
||||
manage: "テーマの管理"
|
||||
code: "テーマコード"
|
||||
installed: "{name}をインストールしました"
|
||||
alreadyInstalled: "そのテーマは既にインストールされています"
|
||||
invalid: "テーマの形式が間違っています"
|
||||
|
||||
_sfx:
|
||||
note: "ノート"
|
||||
@ -557,7 +606,11 @@ _permissions:
|
||||
|
||||
_auth:
|
||||
shareAccess: "「{name}」がアカウントにアクセスすることを許可しますか?"
|
||||
shareAccessAsk: "アカウントへのアクセスを許可しますか?"
|
||||
permissionAsk: "このアプリは次の権限を要求しています"
|
||||
pleaseGoBack: "アプリケーションに戻ってやっていってください"
|
||||
callback: "アプリケーションに戻っています"
|
||||
denied: "アクセスを拒否しました"
|
||||
|
||||
_antennaSources:
|
||||
all: "全てのノート"
|
||||
@ -672,15 +725,15 @@ _charts:
|
||||
_instanceCharts:
|
||||
requests: "リクエスト"
|
||||
users: "ユーザーの増減"
|
||||
usersTotal: "ユーザーの積算"
|
||||
usersTotal: "ユーザーの累積"
|
||||
notes: "ノートの増減"
|
||||
notesTotal: "ノートの積算"
|
||||
notesTotal: "ノートの累積"
|
||||
ff: "フォロー/フォロワーの増減"
|
||||
ffTotal: "フォロー/フォロワーの積算"
|
||||
ffTotal: "フォロー/フォロワーの累積"
|
||||
cacheSize: "キャッシュサイズの増減"
|
||||
cacheSizeTotal: "キャッシュサイズの積算"
|
||||
cacheSizeTotal: "キャッシュサイズの累積"
|
||||
files: "ファイル数の増減"
|
||||
filesTotal: "ファイル数の積算"
|
||||
filesTotal: "ファイル数の累積"
|
||||
|
||||
_timelines:
|
||||
home: "ホーム"
|
||||
@ -688,6 +741,67 @@ _timelines:
|
||||
social: "ソーシャル"
|
||||
global: "グローバル"
|
||||
|
||||
_rooms:
|
||||
roomOf: "{user}のルーム"
|
||||
addFurniture: "家具を置く"
|
||||
translate: "移動"
|
||||
rotate: "回転"
|
||||
exit: "戻る"
|
||||
remove: "しまう"
|
||||
clear: "片付け"
|
||||
clearConfirm: "全ての家具をしまいますか?"
|
||||
leaveConfirm: "未保存の変更があります、移動しますか?"
|
||||
chooseImage: "画像を選択"
|
||||
roomType: "部屋のタイプ"
|
||||
carpetColor: "床の色"
|
||||
_roomType:
|
||||
default: "デフォルト"
|
||||
washitsu: "和室"
|
||||
_furnitures:
|
||||
milk: "牛乳パック"
|
||||
bed: "ベッド"
|
||||
low-table: "ローテーブル"
|
||||
desk: "デスク"
|
||||
chair: "チェア"
|
||||
chair2: "チェア2"
|
||||
fan: "換気扇"
|
||||
pc: "パソコン"
|
||||
plant: "観葉植物"
|
||||
plant2: "観葉植物2"
|
||||
eraser: "消しゴム"
|
||||
pencil: "鉛筆"
|
||||
pudding: "プリン"
|
||||
cardboard-box: "段ボール箱"
|
||||
cardboard-box2: "段ボール箱2"
|
||||
cardboard-box3: "段ボール箱3"
|
||||
book: "本"
|
||||
book2: "本2"
|
||||
piano: "ピアノ"
|
||||
facial-tissue: "ティッシュボックス"
|
||||
server: "サーバー"
|
||||
moon: "月"
|
||||
corkboard: "コルクボード"
|
||||
mousepad: "マウスパッド"
|
||||
monitor: "モニター"
|
||||
keyboard: "キーボード"
|
||||
carpet-stripe: "カーペット(縞)"
|
||||
mat: "マット"
|
||||
color-box: "カラーボックス"
|
||||
wall-clock: "壁掛け時計"
|
||||
photoframe: "額縁"
|
||||
cube: "キューブ"
|
||||
tv: "テレビ"
|
||||
pinguin: "ピンギン"
|
||||
rubik-cube: "ルービックキューブ"
|
||||
poster-h: "ポスター(横長)"
|
||||
poster-v: "ポスター(縦長)"
|
||||
sofa: "ソファ"
|
||||
spiral: "螺旋階段"
|
||||
bin: "ゴミ箱"
|
||||
cup-noodle: "カップ麺"
|
||||
holo-display: "ホログラフィックディスプレイ"
|
||||
energy-drink: "エナジードリンク"
|
||||
|
||||
_pages:
|
||||
newPage: "ページの作成"
|
||||
editPage: "ページの編集"
|
||||
@ -739,6 +853,8 @@ _pages:
|
||||
post: "投稿フォーム"
|
||||
_post:
|
||||
text: "内容"
|
||||
attachCanvasImage: "キャンバスの画像を添付する"
|
||||
canvasId: "キャンバスID"
|
||||
|
||||
textInput: "テキスト入力"
|
||||
_textInput:
|
||||
@ -758,6 +874,12 @@ _pages:
|
||||
text: "タイトル"
|
||||
default: "デフォルト値"
|
||||
|
||||
canvas: "キャンバス"
|
||||
_canvas:
|
||||
id: "キャンバスID"
|
||||
width: "幅"
|
||||
height: "高さ"
|
||||
|
||||
switch: "スイッチ"
|
||||
_switch:
|
||||
name: "変数名"
|
||||
@ -785,6 +907,9 @@ _pages:
|
||||
message: "押したときに表示するメッセージ"
|
||||
variable: "送信する変数"
|
||||
no-variable: "なし"
|
||||
callAiScript: "AiScript呼び出し"
|
||||
_callAiScript:
|
||||
functionName: "関数名"
|
||||
|
||||
radioButton: "選択肢"
|
||||
_radioButton:
|
||||
@ -947,6 +1072,7 @@ _pages:
|
||||
_splitStrByLine:
|
||||
arg1: "テキスト"
|
||||
ref: "変数"
|
||||
aiScriptVar: "AiScript変数"
|
||||
fn: "関数"
|
||||
_fn:
|
||||
slots: "スロット"
|
||||
@ -968,3 +1094,8 @@ _pages:
|
||||
enviromentVariables: "環境変数"
|
||||
pageVariables: "ページ要素"
|
||||
argVariables: "入力スロット"
|
||||
|
||||
_relayStatus:
|
||||
requesting: "承認待ち"
|
||||
accepted: "承認済み"
|
||||
rejected: "拒否済み"
|
||||
|
@ -35,9 +35,14 @@ unpin: "ピン留めやめる"
|
||||
copyContent: "内容をコピー"
|
||||
copyLink: "リンクをコピー"
|
||||
delete: "ほかす"
|
||||
deleteAndEdit: "ほかして直す"
|
||||
deleteAndEditConfirm: "このノートをほかしてもっかい直す?このノートへのリアクション、Remote、返信も全部消えんで"
|
||||
addToList: "リストに入れたる"
|
||||
reply: "返す"
|
||||
loadMore: "もっとあるやろ!"
|
||||
youGotNewFollower: "フォローされたで"
|
||||
receiveFollowRequest: "フォローリクエストされたで"
|
||||
followRequestAccepted: "フォローが承認されたで"
|
||||
mentions: "あんた宛て"
|
||||
directNotes: "ダイレクト投稿"
|
||||
import: "インポート"
|
||||
@ -62,7 +67,6 @@ clickToShow: "押してみ、見せたるわ"
|
||||
sensitive: "見たらあかんで"
|
||||
add: "増やす"
|
||||
reaction: "リアクション"
|
||||
renameFile: "ファイル名をいらう"
|
||||
attachCancel: "くっつけるのやめよか"
|
||||
markAsSensitive: "ちょっと見せられへんわ"
|
||||
unmarkAsSensitive: "別にええんじゃね?"
|
||||
@ -102,6 +106,7 @@ all: "みな"
|
||||
retypedNotMatch: "そやないねん。"
|
||||
remove: "ほかす"
|
||||
noMoreHistory: "これより過去の履歴はあらへんで"
|
||||
renameFile: "ファイル名をいらう"
|
||||
nsfw: "見たらあかんで"
|
||||
userList: "リスト"
|
||||
about: "情報"
|
||||
|
@ -35,6 +35,8 @@ unpin: "프로필에서 고정 해제"
|
||||
copyContent: "내용 복사"
|
||||
copyLink: "링크 복사"
|
||||
delete: "삭제"
|
||||
deleteAndEdit: "삭제 후 편집"
|
||||
deleteAndEditConfirm: "이 노트를 삭제한 뒤 다시 편집하시겠습니까? 이 노트에 대한 리액션, 리노트, 답글 또한 모두 삭제됩니다."
|
||||
addToList: "리스트에 추가"
|
||||
sendMessage: "메시지 보내기"
|
||||
copyUsername: "유저명 복사"
|
||||
@ -86,7 +88,6 @@ add: "추가"
|
||||
reaction: "리액션"
|
||||
reactionSettingDescription: "리액션 선택 상자에 표시할 리액션을 설정합니다."
|
||||
rememberNoteVisibility: "공개 범위를 기억하기"
|
||||
renameFile: "파일 이름 변경"
|
||||
attachCancel: "첨부 취소"
|
||||
markAsSensitive: "열람주의로 설정"
|
||||
unmarkAsSensitive: "열람주의 해제"
|
||||
@ -106,6 +107,7 @@ customEmojis: "커스텀 이모지"
|
||||
emojiName: "이모지 이름"
|
||||
emojiUrl: "이모지 URL"
|
||||
addEmoji: "이모지 추가"
|
||||
settingGuide: "추천 설정"
|
||||
cacheRemoteFiles: "리모트 파일을 캐시"
|
||||
cacheRemoteFilesDescription: "이 설정을 해지하면 리모트 파일을 캐시하지 않고 해당 파일을 직접 링크하게 됩니다. 그에 따라 서버의 저장 공간을 절약할 수 있지만, 썸네일이 생성되지 않기 때문에 통신량이 증가합니다."
|
||||
flagAsBot: "나는 봇입니다"
|
||||
@ -116,6 +118,7 @@ loginFailed: "로그인에 실패했습니다"
|
||||
showOnRemote: "리모트에서 보기"
|
||||
general: "일반"
|
||||
wallpaper: "배경"
|
||||
setWallpaper: "배경화면 설정"
|
||||
removeWallpaper: "배경 제거"
|
||||
searchWith: "검색: {q}"
|
||||
youHaveNoLists: "리스트가 없습니다"
|
||||
@ -204,10 +207,13 @@ messaging: "대화"
|
||||
upload: "업로드"
|
||||
fromDrive: "드라이브에서"
|
||||
fromUrl: "URL로부터"
|
||||
uploadFromUrl: "URL 업로드"
|
||||
uploadFromUrlDescription: "업로드하려는 파일의 URL"
|
||||
uploadFromUrlRequested: "업로드를 요청했습니다"
|
||||
uploadFromUrlMayTakeTime: "업로드가 완료될 때까지 시간이 소요될 수 있습니다."
|
||||
explore: "발견하기"
|
||||
games: "Misskey Games"
|
||||
messageRead: "읽음"
|
||||
recentUsedEmojis: "최근에 사용한 이모지"
|
||||
noMoreHistory: "이것보다 과거의 기록이 없습니다"
|
||||
startMessaging: "대화 시작하기"
|
||||
nUsersRead: "{n}명이 읽음"
|
||||
@ -223,17 +229,32 @@ yearsOld: "{age}세"
|
||||
registeredDate: "등록일"
|
||||
location: "장소"
|
||||
theme: "테마"
|
||||
themeForLightMode: "라이트 모드에서 사용할 테마"
|
||||
themeForDarkMode: "다크 모드에서 사용할 테마"
|
||||
light: "라이트"
|
||||
dark: "다크"
|
||||
lightThemes: "밝은 테마"
|
||||
darkThemes: "어두운 테마"
|
||||
syncDeviceDarkMode: "디바이스의 다크 모드 설정과 동기화"
|
||||
drive: "드라이브"
|
||||
fileName: "파일명"
|
||||
selectFile: "파일 선택"
|
||||
selectFiles: "파일 선택"
|
||||
renameFolder: "폴더 이름 바꾸기"
|
||||
selectFolder: "폴더 선택"
|
||||
selectFolders: "폴더 선택"
|
||||
renameFile: "파일 이름 변경"
|
||||
folderName: "폴더명"
|
||||
createFolder: "폴더 만들기"
|
||||
renameFolder: "폴더 이름 바꾸기"
|
||||
deleteFolder: "폴더 삭제"
|
||||
addFile: "파일 추가"
|
||||
emptyDrive: "드라이브가 비어 있습니다"
|
||||
emptyFolder: "폴더가 비어 있습니다"
|
||||
unableToDelete: "삭제할 수 없습니다"
|
||||
inputNewFileName: "바꿀 파일명을 입력해 주세요"
|
||||
inputNewFolderName: "바꿀 폴더명을 입력해 주세요"
|
||||
circularReferenceFolder: "지정한 폴더가 이동할 폴더의 하위 폴더입니다."
|
||||
hasChildFilesOrFolders: "이 폴더는 비어있지 않기 때문에 삭제할 수 없습니다."
|
||||
copyUrl: "URL 복사"
|
||||
rename: "이름 변경"
|
||||
avatar: "아바타"
|
||||
@ -247,6 +268,7 @@ watch: "지켜보기"
|
||||
unwatch: "지켜보기 해제"
|
||||
accept: "허가"
|
||||
reject: "거부"
|
||||
normal: "정상"
|
||||
instanceName: "인스턴스 이름"
|
||||
instanceDescription: "인스턴스 소개"
|
||||
maintainerName: "관리자 이름"
|
||||
@ -278,10 +300,15 @@ bannerUrl: "배너 이미지 URL"
|
||||
basicInfo: "기본 정보"
|
||||
pinnedUsers: "고정된 유저"
|
||||
pinnedUsersDescription: "\"발견하기\" 페이지 등에 고정하고 싶은 유저를 한 줄에 한 명씩 적습니다."
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "hCaptcha 활성화"
|
||||
hcaptchaSiteKey: "사이트 키"
|
||||
hcaptchaSecretKey: "시크릿 키"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "reCAPTCHA 활성화"
|
||||
recaptchaSiteKey: "사이트 키"
|
||||
recaptchaSecretKey: "시크릿 키"
|
||||
avoidMultiCaptchaConfirm: "여러 Captcha를 사용하는 경우 간섭이 발생할 가능성이 있습니다. 다른 Captcha를 비활성화하시겠습니까? 취소를 눌러 여러 Captcha를 활성화한 상태로 두는 것도 가능합니다."
|
||||
antennas: "안테나"
|
||||
manageAntennas: "안테나 관리"
|
||||
name: "이름"
|
||||
@ -301,6 +328,7 @@ notesAndReplies: "글과 답글"
|
||||
withFiles: "미디어"
|
||||
silence: "사일런스"
|
||||
silenceConfirm: "이 계정을 사일런스로 설정하시겠습니까?"
|
||||
unsilence: "사일런스 해제"
|
||||
unsilenceConfirm: "이 계정의 사일런스를 해제하시겠습니까?"
|
||||
popularUsers: "인기 유저"
|
||||
recentlyUpdatedUsers: "최근 활동한 유저"
|
||||
@ -332,8 +360,6 @@ unregister: "등록 해제"
|
||||
passwordLessLogin: "비밀번호 없이 로그인"
|
||||
resetPassword: "비밀번호 재설정"
|
||||
newPasswordIs: "새로운 비밀번호는 \"{password}\" 입니다"
|
||||
post: "작성"
|
||||
posted: "게시하였습니다"
|
||||
autoReloadWhenDisconnected: "서버와의 연결이 끊기면 자동 새로고침"
|
||||
autoNoteWatch: "노트를 자동으로 지켜보기"
|
||||
autoNoteWatchDescription: "리액션하거나 답글을 남긴 다른 유저의 노트에 대한 알림을 받습니다."
|
||||
@ -387,13 +413,14 @@ strongPassword: "강한 비밀번호"
|
||||
passwordMatched: "일치합니다"
|
||||
passwordNotMatched: "일치하지 않습니다"
|
||||
signinWith: "{x}로 로그인"
|
||||
signinFailed: "로그인할 수 없습니다. 사용자명과 비밀번호를 확인하여 주십시오."
|
||||
tapSecurityKey: "보안 키를 터치"
|
||||
or: "혹은"
|
||||
uiLanguage: "UI 표시 언어"
|
||||
groupInvited: "그룹에 초대되었습니다"
|
||||
aboutX: "{x}에 대하여"
|
||||
useOsNativeEmojis: "OS 기본 이모지를 사용"
|
||||
noGroups: "그룹이 없습니다"
|
||||
youHaveNoGroups: "그룹이 없습니다"
|
||||
joinOrCreateGroup: "다른 그룹의 초대를 받거나, 직접 새 그룹을 만들어 보세요."
|
||||
noHistory: "기록이 없습니다"
|
||||
disableAnimatedMfm: "움직임이 있는 MFM을 비활성화"
|
||||
@ -435,6 +462,8 @@ objectStorageRegion: "Region"
|
||||
objectStorageRegionDesc: "'xx-east-1'와 같이 region을 지정해주세요. 사용하는 서비스에 region 개념이 없는 경우, 비워 두거나 'us-east-1'으로 설정해 주세요."
|
||||
objectStorageUseSSL: "SSL 사용"
|
||||
objectStorageUseSSLDesc: "API 호출시 HTTPS 를 사용하지 않는 경우 OFF 로 설정해 주세요"
|
||||
objectStorageUseProxy: "연결에 프록시를 사용"
|
||||
objectStorageUseProxyDesc: "오브젝트 스토리지 API 호출시 프록시를 사용하지 않는 경우 OFF 로 설정해 주세요"
|
||||
serverLogs: "서버 로그"
|
||||
deleteAll: "모두 삭제"
|
||||
showFixedPostForm: "타임라인 상단에 글 작성란을 표시"
|
||||
@ -445,6 +474,42 @@ none: "없음"
|
||||
volume: "음량"
|
||||
details: "자세히"
|
||||
chooseEmoji: "이모지 선택"
|
||||
unableToProcess: "작업을 완료할 수 없습니다"
|
||||
recentUsed: "최근 사용"
|
||||
install: "설치"
|
||||
uninstall: "삭제"
|
||||
installedApps: "인증된 애플리케이션"
|
||||
nothing: "아무것도 없습니다"
|
||||
installedDate: "승인한 날짜"
|
||||
lastUsedDate: "마지막 사용"
|
||||
state: "상태"
|
||||
sort: "정렬"
|
||||
ascendingOrder: "오름차순"
|
||||
descendingOrder: "내림차순"
|
||||
scratchpad: "스크래치 패드"
|
||||
scratchpadDescription: "스크래치 패드는 AiScript 의 테스트 환경을 제공합니다. Misskey 와 상호 작용하는 코드를 작성, 실행 및 결과를 확인할 수 있습니다."
|
||||
output: "출력"
|
||||
script: "스크립트"
|
||||
disablePagesScript: "Pages 에서 AiScript 를 사용하지 않음"
|
||||
updateRemoteUser: "리모트 유저 정보 갱신"
|
||||
deleteAllFiles: "모든 파일 삭제"
|
||||
deleteAllFilesConfirm: "모든 파일을 삭제하시겠습니까?"
|
||||
removeAllFollowing: "모든 팔로잉 해제"
|
||||
removeAllFollowingDescription: "{host}(으)로부터 모든 팔로잉을 해제합니다. 해당 인스턴스가 더 이상 존재하지 않게 된 경우 등에 실행해 주세요."
|
||||
userSuspended: "이 계정은 정지된 상태입니다."
|
||||
userSilenced: "이 계정은 사일런스된 상태입니다."
|
||||
sidebar: "사이드바"
|
||||
divider: "분할선"
|
||||
addItem: "항목 추가"
|
||||
rooms: "방"
|
||||
_theme:
|
||||
explore: "테마 찾아보기"
|
||||
install: "테마 설치"
|
||||
manage: "테마 관리"
|
||||
code: "테마 코드"
|
||||
installed: "{name} 테마가 설치되었습니다"
|
||||
alreadyInstalled: "이미 설치된 테마입니다"
|
||||
invalid: "테마 형식이 올바르지 않습니다"
|
||||
_sfx:
|
||||
note: "새 노트"
|
||||
noteMy: "내 노트"
|
||||
@ -529,7 +594,11 @@ _permissions:
|
||||
"write:user-groups": "유저 그룹을 만들거나, 초대하거나, 이름을 변경하거나, 양도하거나, 삭제합니다"
|
||||
_auth:
|
||||
shareAccess: "\"{name}\" 이 계정에 접근하는 것을 허용하시겠습니까?"
|
||||
shareAccessAsk: "이 애플리케이션이 계정에 접근하는 것을 허용하시겠습니까?"
|
||||
permissionAsk: "이 앱은 다음의 권한을 요청합니다"
|
||||
pleaseGoBack: "앱으로 돌아가서 시도해 주세요"
|
||||
callback: "앱으로 돌아갑니다"
|
||||
denied: "접근이 거부되었습니다"
|
||||
_antennaSources:
|
||||
all: "모든 노트"
|
||||
homeTimeline: "팔로우중인 유저의 노트"
|
||||
@ -618,26 +687,26 @@ _exportOrImport:
|
||||
userLists: "리스트"
|
||||
_charts:
|
||||
federationInstancesIncDec: "연합 인스턴스 수 증감"
|
||||
federationInstancesTotal: "총 연합 인스턴스 수"
|
||||
federationInstancesTotal: "연합 인스턴스 수 합계"
|
||||
usersIncDec: "유저 수 증감"
|
||||
usersTotal: "유저 수 합계"
|
||||
activeUsers: "활성 유저 수"
|
||||
notesIncDec: "노트 수 증감"
|
||||
localNotesIncDec: "로컬 노트 수 증감"
|
||||
remoteNotesIncDec: "리모트 노트 수 증감"
|
||||
notesTotal: "총 노트 수"
|
||||
notesTotal: "노트 수 합계"
|
||||
filesIncDec: "파일 수 증감"
|
||||
filesTotal: "총 파일 수"
|
||||
filesTotal: "파일 수 합계"
|
||||
storageUsageIncDec: "스토리지 사용량 증감"
|
||||
storageUsageTotal: "총 스토리지 사용량"
|
||||
storageUsageTotal: "스토리지 사용량 합계"
|
||||
_instanceCharts:
|
||||
requests: "요청"
|
||||
users: "유저 수 증감"
|
||||
usersTotal: "누적 유저 수"
|
||||
notes: "노트 수 증감"
|
||||
notesTotal: "총 노트 수"
|
||||
notesTotal: "누적 노트 수"
|
||||
ff: "팔로잉/팔로워 증감"
|
||||
ffTotal: "팔로잉/팔로워 누적"
|
||||
ffTotal: "누적 팔로잉/팔로워 수"
|
||||
cacheSize: "캐시 용량 증감"
|
||||
cacheSizeTotal: "누적 캐시 용량"
|
||||
files: "파일 수 증감"
|
||||
@ -647,49 +716,103 @@ _timelines:
|
||||
local: "로컬"
|
||||
social: "소셜"
|
||||
global: "글로벌"
|
||||
_rooms:
|
||||
roomOf: "{user}의 방"
|
||||
addFurniture: "가구를 배치"
|
||||
translate: "이동"
|
||||
rotate: "회전"
|
||||
exit: "뒤로"
|
||||
remove: "치우기"
|
||||
clear: "모두 치우기"
|
||||
clearConfirm: "정말 방 안의 모든 가구를 치우시겠습니까?"
|
||||
leaveConfirm: "저장되지 않은 변경 사항이 있습니다. 정말 나가시겠습니까?"
|
||||
chooseImage: "이미지 선택"
|
||||
roomType: "방 스타일"
|
||||
carpetColor: "바닥 색상"
|
||||
_roomType:
|
||||
default: "기본값"
|
||||
washitsu: "일본식"
|
||||
_furnitures:
|
||||
milk: "우유 팩"
|
||||
bed: "침대"
|
||||
low-table: "낮은 테이블"
|
||||
desk: "책상"
|
||||
chair: "의자"
|
||||
chair2: "의자 2"
|
||||
fan: "환기구"
|
||||
pc: "컴퓨터"
|
||||
plant: "관엽식물"
|
||||
plant2: "관엽식물 2"
|
||||
eraser: "지우개"
|
||||
pencil: "연필"
|
||||
pudding: "푸딩"
|
||||
cardboard-box: "골판지 상자"
|
||||
cardboard-box2: "골판지 상자 2"
|
||||
cardboard-box3: "골판지 상자 3"
|
||||
book: "책"
|
||||
book2: "책 2"
|
||||
piano: "피아노"
|
||||
facial-tissue: "휴지 상자"
|
||||
server: "서버"
|
||||
moon: "달"
|
||||
corkboard: "게시판"
|
||||
mousepad: "마우스 패드"
|
||||
monitor: "모니터"
|
||||
keyboard: "키보드"
|
||||
carpet-stripe: "카페트 (줄무늬)"
|
||||
mat: "매트"
|
||||
color-box: "책장"
|
||||
wall-clock: "벽걸이 시계"
|
||||
photoframe: "액자"
|
||||
cube: "큐브"
|
||||
tv: "TV"
|
||||
pinguin: "펭귄"
|
||||
rubik-cube: "루빅스 큐브"
|
||||
poster-h: "포스터 (가로)"
|
||||
poster-v: "포스터 (세로)"
|
||||
sofa: "소파"
|
||||
spiral: "나선형 계단"
|
||||
bin: "휴지통"
|
||||
cup-noodle: "컵라면"
|
||||
holo-display: "홀로그램"
|
||||
energy-drink: "에너지 드링크"
|
||||
_pages:
|
||||
newPage: "페이지 만들기"
|
||||
editPage: "페이지 수정"
|
||||
readPage: "소스 표시 중"
|
||||
page-created: "페이지를 만들었습니다"
|
||||
page-updated: "페이지를 수정했습니다"
|
||||
name-already-exists: "지정한 페이지 URL이 이미 존재합니다"
|
||||
title-invalid-name: "유효하지 않은 페이지 URL입니다"
|
||||
text-invalid-name: "비어있지 않은지 확인해주세요"
|
||||
created: "페이지를 만들었습니다"
|
||||
updated: "페이지를 수정했습니다"
|
||||
deleted: "페이지가 삭제되었습니다"
|
||||
nameAlreadyExists: "지정한 페이지 URL이 이미 존재합니다"
|
||||
invalidNameTitle: "유효하지 않은 페이지 URL입니다"
|
||||
invalidNameText: "비어있지 않은지 확인해주세요"
|
||||
editThisPage: "이 페이지를 편집"
|
||||
viewSource: "소스 보기"
|
||||
viewPage: "페이지 보기"
|
||||
like: "좋아요"
|
||||
unlike: "좋아요 해제"
|
||||
liked-pages: "좋아요한 페이지"
|
||||
my-pages: "내 페이지"
|
||||
my: "내 페이지"
|
||||
liked: "좋아요한 페이지"
|
||||
inspector: "인스펙터"
|
||||
content: "페이지 블록"
|
||||
variables: "변수"
|
||||
variables-info: "변수를 사용하면 동적인 페이지를 만들 수 있습니다. 텍스트에 <b>{ 변수명 }</b>을 적으면 그 위치에 변수의 값을 집어넣습니다. 예를 들어, <b>Hello { thing } world!</b> 라는 텍스트가 있을 때, 변수(thing)의 값이 <b>ai</b>인 경우 텍스트는 <b>Hello ai world!</b>가 됩니다."
|
||||
variables-info2: "변수의 평가(값을 계산해내는 것)는 위에서부터 아래로 진행되므로 어떤 변수의 내부에서 자신보다 아래에 있는 변수를 참조할 수는 없습니다. 예를 들자면 위에서부터 <b>A, B, C</b>의 3개의 변수가 정의되어 있을 때, <b>C</b>의 내부에 <b>A</b>나 <b>B</b>를 참조할 수는 있지만, <b>A</b>의 내부에서 <b>B</b>나 <b>C</b>를 참조할 수는 없습니다."
|
||||
variables-info3: "사용자로부터 입력을 받으려면, 페이지에 \"사용자 입력\" 블록을 삽입하고 \"변수명\" 에 입력받은 값을 저장하고 싶은 변수명을 설정합니다 (변수는 자동으로 생성됩니다). 그 변수를 사용하여 사용자 입력에 따라 동작할 수 있습니다."
|
||||
variables-info4: "함수를 사용하면 반복되는 작업을 손쉽게 처리할 수 있습니다. 함수를 만드시려면 \"함수\" 타입의 변수를 만듭니다. 함수에서 슬롯(인수)를 받도록 설정하면, 함수를 사용할 때 슬롯에 입력된 값을 함수 안에서 변수로써 이용할 수 있게 됩니다. 또한, AiScript 표준에는 함수를 인수로 받는 함수(고차함수)도 존재합니다. 함수를 미리 정의하는 것 외에, 이와 같은 고차함수를 즉석으로 설정할 수 있습니다."
|
||||
more-details: "자세한 설명"
|
||||
title: "제목"
|
||||
url: "페이지 URL"
|
||||
summary: "페이지 요약"
|
||||
alignCenter: "가운데 정렬"
|
||||
hide-title-when-pinned: "프로필에 고정할 때 타이틀을 표시하지 않음"
|
||||
hideTitleWhenPinned: "프로필에 고정해놓은 경우 타이틀을 표시하지 않음"
|
||||
font: "폰트"
|
||||
fontSerif: "명조체"
|
||||
fontSansSerif: "고딕체"
|
||||
set-eye-catching-image: "아이캐치 이미지를 설정"
|
||||
remove-eye-catching-image: "아이캐치 이미지 삭제"
|
||||
eyeCatchingImageSet: "아이캐치 이미지를 설정"
|
||||
eyeCatchingImageRemove: "아이캐치 이미지를 삭제"
|
||||
chooseBlock: "블록 추가"
|
||||
selectType: "종류 선택"
|
||||
enterVariableName: "변수명을 지정해주세요"
|
||||
the-variable-name-is-already-used: "해당 변수명은 이미 사용중입니다"
|
||||
content-blocks: "컨텐츠"
|
||||
input-blocks: "입력"
|
||||
special-blocks: "특수"
|
||||
post-from-post-form: "이 내용을 올리기"
|
||||
posted-from-post-form: "게시하였습니다"
|
||||
variableNameIsAlreadyUsed: "해당 변수명은 이미 사용중입니다"
|
||||
contentBlocks: "콘텐츠"
|
||||
inputBlocks: "입력"
|
||||
specialBlocks: "특수"
|
||||
blocks:
|
||||
text: "텍스트"
|
||||
textarea: "텍스트 영역"
|
||||
@ -702,6 +825,8 @@ _pages:
|
||||
post: "글 입력란"
|
||||
_post:
|
||||
text: "내용"
|
||||
attachCanvasImage: "캔버스의 이미지와 함께 게시하기"
|
||||
canvasId: "캔버스 ID"
|
||||
textInput: "텍스트 입력"
|
||||
_textInput:
|
||||
name: "변수명"
|
||||
@ -717,6 +842,11 @@ _pages:
|
||||
name: "변수명"
|
||||
text: "제목"
|
||||
default: "기본값"
|
||||
canvas: "캔버스"
|
||||
_canvas:
|
||||
id: "캔버스 ID"
|
||||
width: "폭"
|
||||
height: "높이"
|
||||
switch: "스위치"
|
||||
_switch:
|
||||
name: "변수명"
|
||||
@ -742,6 +872,9 @@ _pages:
|
||||
message: "눌렀을 때 표시할 페이지"
|
||||
variable: "보낼 변수"
|
||||
no-variable: "없음"
|
||||
callAiScript: "AiScript 호출"
|
||||
_callAiScript:
|
||||
functionName: "함수명"
|
||||
radioButton: "선택지"
|
||||
_radioButton:
|
||||
name: "변수명"
|
||||
@ -902,6 +1035,7 @@ _pages:
|
||||
_splitStrByLine:
|
||||
arg1: "텍스트"
|
||||
ref: "변수"
|
||||
aiScriptVar: "AiScript 변수"
|
||||
fn: "함수"
|
||||
_fn:
|
||||
slots: "슬롯"
|
||||
|
@ -35,6 +35,8 @@ unpin: "取消置顶"
|
||||
copyContent: "复制内容"
|
||||
copyLink: "复制链接"
|
||||
delete: "删除"
|
||||
deleteAndEdit: "删除和编辑"
|
||||
deleteAndEditConfirm: "要删除此帖并再次编辑吗?对此帖的所有回应,转推和回复也将被删除。"
|
||||
addToList: "添加至列表"
|
||||
sendMessage: "发送"
|
||||
copyUsername: "复制用户名"
|
||||
@ -86,7 +88,6 @@ add: "添加"
|
||||
reaction: "反应"
|
||||
reactionSettingDescription: "选择您想要固定在反应选择器中的反应。"
|
||||
rememberNoteVisibility: "记录公开范围"
|
||||
renameFile: "重命名文件"
|
||||
attachCancel: "删除附件"
|
||||
markAsSensitive: "阅读注意"
|
||||
unmarkAsSensitive: "取消标记为敏感内容"
|
||||
@ -106,6 +107,7 @@ customEmojis: "自定义Emoji"
|
||||
emojiName: "Emoji 名称"
|
||||
emojiUrl: "emoji 地址"
|
||||
addEmoji: "添加Emoji"
|
||||
settingGuide: "推荐配置"
|
||||
cacheRemoteFiles: "远程文件缓存"
|
||||
cacheRemoteFilesDescription: "当禁用此设定时远程文件将直接从远程实例载入。禁用后会减小储存空间需求,但是会增加流量,因为缩略图不会被生成。"
|
||||
flagAsBot: "这个账户是Bot"
|
||||
@ -116,6 +118,7 @@ loginFailed: "登录失败"
|
||||
showOnRemote: "转到所在实例显示"
|
||||
general: "常规设置"
|
||||
wallpaper: "壁纸"
|
||||
setWallpaper: "设置壁纸"
|
||||
removeWallpaper: "移除壁纸"
|
||||
searchWith: "搜索:{q}"
|
||||
youHaveNoLists: "列表为空"
|
||||
@ -204,10 +207,13 @@ messaging: "聊天"
|
||||
upload: "上传"
|
||||
fromDrive: "从网盘中"
|
||||
fromUrl: "从 URL"
|
||||
uploadFromUrl: "从网址上传"
|
||||
uploadFromUrlDescription: "要上传的文件的URL"
|
||||
uploadFromUrlRequested: "请求上传"
|
||||
uploadFromUrlMayTakeTime: "上传可能需要一些时间完成。"
|
||||
explore: "发现"
|
||||
games: "Misskey游戏"
|
||||
messageRead: "已读"
|
||||
recentUsedEmojis: "最近使用的Emoji表情"
|
||||
noMoreHistory: "没有更多的历史记录"
|
||||
startMessaging: "开始聊天"
|
||||
nUsersRead: "{n}人已读"
|
||||
@ -223,17 +229,32 @@ yearsOld: "{age}岁"
|
||||
registeredDate: "注册于"
|
||||
location: "位置"
|
||||
theme: "主题"
|
||||
themeForLightMode: "在浅色模式下使用的主题"
|
||||
themeForDarkMode: "在深色模式下使用的主题"
|
||||
light: "浅色"
|
||||
dark: "深色"
|
||||
lightThemes: "亮色主题"
|
||||
darkThemes: "暗色主题"
|
||||
syncDeviceDarkMode: "将深色模式与系统设置同步"
|
||||
drive: "网盘"
|
||||
fileName: "文件名称"
|
||||
selectFile: "选择文件"
|
||||
selectFiles: "选择文件"
|
||||
renameFolder: "重命名文件夹"
|
||||
selectFolder: "选择文件夹"
|
||||
selectFolders: "选择多个文件夹"
|
||||
renameFile: "重命名文件"
|
||||
folderName: "文件夹名称"
|
||||
createFolder: "创建文件夹"
|
||||
renameFolder: "重命名文件夹"
|
||||
deleteFolder: "删除文件夹"
|
||||
addFile: "添加文件"
|
||||
emptyDrive: "驱动器为空"
|
||||
emptyFolder: "空文件夹"
|
||||
unableToDelete: "无法删除"
|
||||
inputNewFileName: "请输入新文件名"
|
||||
inputNewFolderName: "请输入新文件名"
|
||||
circularReferenceFolder: "目标文件夹是您要移动的文件夹的子文件夹。"
|
||||
hasChildFilesOrFolders: "此文件夹不为空,无法删除。"
|
||||
copyUrl: "复制链接"
|
||||
rename: "重命名"
|
||||
avatar: "头像"
|
||||
@ -247,6 +268,7 @@ watch: "关注"
|
||||
unwatch: "取消关注"
|
||||
accept: "允许"
|
||||
reject: "拒绝"
|
||||
normal: "正常"
|
||||
instanceName: "实例名称"
|
||||
instanceDescription: "实例介绍"
|
||||
maintainerName: "管理员名称"
|
||||
@ -278,10 +300,15 @@ bannerUrl: "Banner URL"
|
||||
basicInfo: "基本信息"
|
||||
pinnedUsers: "置顶用户"
|
||||
pinnedUsersDescription: "在「发现」页面中使用换行标记想要置顶的用户。"
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "启用 hCaptcha"
|
||||
hcaptchaSiteKey: "网站密钥"
|
||||
hcaptchaSecretKey: "密钥"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "启用 reCAPTCHA\n(请注意, 此功能在中国大陆不可用. 如果启用, 可能导致无法正常使用登录或注册等功能)"
|
||||
recaptchaSiteKey: "网站密钥"
|
||||
recaptchaSecretKey: "reCAPTCHA 密钥"
|
||||
avoidMultiCaptchaConfirm: "使用多种验证方式可能会造成干扰,您要禁用其他验证方式吗?您可以按“取消”按钮,仍然保持启用多种验证方式。"
|
||||
antennas: "天线"
|
||||
manageAntennas: "天线管理"
|
||||
name: "名称"
|
||||
@ -301,6 +328,7 @@ notesAndReplies: "帖子与回复"
|
||||
withFiles: "附件"
|
||||
silence: "禁言"
|
||||
silenceConfirm: "确认要禁言吗?"
|
||||
unsilence: "解除禁言"
|
||||
unsilenceConfirm: "要解除禁言吗?"
|
||||
popularUsers: "热门用户"
|
||||
recentlyUpdatedUsers: "最近投稿用户"
|
||||
@ -332,8 +360,6 @@ unregister: "删除账户"
|
||||
passwordLessLogin: "无密码登录"
|
||||
resetPassword: "重置密码"
|
||||
newPasswordIs: "新的密码是「{password}」"
|
||||
post: "投稿"
|
||||
posted: "已投稿"
|
||||
autoReloadWhenDisconnected: "断开连接时自动重新加载"
|
||||
autoNoteWatch: "自动关注帖子"
|
||||
autoNoteWatchDescription: "让您能够收到关于「反应」和回复其他用户的帖子的通知。"
|
||||
@ -387,14 +413,15 @@ strongPassword: "密码强度:强"
|
||||
passwordMatched: "密码一致"
|
||||
passwordNotMatched: "密码不一致"
|
||||
signinWith: "以{x}登录"
|
||||
tapSecurityKey: "点击安全密钥"
|
||||
signinFailed: "无法登录,请检查您的用户名和密码。"
|
||||
tapSecurityKey: "轻触硬件安全密钥"
|
||||
or: "或者"
|
||||
uiLanguage: "显示语言"
|
||||
groupInvited: "群组招待"
|
||||
aboutX: "关于 {x}"
|
||||
useOsNativeEmojis: "使用OS原生Emoji"
|
||||
noGroups: "没有组"
|
||||
joinOrCreateGroup: "加入或者创建群组"
|
||||
youHaveNoGroups: "没有群组"
|
||||
joinOrCreateGroup: "请加入一个现有的群组,或者创建新群组。"
|
||||
noHistory: "没有历史记录"
|
||||
disableAnimatedMfm: "禁用MFM动画"
|
||||
doing: "正在进行"
|
||||
@ -428,13 +455,15 @@ objectStorageBaseUrlDesc: "供参考的URL。如果使用CDN或Proxy,则其URL
|
||||
objectStorageBucket: "存储桶"
|
||||
objectStorageBucketDesc: "请指定使用的对象存储服务的存储桶名称。"
|
||||
objectStoragePrefix: "前缀"
|
||||
objectStoragePrefixDesc: "它将存储在此前缀的目录下。"
|
||||
objectStoragePrefixDesc: "文件将存储在此前缀的目录下。"
|
||||
objectStorageEndpoint: "端点"
|
||||
objectStorageEndpointDesc: "S3默认情况下为空,否则请为每个服务指定端点。 指定为“<host>”或“<host>:<port>”。"
|
||||
objectStorageRegion: "可用区"
|
||||
objectStorageRegionDesc: "指定一个可用区,例如“xx-east-1”。 如果您的对象存储服务没有可用区概念,请将其留空或填写“us-east-1”。"
|
||||
objectStorageUseSSL: "使用SSL"
|
||||
objectStorageUseSSLDesc: "如果不使用https进行API连接,请关闭。"
|
||||
objectStorageUseProxy: "使用代理"
|
||||
objectStorageUseProxyDesc: "如果您不使用代理进行API连接,请将其关闭。"
|
||||
serverLogs: "服务器日志"
|
||||
deleteAll: "删除全部"
|
||||
showFixedPostForm: "在时间线顶部显示帖子表单"
|
||||
@ -445,9 +474,45 @@ none: "空"
|
||||
volume: "音量"
|
||||
details: "详情"
|
||||
chooseEmoji: "选择表情符号"
|
||||
unableToProcess: "操作无法完成"
|
||||
recentUsed: "最近使用"
|
||||
install: "安装"
|
||||
uninstall: "卸载"
|
||||
installedApps: "已授权的应用"
|
||||
nothing: "没什么"
|
||||
installedDate: "授权日期"
|
||||
lastUsedDate: "最近使用"
|
||||
state: "状态"
|
||||
sort: "排序"
|
||||
ascendingOrder: "升序"
|
||||
descendingOrder: "降序"
|
||||
scratchpad: "暂存器"
|
||||
scratchpadDescription: "暂存器为AiScript提供了实验环境。您可以编写代码以与Misskey交互,运行它并查看结果。"
|
||||
output: "输出"
|
||||
script: "脚本"
|
||||
disablePagesScript: "禁用页面脚本"
|
||||
updateRemoteUser: "更新远程用户信息"
|
||||
deleteAllFiles: "删除所有文件"
|
||||
deleteAllFilesConfirm: "要删除所有文件吗?"
|
||||
removeAllFollowing: "取消所有关注"
|
||||
removeAllFollowingDescription: "取消{host}的所有关注者。当实例不存在时执行。"
|
||||
userSuspended: "该用户已被冻结。"
|
||||
userSilenced: "该用户已被禁言。"
|
||||
sidebar: "侧边栏"
|
||||
divider: "分割线"
|
||||
addItem: "添加项"
|
||||
rooms: "房间"
|
||||
_theme:
|
||||
explore: "寻找主题"
|
||||
install: "安装主题"
|
||||
manage: "主题管理"
|
||||
code: "主题代码"
|
||||
installed: "{name} 已安装"
|
||||
alreadyInstalled: "此主题已经安装"
|
||||
invalid: "主题格式错误"
|
||||
_sfx:
|
||||
note: "帖子"
|
||||
noteMy: "我的笔记"
|
||||
noteMy: "我的帖子"
|
||||
notification: "通知"
|
||||
chat: "聊天"
|
||||
chatBg: "聊天背景"
|
||||
@ -529,7 +594,11 @@ _permissions:
|
||||
"write:user-groups": "操作用户组"
|
||||
_auth:
|
||||
shareAccess: "您要授权允许“{name}”访问您的帐户吗?"
|
||||
shareAccessAsk: "您确定要授权此应用程序访问您的帐户吗?"
|
||||
permissionAsk: "这个应用程序需要以下权限"
|
||||
pleaseGoBack: "请返回到应用程序"
|
||||
callback: "回到应用程序"
|
||||
denied: "拒绝访问"
|
||||
_antennaSources:
|
||||
all: "所有帖子"
|
||||
homeTimeline: "已关注用户的帖子"
|
||||
@ -633,63 +702,117 @@ _charts:
|
||||
_instanceCharts:
|
||||
requests: "请求"
|
||||
users: "用户数量:增加/减少"
|
||||
usersTotal: "用户总数"
|
||||
usersTotal: "用户总计"
|
||||
notes: "帖子:增加/减少"
|
||||
notesTotal: "帖子:总数"
|
||||
notesTotal: "帖子总计"
|
||||
ff: "关注/被关注:数量变化"
|
||||
ffTotal: "关注/被关注:总数"
|
||||
ffTotal: "关注/被关注者总计"
|
||||
cacheSize: "缓存大小:增加/减少"
|
||||
cacheSizeTotal: "合计缓存大小"
|
||||
cacheSizeTotal: "缓存大小总计"
|
||||
files: "文件总数增减"
|
||||
filesTotal: "合计文件总数"
|
||||
filesTotal: "文件数总计"
|
||||
_timelines:
|
||||
home: "首页"
|
||||
local: "本地"
|
||||
social: "社交"
|
||||
global: "全局"
|
||||
_rooms:
|
||||
roomOf: "{user}的房间"
|
||||
addFurniture: "放置家具"
|
||||
translate: "移动"
|
||||
rotate: "旋转"
|
||||
exit: "返回"
|
||||
remove: "移除"
|
||||
clear: "清理"
|
||||
clearConfirm: "是否清除所有家具?"
|
||||
leaveConfirm: "有尚未保存的修改。是否离开?"
|
||||
chooseImage: "选择图片"
|
||||
roomType: "房间类型"
|
||||
carpetColor: "地板颜色"
|
||||
_roomType:
|
||||
default: "默认"
|
||||
washitsu: "和式房间"
|
||||
_furnitures:
|
||||
milk: "牛奶纸箱"
|
||||
bed: "床"
|
||||
low-table: "矮桌"
|
||||
desk: "书桌"
|
||||
chair: "椅子"
|
||||
chair2: "椅子2"
|
||||
fan: "换气扇"
|
||||
pc: "电脑"
|
||||
plant: "观叶植物"
|
||||
plant2: "观叶植物2"
|
||||
eraser: "橡皮擦"
|
||||
pencil: "铅笔"
|
||||
pudding: "布丁"
|
||||
cardboard-box: "纸箱"
|
||||
cardboard-box2: "纸箱2"
|
||||
cardboard-box3: "纸箱3"
|
||||
book: "书"
|
||||
book2: "书2"
|
||||
piano: "钢琴"
|
||||
facial-tissue: "纸巾盒"
|
||||
server: "服务器"
|
||||
moon: "月亮"
|
||||
corkboard: "软木板"
|
||||
mousepad: "鼠标垫"
|
||||
monitor: "显示器"
|
||||
keyboard: "键盘"
|
||||
carpet-stripe: "地毯(条纹)"
|
||||
mat: "垫子"
|
||||
color-box: "收纳柜"
|
||||
wall-clock: "挂钟"
|
||||
photoframe: "相框"
|
||||
cube: "立方体"
|
||||
tv: "电视"
|
||||
pinguin: "企鹅君"
|
||||
rubik-cube: "魔方"
|
||||
poster-h: "海报(横向)"
|
||||
poster-v: "海报(纵向)"
|
||||
sofa: "沙发"
|
||||
spiral: "螺旋楼梯"
|
||||
bin: "垃圾箱"
|
||||
cup-noodle: "杯面"
|
||||
holo-display: "全息显示器"
|
||||
energy-drink: "能量饮料"
|
||||
_pages:
|
||||
newPage: "创建页面"
|
||||
editPage: "编辑页面"
|
||||
readPage: "查看源"
|
||||
page-created: "页面已创建"
|
||||
page-updated: "页面已更新"
|
||||
name-already-exists: "该页面URL已存在"
|
||||
title-invalid-name: "无效的页面URL"
|
||||
text-invalid-name: "请确认该项不为空"
|
||||
created: "页面已创建"
|
||||
updated: "页面已更新"
|
||||
deleted: "该页面已被删除"
|
||||
nameAlreadyExists: "该页面URL已存在"
|
||||
invalidNameTitle: "无效的页面URL"
|
||||
invalidNameText: "请确认该项不为空"
|
||||
editThisPage: "编辑此页面"
|
||||
viewSource: "查看源代码"
|
||||
viewPage: "查看页面"
|
||||
like: "赞"
|
||||
unlike: "取消赞"
|
||||
liked-pages: "喜欢的页面"
|
||||
my-pages: "我的页面"
|
||||
my: "我的页面"
|
||||
liked: "喜欢的页面"
|
||||
inspector: "检查器"
|
||||
content: "页面内容"
|
||||
variables: "变量"
|
||||
variables-info: "您可以使用变量创建动态页面。在文本中通过<b>{变量名}</b>的写法来嵌入变量值。例如在文本<b>Hello { thing } world!</b>中,如果变量(thing)的值为<b>ai</b>,那么该文本会成为<b>Hello ai world!</b>。"
|
||||
variables-info2: "因为变量的计算(计算变量值)是从上到下执行的,所以不能在变量中引用下面的变量。例如从上到下依次定义了<b>A,B,C</b>3个变量,那么<b>C</b>中可以引用<b>A</b>或<b>B</b>,但是<b>A</b>无法引用<b>B</b>或<b>C</b>。"
|
||||
variables-info3: "为了接收来自用户的输入,页面上设有“用户输入”块,在“变量名称”中设置要在其中保存输入值的变量名(变量会自动创建)。您可以使用该变量执行操作以响应用户输入。"
|
||||
variables-info4: "通过使用函数,您可以将数值计算过程组合成可重用的形式。要创建函数,需要创建一个“函数”类型的变量。你可以将函数设定为槽函数(参数)的格式,槽函数的值可作为函数中的变量使用。另外,AiScript标准中还有一些函数会将函数作为参数(称为高阶函数)。\n除了已经预先定义的函数外,您也可以将它们设置为这些高阶函数的槽函数。"
|
||||
more-details: "详细说明"
|
||||
title: "标题"
|
||||
url: "页面URL"
|
||||
summary: "页面摘要"
|
||||
alignCenter: "居中"
|
||||
hide-title-when-pinned: "置顶时隐藏标题"
|
||||
hideTitleWhenPinned: "置顶时隐藏标题"
|
||||
font: "字体"
|
||||
fontSerif: "衬线字体"
|
||||
fontSansSerif: "无衬线字体"
|
||||
set-eye-catching-image: "设置封面图片"
|
||||
remove-eye-catching-image: "删除封面图片"
|
||||
eyeCatchingImageSet: "设置封面图片"
|
||||
eyeCatchingImageRemove: "删除封面图片"
|
||||
chooseBlock: "添加块"
|
||||
selectType: "选择类型"
|
||||
enterVariableName: "请输入变量名"
|
||||
the-variable-name-is-already-used: "变量名已使用"
|
||||
content-blocks: "内容"
|
||||
input-blocks: "输入"
|
||||
special-blocks: "特殊"
|
||||
post-from-post-form: "发布此内容"
|
||||
posted-from-post-form: "已发布"
|
||||
variableNameIsAlreadyUsed: "变量名已使用"
|
||||
contentBlocks: "内容"
|
||||
inputBlocks: "输入"
|
||||
specialBlocks: "特殊"
|
||||
blocks:
|
||||
text: "文本"
|
||||
textarea: "文本区域"
|
||||
@ -702,6 +825,8 @@ _pages:
|
||||
post: "投稿窗口"
|
||||
_post:
|
||||
text: "内容"
|
||||
attachCanvasImage: "附加画布图像"
|
||||
canvasId: "画布ID"
|
||||
textInput: "文本输入"
|
||||
_textInput:
|
||||
name: "变量名"
|
||||
@ -717,6 +842,11 @@ _pages:
|
||||
name: "变量名"
|
||||
text: "标题"
|
||||
default: "默认值"
|
||||
canvas: "画布"
|
||||
_canvas:
|
||||
id: "画布ID"
|
||||
width: "宽度"
|
||||
height: "高度"
|
||||
switch: "开关"
|
||||
_switch:
|
||||
name: "变量名"
|
||||
@ -742,6 +872,9 @@ _pages:
|
||||
message: "按下时显示的消息"
|
||||
variable: "发送的变量"
|
||||
no-variable: "空"
|
||||
callAiScript: "调用AiScript"
|
||||
_callAiScript:
|
||||
functionName: "函数名"
|
||||
radioButton: "选择项"
|
||||
_radioButton:
|
||||
name: "变量名"
|
||||
@ -902,6 +1035,7 @@ _pages:
|
||||
_splitStrByLine:
|
||||
arg1: "文本"
|
||||
ref: "变量"
|
||||
aiScriptVar: "AiScript变量"
|
||||
fn: "函数"
|
||||
_fn:
|
||||
slots: "槽函数"
|
||||
|
@ -82,7 +82,6 @@ sensitive: "敏感內容"
|
||||
add: "新增"
|
||||
reaction: "反應"
|
||||
rememberNoteVisibility: "記住筆記隱私設定"
|
||||
renameFile: "重新命名檔案"
|
||||
attachCancel: "移除附件"
|
||||
markAsSensitive: "標記為敏感內容"
|
||||
unmarkAsSensitive: "取消標記為敏感內容"
|
||||
@ -175,7 +174,6 @@ fromUrl: "從URL"
|
||||
explore: "探索"
|
||||
games: "Misskey 遊戲"
|
||||
messageRead: "已讀"
|
||||
recentUsedEmojis: "最近使用的表情符號"
|
||||
noMoreHistory: "沒有更多歷史紀錄"
|
||||
startMessaging: "開始傳送訊息"
|
||||
nUsersRead: "{n}人已讀"
|
||||
@ -193,8 +191,9 @@ darkThemes: "灰暗主題"
|
||||
drive: "雲端硬碟"
|
||||
selectFile: "選擇檔案"
|
||||
selectFiles: "選擇檔案"
|
||||
renameFolder: "重新命名資料夾"
|
||||
renameFile: "重新命名檔案"
|
||||
createFolder: "新增資料夾"
|
||||
renameFolder: "重新命名資料夾"
|
||||
deleteFolder: "刪除資料夾"
|
||||
addFile: "添加檔案"
|
||||
emptyDrive: "雲端硬碟為空"
|
||||
@ -236,6 +235,8 @@ iconUrl: "圖像URL"
|
||||
bannerUrl: "橫幅圖片URL"
|
||||
basicInfo: "基本資訊"
|
||||
pinnedUsers: "置頂用戶"
|
||||
hcaptchaSiteKey: "網站金鑰"
|
||||
hcaptchaSecretKey: "金鑰"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "啟用 reCAPTCHA"
|
||||
recaptchaSiteKey: "網站金鑰"
|
||||
@ -257,8 +258,6 @@ userList: "清單"
|
||||
passwordLessLogin: "設置無密碼登入"
|
||||
resetPassword: "重置密碼"
|
||||
newPasswordIs: "新密碼為「{password}」"
|
||||
post: "投稿"
|
||||
posted: "投稿完成"
|
||||
autoReloadWhenDisconnected: "和伺服器斷線時自動重新載入"
|
||||
autoNoteWatch: "自動關注筆記"
|
||||
autoNoteWatchDescription: "收到反應或回覆過的筆記的通知"
|
||||
@ -370,6 +369,9 @@ _exportOrImport:
|
||||
userLists: "清單"
|
||||
_timelines:
|
||||
home: "首頁"
|
||||
_rooms:
|
||||
_furnitures:
|
||||
monitor: "監視器"
|
||||
_pages:
|
||||
script:
|
||||
categories:
|
||||
|
36
migration/1585361548360-miauth.ts
Normal file
@ -0,0 +1,36 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class miauth1585361548360 implements MigrationInterface {
|
||||
name = 'miauth1585361548360'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD "lastUsedAt" TIMESTAMP WITH TIME ZONE DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD "session" character varying(128) DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD "name" character varying(128) DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD "description" character varying(512) DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD "iconUrl" character varying(512) DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD "permission" character varying(64) array NOT NULL DEFAULT '{}'::varchar[]`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD "fetched" boolean NOT NULL DEFAULT false`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" DROP NOT NULL`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" SET DEFAULT null`, undefined);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_bf3a053c07d9fb5d87317c56ee" ON "access_token" ("session") `, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560"`, undefined);
|
||||
await queryRunner.query(`DROP INDEX "IDX_bf3a053c07d9fb5d87317c56ee"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" DROP DEFAULT`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" SET NOT NULL`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "fetched"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "permission"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "iconUrl"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "description"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "name"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "session"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "lastUsedAt"`, undefined);
|
||||
}
|
||||
|
||||
}
|
48
migration/1585385921215-custom-notification.ts
Normal file
@ -0,0 +1,48 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class customNotification1585385921215 implements MigrationInterface {
|
||||
name = 'customNotification1585385921215'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD "customBody" character varying(2048)`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD "customHeader" character varying(256)`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD "customIcon" character varying(1024)`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD "appAccessTokenId" character varying(32)`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "notifierId" DROP NOT NULL`, undefined);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "notification"."notifierId" IS 'The ID of sender user of the Notification.'`, undefined);
|
||||
await queryRunner.query(`ALTER TYPE "public"."notification_type_enum" RENAME TO "notification_type_enum_old"`, undefined);
|
||||
await queryRunner.query(`CREATE TYPE "notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum" USING "type"::"text"::"notification_type_enum"`, undefined);
|
||||
await queryRunner.query(`DROP TYPE "notification_type_enum_old"`, undefined);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS 'The type of the Notification.'`, undefined);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_3b4e96eec8d36a8bbb9d02aa71" ON "notification" ("notifierId") `, undefined);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_33f33cc8ef29d805a97ff4628b" ON "notification" ("type") `, undefined);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_080ab397c379af09b9d2169e5b" ON "notification" ("isRead") `, undefined);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e22bf6bda77b6adc1fd9e75c8c" ON "notification" ("appAccessTokenId") `, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_e22bf6bda77b6adc1fd9e75c8c9" FOREIGN KEY ("appAccessTokenId") REFERENCES "access_token"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_e22bf6bda77b6adc1fd9e75c8c9"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710"`, undefined);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e22bf6bda77b6adc1fd9e75c8c"`, undefined);
|
||||
await queryRunner.query(`DROP INDEX "IDX_080ab397c379af09b9d2169e5b"`, undefined);
|
||||
await queryRunner.query(`DROP INDEX "IDX_33f33cc8ef29d805a97ff4628b"`, undefined);
|
||||
await queryRunner.query(`DROP INDEX "IDX_3b4e96eec8d36a8bbb9d02aa71"`, undefined);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS ''`, undefined);
|
||||
await queryRunner.query(`CREATE TYPE "notification_type_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited')`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum_old" USING "type"::"text"::"notification_type_enum_old"`, undefined);
|
||||
await queryRunner.query(`DROP TYPE "notification_type_enum"`, undefined);
|
||||
await queryRunner.query(`ALTER TYPE "notification_type_enum_old" RENAME TO "notification_type_enum"`, undefined);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "notification"."notifierId" IS ''`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "notifierId" SET NOT NULL`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "appAccessTokenId"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customIcon"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customHeader"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customBody"`, undefined);
|
||||
}
|
||||
|
||||
}
|
15
migration/1585772678853-ap-url.ts
Normal file
@ -0,0 +1,15 @@
|
||||
/* tslint:disable:quotemark class-name indent */
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class apUrl1585772678853 implements MigrationInterface {
|
||||
name = 'apUrl1585772678853'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "note" ADD "url" character varying(512)`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "url"`, undefined);
|
||||
}
|
||||
|
||||
}
|
14
migration/1586624197029-AddObjectStorageUseProxy.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from 'typeorm';
|
||||
|
||||
export class AddObjectStorageUseProxy1586624197029 implements MigrationInterface {
|
||||
name = 'AddObjectStorageUseProxy1586624197029'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageUseProxy" boolean NOT NULL DEFAULT true`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageUseProxy"`, undefined);
|
||||
}
|
||||
|
||||
}
|
12
migration/1586641139527-remote-reaction.ts
Normal file
@ -0,0 +1,12 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class remoteReaction1586641139527 implements MigrationInterface {
|
||||
name = 'remoteReaction1586641139527'
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(260)`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(130)`, undefined);
|
||||
}
|
||||
}
|
14
migration/1586708940386-pageAiScript.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class pageAiScript1586708940386 implements MigrationInterface {
|
||||
name = 'pageAiScript1586708940386'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "page" ADD "script" character varying(16384) NOT NULL DEFAULT ''`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "script"`, undefined);
|
||||
}
|
||||
|
||||
}
|
18
migration/1588044505511-hCaptcha.ts
Normal file
@ -0,0 +1,18 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class hCaptcha1588044505511 implements MigrationInterface {
|
||||
name = 'hCaptcha1588044505511'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "enableHcaptcha" boolean NOT NULL DEFAULT false`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "hcaptchaSiteKey" character varying(64)`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "hcaptchaSecretKey" character varying(64)`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "hcaptchaSecretKey"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "hcaptchaSiteKey"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableHcaptcha"`, undefined);
|
||||
}
|
||||
|
||||
}
|
18
migration/1589023282116-pubRelay.ts
Normal file
@ -0,0 +1,18 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class pubRelay1589023282116 implements MigrationInterface {
|
||||
name = 'pubRelay1589023282116'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE TYPE "relay_status_enum" AS ENUM('requesting', 'accepted', 'rejected')`, undefined);
|
||||
await queryRunner.query(`CREATE TABLE "relay" ("id" character varying(32) NOT NULL, "inbox" character varying(512) NOT NULL, "status" "relay_status_enum" NOT NULL, CONSTRAINT "PK_78ebc9cfddf4292633b7ba57aee" PRIMARY KEY ("id"))`, undefined);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0d9a1738f2cf7f3b1c3334dfab" ON "relay" ("inbox") `, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_0d9a1738f2cf7f3b1c3334dfab"`, undefined);
|
||||
await queryRunner.query(`DROP TABLE "relay"`, undefined);
|
||||
await queryRunner.query(`DROP TYPE "relay_status_enum"`, undefined);
|
||||
}
|
||||
|
||||
}
|
203
package.json
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "misskey",
|
||||
"author": "syuilo <syuilotan@yahoo.co.jp>",
|
||||
"version": "12.23.0",
|
||||
"version": "12.37.0",
|
||||
"codename": "indigo",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@ -11,52 +11,60 @@
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "node ./index.js",
|
||||
"start-product": "cross-env NODE_ENV=production node ./index.js",
|
||||
"init": "npm run migrate",
|
||||
"ormconfig": "node ./built/ormconfig.js",
|
||||
"migrate": "ts-node ./node_modules/typeorm/cli.js migration:run",
|
||||
"migrateandstart": "npm run migrate && npm run start",
|
||||
"build": "webpack && gulp build",
|
||||
"build-product": "cross-env NODE_ENV=production webpack && gulp build",
|
||||
"webpack": "webpack",
|
||||
"watch": "webpack --watch",
|
||||
"gulp": "gulp build",
|
||||
"clean": "gulp clean",
|
||||
"cleanall": "gulp cleanall",
|
||||
"lint": "tslint 'src/**/*.ts'",
|
||||
"test": "cross-env TS_NODE_FILES=true gulp test",
|
||||
"test": "cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_COMPILER_OPTIONS=\"{\\\"target\\\":\\\"es2017\\\",\\\"module\\\":\\\"commonjs\\\",\\\"typeRoots\\\":[\\\"node_modules/@types\\\",\\\"src/@types\\\"]}\" mocha",
|
||||
"format": "gulp format"
|
||||
},
|
||||
"resolutions": {
|
||||
"https-proxy-agent": "^3.0.0",
|
||||
"lodash": "^4.17.13"
|
||||
"chokidar": "^3.3.1",
|
||||
"constantinople": "^4.0.1",
|
||||
"core-js": "^3.6.5",
|
||||
"lodash": "^4.17.15",
|
||||
"mocha": "^7.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@elastic/elasticsearch": "7.6.0",
|
||||
"@fortawesome/fontawesome-svg-core": "1.2.27",
|
||||
"@fortawesome/free-brands-svg-icons": "5.12.1",
|
||||
"@fortawesome/free-regular-svg-icons": "5.12.1",
|
||||
"@fortawesome/free-solid-svg-icons": "5.12.1",
|
||||
"@babel/plugin-transform-runtime": "7.9.6",
|
||||
"@elastic/elasticsearch": "7.6.1",
|
||||
"@fortawesome/fontawesome-svg-core": "1.2.28",
|
||||
"@fortawesome/free-brands-svg-icons": "5.13.0",
|
||||
"@fortawesome/free-regular-svg-icons": "5.13.0",
|
||||
"@fortawesome/free-solid-svg-icons": "5.13.0",
|
||||
"@fortawesome/vue-fontawesome": "0.1.9",
|
||||
"@juggle/resize-observer": "3.0.2",
|
||||
"@juggle/resize-observer": "3.1.3",
|
||||
"@koa/cors": "3.0.0",
|
||||
"@koa/multer": "2.0.2",
|
||||
"@koa/router": "8.0.8",
|
||||
"@sinonjs/fake-timers": "6.0.1",
|
||||
"@syuilo/aiscript": "0.6.1",
|
||||
"@types/bcryptjs": "2.4.2",
|
||||
"@types/bull": "3.12.0",
|
||||
"@types/bull": "3.12.2",
|
||||
"@types/cbor": "5.0.0",
|
||||
"@types/dateformat": "3.0.1",
|
||||
"@types/double-ended-queue": "2.1.1",
|
||||
"@types/escape-regexp": "0.0.0",
|
||||
"@types/glob": "7.1.1",
|
||||
"@types/gulp": "4.0.6",
|
||||
"@types/gulp-mocha": "0.0.32",
|
||||
"@types/gulp-rename": "0.0.33",
|
||||
"@types/gulp-replace": "0.0.31",
|
||||
"@types/is-url": "1.2.28",
|
||||
"@types/js-yaml": "3.12.2",
|
||||
"@types/jsdom": "12.2.4",
|
||||
"@types/js-yaml": "3.12.3",
|
||||
"@types/jsdom": "16.2.1",
|
||||
"@types/jsonld": "1.5.1",
|
||||
"@types/katex": "0.11.0",
|
||||
"@types/koa": "2.11.1",
|
||||
"@types/koa": "2.11.3",
|
||||
"@types/koa-bodyparser": "4.3.0",
|
||||
"@types/koa-compress": "2.0.9",
|
||||
"@types/koa-cors": "0.0.0",
|
||||
"@types/koa-favicon": "2.0.19",
|
||||
"@types/koa-logger": "3.1.1",
|
||||
@ -66,10 +74,10 @@
|
||||
"@types/koa__cors": "3.0.1",
|
||||
"@types/koa__multer": "2.0.1",
|
||||
"@types/koa__router": "8.0.2",
|
||||
"@types/lolex": "5.1.0",
|
||||
"@types/markdown-it": "0.0.9",
|
||||
"@types/mocha": "7.0.1",
|
||||
"@types/node": "13.7.1",
|
||||
"@types/markdown-it": "10.0.1",
|
||||
"@types/mocha": "7.0.2",
|
||||
"@types/node": "13.13.5",
|
||||
"@types/node-fetch": "2.5.7",
|
||||
"@types/nodemailer": "6.4.0",
|
||||
"@types/nprogress": "0.2.0",
|
||||
"@types/oauth": "0.9.1",
|
||||
@ -80,84 +88,82 @@
|
||||
"@types/qrcode": "1.3.4",
|
||||
"@types/random-seed": "0.3.3",
|
||||
"@types/ratelimiter": "2.1.28",
|
||||
"@types/redis": "2.8.15",
|
||||
"@types/redis": "2.8.20",
|
||||
"@types/rename": "1.0.1",
|
||||
"@types/request": "2.48.4",
|
||||
"@types/request-promise-native": "1.0.17",
|
||||
"@types/request-stats": "3.0.0",
|
||||
"@types/rimraf": "2.0.3",
|
||||
"@types/rimraf": "3.0.0",
|
||||
"@types/seedrandom": "2.4.28",
|
||||
"@types/sharp": "0.24.0",
|
||||
"@types/showdown": "1.9.3",
|
||||
"@types/sharp": "0.25.0",
|
||||
"@types/sinonjs__fake-timers": "6.0.1",
|
||||
"@types/speakeasy": "2.0.5",
|
||||
"@types/systeminformation": "3.54.1",
|
||||
"@types/tinycolor2": "1.4.2",
|
||||
"@types/tmp": "0.1.0",
|
||||
"@types/uuid": "3.4.7",
|
||||
"@types/tmp": "0.2.0",
|
||||
"@types/uuid": "7.0.3",
|
||||
"@types/web-push": "3.3.0",
|
||||
"@types/webpack": "4.41.6",
|
||||
"@types/webpack": "4.41.12",
|
||||
"@types/webpack-stream": "3.2.10",
|
||||
"@types/websocket": "1.0.0",
|
||||
"@types/ws": "7.2.1",
|
||||
"@typescript-eslint/parser": "2.19.2",
|
||||
"agentkeepalive": "4.1.0",
|
||||
"animejs": "3.1.0",
|
||||
"apexcharts": "3.15.6",
|
||||
"@types/ws": "7.2.4",
|
||||
"@typescript-eslint/parser": "2.31.0",
|
||||
"abort-controller": "3.0.0",
|
||||
"apexcharts": "3.19.0",
|
||||
"autobind-decorator": "2.4.0",
|
||||
"autosize": "4.0.2",
|
||||
"autwh": "0.1.0",
|
||||
"aws-sdk": "2.617.0",
|
||||
"aws-sdk": "2.673.0",
|
||||
"bcryptjs": "2.4.3",
|
||||
"bull": "3.12.1",
|
||||
"bull": "3.14.0",
|
||||
"cafy": "15.2.1",
|
||||
"cbor": "5.0.1",
|
||||
"chai": "4.2.0",
|
||||
"chalk": "3.0.0",
|
||||
"cbor": "5.0.2",
|
||||
"chalk": "4.0.0",
|
||||
"chart.js": "2.9.3",
|
||||
"cli-highlight": "2.1.4",
|
||||
"commander": "4.1.1",
|
||||
"content-disposition": "0.5.3",
|
||||
"core-js": "3.6.5",
|
||||
"crc-32": "1.2.0",
|
||||
"css-loader": "3.4.2",
|
||||
"css-loader": "3.5.3",
|
||||
"cssnano": "4.1.10",
|
||||
"dateformat": "3.0.3",
|
||||
"diskusage": "1.1.3",
|
||||
"double-ended-queue": "2.1.0-0",
|
||||
"escape-regexp": "0.0.1",
|
||||
"eslint": "6.8.0",
|
||||
"eslint-plugin-vue": "6.1.2",
|
||||
"eslint-plugin-vue": "6.2.2",
|
||||
"eventemitter3": "4.0.0",
|
||||
"feed": "4.1.0",
|
||||
"fibers": "4.0.2",
|
||||
"file-type": "14.1.2",
|
||||
"fibers": "5.0.0",
|
||||
"file-type": "14.3.0",
|
||||
"fluent-ffmpeg": "2.1.2",
|
||||
"glob": "7.1.6",
|
||||
"gulp": "4.0.2",
|
||||
"gulp-clean-css": "4.2.0",
|
||||
"gulp-dart-sass": "0.9.1",
|
||||
"gulp-mocha": "7.0.2",
|
||||
"gulp-clean-css": "4.3.0",
|
||||
"gulp-dart-sass": "1.0.2",
|
||||
"gulp-rename": "2.0.0",
|
||||
"gulp-replace": "1.0.0",
|
||||
"gulp-sourcemaps": "2.6.5",
|
||||
"gulp-terser": "1.2.0",
|
||||
"gulp-tslint": "8.1.4",
|
||||
"gulp-typescript": "5.0.1",
|
||||
"gulp-typescript": "6.0.0-alpha.1",
|
||||
"hard-source-webpack-plugin": "0.13.1",
|
||||
"hcaptcha": "0.0.1",
|
||||
"html-minifier": "4.0.0",
|
||||
"http-signature": "1.3.1",
|
||||
"http-proxy-agent": "4.0.1",
|
||||
"http-signature": "1.3.4",
|
||||
"https-proxy-agent": "5.0.0",
|
||||
"insert-text-at-cursor": "0.3.0",
|
||||
"is-root": "2.1.0",
|
||||
"is-svg": "4.2.1",
|
||||
"js-yaml": "3.13.1",
|
||||
"jsdom": "16.1.0",
|
||||
"json5": "2.1.1",
|
||||
"json5-loader": "3.0.0",
|
||||
"jsrsasign": "8.0.12",
|
||||
"jsdom": "16.2.2",
|
||||
"json5": "2.1.3",
|
||||
"json5-loader": "4.0.0",
|
||||
"jsonld": "3.1.0",
|
||||
"jsrsasign": "8.0.15",
|
||||
"katex": "0.11.1",
|
||||
"koa": "2.11.0",
|
||||
"koa-bodyparser": "4.2.1",
|
||||
"koa-compress": "3.0.0",
|
||||
"koa-favicon": "2.0.1",
|
||||
"koa-bodyparser": "4.3.0",
|
||||
"koa-favicon": "2.1.0",
|
||||
"koa-json-body": "5.3.0",
|
||||
"koa-logger": "3.2.1",
|
||||
"koa-mount": "4.0.0",
|
||||
@ -165,106 +171,103 @@
|
||||
"koa-slow": "2.1.0",
|
||||
"koa-views": "6.2.1",
|
||||
"langmap": "0.0.16",
|
||||
"loader-utils": "1.2.3",
|
||||
"lolex": "5.1.2",
|
||||
"lookup-dns-cache": "2.1.0",
|
||||
"markdown-it": "10.0.0",
|
||||
"mocha": "7.0.1",
|
||||
"markdown-it-anchor": "5.2.7",
|
||||
"mocha": "7.1.2",
|
||||
"moji": "0.5.1",
|
||||
"ms": "2.1.2",
|
||||
"multer": "1.4.2",
|
||||
"nested-property": "1.0.4",
|
||||
"nested-property": "2.0.0",
|
||||
"node-fetch": "2.6.0",
|
||||
"nodemailer": "6.4.2",
|
||||
"nodemailer": "6.4.6",
|
||||
"nprogress": "0.2.0",
|
||||
"object-assign-deep": "0.4.0",
|
||||
"os-utils": "0.0.14",
|
||||
"parse5": "5.1.1",
|
||||
"parse5": "6.0.0",
|
||||
"parsimmon": "1.13.0",
|
||||
"pg": "7.18.1",
|
||||
"pg": "8.1.0",
|
||||
"portal-vue": "2.1.7",
|
||||
"portscanner": "2.2.0",
|
||||
"postcss-loader": "3.0.0",
|
||||
"prismjs": "1.19.0",
|
||||
"prismjs": "1.20.0",
|
||||
"probe-image-size": "5.0.0",
|
||||
"progress-bar-webpack-plugin": "2.1.0",
|
||||
"promise-limit": "2.7.0",
|
||||
"promise-sequential": "1.1.1",
|
||||
"pug": "2.0.4",
|
||||
"punycode": "2.1.1",
|
||||
"pureimage": "0.1.6",
|
||||
"pureimage": "0.2.1",
|
||||
"qrcode": "1.4.4",
|
||||
"random-seed": "0.3.0",
|
||||
"randomcolor": "0.5.4",
|
||||
"ratelimiter": "3.4.0",
|
||||
"ratelimiter": "3.4.1",
|
||||
"recaptcha-promise": "0.1.3",
|
||||
"reconnecting-websocket": "4.4.0",
|
||||
"redis": "3.0.2",
|
||||
"redis-lock": "0.1.4",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"regenerator-runtime": "0.13.5",
|
||||
"rename": "1.0.4",
|
||||
"request": "2.88.2",
|
||||
"request-promise-native": "1.0.8",
|
||||
"request-stats": "3.0.0",
|
||||
"require-all": "3.0.0",
|
||||
"rimraf": "3.0.2",
|
||||
"rndstr": "1.0.0",
|
||||
"s-age": "1.1.2",
|
||||
"sass": "1.25.0",
|
||||
"sass": "1.26.5",
|
||||
"sass-loader": "8.0.2",
|
||||
"seedrandom": "3.0.5",
|
||||
"sharp": "0.24.0",
|
||||
"showdown": "1.9.1",
|
||||
"showdown-highlightjs-extension": "0.1.2",
|
||||
"sharp": "0.25.2",
|
||||
"speakeasy": "2.0.0",
|
||||
"stringz": "2.0.0",
|
||||
"style-loader": "1.1.3",
|
||||
"stringz": "2.1.0",
|
||||
"style-loader": "1.2.1",
|
||||
"summaly": "2.3.1",
|
||||
"syslog-pro": "1.0.0",
|
||||
"systeminformation": "4.21.2",
|
||||
"systeminformation": "4.25.1",
|
||||
"syuilo-password-strength": "0.0.1",
|
||||
"terser-webpack-plugin": "2.3.4",
|
||||
"textarea-caret": "3.1.0",
|
||||
"three": "0.113.2",
|
||||
"three": "0.116.1",
|
||||
"tinycolor2": "1.4.1",
|
||||
"tmp": "0.1.0",
|
||||
"ts-loader": "6.2.1",
|
||||
"ts-node": "8.6.2",
|
||||
"tslint": "6.0.0",
|
||||
"tmp": "0.2.1",
|
||||
"ts-loader": "7.0.3",
|
||||
"ts-node": "8.10.1",
|
||||
"tslint": "6.1.2",
|
||||
"tslint-sonarts": "1.9.0",
|
||||
"typeorm": "0.2.22",
|
||||
"typescript": "3.7.5",
|
||||
"typeorm": "0.2.24",
|
||||
"typescript": "3.9.1-rc",
|
||||
"ulid": "2.3.0",
|
||||
"url-loader": "3.0.0",
|
||||
"uuid": "3.4.0",
|
||||
"url-loader": "4.1.0",
|
||||
"uuid": "8.0.0",
|
||||
"v-animate-css": "0.0.3",
|
||||
"v-debounce": "0.1.2",
|
||||
"vue": "2.6.11",
|
||||
"vue-color": "2.7.0",
|
||||
"vue-color": "2.7.1",
|
||||
"vue-content-loading": "1.6.0",
|
||||
"vue-cropperjs": "4.0.1",
|
||||
"vue-i18n": "8.15.3",
|
||||
"vue-cropperjs": "4.1.0",
|
||||
"vue-i18n": "8.17.4",
|
||||
"vue-json-pretty": "1.6.3",
|
||||
"vue-loader": "15.9.0",
|
||||
"vue-loader": "15.9.2",
|
||||
"vue-marquee-text-component": "1.1.1",
|
||||
"vue-meta": "2.3.2",
|
||||
"vue-prism-component": "1.1.1",
|
||||
"vue-router": "3.1.5",
|
||||
"vue-meta": "2.3.3",
|
||||
"vue-prism-component": "1.2.0",
|
||||
"vue-prism-editor": "0.6.1",
|
||||
"vue-router": "3.1.6",
|
||||
"vue-style-loader": "4.1.2",
|
||||
"vue-svg-inline-loader": "1.4.5",
|
||||
"vue-svg-inline-loader-corejs3": "1.5.0",
|
||||
"vue-template-compiler": "2.6.11",
|
||||
"vuedraggable": "2.23.2",
|
||||
"vuex": "3.1.2",
|
||||
"vuex-persistedstate": "2.7.1",
|
||||
"vuex": "3.3.0",
|
||||
"vuex-persistedstate": "3.0.1",
|
||||
"web-push": "3.4.3",
|
||||
"webpack": "4.41.6",
|
||||
"webpack": "5.0.0-beta.16",
|
||||
"webpack-cli": "3.3.11",
|
||||
"websocket": "1.0.31",
|
||||
"ws": "7.2.1",
|
||||
"ws": "7.2.5",
|
||||
"xev": "2.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/fluent-ffmpeg": "2.1.12",
|
||||
"cross-env": "6.0.3"
|
||||
"@types/chai": "4.2.11",
|
||||
"@types/fluent-ffmpeg": "2.1.14",
|
||||
"chai": "4.2.0",
|
||||
"cross-env": "7.0.2"
|
||||
}
|
||||
}
|
||||
|
11
src/@types/hcaptcha.d.ts
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
declare module 'hcaptcha' {
|
||||
interface IVerifyResponse {
|
||||
success: boolean;
|
||||
challenge_ts: string;
|
||||
hostname: string;
|
||||
credit?: boolean;
|
||||
'error-codes'?: unknown[];
|
||||
}
|
||||
|
||||
export function verify(secret: string, token: string): Promise<IVerifyResponse>;
|
||||
}
|
4
src/@types/http-signature.d.ts
vendored
@ -19,10 +19,12 @@ declare module 'http-signature' {
|
||||
clockSkew?: number;
|
||||
}
|
||||
|
||||
interface IParsedSignature {
|
||||
interface IParsedSignature {
|
||||
scheme: string;
|
||||
params: ISignature;
|
||||
signingString: string;
|
||||
algorithm: string;
|
||||
keyId: string;
|
||||
}
|
||||
|
||||
type RequestSignerConstructorOptions =
|
||||
|
@ -3,6 +3,7 @@ import * as cluster from 'cluster';
|
||||
import * as chalk from 'chalk';
|
||||
import * as portscanner from 'portscanner';
|
||||
import * as isRoot from 'is-root';
|
||||
import { getConnection } from 'typeorm';
|
||||
|
||||
import Logger from '../services/logger';
|
||||
import loadConfig from '../config/load';
|
||||
@ -31,7 +32,7 @@ function greet() {
|
||||
console.log(chalk.keyword('orange')(' If you like Misskey, please donate to support development. https://www.patreon.com/syuilo'));
|
||||
|
||||
console.log('');
|
||||
console.log(chalk`< ${os.hostname()} {gray (PID: ${process.pid.toString()})} >`);
|
||||
console.log(chalk`--- ${os.hostname()} {gray (PID: ${process.pid.toString()})} ---`);
|
||||
}
|
||||
|
||||
bootLogger.info('Welcome to Misskey!');
|
||||
@ -75,13 +76,13 @@ export async function masterMain() {
|
||||
await spawnWorkers(config.clusterLimit);
|
||||
}
|
||||
|
||||
bootLogger.succ(`Now listening on port ${config.port} on ${config.url}`, null, true);
|
||||
|
||||
if (!program.noDaemons) {
|
||||
require('../daemons/server-stats').default();
|
||||
require('../daemons/queue-stats').default();
|
||||
require('../daemons/janitor').default();
|
||||
}
|
||||
|
||||
bootLogger.succ(`Now listening on port ${config.port} on ${config.url}`, null, true);
|
||||
}
|
||||
|
||||
const runningNodejsVersion = process.version.slice(1).split('.').map(x => parseInt(x, 10));
|
||||
@ -99,7 +100,7 @@ async function isPortAvailable(port: number): Promise<boolean> {
|
||||
function showEnvironment(): void {
|
||||
const env = process.env.NODE_ENV;
|
||||
const logger = bootLogger.createSubLogger('env');
|
||||
logger.info(typeof env == 'undefined' ? 'NODE_ENV is not set' : `NODE_ENV: ${env}`);
|
||||
logger.info(typeof env === 'undefined' ? 'NODE_ENV is not set' : `NODE_ENV: ${env}`);
|
||||
|
||||
if (env !== 'production') {
|
||||
logger.warn('The environment is not in production mode.');
|
||||
@ -115,6 +116,8 @@ function showEnvironment(): void {
|
||||
async function init(): Promise<Config> {
|
||||
showEnvironment();
|
||||
|
||||
await showMachineInfo(bootLogger);
|
||||
|
||||
const nodejsLogger = bootLogger.createSubLogger('nodejs');
|
||||
|
||||
nodejsLogger.info(`Version ${runningNodejsVersion.join('.')}`);
|
||||
@ -124,8 +127,6 @@ async function init(): Promise<Config> {
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
await showMachineInfo(bootLogger);
|
||||
|
||||
const configLogger = bootLogger.createSubLogger('config');
|
||||
let config;
|
||||
|
||||
@ -145,13 +146,17 @@ async function init(): Promise<Config> {
|
||||
|
||||
configLogger.succ('Loaded');
|
||||
|
||||
const dbLogger = bootLogger.createSubLogger('db');
|
||||
|
||||
// Try to connect to DB
|
||||
try {
|
||||
bootLogger.info('Connecting database...');
|
||||
dbLogger.info('Connecting...');
|
||||
await initDb();
|
||||
const v = await getConnection().query('SHOW server_version').then(x => x[0].server_version);
|
||||
dbLogger.succ(`Connected: v${v}`);
|
||||
} catch (e) {
|
||||
bootLogger.error('Cannot connect to database', null, true);
|
||||
bootLogger.error(e);
|
||||
dbLogger.error('Cannot connect', null, true);
|
||||
dbLogger.error(e);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
|
@ -43,51 +43,26 @@
|
||||
<button class="item _button account" @click="openAccountMenu" v-if="$store.getters.isSignedIn">
|
||||
<mk-avatar :user="$store.state.i" class="avatar"/><mk-acct class="text" :user="$store.state.i"/>
|
||||
</button>
|
||||
<div class="divider"></div>
|
||||
<button class="item _button index active" @click="top()" v-if="$route.name === 'index'">
|
||||
<fa :icon="faHome" fixed-width/><span class="text">{{ $store.getters.isSignedIn ? $t('timeline') : $t('home') }}</span>
|
||||
</button>
|
||||
<router-link class="item index" active-class="active" to="/" exact v-else>
|
||||
<fa :icon="faHome" fixed-width/><span class="text">{{ $store.getters.isSignedIn ? $t('timeline') : $t('home') }}</span>
|
||||
</router-link>
|
||||
<template v-if="$store.getters.isSignedIn">
|
||||
<router-link class="item notifications" active-class="active" to="/my/notifications" ref="notificationButton">
|
||||
<fa :icon="faBell" fixed-width/><span class="text">{{ $t('notifications') }}</span>
|
||||
<i v-if="$store.state.i.hasUnreadNotification"><fa :icon="faCircle"/></i>
|
||||
</router-link>
|
||||
<router-link class="item" active-class="active" to="/my/messaging">
|
||||
<fa :icon="faComments" fixed-width/><span class="text">{{ $t('messaging') }}</span>
|
||||
<i v-if="$store.state.i.hasUnreadMessagingMessage"><fa :icon="faCircle"/></i>
|
||||
</router-link>
|
||||
<router-link class="item" active-class="active" to="/my/drive">
|
||||
<fa :icon="faCloud" fixed-width/><span class="text">{{ $t('drive') }}</span>
|
||||
</router-link>
|
||||
<router-link class="item" active-class="active" to="/my/follow-requests" v-if="$store.state.i.isLocked">
|
||||
<fa :icon="faUserClock" fixed-width/><span class="text">{{ $t('followRequests') }}</span>
|
||||
<i v-if="$store.state.i.hasPendingReceivedFollowRequest"><fa :icon="faCircle"/></i>
|
||||
</router-link>
|
||||
<template v-for="item in menu">
|
||||
<div v-if="item === '-'" class="divider"></div>
|
||||
<component v-else-if="menuDef[item].show !== false" :is="menuDef[item].to ? 'router-link' : 'button'" class="item _button" :class="item" active-class="active" @click="() => { if (menuDef[item].action) menuDef[item].action() }" :to="menuDef[item].to">
|
||||
<fa :icon="menuDef[item].icon" fixed-width/><span class="text">{{ $t(menuDef[item].title) }}</span>
|
||||
<i v-if="menuDef[item].indicated"><fa :icon="faCircle"/></i>
|
||||
</component>
|
||||
</template>
|
||||
<div class="divider"></div>
|
||||
<router-link class="item" active-class="active" to="/featured">
|
||||
<fa :icon="faFireAlt" fixed-width/><span class="text">{{ $t('featured') }}</span>
|
||||
</router-link>
|
||||
<router-link class="item" active-class="active" to="/explore">
|
||||
<fa :icon="faHashtag" fixed-width/><span class="text">{{ $t('explore') }}</span>
|
||||
</router-link>
|
||||
<router-link class="item" active-class="active" to="/announcements">
|
||||
<fa :icon="faBroadcastTower" fixed-width/><span class="text">{{ $t('announcements') }}</span>
|
||||
<i v-if="$store.getters.isSignedIn && $store.state.i.hasUnreadAnnouncement"><fa :icon="faCircle"/></i>
|
||||
</router-link>
|
||||
<button class="item _button" @click="search()">
|
||||
<fa :icon="faSearch" fixed-width/><span class="text">{{ $t('search') }}</span>
|
||||
</button>
|
||||
<div class="divider"></div>
|
||||
<button class="item _button" :class="{ active: $route.path === '/instance' || $route.path.startsWith('/instance/') }" v-if="$store.getters.isSignedIn && ($store.state.i.isAdmin || $store.state.i.isModerator)" @click="oepnInstanceMenu">
|
||||
<fa :icon="faServer" fixed-width/><span class="text">{{ $t('instance') }}</span>
|
||||
</button>
|
||||
<button class="item _button" @click="more">
|
||||
<fa :icon="faEllipsisH" fixed-width/><span class="text">{{ $t('more') }}</span>
|
||||
<i v-if="$store.getters.isSignedIn && ($store.state.i.hasUnreadMentions || $store.state.i.hasUnreadSpecifiedNotes)"><fa :icon="faCircle"/></i>
|
||||
<i v-if="otherNavItemIndicated"><fa :icon="faCircle"/></i>
|
||||
</button>
|
||||
<router-link class="item" active-class="active" to="/preferences">
|
||||
<fa :icon="faCog" fixed-width/><span class="text">{{ $t('settings') }}</span>
|
||||
@ -142,10 +117,10 @@
|
||||
</div>
|
||||
|
||||
<div class="buttons">
|
||||
<button class="button nav _button" @click="showNav = true" ref="navButton"><fa :icon="faBars"/><i v-if="$store.getters.isSignedIn && ($store.state.i.hasUnreadSpecifiedNotes || $store.state.i.hasPendingReceivedFollowRequest || $store.state.i.hasUnreadMessagingMessage || $store.state.i.hasUnreadAnnouncement)"><fa :icon="faCircle"/></i></button>
|
||||
<button class="button nav _button" @click="showNav = true" ref="navButton"><fa :icon="faBars"/><i v-if="navIndicated"><fa :icon="faCircle"/></i></button>
|
||||
<button v-if="$route.name === 'index'" class="button home _button" @click="top()"><fa :icon="faHome"/></button>
|
||||
<button v-else class="button home _button" @click="$router.push('/')"><fa :icon="faHome"/></button>
|
||||
<button v-if="$store.getters.isSignedIn" class="button notifications _button" @click="$router.push('/my/notifications')" ref="notificationButton2"><fa :icon="faBell"/><i v-if="$store.state.i.hasUnreadNotification"><fa :icon="faCircle"/></i></button>
|
||||
<button v-if="$store.getters.isSignedIn" class="button notifications _button" @click="$router.push('/my/notifications')"><fa :icon="faBell"/><i v-if="$store.state.i.hasUnreadNotification"><fa :icon="faCircle"/></i></button>
|
||||
<button v-if="$store.getters.isSignedIn" class="button post _buttonPrimary" @click="post()"><fa :icon="faPencilAlt"/></button>
|
||||
</div>
|
||||
|
||||
@ -157,15 +132,13 @@
|
||||
|
||||
<script lang="ts">
|
||||
import Vue from 'vue';
|
||||
import { faGripVertical, faChevronLeft, faHashtag, faBroadcastTower, faFireAlt, faEllipsisH, faPencilAlt, faBars, faTimes, faSearch, faUserCog, faCog, faUser, faHome, faStar, faCircle, faAt, faListUl, faPlus, faUserClock, faUsers, faTachometerAlt, faExchangeAlt, faGlobe, faChartBar, faCloud, faGamepad, faServer, faFileAlt, faSatellite, faInfoCircle, faQuestionCircle } from '@fortawesome/free-solid-svg-icons';
|
||||
import { faGripVertical, faChevronLeft, faHashtag, faBroadcastTower, faFireAlt, faEllipsisH, faPencilAlt, faBars, faTimes, faSearch, faUserCog, faCog, faUser, faHome, faStar, faCircle, faAt, faListUl, faPlus, faUserClock, faUsers, faTachometerAlt, faExchangeAlt, faGlobe, faChartBar, faCloud, faServer, faInfoCircle, faQuestionCircle, faProjectDiagram } from '@fortawesome/free-solid-svg-icons';
|
||||
import { faBell, faEnvelope, faLaugh, faComments } from '@fortawesome/free-regular-svg-icons';
|
||||
import { ResizeObserver } from '@juggle/resize-observer';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import i18n from './i18n';
|
||||
import { host, instanceName } from './config';
|
||||
import { search } from './scripts/search';
|
||||
import { isDeviceDarkmode } from './scripts/is-device-darkmode';
|
||||
import MkToast from './components/toast.vue';
|
||||
|
||||
const DESKTOP_THRESHOLD = 1100;
|
||||
|
||||
@ -190,10 +163,13 @@ export default Vue.extend({
|
||||
searchQuery: '',
|
||||
searchWait: false,
|
||||
widgetsEditMode: false,
|
||||
menuDef: this.$store.getters.nav({
|
||||
search: this.search
|
||||
}),
|
||||
isDesktop: window.innerWidth >= DESKTOP_THRESHOLD,
|
||||
canBack: false,
|
||||
wallpaper: localStorage.getItem('wallpaper') != null,
|
||||
faGripVertical, faChevronLeft, faComments, faHashtag, faBroadcastTower, faFireAlt, faEllipsisH, faPencilAlt, faBars, faTimes, faBell, faSearch, faUserCog, faCog, faUser, faHome, faStar, faCircle, faAt, faEnvelope, faListUl, faPlus, faUserClock, faLaugh, faUsers, faTachometerAlt, faExchangeAlt, faGlobe, faChartBar, faCloud, faServer
|
||||
faGripVertical, faChevronLeft, faComments, faHashtag, faBroadcastTower, faFireAlt, faEllipsisH, faPencilAlt, faBars, faTimes, faBell, faSearch, faUserCog, faCog, faUser, faHome, faStar, faCircle, faAt, faEnvelope, faListUl, faPlus, faUserClock, faLaugh, faUsers, faTachometerAlt, faExchangeAlt, faGlobe, faChartBar, faCloud, faServer, faProjectDiagram
|
||||
};
|
||||
},
|
||||
|
||||
@ -209,6 +185,29 @@ export default Vue.extend({
|
||||
|
||||
widgets(): any[] {
|
||||
return this.$store.state.deviceUser.widgets;
|
||||
},
|
||||
|
||||
menu(): string[] {
|
||||
return this.$store.state.deviceUser.menu;
|
||||
},
|
||||
|
||||
otherNavItemIndicated(): boolean {
|
||||
if (!this.$store.getters.isSignedIn) return false;
|
||||
for (const def in this.menuDef) {
|
||||
if (this.menu.includes(def)) continue;
|
||||
if (this.menuDef[def].indicated) return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
navIndicated(): boolean {
|
||||
if (!this.$store.getters.isSignedIn) return false;
|
||||
for (const def in this.menuDef) {
|
||||
if (def === 'timeline') continue;
|
||||
if (def === 'notifications') continue;
|
||||
if (this.menuDef[def].indicated) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
@ -225,10 +224,6 @@ export default Vue.extend({
|
||||
},
|
||||
|
||||
created() {
|
||||
if (this.$store.state.device.syncDeviceDarkMode) {
|
||||
this.$store.commit('device/set', { key: 'darkMode', value: isDeviceDarkmode() });
|
||||
}
|
||||
|
||||
if (this.$store.getters.isSignedIn) {
|
||||
this.connection = this.$root.stream.useSharedConnection('main');
|
||||
this.connection.on('notification', this.onNotification);
|
||||
@ -252,7 +247,10 @@ export default Vue.extend({
|
||||
if (this.isDesktop) this.adjustWidgetsWidth();
|
||||
|
||||
const adjustTitlePosition = () => {
|
||||
this.$refs.title.style.left = (this.$refs.main.getBoundingClientRect().left - this.$refs.nav.offsetWidth) + 'px';
|
||||
const left = this.$refs.main.getBoundingClientRect().left - this.$refs.nav.offsetWidth;
|
||||
if (left >= 0) {
|
||||
this.$refs.title.style.left = left + 'px';
|
||||
}
|
||||
};
|
||||
|
||||
adjustTitlePosition();
|
||||
@ -313,7 +311,7 @@ export default Vue.extend({
|
||||
title: this.$t('search'),
|
||||
input: true
|
||||
}).then(async ({ canceled, result: query }) => {
|
||||
if (canceled || query == null || query == '') return;
|
||||
if (canceled || query == null || query === '') return;
|
||||
|
||||
this.searching = true;
|
||||
search(this, query).finally(() => {
|
||||
@ -323,7 +321,7 @@ export default Vue.extend({
|
||||
},
|
||||
|
||||
searchKeypress(e) {
|
||||
if (e.keyCode == 13) {
|
||||
if (e.keyCode === 13) {
|
||||
this.searchWait = true;
|
||||
search(this, this.searchQuery).finally(() => {
|
||||
this.searchWait = false;
|
||||
@ -415,6 +413,11 @@ export default Vue.extend({
|
||||
text: this.$t('federation'),
|
||||
to: '/instance/federation',
|
||||
icon: faGlobe,
|
||||
}, {
|
||||
type: 'link',
|
||||
text: this.$t('relays'),
|
||||
to: '/instance/relays',
|
||||
icon: faProjectDiagram,
|
||||
}, {
|
||||
type: 'link',
|
||||
text: this.$t('announcements'),
|
||||
@ -429,50 +432,16 @@ export default Vue.extend({
|
||||
},
|
||||
|
||||
more(ev) {
|
||||
const items = Object.keys(this.menuDef).filter(k => !this.menu.includes(k)).map(k => this.menuDef[k]).filter(def => def.show == null ? true : def.show).map(def => ({
|
||||
type: def.to ? 'link' : 'button',
|
||||
text: this.$t(def.title),
|
||||
icon: def.icon,
|
||||
to: def.to,
|
||||
action: def.action,
|
||||
indicate: def.indicated,
|
||||
}));
|
||||
this.$root.menu({
|
||||
items: [...(this.$store.getters.isSignedIn ? [{
|
||||
type: 'link',
|
||||
text: this.$t('lists'),
|
||||
to: '/my/lists',
|
||||
icon: faListUl,
|
||||
}, {
|
||||
type: 'link',
|
||||
text: this.$t('groups'),
|
||||
to: '/my/groups',
|
||||
icon: faUsers,
|
||||
}, {
|
||||
type: 'link',
|
||||
text: this.$t('antennas'),
|
||||
to: '/my/antennas',
|
||||
icon: faSatellite,
|
||||
}, {
|
||||
type: 'link',
|
||||
text: this.$t('mentions'),
|
||||
to: '/my/mentions',
|
||||
icon: faAt,
|
||||
indicate: this.$store.state.i.hasUnreadMentions
|
||||
}, {
|
||||
type: 'link',
|
||||
text: this.$t('directNotes'),
|
||||
to: '/my/messages',
|
||||
icon: faEnvelope,
|
||||
indicate: this.$store.state.i.hasUnreadSpecifiedNotes
|
||||
}, {
|
||||
type: 'link',
|
||||
text: this.$t('favorites'),
|
||||
to: '/my/favorites',
|
||||
icon: faStar,
|
||||
}, {
|
||||
type: 'link',
|
||||
text: this.$t('pages'),
|
||||
to: '/my/pages',
|
||||
icon: faFileAlt,
|
||||
}, {
|
||||
type: 'link',
|
||||
text: this.$t('games'),
|
||||
to: '/games',
|
||||
icon: faGamepad,
|
||||
}, null] : []), {
|
||||
items: [...items, null, {
|
||||
type: 'link',
|
||||
text: this.$t('help'),
|
||||
to: '/docs',
|
||||
@ -533,14 +502,14 @@ export default Vue.extend({
|
||||
});
|
||||
},
|
||||
|
||||
onNotification(notification) {
|
||||
async onNotification(notification) {
|
||||
// TODO: ユーザーが画面を見てないと思われるとき(ブラウザやタブがアクティブじゃないなど)は送信しない
|
||||
if (true) {
|
||||
this.$root.stream.send('readNotification', {
|
||||
id: notification.id
|
||||
});
|
||||
|
||||
this.$root.new(MkToast, {
|
||||
this.$root.new(await import('./components/toast.vue').then(m => m.default), {
|
||||
notification
|
||||
});
|
||||
}
|
||||
@ -622,12 +591,12 @@ export default Vue.extend({
|
||||
.mk-app {
|
||||
$header-height: 60px;
|
||||
$nav-width: 250px;
|
||||
$nav-icon-only-width: 74px;
|
||||
$nav-icon-only-width: 80px;
|
||||
$main-width: 650px;
|
||||
$ui-font-size: 1em;
|
||||
$nav-icon-only-threshold: 1300px;
|
||||
$nav-hide-threshold: 700px;
|
||||
$side-hide-threshold: 1100px;
|
||||
$nav-hide-threshold: 650px;
|
||||
$side-hide-threshold: 1070px;
|
||||
|
||||
min-height: 100vh;
|
||||
box-sizing: border-box;
|
||||
@ -822,8 +791,6 @@ export default Vue.extend({
|
||||
z-index: 1001;
|
||||
width: $nav-width;
|
||||
height: 100vh;
|
||||
padding: 16px 0;
|
||||
padding-bottom: calc(3.7rem + 24px);
|
||||
box-sizing: border-box;
|
||||
overflow: auto;
|
||||
background: var(--navBg);
|
||||
@ -836,13 +803,21 @@ export default Vue.extend({
|
||||
|
||||
@media (max-width: $nav-icon-only-threshold) and (min-width: $nav-hide-threshold + 1px) {
|
||||
width: $nav-icon-only-width;
|
||||
padding: 8px 0;
|
||||
padding-bottom: calc(3.7rem + 24px);
|
||||
|
||||
> .divider {
|
||||
margin: 8px auto;
|
||||
width: calc(100% - 32px);
|
||||
}
|
||||
|
||||
> .item {
|
||||
&:first-child {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
margin-top: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
> .item {
|
||||
@ -892,15 +867,26 @@ export default Vue.extend({
|
||||
color: var(--navActive);
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
width: inherit;
|
||||
&:first-child, &:last-child {
|
||||
position: sticky;
|
||||
z-index: 1;
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
background: var(--navBg);
|
||||
background: var(--wboyroyc);
|
||||
-webkit-backdrop-filter: blur(8px);
|
||||
backdrop-filter: blur(8px);
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
top: 0;
|
||||
margin-bottom: 16px;
|
||||
border-bottom: solid 1px var(--divider);
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
bottom: 0;
|
||||
margin-top: 16px;
|
||||
border-top: solid 1px var(--divider);
|
||||
border-right: solid 1px var(--divider);
|
||||
}
|
||||
|
||||
@media (max-width: $nav-icon-only-threshold) and (min-width: $nav-hide-threshold + 1px) {
|
||||
@ -961,6 +947,10 @@ export default Vue.extend({
|
||||
&:not(.naked) {
|
||||
background: var(--pageBg);
|
||||
}
|
||||
|
||||
&.naked {
|
||||
background: var(--bg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<redoc spec-url='/api.json'></redoc>
|
||||
<redoc spec-url="/api.json" expand-responses="200" expand-single-schema-field="true"></redoc>
|
||||
<script src="https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js"> </script>
|
||||
</body>
|
||||
</html>
|
||||
|
BIN
src/client/assets/room/furnitures/bed/bed.blend
Normal file
BIN
src/client/assets/room/furnitures/bed/bed.glb
Normal file
BIN
src/client/assets/room/furnitures/bin/bin.blend
Normal file
BIN
src/client/assets/room/furnitures/bin/bin.glb
Normal file
BIN
src/client/assets/room/furnitures/book/book.blend
Normal file
BIN
src/client/assets/room/furnitures/book/book.glb
Normal file
BIN
src/client/assets/room/furnitures/book2/barcode.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
src/client/assets/room/furnitures/book2/book2.blend
Normal file
BIN
src/client/assets/room/furnitures/book2/book2.glb
Normal file
BIN
src/client/assets/room/furnitures/book2/texture.afdesign
Normal file
BIN
src/client/assets/room/furnitures/book2/texture.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
src/client/assets/room/furnitures/book2/uv.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
src/client/assets/room/furnitures/cardboard-box2/texture.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
src/client/assets/room/furnitures/cardboard-box2/uv.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
src/client/assets/room/furnitures/cardboard-box3/texture.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
src/client/assets/room/furnitures/cardboard-box3/texture.xcf
Normal file
BIN
src/client/assets/room/furnitures/cardboard-box3/uv.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
src/client/assets/room/furnitures/chair/chair.blend
Normal file
BIN
src/client/assets/room/furnitures/chair/chair.glb
Normal file
BIN
src/client/assets/room/furnitures/chair2/chair2.blend
Normal file
BIN
src/client/assets/room/furnitures/chair2/chair2.glb
Normal file
BIN
src/client/assets/room/furnitures/color-box/color-box.blend
Normal file
BIN
src/client/assets/room/furnitures/color-box/color-box.glb
Normal file
BIN
src/client/assets/room/furnitures/corkboard/corkboard.blend
Normal file
BIN
src/client/assets/room/furnitures/corkboard/corkboard.glb
Normal file
BIN
src/client/assets/room/furnitures/cube/cube.blend
Normal file
BIN
src/client/assets/room/furnitures/cube/cube.glb
Normal file
BIN
src/client/assets/room/furnitures/cup-noodle/cup-noodle.blend
Normal file
BIN
src/client/assets/room/furnitures/cup-noodle/cup-noodle.glb
Normal file
BIN
src/client/assets/room/furnitures/cup-noodle/noodle.png
Normal file
After Width: | Height: | Size: 290 KiB |
BIN
src/client/assets/room/furnitures/desk/desk.blend
Normal file
BIN
src/client/assets/room/furnitures/desk/desk.glb
Normal file
BIN
src/client/assets/room/furnitures/energy-drink/energy-drink.glb
Normal file
BIN
src/client/assets/room/furnitures/energy-drink/texture.afdesign
Normal file
BIN
src/client/assets/room/furnitures/energy-drink/texture.png
Normal file
After Width: | Height: | Size: 124 KiB |
BIN
src/client/assets/room/furnitures/energy-drink/uv.png
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
src/client/assets/room/furnitures/eraser/cover.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
src/client/assets/room/furnitures/eraser/cover.psd
Normal file
BIN
src/client/assets/room/furnitures/eraser/eraser-uv.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
src/client/assets/room/furnitures/eraser/eraser.blend
Normal file
BIN
src/client/assets/room/furnitures/eraser/eraser.glb
Normal file
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 688 B |