From e044d11782b0f7237b7f1354aba0f00365d91885 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 5 Aug 2021 00:15:51 +0900 Subject: Improve docs --- src/docs/ja-JP/advanced/aiscript.md | 4 + src/docs/ja-JP/advanced/api.md | 62 +++++ src/docs/ja-JP/advanced/create-plugin.md | 90 +++++++ src/docs/ja-JP/advanced/reversi-bot.md | 177 +++++++++++++ src/docs/ja-JP/advanced/stream.md | 358 +++++++++++++++++++++++++++ src/docs/ja-JP/aiscript.md | 4 - src/docs/ja-JP/api.md | 62 ----- src/docs/ja-JP/create-plugin.md | 90 ------- src/docs/ja-JP/custom-emoji.md | 5 - src/docs/ja-JP/deck.md | 20 -- src/docs/ja-JP/features/custom-emoji.md | 5 + src/docs/ja-JP/features/deck.md | 20 ++ src/docs/ja-JP/features/follow.md | 3 + src/docs/ja-JP/features/keyboard-shortcut.md | 66 +++++ src/docs/ja-JP/features/mfm.md | 3 + src/docs/ja-JP/features/mute.md | 13 + src/docs/ja-JP/features/pages.md | 10 + src/docs/ja-JP/features/reaction.md | 14 ++ src/docs/ja-JP/features/theme.md | 74 ++++++ src/docs/ja-JP/features/timelines.md | 15 ++ src/docs/ja-JP/follow.md | 3 - src/docs/ja-JP/general/misskey.md | 43 ++++ src/docs/ja-JP/keyboard-shortcut.md | 66 ----- src/docs/ja-JP/mfm.md | 3 - src/docs/ja-JP/mute.md | 13 - src/docs/ja-JP/pages.md | 10 - src/docs/ja-JP/reaction.md | 15 -- src/docs/ja-JP/reversi-bot.md | 177 ------------- src/docs/ja-JP/stream.md | 358 --------------------------- src/docs/ja-JP/theme.md | 74 ------ src/docs/ja-JP/timelines.md | 15 -- 31 files changed, 957 insertions(+), 915 deletions(-) create mode 100644 src/docs/ja-JP/advanced/aiscript.md create mode 100644 src/docs/ja-JP/advanced/api.md create mode 100644 src/docs/ja-JP/advanced/create-plugin.md create mode 100644 src/docs/ja-JP/advanced/reversi-bot.md create mode 100644 src/docs/ja-JP/advanced/stream.md delete mode 100644 src/docs/ja-JP/aiscript.md delete mode 100644 src/docs/ja-JP/api.md delete mode 100644 src/docs/ja-JP/create-plugin.md delete mode 100644 src/docs/ja-JP/custom-emoji.md delete mode 100644 src/docs/ja-JP/deck.md create mode 100644 src/docs/ja-JP/features/custom-emoji.md create mode 100644 src/docs/ja-JP/features/deck.md create mode 100644 src/docs/ja-JP/features/follow.md create mode 100644 src/docs/ja-JP/features/keyboard-shortcut.md create mode 100644 src/docs/ja-JP/features/mfm.md create mode 100644 src/docs/ja-JP/features/mute.md create mode 100644 src/docs/ja-JP/features/pages.md create mode 100644 src/docs/ja-JP/features/reaction.md create mode 100644 src/docs/ja-JP/features/theme.md create mode 100644 src/docs/ja-JP/features/timelines.md delete mode 100644 src/docs/ja-JP/follow.md create mode 100644 src/docs/ja-JP/general/misskey.md delete mode 100644 src/docs/ja-JP/keyboard-shortcut.md delete mode 100644 src/docs/ja-JP/mfm.md delete mode 100644 src/docs/ja-JP/mute.md delete mode 100644 src/docs/ja-JP/pages.md delete mode 100644 src/docs/ja-JP/reaction.md delete mode 100644 src/docs/ja-JP/reversi-bot.md delete mode 100644 src/docs/ja-JP/stream.md delete mode 100644 src/docs/ja-JP/theme.md delete mode 100644 src/docs/ja-JP/timelines.md (limited to 'src/docs') diff --git a/src/docs/ja-JP/advanced/aiscript.md b/src/docs/ja-JP/advanced/aiscript.md new file mode 100644 index 0000000000..6c28b446e3 --- /dev/null +++ b/src/docs/ja-JP/advanced/aiscript.md @@ -0,0 +1,4 @@ +# AiScript + +## 関数 +デフォルトで値渡しです。 diff --git a/src/docs/ja-JP/advanced/api.md b/src/docs/ja-JP/advanced/api.md new file mode 100644 index 0000000000..7422307166 --- /dev/null +++ b/src/docs/ja-JP/advanced/api.md @@ -0,0 +1,62 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 +ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 +このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 +APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** +アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/ja-JP/advanced/create-plugin.md b/src/docs/ja-JP/advanced/create-plugin.md new file mode 100644 index 0000000000..34678a2060 --- /dev/null +++ b/src/docs/ja-JP/advanced/create-plugin.md @@ -0,0 +1,90 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 +ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## メタデータ +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 +メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 +キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 +string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 +info success warn error question +省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 +info success warn error question +省略すると question になります。 +ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 +コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 +コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 +コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 +コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 +コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 +コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 +コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/ja-JP/advanced/reversi-bot.md b/src/docs/ja-JP/advanced/reversi-bot.md new file mode 100644 index 0000000000..43f455cfe1 --- /dev/null +++ b/src/docs/ja-JP/advanced/reversi-bot.md @@ -0,0 +1,177 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 +文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 +それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 +例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 +フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 +`type` ... コントロールの種類。後述します。 +`label` ... コントロールと一緒に表記するテキスト。 +`value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 +イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 +例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### スイッチ +type: `switch` +スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` +ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` +スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 +`max` ... スライダーの上限。 +`step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` +テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 +例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 +メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/ja-JP/advanced/stream.md b/src/docs/ja-JP/advanced/stream.md new file mode 100644 index 0000000000..40fc49916e --- /dev/null +++ b/src/docs/ja-JP/advanced/stream.md @@ -0,0 +1,358 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
+

認証情報の取得については、こちらのドキュメントをご確認ください。

+
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 +しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 +それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 +Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 +ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
+

IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。

+
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
+

APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。

+
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/ja-JP/aiscript.md b/src/docs/ja-JP/aiscript.md deleted file mode 100644 index 6c28b446e3..0000000000 --- a/src/docs/ja-JP/aiscript.md +++ /dev/null @@ -1,4 +0,0 @@ -# AiScript - -## 関数 -デフォルトで値渡しです。 diff --git a/src/docs/ja-JP/api.md b/src/docs/ja-JP/api.md deleted file mode 100644 index 7422307166..0000000000 --- a/src/docs/ja-JP/api.md +++ /dev/null @@ -1,62 +0,0 @@ -# Misskey API - -MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 -ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 - -APIを使い始めるには、まずアクセストークンを取得する必要があります。 -このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 - -## アクセストークンの取得 -基本的に、APIはリクエストにはアクセストークンが必要となります。 -APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 - -* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む -* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む - -### 自分自身のアクセストークンを手動発行する -「設定 > API」で、自分のアクセストークンを発行できます。 - -[「APIの使い方」へ進む](#APIの使い方) - -### アプリケーション利用者にアクセストークンの発行をリクエストする -アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 - -#### Step 1 - -UUIDを生成する。以後これをセッションIDと呼びます。 - -> このセッションIDは毎回生成し、使いまわさないようにしてください。 - -#### Step 2 - -`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 -> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` - -表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: -* `name` ... アプリケーション名 - * > 例: `MissDeck` -* `icon` ... アプリケーションのアイコン画像URL - * > 例: `https://missdeck.example.com/icon.png` -* `callback` ... 認証が終わった後にリダイレクトするURL - * > 例: `https://missdeck.example.com/callback` - * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます -* `permission` ... アプリケーションが要求する権限 - * > 例: `write:notes,write:following,read:drive` - * 要求する権限を`,`で区切って列挙します - * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます - -#### Step 3 -ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 - -レスポンスに含まれるプロパティ: -* `token` ... ユーザーのアクセストークン -* `user` ... ユーザーの情報 - -[「APIの使い方」へ進む](#APIの使い方) - -## APIの使い方 -**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** -アクセストークンは、`i`というパラメータ名でリクエストに含めます。 - -* [APIリファレンス](/api-doc) -* [ストリーミングAPI](./stream) diff --git a/src/docs/ja-JP/create-plugin.md b/src/docs/ja-JP/create-plugin.md deleted file mode 100644 index 34678a2060..0000000000 --- a/src/docs/ja-JP/create-plugin.md +++ /dev/null @@ -1,90 +0,0 @@ -# プラグインの作成 -Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 -ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 - -## メタデータ -プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 -メタデータは次のプロパティを含むオブジェクトです。 - -### name -プラグイン名 - -### author -プラグイン作者 - -### version -プラグインバージョン。数値を指定してください。 - -### description -プラグインの説明 - -### permissions -プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 - -### config -プラグインの設定情報を表すオブジェクト。 -キーに設定名、値に以下のプロパティを含めます。 - -#### type -設定値の種類を表す文字列。以下から選択します。 -string number boolean - -#### label -ユーザーに表示する設定名 - -#### description -設定の説明 - -#### default -設定のデフォルト値 - -## APIリファレンス -AiScript標準で組み込まれているAPIは掲載しません。 - -### Mk:dialog(title text type) -ダイアログを表示します。typeには以下の値が設定できます。 -info success warn error question -省略すると info になります。 - -### Mk:confirm(title text type) -確認ダイアログを表示します。typeには以下の値が設定できます。 -info success warn error question -省略すると question になります。 -ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 - -### Mk:api(endpoint params) -Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 - -### Mk:save(key value) -任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 - -### Mk:load(key) -Mk:saveで永続化した指定の名前の値を読み取ります。 - -### Plugin:register_post_form_action(title fn) -投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 -コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 - -### Plugin:register_note_action(title fn) -ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 -コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 - -### Plugin:register_user_action(title fn) -ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 -コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 - -### Plugin:register_note_view_interruptor(fn) -UIに表示されるノート情報を書き換えます。 -コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 -コールバック関数の返り値でノートが書き換えられます。 - -### Plugin:register_note_post_interruptor(fn) -ノート投稿時にノート情報を書き換えます。 -コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 -コールバック関数の返り値でノートが書き換えられます。 - -### Plugin:open_url(url) -第一引数に渡されたURLをブラウザの新しいタブで開きます。 - -### Plugin:config -プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/ja-JP/custom-emoji.md b/src/docs/ja-JP/custom-emoji.md deleted file mode 100644 index 4e1eb5c0e2..0000000000 --- a/src/docs/ja-JP/custom-emoji.md +++ /dev/null @@ -1,5 +0,0 @@ -# カスタム絵文字 -カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 -ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 -カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 -テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/ja-JP/deck.md b/src/docs/ja-JP/deck.md deleted file mode 100644 index e37d48bc0e..0000000000 --- a/src/docs/ja-JP/deck.md +++ /dev/null @@ -1,20 +0,0 @@ -# デッキ - -デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 - -## カラムの追加 -デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 - -## カラムの移動 -カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 - -## カラムの水平分割 -カラムは左右だけでなく、上下に並べることもできます。 -カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 -上下分割を解除するには、カラムメニューの「右に出す」を選択します。 - -## カラムの設定 -カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 - -## デッキの設定 -デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/ja-JP/features/custom-emoji.md b/src/docs/ja-JP/features/custom-emoji.md new file mode 100644 index 0000000000..4e1eb5c0e2 --- /dev/null +++ b/src/docs/ja-JP/features/custom-emoji.md @@ -0,0 +1,5 @@ +# カスタム絵文字 +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 +ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 +カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 +テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/ja-JP/features/deck.md b/src/docs/ja-JP/features/deck.md new file mode 100644 index 0000000000..e37d48bc0e --- /dev/null +++ b/src/docs/ja-JP/features/deck.md @@ -0,0 +1,20 @@ +# デッキ + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 +カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 +上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/ja-JP/features/follow.md b/src/docs/ja-JP/features/follow.md new file mode 100644 index 0000000000..28a606e283 --- /dev/null +++ b/src/docs/ja-JP/features/follow.md @@ -0,0 +1,3 @@ +# フォロー +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 +ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/ja-JP/features/keyboard-shortcut.md b/src/docs/ja-JP/features/keyboard-shortcut.md new file mode 100644 index 0000000000..3811613db3 --- /dev/null +++ b/src/docs/ja-JP/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
S検索Search
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/ja-JP/features/mfm.md b/src/docs/ja-JP/features/mfm.md new file mode 100644 index 0000000000..248bae3fd5 --- /dev/null +++ b/src/docs/ja-JP/features/mfm.md @@ -0,0 +1,3 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 +MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 diff --git a/src/docs/ja-JP/features/mute.md b/src/docs/ja-JP/features/mute.md new file mode 100644 index 0000000000..6a9608662a --- /dev/null +++ b/src/docs/ja-JP/features/mute.md @@ -0,0 +1,13 @@ +# ミュート + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/ja-JP/features/pages.md b/src/docs/ja-JP/features/pages.md new file mode 100644 index 0000000000..a7311b95e6 --- /dev/null +++ b/src/docs/ja-JP/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/ja-JP/features/reaction.md b/src/docs/ja-JP/features/reaction.md new file mode 100644 index 0000000000..fadce7af4e --- /dev/null +++ b/src/docs/ja-JP/features/reaction.md @@ -0,0 +1,14 @@ +# リアクション +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 +リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 +リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 +設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/ja-JP/features/theme.md b/src/docs/ja-JP/features/theme.md new file mode 100644 index 0000000000..89b467120c --- /dev/null +++ b/src/docs/ja-JP/features/theme.md @@ -0,0 +1,74 @@ +# テーマ + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 +テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 +キーがCSSの変数名になり、バリューで中身を指定します。 +なお、この`props`オブジェクトはベーステーマから継承されます。 +ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 +つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 +キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 関数 +wip diff --git a/src/docs/ja-JP/features/timelines.md b/src/docs/ja-JP/features/timelines.md new file mode 100644 index 0000000000..36ba61bd2d --- /dev/null +++ b/src/docs/ja-JP/features/timelines.md @@ -0,0 +1,15 @@ +# タイムラインの比較 + +https://docs.google.com/spreadsheets/d/1lxQ2ugKrhz58Bg96HTDK_2F98BUritkMyIiBkOByjHA/edit?usp=sharing + +## ホーム +自分のフォローしているユーザーの投稿 + +## ローカル +全てのローカルユーザーの「ホーム」指定されていない投稿 + +## ソーシャル +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿 + +## グローバル +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿 diff --git a/src/docs/ja-JP/follow.md b/src/docs/ja-JP/follow.md deleted file mode 100644 index 28a606e283..0000000000 --- a/src/docs/ja-JP/follow.md +++ /dev/null @@ -1,3 +0,0 @@ -# フォロー -ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 -ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/ja-JP/general/misskey.md b/src/docs/ja-JP/general/misskey.md new file mode 100644 index 0000000000..13ef1609d8 --- /dev/null +++ b/src/docs/ja-JP/general/misskey.md @@ -0,0 +1,43 @@ +# Misskeyについて + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 +開発はsyuiloによって2014年から開始されました。 + +## 分散型とは何か? +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信することでコンテンツ共有ネットワークを形成していることが特徴のサービスです。 +単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、ソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 +Misskeyのすべてのソースコードは公開されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 +オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 +上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 +再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +Misskeyのソースコードは、[GitHub上で公開されています。](https://github.com/misskey-dev) + +## 開発に参加する、開発を支援する +Misskeyの開発に貢献するにはいろいろな方法があります。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 +そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 +その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 +Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり開発者への収入にはなりません) +寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 +寄付は[Patreon](https://www.patreon.com/syuilo)で受け付けています。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 diff --git a/src/docs/ja-JP/keyboard-shortcut.md b/src/docs/ja-JP/keyboard-shortcut.md deleted file mode 100644 index 3811613db3..0000000000 --- a/src/docs/ja-JP/keyboard-shortcut.md +++ /dev/null @@ -1,66 +0,0 @@ -# キーボードショートカット - -## グローバル -これらのショートカットは基本的にどこでも使えます。 - - - - - - - - - - - -
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
S検索Search
H, ?ヘルプを表示Help
- -## 投稿にフォーカスされた状態 - - - - - - - - - - - - - - - - - - -
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
- -## Renoteフォーム - - - - - - - - - -
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
- -## リアクションフォーム -デフォルトで「👍」にフォーカスが当たっている状態です。 - - - - - - - - - - - - - -
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/ja-JP/mfm.md b/src/docs/ja-JP/mfm.md deleted file mode 100644 index 248bae3fd5..0000000000 --- a/src/docs/ja-JP/mfm.md +++ /dev/null @@ -1,3 +0,0 @@ -# MFM -MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 -MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 diff --git a/src/docs/ja-JP/mute.md b/src/docs/ja-JP/mute.md deleted file mode 100644 index 6a9608662a..0000000000 --- a/src/docs/ja-JP/mute.md +++ /dev/null @@ -1,13 +0,0 @@ -# ミュート - -ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: - -* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) -* そのユーザーからの通知 -* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 - -ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 - -ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 - -設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/ja-JP/pages.md b/src/docs/ja-JP/pages.md deleted file mode 100644 index a7311b95e6..0000000000 --- a/src/docs/ja-JP/pages.md +++ /dev/null @@ -1,10 +0,0 @@ -# Pages - -## 変数 -変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 - -変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 - -ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 - -関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/ja-JP/reaction.md b/src/docs/ja-JP/reaction.md deleted file mode 100644 index 476af64e8b..0000000000 --- a/src/docs/ja-JP/reaction.md +++ /dev/null @@ -1,15 +0,0 @@ -# リアクション -他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 -リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 -リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 - -## リアクションピッカーのカスタマイズ -ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 -設定の「リアクション」で設定します。 - -## リモート投稿へのリアクションについて -リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 -また、相手がMisskeyであったとしても、カスタム絵文字リアクションは伝わらず、自動的に「👍」等にフォールバックされます。 - -## リモートからのリアクションについて -リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/ja-JP/reversi-bot.md b/src/docs/ja-JP/reversi-bot.md deleted file mode 100644 index 43f455cfe1..0000000000 --- a/src/docs/ja-JP/reversi-bot.md +++ /dev/null @@ -1,177 +0,0 @@ -# MisskeyリバーシBotの開発 -Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 - -1. `games/reversi`ストリームに以下のパラメータを付けて接続する: - * `i`: botアカウントのAPIキー - -2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる - * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている - -3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する - -4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: - * `i`: botアカウントのAPIキー - * `game`: `game`の`id` - -5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う - -6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する - -7. ゲームが開始すると、`started`イベントが流れてくる - * イベントの中身にはゲーム情報が含まれている - -8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) - -9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる - * `color`として石の色が含まれている - * `pos`として位置情報が含まれている - -## 位置の計算法 -8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: -``` -+--+--+--+--+--+--+--+--+ -| 0| 1| 2| 3| 4| 5| 6| 7| -+--+--+--+--+--+--+--+--+ -| 8| 9|10|11|12|13|14|15| -+--+--+--+--+--+--+--+--+ -|16|17|18|19|20|21|22|23| -... -``` - -### X,Y座標 から インデックス に変換する -``` -pos = x + (y * mapWidth) -``` -`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: -``` -mapWidth = map[0].length -``` - -### インデックス から X,Y座標 に変換する -``` -x = pos % mapWidth -y = Math.floor(pos / mapWidth) -``` - -## マップ情報 -マップ情報は、ゲーム情報の`map`に入っています。 -文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 -それをもとにマップのデザインを知る事が出来ます: -* `(スペース)` ... マス無し -* `-` ... マス -* `b` ... 初期配置される黒石 -* `w` ... 初期配置される白石 - -例えば、4*4の次のような単純なマップがあるとします: -```text -+---+---+---+---+ -| | | | | -+---+---+---+---+ -| | ○ | ● | | -+---+---+---+---+ -| | ● | ○ | | -+---+---+---+---+ -| | | | | -+---+---+---+---+ -``` - -この場合、マップデータはこのようになります: -```javascript -['----', '-wb-', '-bw-', '----'] -``` - -## ユーザーにフォームを提示して対話可能Botを作成する -ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 -例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 - -フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: -```javascript -{ - type: 'init-form', - body: [フォームコントロールの配列] -} -``` - -フォームコントロールの配列については今から説明します。 -フォームコントロールは、次のようなオブジェクトです: -```javascript -{ - id: 'switch1', - type: 'switch', - label: 'Enable hoge', - value: false -} -``` -`id` ... コントロールのID。 -`type` ... コントロールの種類。後述します。 -`label` ... コントロールと一緒に表記するテキスト。 -`value` ... コントロールのデフォルト値。 - -### フォームの操作を受け取る -ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 -イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 -例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: -```javascript -{ - id: 'switch1', - value: true -} -``` - -### フォームコントロールの種類 -#### スイッチ -type: `switch` -スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 - -##### プロパティ -`label` ... スイッチに表記するテキスト。 - -#### ラジオボタン -type: `radio` -ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 - -##### プロパティ -`items` ... ラジオボタンの選択肢。例: -```javascript -items: [{ - label: '弱', - value: 1 -}, { - label: '中', - value: 2 -}, { - label: '強', - value: 3 -}] -``` - -#### スライダー -type: `slider` -スライダーを表示します。 - -##### プロパティ -`min` ... スライダーの下限。 -`max` ... スライダーの上限。 -`step` ... 入力欄で刻むステップ値。 - -#### テキストボックス -type: `textbox` -テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 - -## ユーザーにメッセージを表示する -設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 -例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 -メッセージを表示するには、次のメッセージをストリームに送信します: -```javascript -{ - type: 'message', - body: { - text: 'メッセージ内容', - type: 'メッセージの種類' - } -} -``` -メッセージの種類: `success`, `info`, `warning`, `error`。 - -## 投了する -投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/ja-JP/stream.md b/src/docs/ja-JP/stream.md deleted file mode 100644 index 40fc49916e..0000000000 --- a/src/docs/ja-JP/stream.md +++ /dev/null @@ -1,358 +0,0 @@ -# ストリーミングAPI - -ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 - -## ストリームに接続する - -ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 - -以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: -``` -%WS_URL%/streaming?i=xxxxxxxxxxxxxxx -``` - -認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 - -
-

認証情報の取得については、こちらのドキュメントをご確認ください。

-
- ---- - -認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: - -``` -%WS_URL%/streaming -``` - ---- - -ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 -しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 -それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 - -**ストリームでのやり取りはすべてJSONです。** - -## チャンネル -MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 -Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 -ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 - -### チャンネルに接続する -チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: - -```json -{ - type: 'connect', - body: { - channel: 'xxxxxxxx', - id: 'foobar', - params: { - ... - } - } -} -``` - -ここで、 -* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 -* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 -* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 - -
-

IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。

-
- -### チャンネルからのメッセージを受け取る -例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 - -チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: -```json -{ - type: 'channel', - body: { - id: 'foobar', - type: 'something', - body: { - some: 'thing' - } - } -} -``` - -ここで、 -* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 -* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 -* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 - -### チャンネルに向けてメッセージを送信する -チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 - -チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: -```json -{ - type: 'channel', - body: { - id: 'foobar', - type: 'something', - body: { - some: 'thing' - } - } -} -``` - -ここで、 -* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 -* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 -* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 - -### チャンネルから切断する -チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: - -```json -{ - type: 'disconnect', - body: { - id: 'foobar' - } -} -``` - -ここで、 -* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 - -## ストリームを経由してAPIリクエストする - -ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 - -ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: -```json -{ - type: 'api', - body: { - id: 'xxxxxxxxxxxxxxxx', - endpoint: 'notes/create', - data: { - text: 'yee haw!' - } - } -} -``` - -ここで、 -* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 -* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 -* `data`には、エンドポイントのパラメータを含めます。 - -
-

APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。

-
- -### レスポンスの受信 - -APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 - -```json -{ - type: 'api:xxxxxxxxxxxxxxxx', - body: { - ... - } -} -``` - -ここで、 -* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 -* `body`には、レスポンスが含まれています。 - -## 投稿のキャプチャ - -Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 - -例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 - -しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 - -この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 - -### 投稿をキャプチャする - -投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: - -```json -{ - type: 'subNote', - body: { - id: 'xxxxxxxxxxxxxxxx' - } -} -``` - -ここで、 -* `id`にキャプチャしたい投稿の`id`を設定します。 - -このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 - -例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: - -```json -{ - type: 'noteUpdated', - body: { - id: 'xxxxxxxxxxxxxxxx', - type: 'reacted', - body: { - reaction: 'like', - userId: 'yyyyyyyyyyyyyyyy' - } - } -} -``` - -ここで、 -* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 -* `body`内の`type`に、イベントの種類が設定されます。 -* `body`内の`body`に、イベントの詳細が設定されます。 - -#### イベントの種類 - -##### `reacted` -その投稿にリアクションがされた時に発生します。 - -* `reaction`に、リアクションの種類が設定されます。 -* `userId`に、リアクションを行ったユーザーのIDが設定されます。 - -例: -```json -{ - type: 'noteUpdated', - body: { - id: 'xxxxxxxxxxxxxxxx', - type: 'reacted', - body: { - reaction: 'like', - userId: 'yyyyyyyyyyyyyyyy' - } - } -} -``` - -##### `deleted` -その投稿が削除された時に発生します。 - -* `deletedAt`に、削除日時が設定されます。 - -例: -```json -{ - type: 'noteUpdated', - body: { - id: 'xxxxxxxxxxxxxxxx', - type: 'deleted', - body: { - deletedAt: '2018-10-22T02:17:09.703Z' - } - } -} -``` - -##### `pollVoted` -その投稿に添付されたアンケートに投票された時に発生します。 - -* `choice`に、選択肢IDが設定されます。 -* `userId`に、投票を行ったユーザーのIDが設定されます。 - -例: -```json -{ - type: 'noteUpdated', - body: { - id: 'xxxxxxxxxxxxxxxx', - type: 'pollVoted', - body: { - choice: 2, - userId: 'yyyyyyyyyyyyyyyy' - } - } -} -``` - -### 投稿のキャプチャを解除する - -その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 - -次のメッセージを送信します: - -```json -{ - type: 'unsubNote', - body: { - id: 'xxxxxxxxxxxxxxxx' - } -} -``` - -ここで、 -* `id`にキャプチャを解除したい投稿の`id`を設定します。 - -このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 - -# チャンネル一覧 -## `main` -アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 - -### 流れてくるイベント一覧 - -#### `renote` -自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 - -#### `mention` -誰かからメンションされたときに発生するイベントです。 - -#### `readAllNotifications` -自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 - -#### `meUpdated` -自分の情報が更新されたことを表すイベントです。 - -#### `follow` -自分が誰かをフォローしたときに発生するイベントです。 - -#### `unfollow` -自分が誰かのフォローを解除したときに発生するイベントです。 - -#### `followed` -自分が誰かにフォローされたときに発生するイベントです。 - -## `homeTimeline` -ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 - -### 流れてくるイベント一覧 - -#### `note` -タイムラインに新しい投稿が流れてきたときに発生するイベントです。 - -## `localTimeline` -ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 - -### 流れてくるイベント一覧 - -#### `note` -ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 - -## `hybridTimeline` -ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 - -### 流れてくるイベント一覧 - -#### `note` -ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 - -## `globalTimeline` -グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 - -### 流れてくるイベント一覧 - -#### `note` -グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/ja-JP/theme.md b/src/docs/ja-JP/theme.md deleted file mode 100644 index 89b467120c..0000000000 --- a/src/docs/ja-JP/theme.md +++ /dev/null @@ -1,74 +0,0 @@ -# テーマ - -テーマを設定して、Misskeyクライアントの見た目を変更できます。 - -## テーマの設定 -設定 > テーマ - -## テーマを作成する -テーマコードはJSON5で記述されたテーマオブジェクトです。 -テーマは以下のようなオブジェクトです。 -``` js -{ - id: '17587283-dd92-4a2c-a22c-be0637c9e22a', - - name: 'Danboard', - author: 'syuilo', - - base: 'light', - - props: { - accent: 'rgb(218, 141, 49)', - bg: 'rgb(218, 212, 190)', - fg: 'rgb(115, 108, 92)', - panel: 'rgb(236, 232, 220)', - renote: 'rgb(100, 152, 106)', - link: 'rgb(100, 152, 106)', - mention: '@accent', - hashtag: 'rgb(100, 152, 106)', - header: 'rgba(239, 227, 213, 0.75)', - navBg: 'rgb(216, 206, 182)', - inputBorder: 'rgba(0, 0, 0, 0.1)', - }, -} - -``` - -* `id` ... テーマの一意なID。UUIDをおすすめします。 -* `name` ... テーマ名 -* `author` ... テーマの作者 -* `desc` ... テーマの説明(オプション) -* `base` ... 明るいテーマか、暗いテーマか - * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 - * テーマはここで設定されたベーステーマを継承します。 -* `props` ... テーマのスタイル定義。これから説明します。 - -### テーマのスタイル定義 -`props`下にはテーマのスタイルを定義します。 -キーがCSSの変数名になり、バリューで中身を指定します。 -なお、この`props`オブジェクトはベーステーマから継承されます。 -ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 -つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 - -#### バリューで使える構文 -* 16進数で表された色 - * 例: `#00ff00` -* `rgb(r, g, b)`形式で表された色 - * 例: `rgb(0, 255, 0)` -* `rgb(r, g, b, a)`形式で表された透明度を含む色 - * 例: `rgba(0, 255, 0, 0.5)` -* 他のキーの値の参照 - * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 - * 例: `@panel` -* 定数(後述)の参照 - * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 - * 例: `$main` -* 関数(後述) - * `:{関数名}<{引数}<{色}` - -#### 定数 -「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 -キー名を`$`で始めると、そのキーはCSS変数として出力されません。 - -#### 関数 -wip diff --git a/src/docs/ja-JP/timelines.md b/src/docs/ja-JP/timelines.md deleted file mode 100644 index 36ba61bd2d..0000000000 --- a/src/docs/ja-JP/timelines.md +++ /dev/null @@ -1,15 +0,0 @@ -# タイムラインの比較 - -https://docs.google.com/spreadsheets/d/1lxQ2ugKrhz58Bg96HTDK_2F98BUritkMyIiBkOByjHA/edit?usp=sharing - -## ホーム -自分のフォローしているユーザーの投稿 - -## ローカル -全てのローカルユーザーの「ホーム」指定されていない投稿 - -## ソーシャル -自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿 - -## グローバル -全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿 -- cgit v1.2.3-freya From f261f8d7d19b0396c3dbee6e9594132058a1e4d7 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 5 Aug 2021 10:45:19 +0900 Subject: Update misskey.md --- src/docs/ja-JP/general/misskey.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/docs') diff --git a/src/docs/ja-JP/general/misskey.md b/src/docs/ja-JP/general/misskey.md index 13ef1609d8..2fba2450a3 100644 --- a/src/docs/ja-JP/general/misskey.md +++ b/src/docs/ja-JP/general/misskey.md @@ -1,11 +1,13 @@ # Misskeyについて Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 -開発はsyuiloによって2014年から開始されました。 +開発は日本でsyuiloによって2014年から開始されました。 +ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 ## 分散型とは何か? -分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信することでコンテンツ共有ネットワークを形成していることが特徴のサービスです。 +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 +分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 ## 常にオープンソース Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、ソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 -- cgit v1.2.3-freya From 4f218f544f2e607ca9392d230b2649fe4d23a4fb Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 5 Aug 2021 12:14:14 +0900 Subject: Update misskey.md --- src/docs/ja-JP/general/misskey.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'src/docs') diff --git a/src/docs/ja-JP/general/misskey.md b/src/docs/ja-JP/general/misskey.md index 2fba2450a3..4c1201b6ce 100644 --- a/src/docs/ja-JP/general/misskey.md +++ b/src/docs/ja-JP/general/misskey.md @@ -37,9 +37,29 @@ Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っ 不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 ### 寄付をする -Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり開発者への収入にはなりません) +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は[Patreon](https://www.patreon.com/syuilo)で受け付けています。 ## クレジット Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### 企業によって開発や運営がされていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 +開発メンバーも基本的にはボランティアです。 +また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 +なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 +詳しくは[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 -- cgit v1.2.3-freya From 80a4aa6fa69765799ceaa98bb8200e06ee1a9e05 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 5 Aug 2021 12:20:21 +0900 Subject: Update misskey.md --- src/docs/ja-JP/general/misskey.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/docs') diff --git a/src/docs/ja-JP/general/misskey.md b/src/docs/ja-JP/general/misskey.md index 4c1201b6ce..2adf684c67 100644 --- a/src/docs/ja-JP/general/misskey.md +++ b/src/docs/ja-JP/general/misskey.md @@ -19,7 +19,7 @@ Misskeyのすべてのソースコードは公開されていて、誰でも自 Misskeyのソースコードは、[GitHub上で公開されています。](https://github.com/misskey-dev) ## 開発に参加する、開発を支援する -Misskeyの開発に貢献するにはいろいろな方法があります。 +Misskeyの開発に貢献するにはいろいろな方法があります。貢献に開発のスキルは不要です。 ### 機能を追加したり、バグを修正する ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 @@ -61,5 +61,10 @@ Misskeyは開発が進むにつれ使用する技術も大きく変わってき - サーバーサイド: Node.js - データベース: PostgreSQL、Redis - UIフレームワーク: Vue.js +- プログラミング言語: TypeScript また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 +サーバーの作成方法については[こちら](todo)をご覧ください。 -- cgit v1.2.3-freya From bb5fd3c1f229f145bf3a824ee210e2144fa08403 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 5 Aug 2021 13:02:44 +0900 Subject: Update misskey.md --- src/docs/ja-JP/general/misskey.md | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/docs') diff --git a/src/docs/ja-JP/general/misskey.md b/src/docs/ja-JP/general/misskey.md index 2adf684c67..677c188eb9 100644 --- a/src/docs/ja-JP/general/misskey.md +++ b/src/docs/ja-JP/general/misskey.md @@ -4,22 +4,29 @@ Misskeyはオープンソースの分散型マイクロブログプラットフ 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 +当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。 + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + ## 分散型とは何か? -分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 ## 常にオープンソース -Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、ソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 -Misskeyのすべてのソースコードは公開されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 +Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開]((https://github.com/misskey-dev))されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 -Misskeyのソースコードは、[GitHub上で公開されています。](https://github.com/misskey-dev) +技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは[GitHub上でホスティングされています。](https://github.com/misskey-dev) ## 開発に参加する、開発を支援する -Misskeyの開発に貢献するにはいろいろな方法があります。貢献に開発のスキルは不要です。 +Misskeyの開発に貢献するにはいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。 ### 機能を追加したり、バグを修正する ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 -- cgit v1.2.3-freya From ae0596a729cdbe35b0fb07cd54802066b899328c Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 5 Aug 2021 13:43:57 +0900 Subject: improve docs --- src/docs/ja-JP/general/apps.md | 6 ++++++ src/docs/ja-JP/general/faq.md | 6 ++++++ src/docs/ja-JP/general/glossary.md | 18 ++++++++++++++++++ src/docs/ja-JP/general/links.md | 2 ++ src/docs/ja-JP/general/misskey.md | 10 +++++++++- src/docs/ja-JP/general/troubleshooting.md | 15 +++++++++++++++ 6 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 src/docs/ja-JP/general/apps.md create mode 100644 src/docs/ja-JP/general/faq.md create mode 100644 src/docs/ja-JP/general/glossary.md create mode 100644 src/docs/ja-JP/general/links.md create mode 100644 src/docs/ja-JP/general/troubleshooting.md (limited to 'src/docs') diff --git a/src/docs/ja-JP/general/apps.md b/src/docs/ja-JP/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/ja-JP/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/ja-JP/general/faq.md b/src/docs/ja-JP/general/faq.md new file mode 100644 index 0000000000..ff38328daf --- /dev/null +++ b/src/docs/ja-JP/general/faq.md @@ -0,0 +1,6 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 +Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` diff --git a/src/docs/ja-JP/general/glossary.md b/src/docs/ja-JP/general/glossary.md new file mode 100644 index 0000000000..4978292da0 --- /dev/null +++ b/src/docs/ja-JP/general/glossary.md @@ -0,0 +1,18 @@ +# 用語集 +## 藍 +(読み: あい) +Misskeyの看板娘(公式キャラクター)です。 + +## AiScript +(読み: あいすくりぷと) +Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## インスタンス +todo + +## MFM +(読み: えむえふえむ) +Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## サーバー +todo diff --git a/src/docs/ja-JP/general/links.md b/src/docs/ja-JP/general/links.md new file mode 100644 index 0000000000..9541a6255b --- /dev/null +++ b/src/docs/ja-JP/general/links.md @@ -0,0 +1,2 @@ +# リンク集 +todo diff --git a/src/docs/ja-JP/general/misskey.md b/src/docs/ja-JP/general/misskey.md index 677c188eb9..37c802a26b 100644 --- a/src/docs/ja-JP/general/misskey.md +++ b/src/docs/ja-JP/general/misskey.md @@ -52,13 +52,20 @@ Misskeyはビジネスではなく、利用は無料であるため、収益は Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 ## よくある質問 -### 企業によって開発や運営がされていますか? +### 企業によって開発されていますか? いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 +また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 +サーバーの運営者は、[このページ](/about)で確認することができます。 + ### iOS/Androidのアプリはありますか? 公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 +詳しくは[こちら](./apps)をご覧ください。 + ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 @@ -74,4 +81,5 @@ Misskeyは開発が進むにつれ使用する技術も大きく変わってき ### サーバーを建てるにはどうしたらいいですか? Misskeyサーバーの作成に興味を持っていただきありがとうございます。 +2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 diff --git a/src/docs/ja-JP/general/troubleshooting.md b/src/docs/ja-JP/general/troubleshooting.md new file mode 100644 index 0000000000..c8a7b9e96f --- /dev/null +++ b/src/docs/ja-JP/general/troubleshooting.md @@ -0,0 +1,15 @@ +# トラブルシューティング +問題が発生したときは、まずこちらをご確認ください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 +ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 +すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 -- cgit v1.2.3-freya From 645b6fdc8ad8d9800ac120c0c7d3301df338d34a Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 5 Aug 2021 13:58:44 +0900 Subject: Improve docs --- src/docs/ja-JP/advanced/develop-bot.md | 5 +++++ src/docs/ja-JP/general/faq.md | 9 +++++++++ src/docs/ja-JP/general/misskey.md | 3 +++ src/docs/ja-JP/general/troubleshooting.md | 3 +++ 4 files changed, 20 insertions(+) create mode 100644 src/docs/ja-JP/advanced/develop-bot.md (limited to 'src/docs') diff --git a/src/docs/ja-JP/advanced/develop-bot.md b/src/docs/ja-JP/advanced/develop-bot.md new file mode 100644 index 0000000000..21c1f9d695 --- /dev/null +++ b/src/docs/ja-JP/advanced/develop-bot.md @@ -0,0 +1,5 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 +また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 diff --git a/src/docs/ja-JP/general/faq.md b/src/docs/ja-JP/general/faq.md index ff38328daf..d956039c12 100644 --- a/src/docs/ja-JP/general/faq.md +++ b/src/docs/ja-JP/general/faq.md @@ -4,3 +4,12 @@ Misskeyのプロジェクト自体についてのよくある質問は[こちら ## 他のサーバーのユーザーをフォローするときは? メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/ja-JP/general/misskey.md b/src/docs/ja-JP/general/misskey.md index 37c802a26b..4636a3626a 100644 --- a/src/docs/ja-JP/general/misskey.md +++ b/src/docs/ja-JP/general/misskey.md @@ -83,3 +83,6 @@ Misskeyは開発が進むにつれ使用する技術も大きく変わってき Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) diff --git a/src/docs/ja-JP/general/troubleshooting.md b/src/docs/ja-JP/general/troubleshooting.md index c8a7b9e96f..d3b53d5482 100644 --- a/src/docs/ja-JP/general/troubleshooting.md +++ b/src/docs/ja-JP/general/troubleshooting.md @@ -13,3 +13,6 @@ ## Renoteができない フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 -- cgit v1.2.3-freya From 1186813c7579373ca6f8c6be322bd3ea7decaf10 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 5 Aug 2021 15:08:10 +0900 Subject: Update glossary.md --- src/docs/ja-JP/general/glossary.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/docs') diff --git a/src/docs/ja-JP/general/glossary.md b/src/docs/ja-JP/general/glossary.md index 4978292da0..196038e91d 100644 --- a/src/docs/ja-JP/general/glossary.md +++ b/src/docs/ja-JP/general/glossary.md @@ -16,3 +16,25 @@ Misskey Flavored Markdownの略で、Misskey上で使用できるマークアッ ## サーバー todo + +## サイレンス +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。 + +## 凍結 +アカウントが使用不可に設定されている状態。 + +## ドライブ +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## ノート +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。 + +## モデレーター +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## Renote +(読み: りのーと) +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。 + +## ローカル +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。 -- cgit v1.2.3-freya From 3df8c701a786d08c5407199a972b3ce9b4cb8fef Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 5 Aug 2021 15:19:55 +0900 Subject: Improve docs --- src/docs/ja-JP/advanced/develop-bot.md | 2 ++ src/docs/ja-JP/general/glossary.md | 15 +++++++++++++++ src/docs/ja-JP/general/misskey.md | 6 ++++++ 3 files changed, 23 insertions(+) (limited to 'src/docs') diff --git a/src/docs/ja-JP/advanced/develop-bot.md b/src/docs/ja-JP/advanced/develop-bot.md index 21c1f9d695..2e246b7bfa 100644 --- a/src/docs/ja-JP/advanced/develop-bot.md +++ b/src/docs/ja-JP/advanced/develop-bot.md @@ -3,3 +3,5 @@ また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 - [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/ja-JP/general/glossary.md b/src/docs/ja-JP/general/glossary.md index 196038e91d..3c308d0818 100644 --- a/src/docs/ja-JP/general/glossary.md +++ b/src/docs/ja-JP/general/glossary.md @@ -7,6 +7,10 @@ Misskeyの看板娘(公式キャラクター)です。 (読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) +## AcitivityPub +(読み: あくてぃびてぃぱぶ) +分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + ## インスタンス todo @@ -29,6 +33,14 @@ Misskeyにアップロードしたファイルを管理する機能。詳細は[ ## ノート Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。 +## Fediverse +(読み: ふぇでぃばーす) +Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## Bot +(読み: ぼっと) +プログラムによって動作しているアカウント。 + ## モデレーター スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 @@ -36,5 +48,8 @@ Misskeyに投稿される、文章、ファイル、アンケートなどを含 (読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。 +## 連合 +サーバー上で作成された情報が他のサーバーに伝わること。 + ## ローカル 自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。 diff --git a/src/docs/ja-JP/general/misskey.md b/src/docs/ja-JP/general/misskey.md index 4636a3626a..35ae53c612 100644 --- a/src/docs/ja-JP/general/misskey.md +++ b/src/docs/ja-JP/general/misskey.md @@ -61,6 +61,7 @@ Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 +あなたがサーバーを作成すれば、あなたが運営者になります。 ### iOS/Androidのアプリはありますか? 公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 @@ -84,5 +85,10 @@ Misskeyサーバーの作成に興味を持っていただきありがとうご 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 +開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 +同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + ### Misskeyのロゴ、アイコンはどこで入手できますか? (準備中) -- cgit v1.2.3-freya From e219188f467ad3b4bdf03d593df6e4da24a82704 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 5 Aug 2021 15:38:20 +0900 Subject: Update misskey.md --- src/docs/ja-JP/general/misskey.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/docs') diff --git a/src/docs/ja-JP/general/misskey.md b/src/docs/ja-JP/general/misskey.md index 35ae53c612..d771165d8d 100644 --- a/src/docs/ja-JP/general/misskey.md +++ b/src/docs/ja-JP/general/misskey.md @@ -71,6 +71,17 @@ Misskeyは分散型なため、各サーバーにそれぞれ異なった運営 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) +サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 +他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 +なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 +2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 +サーバーの作成方法については[こちら](todo)をご覧ください。 + ### どのような技術を使用していますか? Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 - サーバーサイド: Node.js @@ -80,11 +91,6 @@ Misskeyは開発が進むにつれ使用する技術も大きく変わってき また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 -### サーバーを建てるにはどうしたらいいですか? -Misskeyサーバーの作成に興味を持っていただきありがとうございます。 -2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 -サーバーの作成方法については[こちら](todo)をご覧ください。 - ### Mastodonのフォークですか? いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 -- cgit v1.2.3-freya From eac7f11aa7932636226419c212b63b84eec12bbf Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 5 Aug 2021 15:48:12 +0900 Subject: Update glossary.md --- src/docs/ja-JP/general/glossary.md | 49 +++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 19 deletions(-) (limited to 'src/docs') diff --git a/src/docs/ja-JP/general/glossary.md b/src/docs/ja-JP/general/glossary.md index 3c308d0818..60de2123f9 100644 --- a/src/docs/ja-JP/general/glossary.md +++ b/src/docs/ja-JP/general/glossary.md @@ -1,23 +1,45 @@ # 用語集 -## 藍 -(読み: あい) -Misskeyの看板娘(公式キャラクター)です。 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) +分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 ## AiScript (読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) -## AcitivityPub -(読み: あくてぃびてぃぱぶ) -分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 +## Bot +(読み: ぼっと) +プログラムによって動作しているアカウント。 -## インスタンス -todo +## CW +(読み: こんてんつわーにんぐ) +Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) +Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 ## MFM (読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) +## NSFW +(読み: のっとせーふふぉーわーく) +Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renote +(読み: りのーと) +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。 + +## 藍 +(読み: あい) +Misskeyの看板娘(公式キャラクター)です。 + +## インスタンス +todo + ## サーバー todo @@ -33,21 +55,10 @@ Misskeyにアップロードしたファイルを管理する機能。詳細は[ ## ノート Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。 -## Fediverse -(読み: ふぇでぃばーす) -Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 - -## Bot -(読み: ぼっと) -プログラムによって動作しているアカウント。 ## モデレーター スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 -## Renote -(読み: りのーと) -既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。 - ## 連合 サーバー上で作成された情報が他のサーバーに伝わること。 -- cgit v1.2.3-freya From 46f53868c5804f6991427636a7568344ff8e3970 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 5 Aug 2021 16:04:31 +0900 Subject: Improve docs --- src/client/pages/doc.vue | 4 ++++ src/client/pages/docs.vue | 9 +++++++-- src/docs/ja-JP/general/glossary.md | 4 ++++ 3 files changed, 15 insertions(+), 2 deletions(-) (limited to 'src/docs') diff --git a/src/client/pages/doc.vue b/src/client/pages/doc.vue index 2e315887ac..00a3530523 100644 --- a/src/client/pages/doc.vue +++ b/src/client/pages/doc.vue @@ -64,6 +64,10 @@ export default defineComponent({ fetchDoc() { fetch(`${url}/doc-assets/${lang}/${this.doc}.md`).then(res => res.text()).then(md => { this.parse(md); + }).catch(() => { + fetch(`${url}/doc-assets/ja-JP/${this.doc}.md`).then(res => res.text()).then(md => { + this.parse(md); + }); }); }, diff --git a/src/client/pages/docs.vue b/src/client/pages/docs.vue index e677fe0cbe..a419bf5f92 100644 --- a/src/client/pages/docs.vue +++ b/src/client/pages/docs.vue @@ -69,8 +69,13 @@ export default defineComponent({ }, created() { - fetch(`${url}/docs.json?lang=${lang}`).then(res => res.json()).then(docs => { - this.docs = docs; + fetch(`${url}/docs.json?lang=ja-JP`).then(res => res.json()).then(jaDocs => { + fetch(`${url}/docs.json?lang=${lang}`).then(res => res.json()).then(docs => { + this.docs = jaDocs.map(doc => { + const exist = docs.find(d => d.path === doc.path); + return exist || doc; + }); + }); }); }, }); diff --git a/src/docs/ja-JP/general/glossary.md b/src/docs/ja-JP/general/glossary.md index 60de2123f9..f3a9b9af35 100644 --- a/src/docs/ja-JP/general/glossary.md +++ b/src/docs/ja-JP/general/glossary.md @@ -9,6 +9,10 @@ Misskeyに関する用語集です。 (読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) +## API +(読み: えーぴーあい) +Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + ## Bot (読み: ぼっと) プログラムによって動作しているアカウント。 -- cgit v1.2.3-freya From 2a47e4a1e13fe501cfda8d95e2c805eeb7c14350 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 5 Aug 2021 16:29:34 +0900 Subject: Update misskey.md --- src/docs/ja-JP/general/misskey.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/docs') diff --git a/src/docs/ja-JP/general/misskey.md b/src/docs/ja-JP/general/misskey.md index d771165d8d..9dde912fd3 100644 --- a/src/docs/ja-JP/general/misskey.md +++ b/src/docs/ja-JP/general/misskey.md @@ -25,8 +25,8 @@ Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは[GitHub上でホスティングされています。](https://github.com/misskey-dev) -## 開発に参加する、開発を支援する -Misskeyの開発に貢献するにはいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。 +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 ### 機能を追加したり、バグを修正する ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 @@ -43,6 +43,10 @@ Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っ ### 感想を投稿する 不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 +知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + ### 寄付をする Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 -- cgit v1.2.3-freya From 38af8d4737b8335b566b9fb1cc536bfabc453b2b Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 5 Aug 2021 16:34:24 +0900 Subject: Update glossary.md --- src/docs/ja-JP/general/glossary.md | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/docs') diff --git a/src/docs/ja-JP/general/glossary.md b/src/docs/ja-JP/general/glossary.md index f3a9b9af35..929d880e6c 100644 --- a/src/docs/ja-JP/general/glossary.md +++ b/src/docs/ja-JP/general/glossary.md @@ -59,6 +59,8 @@ Misskeyにアップロードしたファイルを管理する機能。詳細は[ ## ノート Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。 +## ミスキスト +Misskeyを使う人のこと。 ## モデレーター スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 -- cgit v1.2.3-freya From fc5ceea335efbdd3a5c6e7cd0ae0380024b0382b Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 5 Aug 2021 18:34:59 +0900 Subject: Improve doc --- src/client/pages/doc.vue | 4 ++++ src/docs/ja-JP/general/misskey.md | 25 +++++++++++++++++-------- 2 files changed, 21 insertions(+), 8 deletions(-) (limited to 'src/docs') diff --git a/src/client/pages/doc.vue b/src/client/pages/doc.vue index 00a3530523..8647b0a44c 100644 --- a/src/client/pages/doc.vue +++ b/src/client/pages/doc.vue @@ -162,6 +162,10 @@ export default defineComponent({ border-bottom: solid 0.5px var(--divider); } + ::v-deep(h3) { + margin: 1.25em 0 0.5em 0; + } + ::v-deep(table) { width: 100%; max-width: 100%; diff --git a/src/docs/ja-JP/general/misskey.md b/src/docs/ja-JP/general/misskey.md index 9dde912fd3..76f2f22131 100644 --- a/src/docs/ja-JP/general/misskey.md +++ b/src/docs/ja-JP/general/misskey.md @@ -67,14 +67,6 @@ Misskeyは分散型なため、各サーバーにそれぞれ異なった運営 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 -### iOS/Androidのアプリはありますか? -公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 -詳しくは[こちら](./apps)をご覧ください。 - -ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 -なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 -詳しくは[こちら](todo)をご覧ください。 - ### どのサーバーを選べばいいですか? [サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 @@ -100,5 +92,22 @@ Misskeyは開発が進むにつれ使用する技術も大きく変わってき 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 +詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 +なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 +詳しくは[こちら](todo)をご覧ください。 + ### Misskeyのロゴ、アイコンはどこで入手できますか? (準備中) + +### プロジェクトは何を目指していますか? +強いて言うと、広く使われる汎用的なプラットフォームになることを目指しています。 +Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)に基づいて開発が行われているわけではなく、その点ではフラットです。 +それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっています。 + + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! -- cgit v1.2.3-freya From e410e22980b486c6134c30f3042e8131b6a25fd6 Mon Sep 17 00:00:00 2001 From: syuilo Date: Thu, 5 Aug 2021 18:46:43 +0900 Subject: Update misskey.md --- src/docs/ja-JP/general/misskey.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src/docs') diff --git a/src/docs/ja-JP/general/misskey.md b/src/docs/ja-JP/general/misskey.md index 76f2f22131..9941e0ef94 100644 --- a/src/docs/ja-JP/general/misskey.md +++ b/src/docs/ja-JP/general/misskey.md @@ -30,6 +30,7 @@ Misskeyを気に入っていただけたら、ぜひプロジェクトを支援 ### 機能を追加したり、バグを修正する ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 +貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 ### 議論に参加する 新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 @@ -50,12 +51,19 @@ Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っ ### 寄付をする Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 -寄付は[Patreon](https://www.patreon.com/syuilo)で受け付けています。 +寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 +一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 ## クレジット Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 ## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、広く使われる汎用的なプラットフォームになることを目指しています。 +Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)に基づいて開発が行われているわけではなく、その点ではフラットです。 +それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっています。 + + ### 企業によって開発されていますか? いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 @@ -103,11 +111,5 @@ Misskeyは開発が進むにつれ使用する技術も大きく変わってき ### Misskeyのロゴ、アイコンはどこで入手できますか? (準備中) -### プロジェクトは何を目指していますか? -強いて言うと、広く使われる汎用的なプラットフォームになることを目指しています。 -Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)に基づいて開発が行われているわけではなく、その点ではフラットです。 -それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっています。 - - ### 時折目にする猫耳の可愛い女の子は? -Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! -- cgit v1.2.3-freya From 3e3d294188b023a97df457cd910646417b04ba26 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 6 Aug 2021 00:17:40 +0900 Subject: Improve docs --- src/docs/ja-JP/features/drive.md | 8 +++++++ src/docs/ja-JP/features/note.md | 46 ++++++++++++++++++++++++++++++++++++ src/docs/ja-JP/features/silence.md | 7 ++++++ src/docs/ja-JP/features/timeline.md | 16 +++++++++++++ src/docs/ja-JP/features/timelines.md | 15 ------------ src/docs/ja-JP/general/glossary.md | 11 +++++---- 6 files changed, 84 insertions(+), 19 deletions(-) create mode 100644 src/docs/ja-JP/features/drive.md create mode 100644 src/docs/ja-JP/features/note.md create mode 100644 src/docs/ja-JP/features/silence.md create mode 100644 src/docs/ja-JP/features/timeline.md delete mode 100644 src/docs/ja-JP/features/timelines.md (limited to 'src/docs') diff --git a/src/docs/ja-JP/features/drive.md b/src/docs/ja-JP/features/drive.md new file mode 100644 index 0000000000..d169b7f54b --- /dev/null +++ b/src/docs/ja-JP/features/drive.md @@ -0,0 +1,8 @@ +# ドライブ +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 diff --git a/src/docs/ja-JP/features/note.md b/src/docs/ja-JP/features/note.md new file mode 100644 index 0000000000..00bfbf59fa --- /dev/null +++ b/src/docs/ja-JP/features/note.md @@ -0,0 +1,46 @@ +# ノート +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 +ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 +他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 +自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 +同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 +設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +アカウントが[サイレンス](./silence)状態の時は、この公開範囲は使用できません。 + +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 +ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 +複数のノートをピン留めできます。 diff --git a/src/docs/ja-JP/features/silence.md b/src/docs/ja-JP/features/silence.md new file mode 100644 index 0000000000..3ac2edb9bc --- /dev/null +++ b/src/docs/ja-JP/features/silence.md @@ -0,0 +1,7 @@ +# サイレンス +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 +ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/ja-JP/features/timeline.md b/src/docs/ja-JP/features/timeline.md new file mode 100644 index 0000000000..de8c6e5605 --- /dev/null +++ b/src/docs/ja-JP/features/timeline.md @@ -0,0 +1,16 @@ +# タイムライン +タイムラインは、[ノート](./note)が時系列で表示される機能です。 +タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 +なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## ホーム +自分のフォローしているユーザーの投稿 + +## ローカル +全てのローカルユーザーの「ホーム」指定されていない投稿 + +## ソーシャル +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿 + +## グローバル +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿 diff --git a/src/docs/ja-JP/features/timelines.md b/src/docs/ja-JP/features/timelines.md deleted file mode 100644 index 36ba61bd2d..0000000000 --- a/src/docs/ja-JP/features/timelines.md +++ /dev/null @@ -1,15 +0,0 @@ -# タイムラインの比較 - -https://docs.google.com/spreadsheets/d/1lxQ2ugKrhz58Bg96HTDK_2F98BUritkMyIiBkOByjHA/edit?usp=sharing - -## ホーム -自分のフォローしているユーザーの投稿 - -## ローカル -全てのローカルユーザーの「ホーム」指定されていない投稿 - -## ソーシャル -自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿 - -## グローバル -全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿 diff --git a/src/docs/ja-JP/general/glossary.md b/src/docs/ja-JP/general/glossary.md index 929d880e6c..59756b6857 100644 --- a/src/docs/ja-JP/general/glossary.md +++ b/src/docs/ja-JP/general/glossary.md @@ -35,7 +35,7 @@ Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なし ## Renote (読み: りのーと) -既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。 +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) ## 藍 (読み: あい) @@ -48,7 +48,7 @@ todo todo ## サイレンス -ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。 +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) ## 凍結 アカウントが使用不可に設定されている状態。 @@ -57,7 +57,7 @@ todo Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) ## ノート -Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。 +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) ## ミスキスト Misskeyを使う人のこと。 @@ -65,8 +65,11 @@ Misskeyを使う人のこと。 ## モデレーター スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 +## リモート +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + ## 連合 サーバー上で作成された情報が他のサーバーに伝わること。 ## ローカル -自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。 +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 -- cgit v1.2.3-freya From 6073a039671446a77c0144aa6930a64a832664a0 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 6 Aug 2021 00:33:25 +0900 Subject: Improve docs --- src/docs/ja-JP/general/faq.md | 8 ++++++++ src/docs/ja-JP/general/report-issue.md | 10 ++++++++++ src/docs/ja-JP/general/troubleshooting.md | 8 ++++++++ 3 files changed, 26 insertions(+) create mode 100644 src/docs/ja-JP/general/report-issue.md (limited to 'src/docs') diff --git a/src/docs/ja-JP/general/faq.md b/src/docs/ja-JP/general/faq.md index d956039c12..86180e04bc 100644 --- a/src/docs/ja-JP/general/faq.md +++ b/src/docs/ja-JP/general/faq.md @@ -2,6 +2,14 @@ ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 +詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 +なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 +詳しくは[こちら](todo)をご覧ください。 + ## 他のサーバーのユーザーをフォローするときは? メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` diff --git a/src/docs/ja-JP/general/report-issue.md b/src/docs/ja-JP/general/report-issue.md new file mode 100644 index 0000000000..c694eb2092 --- /dev/null +++ b/src/docs/ja-JP/general/report-issue.md @@ -0,0 +1,10 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご確認ください。 +それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 +投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/ja-JP/general/troubleshooting.md b/src/docs/ja-JP/general/troubleshooting.md index d3b53d5482..e44eddd3ba 100644 --- a/src/docs/ja-JP/general/troubleshooting.md +++ b/src/docs/ja-JP/general/troubleshooting.md @@ -1,5 +1,6 @@ # トラブルシューティング 問題が発生したときは、まずこちらをご確認ください。 +該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 ## クライアントが起動しない ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 @@ -7,6 +8,13 @@ これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 -- cgit v1.2.3-freya From 401351d9c8caaa02102ab639a55e786c7daa3080 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 6 Aug 2021 02:38:45 +0900 Subject: Improve docs --- src/docs/ja-JP/general/misskey.md | 6 +++--- src/docs/ja-JP/general/report-issue.md | 2 +- src/docs/ja-JP/general/troubleshooting.md | 6 ++++++ 3 files changed, 10 insertions(+), 4 deletions(-) (limited to 'src/docs') diff --git a/src/docs/ja-JP/general/misskey.md b/src/docs/ja-JP/general/misskey.md index 9941e0ef94..7a50040ad0 100644 --- a/src/docs/ja-JP/general/misskey.md +++ b/src/docs/ja-JP/general/misskey.md @@ -59,9 +59,9 @@ Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は ## よくある質問 ### プロジェクトは何を目指していますか? -強いて言うと、広く使われる汎用的なプラットフォームになることを目指しています。 -Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)に基づいて開発が行われているわけではなく、その点ではフラットです。 -それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっています。 +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 +Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 +それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 ### 企業によって開発されていますか? diff --git a/src/docs/ja-JP/general/report-issue.md b/src/docs/ja-JP/general/report-issue.md index c694eb2092..575ea3950c 100644 --- a/src/docs/ja-JP/general/report-issue.md +++ b/src/docs/ja-JP/general/report-issue.md @@ -1,5 +1,5 @@ # 不具合の報告 -不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご確認ください。 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 diff --git a/src/docs/ja-JP/general/troubleshooting.md b/src/docs/ja-JP/general/troubleshooting.md index e44eddd3ba..8babb3523b 100644 --- a/src/docs/ja-JP/general/troubleshooting.md +++ b/src/docs/ja-JP/general/troubleshooting.md @@ -1,6 +1,7 @@ # トラブルシューティング 問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 +[よくある質問](./faq)も合わせてお役立てください。 ## クライアントが起動しない ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 @@ -12,6 +13,7 @@ 以下を試してみてください: - クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる @@ -24,3 +26,7 @@ ## UI上で特定の要素が表示されない 広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 +[翻訳に参加](./misskey)していただくことも可能です。 -- cgit v1.2.3-freya From 3739638c816055add4b4c3f17bcfa507474e48c5 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 6 Aug 2021 03:28:47 +0900 Subject: Improve docs --- src/client/pages/doc.vue | 18 ++++++++++++++++++ src/docs/ja-JP/features/antenna.md | 4 ++++ src/docs/ja-JP/features/drive.md | 9 +++++++++ src/docs/ja-JP/features/note.md | 14 ++++++++------ src/docs/ja-JP/general/misskey.md | 5 +++-- src/docs/ja-JP/general/troubleshooting.md | 3 ++- 6 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 src/docs/ja-JP/features/antenna.md (limited to 'src/docs') diff --git a/src/client/pages/doc.vue b/src/client/pages/doc.vue index 8647b0a44c..017211036a 100644 --- a/src/client/pages/doc.vue +++ b/src/client/pages/doc.vue @@ -208,6 +208,24 @@ export default defineComponent({ padding: 0; } } + + ::v-deep(.info) { + font-size: 90%; + background: var(--infoBg); + color: var(--infoFg); + padding: 1em; + margin: 0.75em 0; + border-radius: 6px; + } + + ::v-deep(.warn) { + font-size: 90%; + background: var(--infoWarnBg); + color: var(--infoWarnFg); + padding: 1em; + margin: 0.75em 0; + border-radius: 6px; + } } > .footer { diff --git a/src/docs/ja-JP/features/antenna.md b/src/docs/ja-JP/features/antenna.md new file mode 100644 index 0000000000..94ad9e4aea --- /dev/null +++ b/src/docs/ja-JP/features/antenna.md @@ -0,0 +1,4 @@ +# アンテナ +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/ja-JP/features/drive.md b/src/docs/ja-JP/features/drive.md index d169b7f54b..784fb492e8 100644 --- a/src/docs/ja-JP/features/drive.md +++ b/src/docs/ja-JP/features/drive.md @@ -6,3 +6,12 @@ ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 +閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 +このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/ja-JP/features/note.md b/src/docs/ja-JP/features/note.md index 00bfbf59fa..45fbbbfc37 100644 --- a/src/docs/ja-JP/features/note.md +++ b/src/docs/ja-JP/features/note.md @@ -3,15 +3,17 @@ ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 -ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 -ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 -他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 -コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。 - ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 +ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 +他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ ## Renote 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 @@ -26,7 +28,7 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ### パブリック 全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 -アカウントが[サイレンス](./silence)状態の時は、この公開範囲は使用できません。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
### ホーム 全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 diff --git a/src/docs/ja-JP/general/misskey.md b/src/docs/ja-JP/general/misskey.md index 7a50040ad0..209f7ce269 100644 --- a/src/docs/ja-JP/general/misskey.md +++ b/src/docs/ja-JP/general/misskey.md @@ -7,7 +7,7 @@ Misskeyはオープンソースの分散型マイクロブログプラットフ ## 歴史 開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 -Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
誰でも開発に参加することができ、現在でも活発に開発が続いています。 @@ -23,7 +23,7 @@ Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 -技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは[GitHub上でホスティングされています。](https://github.com/misskey-dev) +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
## 開発に参加する、プロジェクトを支援する Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 @@ -113,3 +113,4 @@ Misskeyは開発が進むにつれ使用する技術も大きく変わってき ### 時折目にする猫耳の可愛い女の子は? Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/ja-JP/general/troubleshooting.md b/src/docs/ja-JP/general/troubleshooting.md index 8babb3523b..6e3db8e469 100644 --- a/src/docs/ja-JP/general/troubleshooting.md +++ b/src/docs/ja-JP/general/troubleshooting.md @@ -1,7 +1,8 @@ # トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ 問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 -[よくある質問](./faq)も合わせてお役立てください。 ## クライアントが起動しない ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 -- cgit v1.2.3-freya From 342794c728541f3e3737fe7a6bd28c1505cd2dd3 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 6 Aug 2021 10:49:04 +0900 Subject: Update mfm.md --- src/docs/ja-JP/features/mfm.md | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/docs') diff --git a/src/docs/ja-JP/features/mfm.md b/src/docs/ja-JP/features/mfm.md index 248bae3fd5..24ff6fa824 100644 --- a/src/docs/ja-JP/features/mfm.md +++ b/src/docs/ja-JP/features/mfm.md @@ -1,3 +1,13 @@ # MFM MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 -- cgit v1.2.3-freya From 49b3a83f7670e540d2c2569fa21bc406b2de2118 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 6 Aug 2021 11:04:17 +0900 Subject: Improve docs --- src/docs/ja-JP/features/favorite.md | 6 ++++++ src/docs/ja-JP/features/note.md | 1 + 2 files changed, 7 insertions(+) create mode 100644 src/docs/ja-JP/features/favorite.md (limited to 'src/docs') diff --git a/src/docs/ja-JP/features/favorite.md b/src/docs/ja-JP/features/favorite.md new file mode 100644 index 0000000000..c788fd37e9 --- /dev/null +++ b/src/docs/ja-JP/features/favorite.md @@ -0,0 +1,6 @@ +# お気に入り +[ノート](./node)をお気に入りとして登録できる機能です。 +お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 +お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/ja-JP/features/note.md b/src/docs/ja-JP/features/note.md index 45fbbbfc37..a8b030fa2b 100644 --- a/src/docs/ja-JP/features/note.md +++ b/src/docs/ja-JP/features/note.md @@ -18,6 +18,7 @@ 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
## CW Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 -- cgit v1.2.3-freya From 48113f3afd25168f772bb81d83df911ea5abda71 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 6 Aug 2021 14:28:40 +0900 Subject: Improve doc --- src/client/components/ui/folder.vue | 3 +++ src/docs/ja-JP/general/misskey.md | 3 +++ 2 files changed, 6 insertions(+) (limited to 'src/docs') diff --git a/src/client/components/ui/folder.vue b/src/client/components/ui/folder.vue index 4281ec7778..e6af40e36d 100644 --- a/src/client/components/ui/folder.vue +++ b/src/client/components/ui/folder.vue @@ -99,9 +99,12 @@ export default defineComponent({ z-index: 10; position: sticky; top: var(--stickyTop, 0px); + background: var(--panel); + /* TODO panelの半透明バージョンをプログラマティックに作りたい background: var(--X17); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(20px); + */ > .title { margin: 0; diff --git a/src/docs/ja-JP/general/misskey.md b/src/docs/ja-JP/general/misskey.md index 209f7ce269..97ffd23eb2 100644 --- a/src/docs/ja-JP/general/misskey.md +++ b/src/docs/ja-JP/general/misskey.md @@ -54,6 +54,9 @@ Misskeyはビジネスではなく、利用は無料であるため、収益は 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 +開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + ## クレジット Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 -- cgit v1.2.3-freya From 18afdd6040ff21e43833cebacb92909f87a253f9 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 7 Aug 2021 13:35:18 +0900 Subject: Improve docs --- src/docs/ja-JP/features/note.md | 7 +++++++ src/docs/ja-JP/features/timeline.md | 25 +++++++++++++++++++++---- src/docs/ja-JP/general/glossary.md | 12 ++++++++++++ 3 files changed, 40 insertions(+), 4 deletions(-) (limited to 'src/docs') diff --git a/src/docs/ja-JP/features/note.md b/src/docs/ja-JP/features/note.md index a8b030fa2b..b32df7b727 100644 --- a/src/docs/ja-JP/features/note.md +++ b/src/docs/ja-JP/features/note.md @@ -43,6 +43,13 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ### 「ローカルのみ」オプション このオプションを有効にすると、リモートにノートを連合しなくなります。 +### 公開範囲の比較 + + + + +
パブリックホームフォロワーダイレクト
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ ## ピン留め ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 diff --git a/src/docs/ja-JP/features/timeline.md b/src/docs/ja-JP/features/timeline.md index de8c6e5605..6e8ad62a0b 100644 --- a/src/docs/ja-JP/features/timeline.md +++ b/src/docs/ja-JP/features/timeline.md @@ -4,13 +4,30 @@ なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 ## ホーム -自分のフォローしているユーザーの投稿 +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 ## ローカル -全てのローカルユーザーの「ホーム」指定されていない投稿 +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 ## ソーシャル -自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿 +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 ## グローバル -全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿 +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 比較 +| ソース | | | タイムライン | | | +|-----------------------|------------|--------|---------|------------|------------| +| ユーザー | 公開範囲 | ホーム | ローカル | ソーシャル | グローバル | +| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | +| リモート (未フォロー) | 公開 | | | | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | diff --git a/src/docs/ja-JP/general/glossary.md b/src/docs/ja-JP/general/glossary.md index 59756b6857..5fab0990d9 100644 --- a/src/docs/ja-JP/general/glossary.md +++ b/src/docs/ja-JP/general/glossary.md @@ -25,6 +25,15 @@ Contents Warningの略。ノートの内容を、操作なしには表示しな (読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + ## MFM (読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) @@ -37,6 +46,9 @@ Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なし (読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + ## 藍 (読み: あい) Misskeyの看板娘(公式キャラクター)です。 -- cgit v1.2.3-freya From 2ceeb170568c240cb94134a45324370da66cfed2 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 7 Aug 2021 13:41:14 +0900 Subject: Add doc for admin --- locales/ja-JP.yml | 1 + src/client/pages/docs.vue | 10 ++++++++++ src/docs/ja-JP/admin/faq.md | 5 +++++ 3 files changed, 16 insertions(+) create mode 100644 src/docs/ja-JP/admin/faq.md (limited to 'src/docs') diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index e3d0afcefb..ef6a094fd7 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -775,6 +775,7 @@ _docs: features: "機能" generalTopics: "一般的なトピック" advancedTopics: "高度なトピック" + admin: "管理" _ad: back: "戻る" diff --git a/src/client/pages/docs.vue b/src/client/pages/docs.vue index 8bd07937f8..b1d3c2c7f9 100644 --- a/src/client/pages/docs.vue +++ b/src/client/pages/docs.vue @@ -36,6 +36,16 @@ + + +
+ +
{{ doc.title }}
+
{{ doc.summary }}
+
{{ $ts._docs.continueReading }}
+
+
+
diff --git a/src/docs/ja-JP/admin/faq.md b/src/docs/ja-JP/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/ja-JP/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 -- cgit v1.2.3-freya From 90999e0ef960f0a19744339a4c07abddd5459932 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 7 Aug 2021 13:56:18 +0900 Subject: Improve docs --- src/docs/ja-JP/admin/disable-timelines.md | 11 +++++++++++ src/docs/ja-JP/general/glossary.md | 6 ++++++ 2 files changed, 17 insertions(+) create mode 100644 src/docs/ja-JP/admin/disable-timelines.md (limited to 'src/docs') diff --git a/src/docs/ja-JP/admin/disable-timelines.md b/src/docs/ja-JP/admin/disable-timelines.md new file mode 100644 index 0000000000..d5b4182e1e --- /dev/null +++ b/src/docs/ja-JP/admin/disable-timelines.md @@ -0,0 +1,11 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 +しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 +サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 +もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用可能です。 diff --git a/src/docs/ja-JP/general/glossary.md b/src/docs/ja-JP/general/glossary.md index 5fab0990d9..b9df7cfa81 100644 --- a/src/docs/ja-JP/general/glossary.md +++ b/src/docs/ja-JP/general/glossary.md @@ -53,9 +53,15 @@ Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なし (読み: あい) Misskeyの看板娘(公式キャラクター)です。 +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + ## インスタンス todo +## コントロールパネル +インスタンスの設定画面のこと。 + ## サーバー todo -- cgit v1.2.3-freya From a1a51ce51876ac20b790db3817567a5eafc6b1e0 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 7 Aug 2021 14:05:12 +0900 Subject: Improve docs --- src/docs/ja-JP/admin/disable-timelines.md | 2 +- src/docs/ja-JP/advanced/aiscript.md | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'src/docs') diff --git a/src/docs/ja-JP/admin/disable-timelines.md b/src/docs/ja-JP/admin/disable-timelines.md index d5b4182e1e..910b31bf11 100644 --- a/src/docs/ja-JP/admin/disable-timelines.md +++ b/src/docs/ja-JP/admin/disable-timelines.md @@ -8,4 +8,4 @@ LTLやSTLは、そのインスタンス全員の投稿が見れるため、新
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
-なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用可能です。 +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/ja-JP/advanced/aiscript.md b/src/docs/ja-JP/advanced/aiscript.md index 6c28b446e3..604d17daa8 100644 --- a/src/docs/ja-JP/advanced/aiscript.md +++ b/src/docs/ja-JP/advanced/aiscript.md @@ -1,4 +1,7 @@ # AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 -## 関数 -デフォルトで値渡しです。 +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 -- cgit v1.2.3-freya From aa28e8a7a6e5432da11d9b649c0bc8fd0400bdce Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 7 Aug 2021 14:42:51 +0900 Subject: Update stream.md --- src/docs/ja-JP/advanced/stream.md | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/docs') diff --git a/src/docs/ja-JP/advanced/stream.md b/src/docs/ja-JP/advanced/stream.md index 40fc49916e..9d5599a888 100644 --- a/src/docs/ja-JP/advanced/stream.md +++ b/src/docs/ja-JP/advanced/stream.md @@ -38,6 +38,8 @@ MisskeyのストリーミングAPIにはチャンネルという概念があり Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + ### チャンネルに接続する チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: -- cgit v1.2.3-freya From a41144a00f7e0e8ac2769e20c3caca11f8b84c3a Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 7 Aug 2021 15:13:38 +0900 Subject: Improve docs --- src/docs/ja-JP/advanced/stream.md | 12 +++--------- src/docs/ja-JP/features/drive.md | 2 ++ src/docs/ja-JP/features/widgets.md | 8 ++++++++ 3 files changed, 13 insertions(+), 9 deletions(-) create mode 100644 src/docs/ja-JP/features/widgets.md (limited to 'src/docs') diff --git a/src/docs/ja-JP/advanced/stream.md b/src/docs/ja-JP/advanced/stream.md index 9d5599a888..da6cd216a5 100644 --- a/src/docs/ja-JP/advanced/stream.md +++ b/src/docs/ja-JP/advanced/stream.md @@ -13,9 +13,7 @@ 認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 -
-

認証情報の取得については、こちらのドキュメントをご確認ください。

-
+
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
--- @@ -61,9 +59,7 @@ Misskeyのストリームに接続しただけでは、まだリアルタイム * `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 * `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 -
-

IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。

-
+
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
### チャンネルからのメッセージを受け取る 例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 @@ -147,9 +143,7 @@ Misskeyのストリームに接続しただけでは、まだリアルタイム * `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 * `data`には、エンドポイントのパラメータを含めます。 -
-

APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。

-
+
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
### レスポンスの受信 diff --git a/src/docs/ja-JP/features/drive.md b/src/docs/ja-JP/features/drive.md index 784fb492e8..dce09a449a 100644 --- a/src/docs/ja-JP/features/drive.md +++ b/src/docs/ja-JP/features/drive.md @@ -3,6 +3,8 @@ [ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 diff --git a/src/docs/ja-JP/features/widgets.md b/src/docs/ja-JP/features/widgets.md new file mode 100644 index 0000000000..e9b938e8c4 --- /dev/null +++ b/src/docs/ja-JP/features/widgets.md @@ -0,0 +1,8 @@ +# ウィジェット +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 +ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo -- cgit v1.2.3-freya From 65f1afc4e0c4b8d04d1c39b3a0d11e46ce6cc59e Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 7 Aug 2021 16:54:51 +0900 Subject: Improve docs --- src/docs/ja-JP/features/note.md | 2 ++ src/docs/ja-JP/general/faq.md | 4 ++++ 2 files changed, 6 insertions(+) (limited to 'src/docs') diff --git a/src/docs/ja-JP/features/note.md b/src/docs/ja-JP/features/note.md index b32df7b727..c5de5c89a5 100644 --- a/src/docs/ja-JP/features/note.md +++ b/src/docs/ja-JP/features/note.md @@ -20,6 +20,8 @@ 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + ## CW Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 diff --git a/src/docs/ja-JP/general/faq.md b/src/docs/ja-JP/general/faq.md index 86180e04bc..9187fa3773 100644 --- a/src/docs/ja-JP/general/faq.md +++ b/src/docs/ja-JP/general/faq.md @@ -13,6 +13,10 @@ Misskeyのプロジェクト自体についてのよくある質問は[こちら ## 他のサーバーのユーザーをフォローするときは? メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 +Renoteについては[こちら](../features/note)をご確認ください。 + ## URLのプレビューを表示させたくない MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 -- cgit v1.2.3-freya From c2f4fb7ba7f778bf79fd78d0300149518cae7de7 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 7 Aug 2021 18:10:33 +0900 Subject: Update troubleshooting.md --- src/docs/ja-JP/general/troubleshooting.md | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/docs') diff --git a/src/docs/ja-JP/general/troubleshooting.md b/src/docs/ja-JP/general/troubleshooting.md index 6e3db8e469..508e9dd70c 100644 --- a/src/docs/ja-JP/general/troubleshooting.md +++ b/src/docs/ja-JP/general/troubleshooting.md @@ -10,6 +10,13 @@ これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + ## クライアントの動作が遅い 以下を試してみてください: -- cgit v1.2.3-freya From d2c14b844ed1f4dffa66c4a9d64abdf07ad66301 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 7 Aug 2021 19:25:54 +0900 Subject: New Crowdin updates (#7610) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations mute.md (Esperanto) * New translations stream.md (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (French) * New translations ja-JP.yml (French) * New translations ja-JP.yml (French) * New translations ja-JP.yml (English) * New translations ja-JP.yml (French) * New translations ja-JP.yml (English) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (French) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations keyboard-shortcut.md (Esperanto) * New translations timelines.md (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations follow.md (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations custom-emoji.md (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (German) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (Chinese Simplified) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Arabic) * New translations ja-JP.yml (French) * New translations ja-JP.yml (French) * New translations ja-JP.yml (Italian) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (Chinese Simplified) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (Russian) * New translations ja-JP.yml (German) * New translations ja-JP.yml (Russian) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (English) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (English) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (English) * New translations ja-JP.yml (English) * New translations ja-JP.yml (English) * New translations ja-JP.yml (English) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Russian) * New translations ja-JP.yml (Indonesian) * New translations ja-JP.yml (Chinese Traditional) * New translations ja-JP.yml (Chinese Simplified) * New translations ja-JP.yml (Ukrainian) * New translations ja-JP.yml (French) * New translations ja-JP.yml (Polish) * New translations ja-JP.yml (Korean) * New translations ja-JP.yml (Italian) * New translations ja-JP.yml (Spanish) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (Japanese, Kansai) * New translations ja-JP.yml (Chinese Simplified) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Russian) * New translations ja-JP.yml (Indonesian) * New translations ja-JP.yml (Chinese Traditional) * New translations ja-JP.yml (Chinese Simplified) * New translations ja-JP.yml (Ukrainian) * New translations ja-JP.yml (French) * New translations ja-JP.yml (Polish) * New translations ja-JP.yml (Korean) * New translations ja-JP.yml (Italian) * New translations ja-JP.yml (Spanish) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (Japanese, Kansai) * New translations ja-JP.yml (Russian) * New translations ja-JP.yml (Indonesian) * New translations ja-JP.yml (Chinese Traditional) * New translations ja-JP.yml (Chinese Simplified) * New translations ja-JP.yml (Ukrainian) * New translations ja-JP.yml (French) * New translations ja-JP.yml (Polish) * New translations ja-JP.yml (Korean) * New translations ja-JP.yml (Italian) * New translations ja-JP.yml (Arabic) * New translations ja-JP.yml (Spanish) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (Japanese, Kansai) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) --- locales/ar-SA.yml | 4 + locales/de-DE.yml | 517 ++++++++++++++++--------------- locales/en-US.yml | 603 ++++++++++++++++++------------------ locales/eo-UY.yml | 345 +++++++++++++++------ locales/es-ES.yml | 4 + locales/fr-FR.yml | 15 + locales/id-ID.yml | 11 + locales/it-IT.yml | 6 + locales/ja-KS.yml | 4 + locales/ko-KR.yml | 11 + locales/pl-PL.yml | 4 + locales/ru-RU.yml | 13 + locales/uk-UA.yml | 4 + locales/zh-CN.yml | 12 + locales/zh-TW.yml | 4 + src/docs/eo-UY/custom-emoji.md | 2 +- src/docs/eo-UY/follow.md | 2 +- src/docs/eo-UY/keyboard-shortcut.md | 2 +- src/docs/eo-UY/mute.md | 2 +- src/docs/eo-UY/stream.md | 2 +- src/docs/eo-UY/timelines.md | 4 +- src/docs/id-ID/create-plugin.md | 2 +- 22 files changed, 930 insertions(+), 643 deletions(-) (limited to 'src/docs') diff --git a/locales/ar-SA.yml b/locales/ar-SA.yml index 6b1f53caeb..3de8ac764e 100644 --- a/locales/ar-SA.yml +++ b/locales/ar-SA.yml @@ -427,9 +427,13 @@ inUse: "مستخدم" info: "عن" user: "المستخدمون" administration: "إدارة " +postToGallery: "انشر في المعرض" +gallery: "المعرض" expiration: "ينتهي استطلاع الرأي في" middle: "متوسط" global: "الشامل" +_docs: + admin: "إدارة " _email: _follow: title: "يتابعك" diff --git a/locales/de-DE.yml b/locales/de-DE.yml index 751290441e..c9cff1fec1 100644 --- a/locales/de-DE.yml +++ b/locales/de-DE.yml @@ -1,7 +1,7 @@ --- _lang_: "Deutsch" -headlineMisskey: "Durch Notizen verbundenes Netzwerk" -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! 🚀" +headlineMisskey: "Ein durch Notizen verbundenes Netzwerk" +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. 👍\nErforsche eine neue Welt! 🚀" monthAndDay: "{day}/{month}" search: "Suchen" notifications: "Benachrichtigungen" @@ -19,16 +19,16 @@ noNotifications: "Keine Benachrichtigungen" instance: "Instanz" settings: "Einstellungen" basicSettings: "Allgemeine Einstellungen" -otherSettings: "Andere Einstellungen" +otherSettings: "Weitere Einstellungen" openInWindow: "In Fenster öffnen" profile: "Profil" timeline: "Chronik" noAccountDescription: "Dieser Nutzer hat seine Profilbeschreibung noch nicht ausgefüllt." -login: "Einloggen" -loggingIn: "Du wirst eingeloggt..." -logout: "Ausloggen" +login: "Anmelden" +loggingIn: "Du wirst angemeldet..." +logout: "Abmelden" signup: "Registrieren" -uploading: "Upload läuft" +uploading: "Wird hochgeladen..." save: "Speichern" users: "Benutzer" addUser: "Benutzer hinzufügen" @@ -47,28 +47,28 @@ 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" -searchUser: "Benutzersuche" +copyUsername: "Benutzername kopieren" +searchUser: "Nach einem Benutzer suchen" reply: "Antworten" -loadMore: "Mehr anzeigen" +loadMore: "Mehr laden" showMore: "Mehr anzeigen" -youGotNewFollower: "Du hast einen neuen Follower" +youGotNewFollower: "ist dir gefolgt" receiveFollowRequest: "Follow-Anfrage erhalten" followRequestAccepted: "Follow-Anfrage akzeptiert" mention: "Erwähnung" mentions: "Erwähnungen" directNotes: "Direktnachrichten" -importAndExport: "Importieren und Exportieren" -import: "Importieren" -export: "Exportieren" +importAndExport: "Import und Export" +import: "Import" +export: "Export" files: "Dateien" download: "Herunterladen" -driveFileDeleteConfirm: "Möchtest du die Datei \"{name}\" löschen? Die zugehörige Notiz wird ebenso verschwinden." +driveFileDeleteConfirm: "Möchtest du die Datei \"{name}\" wirklich 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: "Du hast keine Listen" +noLists: "Keine Listen" note: "Notiz" notes: "Notizen" following: "Folgt" @@ -80,8 +80,8 @@ error: "Fehler" somethingHappened: "Ein Fehler ist aufgetreten" retry: "Wiederholen" pageLoadError: "Laden der Seite fehlgeschlagen." -pageLoadErrorDescription: "Dieser Fehler wird meist durch Netzwerkfehler oder den Browser-Cache verursacht. Versuche den Browser-Cache zu leeren und es nach kurzer Zeit noch einmal zu probieren." -enterListName: "Listennamen eingeben" +pageLoadErrorDescription: "Dieser Fehler wird meist durch Netzwerkfehler oder den Browser-Cache verursacht. Versuche bitte den Browser-Cache zu leeren und es nach kurzer Zeit noch einmal zu probieren." +enterListName: "Name der Liste eingeben" privacy: "Privatsphäre" makeFollowManuallyApprove: "Follow-Anfragen benötigen Bestätigung" defaultNoteVisibility: "Standardsichtbarkeit" @@ -89,7 +89,7 @@ follow: "Folgen" followRequest: "Follow-Anfrage" followRequests: "Follow-Anfragen" unfollow: "Nicht mehr folgen" -followRequestPending: "Ausstehende Follow-Anfrage" +followRequestPending: "Follow-Anfrage ausstehend" enterEmoji: "Gib ein Emoji ein" renote: "Renote" unrenote: "Renote zurücknehmen" @@ -97,19 +97,19 @@ renoted: "Renote getätigt." cantRenote: "Renote dieses Beitrags nicht möglich." cantReRenote: "Renote einer Renote nicht möglich." quote: "Zitieren" -pinnedNote: "Angepinnte Notiz" -pinned: "Anheften" +pinnedNote: "Angeheftete Notiz" +pinned: "Angeheftet" you: "Du" -clickToShow: "Klicke, um diesen Inhalt anzusehen" +clickToShow: "Zum Anzeigen anklicken" sensitive: "NSFW" add: "Hinzufügen" reaction: "Reaktionen" -reactionSettingDescription: "Gib deine Lieblingsreaktionen ein, um sie der Reaktionsauswahl hinzuzufügen." +reactionSettingDescription: "Wähle die Reaktionen aus, die in der Reaktionsauswahl angezeigt werden sollen." reactionSettingDescription2: "Ziehe zum Anordnen, Klicke zum Löschen, Drücke \"+\" zum Hinzufügen" rememberNoteVisibility: "Notizsichtbarkeit merken" attachCancel: "Anhang entfernen" markAsSensitive: "Als NSFW markieren" -unmarkAsSensitive: "Markierung als NSFW zurücknehmen" +unmarkAsSensitive: "NSFW-Markierung entfernen" enterFileName: "Dateinamen eingeben" mute: "Stummschalten" unmute: "Stummschaltung aufheben" @@ -120,27 +120,27 @@ unsuspend: "Sperrung aufheben" blockConfirm: "Möchtest du diesen Benutzer wirklich blockieren?" unblockConfirm: "Möchtest du diese Blockierung 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" +unsuspendConfirm: "Möchtest du diesen Benutzer wirklich entsperren?" +selectList: "Liste auswählen" selectAntenna: "Antenne auswählen" selectWidget: "Widget auswählen" editWidgets: "Widgets bearbeiten" editWidgetsExit: "Fertig" customEmojis: "Benutzerdefinierte Emojis" -emoji: "Emoji" +emoji: "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." +cacheRemoteFiles: "Dateien von fremden Instanzen im Cache speichern" +cacheRemoteFilesDescription: "Ist diese Einstellung deaktiviert, so werden Dateien fremder Instanzen direkt von dort geladen. Hierdurch wird Speicherplatz auf dem Server gespart, aber durch fehlende Generierung von Vorschaubildern mehr Bandbreite verwendet." flagAsBot: "Als Bot markieren" -flagAsBotDescription: "Wenn dieses Benutzerkonto durch ein Programm gesteuert wird, setze diesen Haken. Falls aktiviert, agiert es als Flag für andere Entwickler um endlose Kettenreaktionen mit anderen Bots zu verhindern und lässt Misskey's interne Systeme dieses Benutzerkonto als Bot behandeln." +flagAsBotDescription: "Aktiviere diese Option, falls dieses Benutzerkonto durch ein Programm gesteuert wird. Falls aktiviert, agiert es als Flag für andere Entwickler zur Verhinderung von endlosen Kettenreaktionen mit anderen Bots und lässt Misskey's interne Systeme dieses Benutzerkonto als Bot behandeln." flagAsCat: "Als Katze markieren" -flagAsCatDescription: "Setze diese Flag um dieses Benutzerkonto als Katze zu markieren." -autoAcceptFollowed: "Follow-Anfragen automatisch akzeptieren" +flagAsCatDescription: "Aktiviere diese Option, um dieses Benutzerkonto als Katze zu markieren." +autoAcceptFollowed: "Follow-Anfragen von Benutzern, denen du folgst, automatisch akzeptieren" addAccount: "Benutzerkonto hinzufügen" -loginFailed: "Login fehlgeschlagen" +loginFailed: "Anmeldung fehlgeschlagen" showOnRemote: "Auf Ursprungsinstanz ansehen" general: "Allgemein" wallpaper: "Hintergrund" @@ -152,16 +152,16 @@ 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" +selectUser: "Benutzer auswählen" recipient: "Empfänger" annotation: "Anmerkung" federation: "Föderation" -instances: "Instanz" +instances: "Instanzen" registeredAt: "Registriert am" latestRequestSentAt: "Letzte Anfrage gesendet am" latestRequestReceivedAt: "Letzte Anfrage erhalten am" -latestStatus: "Neuester Status" -storageUsage: "Speicherplatzverbrauch" +latestStatus: "Neuster Status" +storageUsage: "Verbrauchter Speicherplatz" charts: "Diagramme" perHour: "Pro Stunde" perDay: "Pro Tag" @@ -181,39 +181,39 @@ instanceInfo: "Instanzinformationen" statistics: "Statistiken" 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." +clearQueueConfirmText: "Hierdurch werden jegliche noch nicht gesendete Notizen nicht förderiert. Normalerweise wird dies 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: "Stummschaltungen / Blockierungen" +blockedInstancesDescription: "Gib die Hostnamen der Instanzen, welche blockiert werden sollen, durch Zeilenumbrüche getrennt an. Blockierte Instanzen können mit dieser instanz nicht mehr kommunizieren." +muteAndBlock: "Stummschaltungen und Blockierungen" mutedUsers: "Stummgeschaltete Benutzer" blockedUsers: "Blockierte Benutzer" noUsers: "Keine Benutzer" editProfile: "Profil bearbeiten" noteDeleteConfirm: "Möchtest du diese Notiz wirklich löschen?" -pinLimitExceeded: "Du kannst nicht noch mehr Notizen anpinnen." +pinLimitExceeded: "Es können nicht noch mehr Notizen angeheftet werden" intro: "Misskey Installation abgeschlossen! Lass uns nun ein Administratorkonto erstellen." done: "Fertig" -processing: "In Bearbeitung" +processing: "In Bearbeitung..." preview: "Vorschau" default: "Standard" -noCustomEmojis: "Es existieren keine Emojis" +noCustomEmojis: "Keine benutzerdefinierten Emojis vorhanden" noJobs: "Es gibt keine Jobs" -federating: "Föderiert" +federating: "Wird föderiert" blocked: "Blockiert" suspended: "Gesperrt" all: "Alles" -subscribing: "Abonnieren" -publishing: "Veröffentlichen" +subscribing: "Wird abonniert" +publishing: "Wird veröffentlicht" notResponding: "Antwortet nicht" instanceFollowing: "Gefolgt auf der Instanz" instanceFollowers: "Follower der Instanz" -instanceUsers: "Benutzer dieser Instanz" +instanceUsers: "Benutzer der Instanz" changePassword: "Passwort ändern" security: "Sicherheit" -retypedNotMatch: "Eingaben stimmen nicht überein." -currentPassword: "Momentanes Passwort" +retypedNotMatch: "Beide Eingaben stimmen nicht überein." +currentPassword: "Aktuelles Passwort" newPassword: "Neues Passwort" newPasswordRetype: "Neues Passwort (wiederholen)" attachFile: "Datei anhängen" @@ -221,12 +221,12 @@ more: "Mehr!" featured: "Beliebt" usernameOrUserId: "Benutzername oder Benutzer-ID" noSuchUser: "Benutzer nicht gefunden" -lookup: "Abfragen" +lookup: "Anfragen" announcements: "Ankündigungen" imageUrl: "Bild-URL" remove: "Löschen" removed: "Erfolgreich gelöscht" -removeAreYouSure: "Möchtest du \"{x}\" wirklich löschen?" +removeAreYouSure: "Möchtest du \"{x}\" wirklich entfernen?" deleteAreYouSure: "Möchtest du \"{x}\" wirklich löschen?" resetAreYouSure: "Wirklich zurücksetzen?" saved: "Gespeichert" @@ -237,18 +237,18 @@ 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." +uploadFromUrlMayTakeTime: "Es kann eine Weile dauern, bis das Hochladen abgeschlossen ist." explore: "Erkunden" games: "Misskey Spiele" messageRead: "Gelesen" noMoreHistory: "Kein weiterer Verlauf vorhanden" startMessaging: "Neuen Chat erstellen" -nUsersRead: "Von {n} gelesen" +nUsersRead: "Von {n} Benutzern 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." +remoteUserCaution: "Diese Informationen sind möglicherweise unvollständig, da der Benutzer von einer fremden Instanz stammt." activity: "Aktivität" images: "Bilder" birthday: "Geburtstag" @@ -267,16 +267,16 @@ drive: "Drive" fileName: "Dateiname" selectFile: "Datei auswählen" selectFiles: "Dateien auswählen" -selectFolder: "Wähle einen Ordner" -selectFolders: "Wähle Ordner" +selectFolder: "Ordner auswählen" +selectFolders: "Ordner auswählen" 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" +emptyDrive: "Deine Drive ist leer" +emptyFolder: "Dieser Ordner ist leer" unableToDelete: "Nicht löschbar" inputNewFileName: "Gib einen neuen Dateinamen ein" inputNewDescription: "Gib eine neue Beschreibung ein" @@ -300,8 +300,8 @@ reject: "Ablehnen" normal: "Normal" instanceName: "Name der Instanz" instanceDescription: "Beschreibung der Instanz" -maintainerName: "Administrator" -maintainerEmail: "Administrator-Email" +maintainerName: "Betreiber" +maintainerEmail: "Betreiber-Email" tosUrl: "URL der Nutzungsbedingungen" thisYear: "Dieses Jahr" thisMonth: "Dieser Monat" @@ -319,21 +319,21 @@ disablingTimelinesInfo: "Administratoren und Moderatoren haben immer Zugriff auf 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." +proxyRemoteFiles: "Dateien fremder Instanzen durch Proxy leiten" +proxyRemoteFilesDescription: "Wenn diese Einstellung aktiviert ist, dann werden Dateien von fremdem 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: "Drive-Kapazität pro lokales Benutzerkonto" -driveCapacityPerRemoteAccount: "Drive-Kapazität pro Benutzer anderer Instanzen" +driveCapacityPerRemoteAccount: "Drive-Kapazität pro Benutzer fremder Instanzen" inMb: "In Megabytes" -iconUrl: "Icon-URL" +iconUrl: "Icon-URL (favicon etc)" bannerUrl: "Banner-URL" backgroundImageUrl: "Hintergrundbild-URL" basicInfo: "Basisdaten" -pinnedUsers: "Angepinnte Benutzer" -pinnedUsersDescription: "Gib einen Benutzernamen pro Zeile ein. Diese werden im \"Erkunden\" Tab angezeigt." -pinnedPages: "Angepinnte Seiten" -pinnedPagesDescription: "Gib hier die Pfäde zu den Seiten an, die du an die Spitze dieser Instanz anheften möchtest, getrennt durch neue Zeilen." +pinnedUsers: "Angeheftete Benutzer" +pinnedUsersDescription: "Gib durch Leerzeichen getrennte Benutzer an, die an die \"Erkunden\"-Seite angeheftet werden sollen." +pinnedPages: "Angeheftete Seiten" +pinnedPagesDescription: "Gib durch Leerzeilen getrennte Pfäde zu Seiten an, die du an die Startseite dieser Instanz anheften möchtest.\n" pinnedClipId: "ID des angehefteten Clips" -pinnedNotes: "Angepinnte Notizen" +pinnedNotes: "Angeheftete Notizen" hcaptcha: "hCaptcha" enableHcaptcha: "hCaptcha aktivieren" hcaptchaSiteKey: "Site key" @@ -342,14 +342,14 @@ 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." +avoidMultiCaptchaConfirm: "Das Verwenden von mehreren Captcha-Systemen kann zu Störungen führen. Möchtest du die anderen Systeme deaktivieren? Du kannst mehrere Systeme aktiviert lassen, in dem du auf Abbrechen drückst." antennas: "Antennen" manageAntennas: "Antennen verwalten" name: "Name" 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." +antennaKeywords: "Zu beobachtende Schlüsselwörter" +antennaExcludeKeywords: "Zu ignorierende Schlüsselwörter" +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" enableServiceworker: "ServiceWorker aktivieren" @@ -394,7 +394,7 @@ uploadFolder: "Standardordner für Uploads" cacheClear: "Cache leeren" markAsReadAllNotifications: "Alle Benachrichtigungen als gelesen markieren" markAsReadAllUnreadNotes: "Alle Notizen als gelesen markieren" -markAsReadAllTalkMessages: "Alle Nachrichten als gelesen markieren" +markAsReadAllTalkMessages: "Alle Chats als gelesen markieren" help: "Hilfe" inputMessageHere: "Hier Nachricht eingeben" close: "Schließen" @@ -428,11 +428,11 @@ invitationCode: "Einladungscode" checking: "Wird überprüft..." available: "Verfügbar" unavailable: "Unverfügbar" -usernameInvalidFormat: "Buchstaben, Zahlen und Unterstriche sind verwendbar." +usernameInvalidFormat: "Klein- und Großbuchstaben, Zahlen sowie Unterstriche sind verwendbar." tooShort: "Zu kurz" tooLong: "Zu lang" weakPassword: "Schwaches Passwort" -normalPassword: "Standardpasswort" +normalPassword: "Normales Passwort" strongPassword: "Starkes Passwort" passwordMatched: "Stimmt überein" passwordNotMatched: "Stimmt nicht überein" @@ -450,7 +450,7 @@ joinOrCreateGroup: "Lass dich zu einer Gruppe einladen oder erstelle deine eigen noHistory: "Kein Verlauf" signinHistory: "Anmeldungsverlauf" disableAnimatedMfm: "MFM, die Animationen enthalten, deaktivieren" -doing: "In Bearbeitung" +doing: "In Bearbeitung..." category: "Kategorie" tags: "Schlagwörter" docSource: "Quelle dieses Dokuments" @@ -458,14 +458,14 @@ createAccount: "Benutzerkonto erstellen" existingAccount: "Bestehendes Benutzerkonto" regenerate: "Regenerieren" fontSize: "Schriftgröße" -noFollowRequests: "Du hast keine Follow-Anfragen" +noFollowRequests: "Du hast keine ausstehende Follow-Anfragen" openImageInNewTab: "Bilder in neuem Tab öffnen" dashboard: "Dashboard" local: "Lokal" remote: "Fremd" total: "Gesamt" -weekOverWeekChanges: "Wöchentlich" -dayOverDayChanges: "Täglich" +weekOverWeekChanges: "Veränderung zu letzter Woche" +dayOverDayChanges: "Veränderung zu Gestern" appearance: "Aussehen" clientSettings: "Client-Einstellungen" accountSettings: "Benutzerkonto-Einstellungen" @@ -477,19 +477,19 @@ 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://.s3.amazonaws.com' für AWS S3 oder 'https://storage.googleapis.com/' für GCS." +objectStorageBaseUrlDesc: "Als Referenz verwendete URL. Verwendest du einen CDN oder Proxy, gib dessen URL an. S3: 'https://.s3.amazonaws.com', GCS: 'https://storage.googleapis.com/' etc." 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." +objectStoragePrefixDesc: "Dateien werden in Ordnern unter diesem Prefix gespeichert." objectStorageEndpoint: "Endpoint" -objectStorageEndpointDesc: "Dieses Feld leerlassen, falls du AWS S3 verwendest. Ansonsten trage den Endpoint im Format \"\" oder \":\" an, den Angaben deines Anbieters entsprechend." +objectStorageEndpointDesc: "Im Falle von S3 leerlassen, für andere Anbieter den relevanten Endpoint im Format \"\" oder \":\" angeben." 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." +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" +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" +objectStorageUseProxyDesc: "Deaktiviere dies, falls du keinen Proxy für den Objektspeicher verwenden wirst" objectStorageSetPublicRead: "Bei Upload auf \"public-read\" stellen" serverLogs: "Serverprotokolle" deleteAll: "Alle löschen" @@ -503,29 +503,29 @@ popout: "Pop-Up" volume: "Lautstärke" masterVolume: "Gesamtlautstärke" details: "Details" -chooseEmoji: "Wähle ein Emoji" -unableToProcess: "Der Vorgang konnte nicht abgeschlossen werden." +chooseEmoji: "Emoji auswählen" +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" +installedDate: "Authorisiert am" +lastUsedDate: "Zuletzt verwendet am" 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." +scratchpadDescription: "Die Testumgebung bietet eine Umgebung für AiScript-Experimente. 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" +updateRemoteUser: "Informationen über Benutzer fremder Instanzen 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." +removeAllFollowingDescription: "Dies entfolgt allen Benutzerkonten von {host}. Bitte führe dies durch, falls diese Instanz z.B. nicht mehr existiert." userSuspended: "Dieser Benutzer wurde gesperrt." userSilenced: "Dieser Benutzer wurde instanzweit stummgeschaltet." menu: "Menü" @@ -542,7 +542,7 @@ invisibleNote: "Private Notiz" enableInfiniteScroll: "Automatisch mehr Notizen laden" visibility: "Sichtbarkeit" poll: "Umfrage" -useCw: "Inhalt verdecken" +useCw: "Inhalt verbergen" enablePlayer: "Video-Player öffnen" disablePlayer: "Video-Player schließen" expandTweet: "Tweet ausklappen" @@ -557,7 +557,7 @@ plugins: "Plugins" deck: "Deck" undeck: "Deck verlassen" useBlurEffectForModal: "Weichzeichnungseffekt für Modals verwenden" -useFullReactionPicker: "Vollständige Reaktionsauswahl nutzen" +useFullReactionPicker: "Vollständige Reaktionsauswahl verwenden" width: "Breite" height: "Höhe" large: "Groß" @@ -567,14 +567,14 @@ generateAccessToken: "Zugriffstoken generieren" permission: "Berechtigungen" enableAll: "Alle aktivieren" disableAll: "Alle deaktivieren" -tokenRequested: "Benutzerkontozugriff gewähren" +tokenRequested: "Zugriff zum Benutzerkonto gewähren" pluginTokenRequestedDescription: "Dieses Plugin wird die hier konfigurierten Berechtigungen verwenden können." -notificationType: "Benachrichtigungsart" +notificationType: "Art der Benachrichtigung" edit: "Bearbeiten" useStarForReactionFallback: "Verwende ★ falls das Reaktions-Emoji unbekannt ist" emailServer: "Email-Server" enableEmail: "Email-Versand aktivieren" -emailConfigInfo: "Zur Email-Bestätigung bei Registrierung und zum Zurücksetzen des Passworts verwendet" +emailConfigInfo: "Zur Email-Bestätigung bei Registrierung oder zum Zurücksetzen des Passworts verwendet" email: "Email" emailAddress: "Email-Adresse" smtpConfig: "SMTP-Server Konfiguration" @@ -587,9 +587,9 @@ smtpSecure: "Für SMTP-Verbindungen implizit SSL/TLS verwenden" smtpSecureInfo: "Schalte dies aus, falls du STARTTLS verwendest" testEmail: "Email-Versand testen" wordMute: "Wort-Stummschaltung" -userSaysSomething: "{name} hat etwas gesagt." +userSaysSomething: "{name} hat etwas gesagt" makeActive: "Aktivieren" -display: "Anzeige" +display: "Anzeigeart" copy: "Kopieren" metrics: "Metriken" overview: "Übersicht" @@ -601,19 +601,19 @@ create: "Erstellen" notificationSetting: "Benachrichtigungseinstellungen" notificationSettingDesc: "Wähle die Art der anzuzeigenden Benachrichtigung" useGlobalSetting: "Globale Einstellung verwenden" -useGlobalSettingDesc: "Wenn dies eingeschaltet ist, werden die Benachrichtigungseinstellungen deines Benutzerkontos verwendet. Wenn dies ausgeschaltet ist, können individuelle Einstellungen vorgenommen werden." +useGlobalSettingDesc: "Ist dies eingeschaltet, so werden die Benachrichtigungseinstellungen deines Benutzerkontos verwendet. Wenn dies ausgeschaltet ist, können individuelle Einstellungen vorgenommen werden." other: "Andere" -regenerateLoginToken: "Login-Token regenerieren" -regenerateLoginTokenDescription: "Den bei Logins intern verwendeten Token regenerieren. Normalerweise wird dies nicht benötigt. Bei Regeneration werden alle Geräte ausgeloggt." +regenerateLoginToken: "Anmeldungstoken regenerieren" +regenerateLoginTokenDescription: "Den zur Anmeldung intern verwendeten Token regenerieren. Normalerweise wird dies nicht benötigt. Bei Regeneration werden alle Geräte ausgeloggt." setMultipleBySeparatingWithSpace: "Trenne Elemente durch ein Leerzeichen um mehrere Einstellungen zu kofigurieren." fileIdOrUrl: "Datei-ID oder URL" chatOpenBehavior: "Verhalten des Chatfensters bei Öffnung" behavior: "Verhalten" sample: "Beispiel" -abuseReports: "Melden" +abuseReports: "Meldungen" reportAbuse: "Melden" reportAbuseOf: "{name} melden" -fillAbuseReportDescription: "Bitte gib Details für diese Meldung an. Falls es sich um eine spezielle Notiz handelt, bitte gib dessen URL an." +fillAbuseReportDescription: "Bitte gib zusätzliche Informationen zu dieser Meldung an. Falls es sich um eine spezielle Notiz handelt, bitte gib dessen URL an." abuseReported: "Die Meldung wurde versendet. Vielen Dank." send: "Senden" abuseMarkAsResolved: "Meldung als gelöst markieren" @@ -635,34 +635,34 @@ public: "Öffentlich" i18nInfo: "Misskey wird durch freiwillige Helfer in viele verschiedene Sprachen übersetzt. Auf {link} kannst du mithelfen." manageAccessTokens: "Zugriffstoken verwalten" accountInfo: "Benutzerkonto-Informationen" -notesCount: "Anzahl von Notizen" +notesCount: "Anzahl der Notizen" repliesCount: "Anzahl gesendeter Antworten" -renotesCount: "Anzahl gesendeter Renotes" +renotesCount: "Anzahl getätigter Renotes" repliedCount: "Anzahl erhaltener Antworten" renotedCount: "Anzahl erhaltener Renotes" followingCount: "Anzahl gefolgter Benutzer" followersCount: "Anzahl an Followern" sentReactionsCount: "Anzahl gesendeter Reaktionen" receivedReactionsCount: "Anzahl erhaltener Reaktionen" -pollVotesCount: "Anzahl beantworteter Umfragen" -pollVotedCount: "Anzahl erhaltener Umfrageantworten" +pollVotesCount: "Anzahl gesendeter Antworten auf Umfragen" +pollVotedCount: "Anzahl erhaltener Antworten auf Umfragen" yes: "Ja" no: "Nein" -driveFilesCount: "Anzahl von Drive-Dateien" +driveFilesCount: "Anzahl an Drive-Dateien" driveUsage: "Drive-Auslastung" noCrawle: "Crawler-Indexierung ablehnen" noCrawleDescription: "Suchmaschinen bitten, die eigene Profilseite, Notizen, Seiten usw. nicht zu indexieren" lockedAccountInfo: "Auch wenn du Follow-Anfragen auf manuelle Bestätigung setzt, wird jeder deine Notizen öffentlich sehen können, sofern du die Notizsichtbarkeit nicht auf \"Nur Follower\" setzt." -alwaysMarkSensitive: "Immer als NSFW markieren" -loadRawImages: "Anstatt Vorschaubild immer volles Bild laden" +alwaysMarkSensitive: "Medien standardmäßig als NSFW markieren" +loadRawImages: "Anstatt Vorschaubilder immer Originalbilder anzeigen" disableShowingAnimatedImages: "Animierte Bilder nicht abspielen" verificationEmailSent: "Eine Verifizierungsnachricht wurde versendet. Besuche den dort enthaltenen Link, um die Verifizierung abzuschließen." notSet: "Nicht konfiguriert" emailVerified: "Email-Adresse bestätigt" -noteFavoritesCount: "Anzahl favorisierter Notizen" -pageLikesCount: "Anzahl der Seiten, die mir gefallen" +noteFavoritesCount: "Anzahl an als Favorit markierter Notizen" +pageLikesCount: "Anzahl an als \"Gefällt mir\" markierter Seiten" pageLikedCount: "Anzahl erhaltener \"Gefällt mir\" auf Seiten" -reversiCount: "Anzahl von Reversi-Runden" +reversiCount: "Anzahl an Reversi-Runden" contact: "Kontakt" useSystemFont: "Standardschriftart des Systems verwenden" clips: "Clips" @@ -683,11 +683,11 @@ onlineUsersCount: "{n} Benutzer sind online" nUsers: "{n} Benutzer" nNotes: "{n} Notizen" sendErrorReports: "Fehlerberichte senden" -sendErrorReportsDescription: "Ist diese Option aktiviert, so werden beim Auftreten von Fehlern detaillierte Fehlerinformationen an Misskey weitergegeben, was zur Verbesserung der Qualität von Misskey beiträgt." +sendErrorReportsDescription: "Ist diese Option aktiviert, so werden beim Auftreten von Fehlern detaillierte Fehlerinformationen an Misskey weitergegeben, was zur Verbesserung der Qualität von Misskey beiträgt.\nEnthalten in diesen Informationen sind u.a. die Version deines Betriebssystems, welchen Browser du verwendest und ein Verlauf deiner Aktivitäten." myTheme: "Mein Farbthema" -backgroundColor: "Hintergrund" +backgroundColor: "Hintergrundfarbe" accentColor: "Akzentfarbe" -textColor: "Text" +textColor: "Textfarbe" saveAs: "Speichern als…" advanced: "Fortgeschritten" value: "Wert" @@ -707,7 +707,7 @@ capacity: "Kapazität" inUse: "Verwendet" editCode: "Code bearbeiten" apply: "Anwenden" -receiveAnnouncementFromInstance: "E-Mail-Benachrichtigungen von dieser Instanz empfangen" +receiveAnnouncementFromInstance: "Benachrichtigungen von dieser Instanz empfangen" emailNotification: "E-Mail-Benachrichtigungen" publish: "Veröffentlichen" inChannelSearch: "In Kanal suchen" @@ -722,7 +722,7 @@ unlikeConfirm: "\"Gefällt mir\" wirklich entfernen?" fullView: "Vollansicht" quitFullView: "Vollansicht verlassen" addDescription: "Beschreibung hinzufügen" -userPagePinTip: "Um Notizen hier erscheinen zu lassen, drücke \"Anpinnen\" im Menü individueller Notizen" +userPagePinTip: "Um Notizen hier erscheinen zu lassen, drücke \"Anheften\" im Menü individueller Notizen." notSpecifiedMentionWarning: "Diese Notiz enthält Erwähnungen von Nutzern, die nicht als Empfänger ausgewählt sind" info: "Über" userInfo: "Benutzerinformation" @@ -744,7 +744,7 @@ user: "Benutzer" administration: "Verwaltung" accounts: "Benutzerkonten" switch: "Wechseln" -noMaintainerInformationWarning: "Administratorinformationen sind nicht konfiguriert." +noMaintainerInformationWarning: "Betreiberinformationen sind nicht konfiguriert." noBotProtectionWarning: "Bot-Schutz ist nicht konfiguriert." configure: "Konfigurieren" postToGallery: "Beitrag zu Galerie hinzufügen" @@ -765,21 +765,32 @@ customCss: "Benutzerdefiniertes CSS" customCssWarn: "Verwende diese Einstellung nur, wenn du weißt, was sie tut. Ungültige Eingaben können dazu führen, dass der Client nicht mehr normal funktioniert." global: "Global" squareAvatars: "Profilbilder quadratisch anzeigen" +sent: "Gesendet" +received: "Erhalten" +searchResult: "Suchergebnisse" +hashtags: "Hashtags" +troubleshooting: "Problembehandlung" +_docs: + continueReading: "Mehr lesen" + features: "Funktionen" + generalTopics: "Allgemeine Themen" + advancedTopics: "Erweiterte Themen" + admin: "Administration" _ad: back: "Zurück" reduceFrequencyOfThisAd: "Diese Werbung weniger anzeigen" _forgotPassword: enterEmail: "Gib die Email-Adresse ein, mit der du dich registriert hast. An diese wird ein Link gesendet, mit der du dein Passwort zurücksetzen kannst." ifNoEmail: "Solltest du bei der Registrierung keine Email-Adresse angegeben haben, wende dich bitte an den Administrator." - contactAdmin: "Diese Instanz unterstützt die Verwendung von Email-Adressen nicht. Wende dich, um dein Passwort zurückzusetzen, an den Administrator." + contactAdmin: "Diese Instanz unterstützt die Verwendung von Email-Adressen nicht. Wende dich an den Administrator, um dein Passwort zurückzusetzen." _gallery: my: "Meine Galerie" - liked: "Beiträge, die mir gefallen" + liked: "Mit \"Gefällt mir\" markierte Beiträge" like: "Gefällt mir" unlike: "\"Gefällt mir\" entfernen" _email: _follow: - title: "Du hast einen neuen Follower" + title: "ist dir gefolgt" _receiveFollowRequest: title: "Du hast eine Follow-Anfrage erhalten" _plugin: @@ -802,12 +813,12 @@ _aboutMisskey: morePatrons: "Wir schätzen ebenso die Unterstützung vieler anderer hier nicht gelisteter Personen sehr. Danke! 🥰" patrons: "UnterstützerInnen" _nsfw: - respect: "Als NSFW markierte Bilder verdecken" - ignore: "Als NSFW markierte Bilder nicht verdecken" - force: "Alle Medien verdecken" + respect: "Als NSFW markierte Bilder verbergen" + ignore: "Als NSFW markierte Bilder nicht verbergen" + force: "Alle Medien verbergen" _mfm: cheatSheet: "MFM Spickzettel" - intro: "MFM ist eine an vielen Stellen verwendbare und Misskey-exklusive Markup-Sprache. Hier kannst du eine Liste von verfügbarer MFM-Syntax anschauen." + intro: "MFM ist eine Misskey-exklusive Markup-Sprache, die in Misskey an vielen Stellen verwendet werden kann. Hier kannst du eine Liste von verfügbarer MFM-Syntax einsehen." dummy: "Misskey erweitert die Welt des Fediverse" mention: "Erwähnung" mentionDescription: "Mit At-Zeichen und Nutzername kann ein individueller Nutzer angegeben werden." @@ -816,29 +827,29 @@ _mfm: url: "URL" urlDescription: "Zeigt URLs an." link: "Link" - linkDescription: "Ein spezifizierter Textabschnitt kann als URL angezeigt werden." + linkDescription: "Spezifische Textabschnitte als URL anzeigen." bold: "Fett" boldDescription: "Zeichen zur Betonung dicker erscheinen lassen." small: "Klein" smallDescription: "Inhalt klein und dünn erscheinen lassen." center: "Zentrieren" - centerDescription: "Inhalt zentriert anzeigen lassen." + centerDescription: "Inhalt zentriert anzeigen." inlineCode: "Code (Eingebettet)" - inlineCodeDescription: "Syntax-Hervorhebung für (Programm-)Code eingebettet anzeigen lassen." + inlineCodeDescription: "Syntax-Hervorhebung für (Programm-)Code eingebettet anzeigen." blockCode: "Code (Block)" - blockCodeDescription: "Syntax-Hervorhebung für mehrzeiligen (Programm-)Code als Block anzeigen lassen." + blockCodeDescription: "Syntax-Hervorhebung für mehrzeiligen (Programm-)Code als Block anzeigen." inlineMath: "Mathe (Eingebettet)" inlineMathDescription: "Mathematische Formeln (KaTeX) eingebettet anzeigen." blockMath: "Mathe (Block)" blockMathDescription: "Mehrzeilige mathematische Formeln (KaTeX) als Block einbetten." quote: "Zitationen" - quoteDescription: "Inhalt als Zitat anzeigen lassen." + quoteDescription: "Inhalt als Zitat anzeigen." emoji: "Benutzerdefinierte Emojis" - emojiDescription: "Emoji-Namen mit Doppelpunkten umschließen, um benutzerdefinierte Emojis anzeigen zu lassen." + emojiDescription: "Durch das Umschließen von Emoji-Namen durch Doppelpunkte können benutzerdefinierte Emojis angezeigt werden." search: "Suche" - searchDescription: "Eine vorgefertige Suchanfragebox anzeigen lassen." + searchDescription: "Eine vorgefertige Suchanfragebox anzeigen." flip: "Spiegelung" - flipDescription: "Inhalt horizontal oder vertikal gespiegelt anzeigen lassen." + flipDescription: "Inhalt horizontal oder vertikal gespiegelt anzeigen." jelly: "Animation (Dehnen)" jellyDescription: "Verleiht eine sich dehnende Animation." tada: "Animation (Tada)" @@ -846,7 +857,7 @@ _mfm: jump: "Animation (Sprung)" jumpDescription: "Verleiht eine springende Animation." bounce: "Animation (Federn)" - bounceDescription: "Erzeugt eine federnde Animation." + bounceDescription: "Verleiht eine federnde Animation." shake: "Animation (Zittern)" shakeDescription: "Verleiht eine zitternde Animation." twitch: "Animation (Zucken)" @@ -854,15 +865,17 @@ _mfm: spin: "Animation (Rotieren)" spinDescription: "Verleiht eine rotierende Animation." x2: "Groß" - x2Description: "Lässt Inhalte größer angezeigt werden." + x2Description: "Inhalte größer anzeigen." x3: "Sehr groß" - x3Description: "Lässt Inhalte noch größer angezeigt werden." - x4: "Am größten" + x3Description: "Inhalte noch größer anzeigen." + x4: "Unglaublich groß" x4Description: "Lässt Inhalte noch größer als größer als groß angezeigt werden." - blur: "Weichzeichner" + blur: "Weichzeichnen" blurDescription: "Inhalte durch Weihzeichnung verschwimmen lassen. Durch das Bewegen des Mauszeigers auf den Inhalt wird er klar angezeigt." font: "Schriftart" fontDescription: "Setzt die Schriftart des Inhaltes fest." + rainbow: "Regenbogen" + rainbowDescription: "Lässt den Inhalt in Regenbogenfarben erscheinen." _reversi: reversi: "Reversi" gameSettings: "Spieleinstellungen" @@ -879,12 +892,12 @@ _reversi: cancelReady: "Nicht bereit" opponentTurn: "Zug deines Gegners" myTurn: "Dein Zug" - turnOf: "Zug von {name}" + turnOf: "{name} ist am Zug" pastTurnOf: "Zug von {name}" surrender: "Aufgeben" - surrendered: "durch Aufgabe" + surrendered: "Durch Aufgabe" drawn: "Unentschieden" - won: "{name} hat gesiegt" + won: "{name} gewinnt" black: "Schwarz" white: "Weiß" total: "Gesamt" @@ -910,21 +923,21 @@ _channel: setBanner: "Kanalbanner festlegen" removeBanner: "Kanalbanner entfernen" featured: "Trends" - owned: "Besitzt" + owned: "In Besitz" following: "Gefolgt" usersCount: "{n} Teilnehmer" notesCount: "{n} Notizen" _menuDisplay: - sideFull: "Horizontal" - sideIcon: "Horizontal (Icons)" + sideFull: "Seitlich" + sideIcon: "Seitlich (Icons)" top: "Oben" hide: "Ausblenden" _wordMute: - muteWords: "Wort stummschalten" + muteWords: "Stummgeschaltete Wörter" muteWordsDescription: "Mit Leerzeichen für eine \"UND\"-Verknüpfung trennen, durch Zeilenumbrüche für eine \"ODER\"-Verknüpfung trennen." muteWordsDescription2: "Umgib Schlüsselworter mit Schrägstrichen, um Reguläre Ausdrücke zu verwenden." - softDescription: "Notizen, die die eingestellten Konditionen erfüllen, in der Chronik ausblenden" - hardDescription: "Verhindern, dass Notizen, die die eingestellten Konditionen erfüllen, der Chronik hinzugefügt werden. Zudem werden diese Notizen auch nicht der Chronik hinzugefügt, falls die Konditionen geändert werden." + softDescription: "Notizen, die die angegebenen Konditionen erfüllen, in der Chronik ausblenden." + hardDescription: "Verhindern, dass Notizen, die die angegebenen Konditionen erfüllen, der Chronik hinzugefügt werden. Zudem werden diese Notizen auch nicht der Chronik hinzugefügt, falls die Konditionen geändert werden." soft: "Leicht" hard: "Schwer" mutedNotes: "Stummgeschaltete Notizen" @@ -932,15 +945,15 @@ _theme: explore: "Themen erforschen" install: "Thema installieren" manage: "Themaverwaltung" - code: "Themen-Code" + code: "Themencode" description: "Beschreibung" installed: "{name} wurde installiert" installedThemes: "Installierte Themen" builtinThemes: "Eingebaute Themen" alreadyInstalled: "Dieses Thema ist bereits installiert" - invalid: "Themenformat ist ungültig" + invalid: "Der Themencode dieses Themas ist ungültig" make: "Farbthema erstellen" - base: "Basis" + base: "Vorlage" addConstant: "Konstante hinzufügen" constant: "Konstante" defaultValue: "Standardwert" @@ -956,7 +969,7 @@ _theme: darken: "Verdunkeln" lighten: "Erhellen" inputConstantName: "Name der Konstanten eingeben" - importInfo: "Du kannst hier Themen-Code einfügen, um ihn in den Editor zu importieren" + importInfo: "Du kannst hier Themencode einfügen, um ihn in den Editor zu importieren" deleteConstantConfirm: "Die Konstante {const} wirklich löschen?" keys: accent: "Akzentfarbe" @@ -974,10 +987,10 @@ _theme: navIndicator: "Indikator der Seitenleiste" link: "Link" hashtag: "Hashtag" - mention: "Erwähnungen" - mentionMe: "Erwähnungen (Ich)" + mention: "Erwähnung" + mentionMe: "Erwähnung (Ich)" renote: "Renote" - modalBg: "Hintergrund des Modals" + modalBg: "Modalhintergrund" divider: "Trenner" scrollbarHandle: "Griff des Scrollbalkens" scrollbarHandleHover: "Griff des Scrollbalkens (Mouseover)" @@ -985,10 +998,10 @@ _theme: infoBg: "Hintergrund von Informationen" infoFg: "Text von Informationen" infoWarnBg: "Hintergrund von Warnungen" - infoWarnFg: "Text von Informationen" - cwBg: "Hintergrund von verdeckten Inhalten" - cwFg: "Text von verdeckten Inhalten" - cwHoverBg: "Hintergrund von verdeckten Inhalten (Mouseover)" + infoWarnFg: "Text von Warnungen" + cwBg: "Hintergrund von verborgenen Inhalten" + cwFg: "Text von verborgenen Inhalten" + cwHoverBg: "Hintergrund von verborgenen Inhalten (Mouseover)" toastBg: "Hintergrund von Benachrichtigungen" toastFg: "Text von Benachrichtigungen" buttonBg: "Hintergrund von Schaltflächen" @@ -1007,7 +1020,7 @@ _sfx: noteMy: "Meine Notizen" notification: "Benachrichtigungen" chat: "Chat" - chatBg: "Nachrichten (Hintergrund)" + chatBg: "Chat (Hintergrund)" antenna: "Antennen" channel: "Kanalbenachrichtigung" reversiPutBlack: "Reversi: Schwarz macht einen Zug" @@ -1031,35 +1044,35 @@ _time: _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_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 noch 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." + step2_2: "Informationen darüber, was für eine Person 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_2: "Dann lass uns als nächstes versuchen, eine Notiz zu schreiben. Dies kannst du tun, indem du auf das Stift-Icon oben 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!\"" + step3_4: "Fällt dir nichts ein, das du schreiben 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." + step5_3: "Klicke zum Anzeigen des Profils eines Benutzers auf dessen Profilbild und dann auf den \"Folgen\"-Knopf, um diesem zu folgen." + step5_4: "Je nach Benutzer kann es etwas Zeit in Anspruch nehmen, bis dieser deine Follow-Anfrage bestätigt." + step6_1: "Wenn du nun auch die Notizen anderer Benutzer in deiner Chronik siehst, hast du auch diesmal alles richtig gemacht." + step6_2: "Du kannst ebenso \"Reaktionen\" verwenden, um schnell auf Notizen anderer Benutzer zu reagieren." + step6_3: "Um eine Reaktion anzufügen, klicke auf das \"+\"-Symbol in der Notiz und wähle ein Emoji aus, mit dem du reagieren möchtest." + step7_1: "Glückwunsch! Du hast die Einführung in die Verwendung von Misskey 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" + 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." + step1: "Installiere zuerst 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." + step3: "Gib zum Abschluss den Token ein, der von deiner App angezeigt wird." + step4: "Alle folgenden Anmeldungsversuche werden ab sofort die Eingabe eines solchen Tokens benötigen." + securityKeyInfo: "Du kannst neben Fingerabdruck- oder PIN-Authentifizierung auf deinem Gerät auch Anmeldung mit Hilfe eines FIDO2-kompatiblen Hardware-Sicherheitsschlüssels einrichten." _permissions: "read:account": "Deine Benutzerkontoinformationen lesen" "write:account": "Deine Benutzerkontoinformationen bearbeiten" @@ -1069,18 +1082,18 @@ _permissions: "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" + "read:following": "Die Liste der Benutzer, denen du folgst, lesen" "write:following": "Anderen Benutzern folgen oder entfolgen" "read:messaging": "Chats lesen" - "write:messaging": "Chatnachrichten schicken oder löschen" + "write:messaging": "Chats bedienen" "read:mutes": "Stummschaltungen lesen" "write:mutes": "Stummschaltungen bearbeiten" "write:notes": "Notizen schreiben oder löschen" "read:notifications": "Benachrichtigungen lesen" - "write:notifications": "Benachrichtigungen bearbeiten" + "write:notifications": "Benachrichtigungen bedienen" "read:reactions": "Reaktionen lesen" - "write:reactions": "Reaktionen hinzufügen und ändern" - "write:votes": "In Umfragen abstimmen" + "write:reactions": "Reaktionen bedienen" + "write:votes": "Umfragen bedienen" "read:pages": "Deine Seiten lesen" "write:pages": "Deine Seiten bearbeiten oder löschen" "read:page-likes": "Liste der Seiten, die mir gefallen, lesen" @@ -1088,20 +1101,20 @@ _permissions: "read:user-groups": "Benutzergruppen lesen" "write:user-groups": "Benutzergruppen bearbeiten oder löschen" "read:channels": "Kanäle lesen" - "write:channels": "Kanäle bearbeiten" + "write:channels": "Kanäle bedienen" _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" + permissionAsk: "Diese Anwendung fordert folgende Berechtigungen" + pleaseGoBack: "Bitte kehre zur Anwendung zurück" + callback: "Es wird zur Anwendung zurückgekehrt" 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" + users: "Notizen von einem oder mehreren angegebenen Benutzern" + userList: "Notizen von allen Benutzern einer Liste" + userGroup: "Notizen von allen Benutzern einer Gruppe" _weekday: sunday: "Sonntag" monday: "Montag" @@ -1122,7 +1135,7 @@ _widgets: photos: "Fotos" digitalClock: "Digitaluhr" federation: "Föderation" - postForm: "Neue Notiz anfertigen" + postForm: "Notizfenster" slideshow: "Diashow" button: "Knopf" onlineUsers: "Benutzer Online" @@ -1130,37 +1143,37 @@ _widgets: serverMetric: "Servermetriken" aiscript: "AiScript-Konsole" _cw: - hide: "Ausblenden" - show: "Mehr anzeigen" + hide: "Verbergen" + show: "Inhalt anzeigen" chars: "{count} Zeichen" - files: "{count} Dateien" + files: "{count} Datei(en)" _poll: - noOnlyOneChoice: "Mindestens zwei Antwortmöglichkeiten werden benötigt." + noOnlyOneChoice: "Es müssen mindestens zwei Antwortmöglichkeiten vorhanden sein" choiceN: "Auswahl {n}" noMore: "Du kannst keine weiteren Auswahlmöglichkeiten hinzufügen" - canMultipleVote: "Mehrfachantworten erlauben" - expiration: "Abstimmung endet am" + canMultipleVote: "Auswahl mehrerer Antworten erlauben" + expiration: "Abstimmung beenden" infinite: "Nie" at: "Beenden am..." after: "Beenden nach..." - deadlineDate: "Abstimmungsende" + deadlineDate: "Enddatum" deadlineTime: "Zeit" - duration: "Laufzeit" + duration: "Dauer" votesCount: "{n} Stimmen" totalVotes: "Insgesamt {n} Stimmen" vote: "Abstimmen" showResult: "Ergebnis anzeigen" voted: "Abgestimmt" closed: "Beendet" - remainingDays: "{d} Tage {h} Stunden verbleibend" - remainingHours: "{h} Stunden {m} Minuten verbleibend" - remainingMinutes: "{m} Minuten {s} Sekunden verbleibend" - remainingSeconds: "{s} Sekunden verbleibend" + remainingDays: "{d} Tag(e) {h} Stunde(n) verbleibend" + remainingHours: "{h} Stunde(n) {m} Minute(n) verbleibend" + remainingMinutes: "{m} Minute(n) {s} Sekunde(n) verbleibend" + remainingSeconds: "{s} Sekunde(n) verbleibend" _visibility: public: "Öffentlich" - publicDescription: "Deine Notiz wird global sichtbar sein" + publicDescription: "Deine Notiz wird global für alle Benutzer sichtbar sein" home: "Startseite" - homeDescription: "Deine Notiz wird nur in der Chronik deiner Instanz angezeigt." + homeDescription: "Notiz nur in die Startseiten-Chronik schicken" followers: "Follower" followersDescription: "Nur für Follower sichtbar" specified: "Direkt" @@ -1186,7 +1199,7 @@ _profile: metadata: "Zusätzliche Informationen" metadataEdit: "Zusätzliche Informationen bearbeiten" metadataDescription: "Du kannst auf deinem Profil vier zusätzliche Informationsblöcke anzeigen lassen." - metadataLabel: "Name" + metadataLabel: "Beschriftung" metadataContent: "Inhalt" changeAvatar: "Profilbild ändern" changeBanner: "Banner ändern" @@ -1204,10 +1217,10 @@ _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" + remoteNotesIncDec: "Unterschied in Anzahl der Notizen von fremden Instanzen" notesTotal: "Anzahl aller Notizen" - filesIncDec: "Unterschied in der Anzahl von Dateien" - filesTotal: "Anzahl aller Dateien" + filesIncDec: "Unterschied an Dateien" + filesTotal: "Summe der Dateien" storageUsageIncDec: "Unterschied in der Höhe der Speichernutzung" storageUsageTotal: "Gesamte Speichernutzung" _instanceCharts: @@ -1216,8 +1229,8 @@ _instanceCharts: usersTotal: "Gesamtanzahl an Benutzern" notes: "Unterschied in der Anzahl von Notizen" notesTotal: "Gesamtanzahl an Notizen" - ff: "Unterschied in der Anzahl von Followern" - ffTotal: "Gesamtanzahl an Followern" + ff: "Unterschied in der Anzahl von gefolgten Benutzern und Followern" + ffTotal: "Gesamtanzahl an gefolgten Benutzern und Followern" cacheSize: "Unterschied in der Größe des Caches" cacheSizeTotal: "Gesamtgröße des Caches" files: "Unterschied in der Anzahl der Dateien" @@ -1291,7 +1304,7 @@ _rooms: banknote: "Geldscheine" _pages: newPage: "Seite erstellen" - editPage: "Diese Seite bearbeiten" + editPage: "Seite bearbeiten" readPage: "Quelltext-Ansicht" created: "Seite erfolgreich erstellt" updated: "Seite erfolgreich aktualisiert" @@ -1309,22 +1322,22 @@ _pages: liked: "Seiten, die mir gefallen" featured: "Beliebt" inspector: "Inspektor" - contents: "Inhalt" - content: "Inhalt" + contents: "Inhalte" + content: "Seitenblock" variables: "Variablen" title: "Titel" url: "Seiten-URL" summary: "Zusammenfassung" - alignCenter: "Bestandteile zentrieren" - hideTitleWhenPinned: "Seitentitel ausblenden, wenn an dein Profil angepinnt " + alignCenter: "Zentrieren" + hideTitleWhenPinned: "Seitentitel ausblenden, wenn angeheftet" 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" + selectType: "Typ auswählen" + enterVariableName: "Gib einen Variablennamen ein" variableNameIsAlreadyUsed: "Dieser Name wird bereits von einer anderen Variable verwendet" contentBlocks: "Inhalt" inputBlocks: "Eingabe" @@ -1338,10 +1351,10 @@ _pages: if: "Falls" _if: variable: "Variable" - post: "Neue Notiz anfertigen" + post: "Notizfenster" _post: text: "Inhalt" - attachCanvasImage: "Leinwand als Bild anfügen" + attachCanvasImage: "Leinwandbild anfügen" canvasId: "Leinwand-ID" textInput: "Texteingabe" _textInput: @@ -1365,7 +1378,7 @@ _pages: height: "Höhe" note: "Eingebettete Notiz" _note: - id: "Notiz ID" + id: "Notiz-ID" idDescription: "Du kannst alternativ auch die Notiz-URL angeben." detailed: "Detailierte Ansicht" switch: "Fallunterscheidung" @@ -1381,16 +1394,16 @@ _pages: _button: text: "Titel" colored: "Farbig" - action: "Aktion, die beim Knopfdruck ausgeführt werden soll" + action: "Aktion, die bei Knopfdruck ausgeführt wird" _action: - dialog: "Zeige ein Dialogfenster" + dialog: "Dialogfenster anzeigen" _dialog: content: "Inhalt" - resetRandom: "Setze den Zufallswert zurück" - pushEvent: "Sende ein Event" + resetRandom: "Zufallswert zurücksetzen" + pushEvent: "Ein Event senden" _pushEvent: event: "Eventname" - message: "Nachricht, die bei Aktivierung gezeigt werden soll" + message: "Nachricht, die bei Auslösung des Events angezeigt werden soll" variable: "Variable, die gesendet werden soll" no-variable: "Keine" callAiScript: "AiScript ausführen" @@ -1400,7 +1413,7 @@ _pages: _radioButton: name: "Variablenname" title: "Titel" - values: "Auswahlmöglichkeiten (getrennt durch Zeilenumbrüche)" + values: "Durch Zeilenümbrüche getrennte Auswahlmöglichkeiten" default: "Standardwert" script: categories: @@ -1412,7 +1425,7 @@ _pages: value: "Werte" fn: "Funktionen" text: "Textoperationen" - convert: "Konvertierung" + convert: "Konvertierungen" list: "Listen" blocks: text: "Text" @@ -1459,7 +1472,7 @@ _pages: _mod: arg1: "A" arg2: "B" - round: "Runden" + round: "Rundung von Dezimalstellen" _round: arg1: "Nummer" eq: "A und B sind gleich" @@ -1511,17 +1524,17 @@ _pages: arg2: "Maximum" randomPick: "Zufallswahl aus Liste" _randomPick: - arg1: "Listen" - dailyRandom: "Zufallswahl (Läuft für einen Tag)" + arg1: "Liste" + dailyRandom: "Zufällig (Pro Nutzer jeden Tag verschieden)" _dailyRandom: arg1: "Warscheinlichkeit" - dailyRannum: "Zufallsnummer (Läuft für einen Tag)" + dailyRannum: "Zufallsnummer (Pro Nutzer jeden Tag verschieden)" _dailyRannum: arg1: "Minimum" arg2: "Maximum" - dailyRandomPick: "Zufallswahl aus Liste (Läuft für einen Tag)" + dailyRandomPick: "Zufallsauswahl aus einer Liste (Pro Nutzer jeden Tag verschieden)" _dailyRandomPick: - arg1: "Listen" + arg1: "Liste" seedRandom: "Zufällig (mit Startwert / Seed)" _seedRandom: arg1: "Startwert / Seed" @@ -1531,20 +1544,20 @@ _pages: arg1: "Startwert / Seed" arg2: "Minimum" arg3: "Maximum" - seedRandomPick: "Zufallswahl aus Liste (mit Startwert / Seed)" + seedRandomPick: "Zufallsauswahl aus Liste (mit Startwert / Seed)" _seedRandomPick: arg1: "Startwert / Seed" - arg2: "Listen" - DRPWPM: "Zufallswahl aus gewichteter Liste (Läuft für einen Tag)" + arg2: "Liste" + DRPWPM: "Zufallsauswahl aus gewichteter Liste (Pro Nutzer jeden Tag verschieden)" _DRPWPM: arg1: "Textliste" pick: "Aus einer Liste wählen" _pick: - arg1: "Listen" + arg1: "Liste" arg2: "Position" listLen: "Listenlänge abrufen" _listLen: - arg1: "Listen" + arg1: "Liste" number: "Nummer" stringToNumber: "Text zu Nummer" _stringToNumber: @@ -1555,29 +1568,29 @@ _pages: splitStrByLine: "Text nach Zeilenumbrüchen aufteilen" _splitStrByLine: arg1: "Text" - ref: "Variablen" - aiScriptVar: "AiScript Variablen" - fn: "Funktionen" + ref: "Variable" + aiScriptVar: "AiScript Variable" + fn: "Funktion" _fn: slots: "Slots" slots-info: "Trenne jeden Slot mit einem Zeilenumbruch" arg1: "Ausgabe" - for: "Wiederholen" + for: "for-Schleife" _for: - arg1: "Anzahl der Wiederholungen" + arg1: "Anzahl der Schleifendurchläufe" 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" + boolean: "Wahrheitswert" + array: "Liste" stringArray: "Textliste" emptySlot: "Leerer Slot" enviromentVariables: "Umgebungsvariable" - pageVariables: "Seitenelement" - argVariables: "Eingabe-Slot" + pageVariables: "Seitenelemente" + argVariables: "Eingabe-Slots" _relayStatus: requesting: "Ausstehend" accepted: "Akzeptiert" @@ -1588,7 +1601,7 @@ _notification: youGotReply: "{name} hat dir geantwortet" youGotQuote: "{name} hat dich zitiert" youRenoted: "Renote deiner Notiz von {name}" - youGotPoll: "{name} hat auf deiner Umfrage abgestimmt" + youGotPoll: "{name} hat in deiner Umfrage abgestimmt" youGotMessagingMessageFromUser: "{name} hat dir eine Chatnachricht gesendet" youGotMessagingMessageFromGroup: "In die Gruppe {name} wurde eine Chatnachricht gesendet" youWereFollowed: "ist dir gefolgt" @@ -1604,13 +1617,13 @@ _notification: quote: "Zitationen" reaction: "Reaktionen" pollVote: "Antworten auf Umfragen" - receiveFollowRequest: "Follow-Anfrage erhalten" - followRequestAccepted: "Follow-Anfrage akzeptiert" - groupInvited: "Gruppeneinladung erhalten" + receiveFollowRequest: "Erhaltene Follow-Anfragen" + followRequestAccepted: "Akzeptierte Follow-Anfragen" + groupInvited: "Erhaltene Gruppeneinladungen" app: "Benachrichtigungen von Apps" _deck: alwaysShowMainColumn: "Hauptspalte immer zeigen" - columnAlign: "Spalten ausrichten" + columnAlign: "Spaltenausrichtung" columnMargin: "Spaltenabstand" columnHeaderHeight: "Spaltenkopfhöhe" addColumn: "Spalte hinzufügen" diff --git a/locales/en-US.yml b/locales/en-US.yml index f9d6047964..7b02532331 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -1,6 +1,6 @@ --- _lang_: "English" -headlineMisskey: "Network connected by notes" +headlineMisskey: "A network connected by notes" introMisskey: "Welcome! Misskey is an open source, decentralized microblogging service.\nCreate \"notes\" to share what is happening now, or to share it with everyone around you. 📡\nWith \"reactions\", you can also quickly express your feelings about everyone's notes. 👍\nLet's explore a new world! 🚀" monthAndDay: "{month}/{day}" search: "Search" @@ -28,7 +28,7 @@ login: "Sign In" loggingIn: "Signing In" logout: "Sign Out" signup: "Sign Up" -uploading: "Uploading" +uploading: "Uploading..." save: "Save" users: "Users" addUser: "Add a user" @@ -48,11 +48,11 @@ deleteAndEditConfirm: "Are you sure you want to delete this note and edit it? Yo addToList: "Add to list" sendMessage: "Send a message" copyUsername: "Copy username" -searchUser: "User search" +searchUser: "Search for a user" reply: "Reply" loadMore: "Load more" -showMore: "Load more" -youGotNewFollower: "Followed you" +showMore: "Show more" +youGotNewFollower: "followed you" receiveFollowRequest: "Follow request received" followRequestAccepted: "Follow request accepted" mention: "Mention" @@ -65,8 +65,8 @@ files: "Files" download: "Download" driveFileDeleteConfirm: "Are you sure you want to delete the file \"{name}\"? Notes with this file attached will also be deleted." unfollowConfirm: "Are you sure that you want to unfollow {name}?" -exportRequested: "You have requested an export. This may take a while. After the export is complete, the resulting file will be added to the drive." -importRequested: "You requested an import. This may take a while." +exportRequested: "You've requested an export. This may take a while. It will be added to your Drive once completed." +importRequested: "You've requested an import. This may take a while." lists: "Lists" noLists: "You don't have any lists" note: "Note" @@ -79,9 +79,9 @@ manageLists: "Manage lists" error: "Error" somethingHappened: "An error occurred" retry: "Retry" -pageLoadError: "Failed to load page" +pageLoadError: "Failed to load page." pageLoadErrorDescription: "This is normally caused by network errors or the browser's cache. Try clearing the cache and then try again after waiting a little while." -enterListName: "List name" +enterListName: "Enter a list name" privacy: "Privacy" makeFollowManuallyApprove: "Follow requests require approval" defaultNoteVisibility: "Default visibility" @@ -92,7 +92,7 @@ unfollow: "Unfollow" followRequestPending: "Pending follow request" enterEmoji: "Enter an emoji" renote: "Renote" -unrenote: "Unrenote" +unrenote: "Take back Renote" renoted: "Renoted." cantRenote: "This post can't be renoted." cantReRenote: "A renote can't be renoted." @@ -103,8 +103,8 @@ you: "You" clickToShow: "Click to show" sensitive: "NSFW" add: "Add" -reaction: "Reaction" -reactionSettingDescription: "Assign your favorite reactions which want to pin in reaction picker." +reaction: "Reactions" +reactionSettingDescription: "Configure which reactions you want to display in the reaction picker." reactionSettingDescription2: "Drag to reorder, Click to delete, Press \"+\" to add" rememberNoteVisibility: "Remember note visibility settings" attachCancel: "Remove attachment" @@ -120,9 +120,9 @@ unsuspend: "Unsuspend" blockConfirm: "Are you sure that you want to block this account?" unblockConfirm: "Are you sure that you want to unblock this account?" suspendConfirm: "Are you sure that you want to suspend this account?" -unsuspendConfirm: "Are you sure you that want to unsuspend this account?" +unsuspendConfirm: "Are you sure that you want to unsuspend this account?" selectList: "Select a list" -selectAntenna: "Select an Antenna" +selectAntenna: "Select an antenna" selectWidget: "Select a widget" editWidgets: "Edit widgets" editWidgetsExit: "Done" @@ -131,13 +131,13 @@ emoji: "Emoji" emojiName: "Emoji name" emojiUrl: "Emoji URL" addEmoji: "Add an emoji" -settingGuide: "Suggested Configuration" +settingGuide: "Recommended settings" 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" -flagAsBotDescription: "If this account is controlled by a program, set this option. If enabled, it will act as flag for other developers to prevent endless interaction chains with other bots and adjust Misskey's internal systems to treat this account as a bot." -flagAsCat: "This account is a cat" -flagAsCatDescription: "Toggle this flag on for this account to be marked as a cat." +cacheRemoteFilesDescription: "When this setting is disabled, remote files are loaded directly from the remote instance. Disabling this will decrease storage usage, but increase traffic, as thumbnails will not be generated." +flagAsBot: "Mark this account as as bot" +flagAsBotDescription: "Enable this option if this account is controlled by a program. If enabled, it will act as flag for other developers to prevent endless interaction chains with other bots and adjust Misskey's internal systems to treat this account as a bot." +flagAsCat: "Mark this account as a cat" +flagAsCatDescription: "Enable this option to mark this account as a cat." autoAcceptFollowed: "Automatically approve follow requests from users you're following" addAccount: "Add account" loginFailed: "Failed to sign in" @@ -152,11 +152,11 @@ followConfirm: "Are you sure that you want to follow {name}?" proxyAccount: "Proxy account" proxyAccountDescription: "A proxy account is an account that acts as a remote follower for users under certain conditions. For example, when a user adds a remote user to the list, the remote user's activity will not be delivered to the instance if no local user is following that user, so the proxy account will follow instead." host: "Host" -selectUser: "Select user" +selectUser: "Select a user" recipient: "Recipient" annotation: "Comments" federation: "Federation" -instances: "Instance" +instances: "Instances" registeredAt: "Registered at" latestRequestSentAt: "Last request sent at" latestRequestReceivedAt: "Last request received at" @@ -181,21 +181,21 @@ instanceInfo: "Instance Information" statistics: "Statistics" clearQueue: "Clear queue" clearQueueConfirmTitle: "Are you sure that you want to clear the queue?" -clearQueueConfirmText: "Any undelivered notes remaining in the queue will not be federated. Usually this operation is NOT needed." +clearQueueConfirmText: "Any undelivered notes remaining in the queue will not be federated. Usually this operation is not needed." clearCachedFiles: "Clear cache" -clearCachedFilesConfirm: "Are you sure that you want to delete all the cached remote files?" +clearCachedFilesConfirm: "Are you sure that you want to delete all cached remote files?" blockedInstances: "Blocked Instances" -blockedInstancesDescription: "List the hostname of the instances that need to be blocked. Listed instances will no longer be able to communicate with this instance." -muteAndBlock: "Mute / Block" +blockedInstancesDescription: "List the hosts of the instances to be blocked separated by line breaks. Blocked instances will no longer be able to communicate with this instance." +muteAndBlock: "Mutes and Blocks" mutedUsers: "Muted users" blockedUsers: "Blocked users" noUsers: "There are no users" editProfile: "Edit profile" noteDeleteConfirm: "Are you sure you want to delete this note?" -pinLimitExceeded: "You cannot pin any more notes." +pinLimitExceeded: "You cannot pin any more notes" intro: "Installation of Misskey has been finished! Please create an admin user." done: "Done" -processing: "Processing" +processing: "Processing..." preview: "Preview" default: "Default" noCustomEmojis: "There are no emojis" @@ -212,7 +212,7 @@ instanceFollowers: "Followers of instance" instanceUsers: "Users of this instance" changePassword: "Change password" security: "Security" -retypedNotMatch: "The input does not match." +retypedNotMatch: "The inputs does not match." currentPassword: "Current password" newPassword: "New password" newPasswordRetype: "Retype new password" @@ -226,11 +226,11 @@ announcements: "Announcements" imageUrl: "Image URL" remove: "Delete" removed: "Successfully deleted" -removeAreYouSure: "Are you sure that you want to delete \"{x}\"?" +removeAreYouSure: "Are you sure that you want to remove \"{x}\"?" deleteAreYouSure: "Are you sure that you want to delete \"{x}\"?" resetAreYouSure: "Really reset?" saved: "Saved" -messaging: "Messaging" +messaging: "Chat" upload: "Upload" fromDrive: "From Drive" fromUrl: "From URL" @@ -242,13 +242,13 @@ explore: "Explore" games: "Misskey Games" messageRead: "Read" noMoreHistory: "There is no further history" -startMessaging: "Start messaging" +startMessaging: "Start a new chat" nUsersRead: "read by {n}" agreeTo: "I agree to {0}" tos: "Terms of Service" start: "Begin" home: "Home" -remoteUserCaution: "This information may not be up-to-date, because the user is from a remote instance." +remoteUserCaution: "As this user is from a renote instance, the shown information may be incomplete." activity: "Activity" images: "Images" birthday: "Birthday" @@ -260,8 +260,8 @@ themeForLightMode: "Theme to use in Light Mode" themeForDarkMode: "Theme to use in Dark Mode" light: "Light" dark: "Dark" -lightThemes: "Light theme" -darkThemes: "Dark theme" +lightThemes: "Light themes" +darkThemes: "Dark themes" syncDeviceDarkMode: "Sync Dark Mode with your device settings" drive: "Drive" fileName: "Filename" @@ -275,7 +275,7 @@ createFolder: "Create a folder" renameFolder: "Rename this folder" deleteFolder: "Delete this folder" addFile: "Add a file" -emptyDrive: "The drive is empty" +emptyDrive: "Your Drive is empty" emptyFolder: "This folder is empty" unableToDelete: "Unable to delete" inputNewFileName: "Enter a new filename" @@ -289,12 +289,12 @@ avatar: "Avatar" banner: "Banner" nsfw: "NSFW" whenServerDisconnected: "When losing connection to the server" -disconnectedFromServer: "Connection to the server was interrupted." +disconnectedFromServer: "Connection to server has been lost" reload: "Refresh" doNothing: "Ignore" -reloadConfirm: "Would you like to refresh timeline?" +reloadConfirm: "Would you like to refresh the timeline?" watch: "Watch" -unwatch: "Undo Watch" +unwatch: "Stop watching" accept: "Accept" reject: "Reject" normal: "Normal" @@ -308,19 +308,19 @@ thisMonth: "Month" today: "Today" dayX: "{day}" monthX: "{month}" -yearX: "{year} /" +yearX: "{year}" pages: "Pages" integration: "Integration" connectService: "Connect" disconnectService: "Disconnect" enableLocalTimeline: "Enable local timeline" enableGlobalTimeline: "Enable global timeline" -disablingTimelinesInfo: "Admins and Mods will always have access to all timelines, even if they are not enabled." +disablingTimelinesInfo: "Adminstrators and Moderators will always have access to all timelines, even if they are not enabled." registration: "Register" enableRegistration: "Enable new user registration" invite: "Invite" proxyRemoteFiles: "Proxy remote files" -proxyRemoteFilesDescription: "If enabled, remote files that (1) are not stored locally or (2) got deleted from exceeding storage limit will be locally proxied (with thumbnails). This does not affect the server's storage." +proxyRemoteFilesDescription: "If enabled, remote files that are either not stored locally or were deleted due to exceeding the storage limit will be proxied, including generation of thumbnails. This does not affect the server's storage." driveCapacityPerLocalAccount: "Drive capacity per local user" driveCapacityPerRemoteAccount: "Drive capacity per remote user" inMb: "In megabytes" @@ -328,10 +328,10 @@ iconUrl: "Icon URL" bannerUrl: "Banner image URL" backgroundImageUrl: "Background image URL" basicInfo: "Basic info" -pinnedUsers: "Pinned user" -pinnedUsersDescription: "List one username per line. Users listed here will be pinned under \"Explore\" tab." +pinnedUsers: "Pinned users" +pinnedUsersDescription: "List usernames separated by line breaks to be pinned in the \"Explore\" tab." pinnedPages: "Pinned pages" -pinnedPagesDescription: "Enter the paths of the pages you want to pin to the top page of this instance, separated by new lines." +pinnedPagesDescription: "Enter the paths of the pages you want to pin to the top page of this instance, separated by line breaks." pinnedClipId: "ID of the pinned clip" pinnedNotes: "Pinned notes" hcaptcha: "hCaptcha" @@ -342,41 +342,41 @@ recaptcha: "reCAPTCHA" enableRecaptcha: "Enable reCAPTCHA" recaptchaSiteKey: "Site key" recaptchaSecretKey: "Secret key" -avoidMultiCaptchaConfirm: "Using multiple Captchas may cause interferences. Would you like to disable the other Captcha? You can leave multiple Captchas enabled by pressing cancel." +avoidMultiCaptchaConfirm: "Using multiple Captcha systems may cause interferences. Would you like to disable the other Captcha systems? You can leave multiple enabled by pressing cancel." antennas: "Antennas" manageAntennas: "Manage Antennas" name: "Name" antennaSource: "Antenna source" -antennaKeywords: "Keywords to receive" +antennaKeywords: "Keywords to listen to" antennaExcludeKeywords: "Keywords to exclude" -antennaKeywordsDescription: "Separate with spaces for AND condition. Separate with line breaks for OR." -notifyAntenna: "Notify for new notes" -withFileAntenna: "Filter only notes with file(s) attached" +antennaKeywordsDescription: "Separate with spaces for an AND condition or with line breaks for an OR condition." +notifyAntenna: "Notify about new notes" +withFileAntenna: "Only notes with files" enableServiceworker: "Enable ServiceWorker" antennaUsersDescription: "List one username per line" caseSensitive: "Case sensitive" withReplies: "Include replies" connectedTo: "Following account(s) are connected" notesAndReplies: "Notes and replies" -withFiles: "Media" +withFiles: "Including files" 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?" +unsilence: "Undo silencing" +unsilenceConfirm: "Are you sure that you want to undo the silencing of this user?" popularUsers: "Trending users" recentlyUpdatedUsers: "Users with recent activity" recentlyRegisteredUsers: "Newly joined users" recentlyDiscoveredUsers: "Newly discovered users" exploreUsersCount: "There are {count} users" -exploreFediverse: "Explore Fediverse" +exploreFediverse: "Explore the Fediverse" popularTags: "Trending Tags" userList: "Lists" about: "About" aboutMisskey: "About Misskey" -administrator: "Admin" +administrator: "Administrator" token: "Token" twoStepAuthentication: "Two-factor authentication" -moderator: "Mod" +moderator: "Moderator" nUsersMentioned: "{n} users mentioned" securityKey: "Security key" securityKeyName: "Key name" @@ -386,11 +386,11 @@ unregister: "Unregister" passwordLessLogin: "Set up password-less login" resetPassword: "Reset password" newPasswordIs: "The new password is \"{password}\"" -reduceUiAnimation: "Reduce UI animation" +reduceUiAnimation: "Reduce UI animations" share: "Share" notFound: "Not found" -notFoundDescription: "There was no page corresponding to the specified URL." -uploadFolder: "Default Upload location" +notFoundDescription: "No page corresponding to this URL could be found." +uploadFolder: "Default folder for uploads" cacheClear: "Clear cache" markAsReadAllNotifications: "Mark all notifications as read" markAsReadAllUnreadNotes: "Mark all notes as read" @@ -398,59 +398,59 @@ markAsReadAllTalkMessages: "Mark all messages as read" help: "Help" inputMessageHere: "Enter message here" close: "Close" -group: "Groups" +group: "Group" groups: "Groups" createGroup: "Create a group" ownedGroups: "Owned Groups" -joinedGroups: "Membership in groups" -invites: "Invite" +joinedGroups: "Joined groups" +invites: "Invites" groupName: "Group name" members: "Members" transfer: "Transfer" -messagingWithUser: "Messaging with other user" -messagingWithGroup: "Messaging within group" +messagingWithUser: "Private chat" +messagingWithGroup: "Group chat" title: "Title" text: "Text" enable: "Enable" next: "Next" retype: "Enter again" -noteOf: "{user}'s notes" +noteOf: "Note by {user}" inviteToGroup: "Invite to group" -maxNoteTextLength: "Character limit of notes" +maxNoteTextLength: "Character limit for notes" quoteAttached: "Quoted" -quoteQuestion: "Do you want to append a quote?" +quoteQuestion: "Append as quote?" noMessagesYet: "No messages yet" newMessageExists: "You've got a new message" onlyOneFileCanBeAttached: "You can only attach one file to a message" signinRequired: "Please sign in" -invitations: "Invitations" +invitations: "Invites" invitationCode: "Invitation code" -checking: "Checking" +checking: "Checking..." available: "Available" unavailable: "Not available" -usernameInvalidFormat: "letters, numbers and _ are acceptable." +usernameInvalidFormat: "You can use upper- and lowercase letters, numbers as well as underscores." tooShort: "Too short" tooLong: "Too long" weakPassword: "Weak password" -normalPassword: "Good password" +normalPassword: "Normal password" strongPassword: "Strong password" -passwordMatched: "Matched" -passwordNotMatched: "Doesn't match" +passwordMatched: "Matches" +passwordNotMatched: "Does not match" signinWith: "Sign in with {x}" -signinFailed: "Unable to sign in. The username or password you entered is incorrect." +signinFailed: "Unable to sign in. The entered username or password is incorrect." tapSecurityKey: "Tap your security key" or: "Or" language: "Language" -uiLanguage: "UI display language" -groupInvited: "Invited to group" +uiLanguage: "User interface language" +groupInvited: "You've been invited to a group" aboutX: "About {x}" 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" +joinOrCreateGroup: "Get invited to a group or create your own." +noHistory: "No history available" signinHistory: "Login history" disableAnimatedMfm: "Disable MFM with animation" -doing: "On my way" +doing: "Processing..." category: "Category" tags: "Tags" docSource: "Source of this document" @@ -464,37 +464,37 @@ dashboard: "Dashboard" local: "Local" remote: "Remote" total: "Total" -weekOverWeekChanges: "Weekly" -dayOverDayChanges: "Daily" +weekOverWeekChanges: "Changes to last week" +dayOverDayChanges: "Changes to yesterday" appearance: "Appearance" clientSettings: "Client settings" accountSettings: "Account Settings" promotion: "Promoted" promote: "Promote" -numberOfDays: "Amount of days" +numberOfDays: "Number of days" hideThisNote: "Hide this note" -showFeaturedNotesInTimeline: "Show Featured notes in Timeline" +showFeaturedNotesInTimeline: "Show Featured notes in Timelines" objectStorage: "Object Storage" useObjectStorage: "Use object storage" objectStorageBaseUrl: "Base URL" -objectStorageBaseUrlDesc: "URL prefix used for construct URL to object (media) referencing. Specify its URL if you are using a CDN or Proxy, otherwise specify the address that publicly accessible according to the guide of service that you're going to use. i.g 'https://.s3.amazonaws.com' for AWS S3, and 'https://storage.googleapis.com/' for GCS." +objectStorageBaseUrlDesc: "URL used as reference. Specify the URL of your CDN or Proxy if you are using either. S3: 'https://.s3.amazonaws.com', GCS: 'https://storage.googleapis.com/' etc." objectStorageBucket: "Bucket" -objectStorageBucketDesc: "Please specify the bucket name used on configured service." +objectStorageBucketDesc: "Please specify the bucket name used at your provider." objectStoragePrefix: "Prefix" -objectStoragePrefixDesc: "Files will stored under the directory of this prefix." +objectStoragePrefixDesc: "Files will stored under directories with this prefix." objectStorageEndpoint: "Endpoint" -objectStorageEndpointDesc: "Leave this empty if you are using AWS S3, otherwise specify the endpoint as '' or ':' according to the guide of service that you're going to use." +objectStorageEndpointDesc: "Leave this empty if you are using AWS S3, otherwise specify the endpoint as '' or ':', depending on the service you are using." 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'." +objectStorageRegionDesc: "Specify a region like 'xx-east-1'. If your service does not distinct between regions, leave this blank or enter 'us-east-1'." objectStorageUseSSL: "Use SSL" -objectStorageUseSSLDesc: "Turn off this if you are not going to use HTTPS for API connection" +objectStorageUseSSLDesc: "Turn this off if you are not going to use HTTPS for API connections" objectStorageUseProxy: "Connect over Proxy" -objectStorageUseProxyDesc: "Turn off this if you are not going to use Proxy for ObjectStorage connection" +objectStorageUseProxyDesc: "Turn this off if you are not going to use a Proxy for API connections" objectStorageSetPublicRead: "Set \"public-read\" on upload" serverLogs: "Server logs" deleteAll: "Delete all" showFixedPostForm: "Display the posting form at the top of the timeline" -newNoteRecived: "You've got a new note" +newNoteRecived: "There are new notes" sounds: "Sounds" listen: "Listen" none: "None" @@ -503,29 +503,29 @@ popout: "Pop-out" volume: "Volume" masterVolume: "Master volume" details: "Details" -chooseEmoji: "Choose an emoji" -unableToProcess: "The operation could not be completed." +chooseEmoji: "Select 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" +installedDate: "Authorized at" +lastUsedDate: "Last used at" 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." +scratchpad: "Scratchpad" +scratchpadDescription: "The Scratchpad provides an environment for AiScript experiments. You can write, execute, and check the results of it interacting 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." +removeAllFollowing: "Unfollow all followed users" +removeAllFollowingDescription: "Executing this unfollows all accounts from {host}. Please run this if the instance e.g. no longer exists." userSuspended: "This user has been suspended." userSilenced: "This user has been silenced." menu: "Menu" @@ -574,7 +574,7 @@ edit: "Edit" useStarForReactionFallback: "Use ★ as fallback if the reaction emoji is unknown" emailServer: "Email server" enableEmail: "Enable email distribution" -emailConfigInfo: "Used to confirm your email during sign-up and if you forget your password" +emailConfigInfo: "Used to confirm your email during sign-up or if you forget your password" email: "Email" emailAddress: "Email address" smtpConfig: "SMTP Server configuration" @@ -613,7 +613,7 @@ sample: "Sample" abuseReports: "Reports" reportAbuse: "Report" reportAbuseOf: "Report {name}" -fillAbuseReportDescription: "Please fill in the report details. If it is about a specific note, please include its URL." +fillAbuseReportDescription: "Please fill in details regarding this report. If it is about a specific note, please include its URL." abuseReported: "Your report has been sent. Thank you very much." send: "Send" abuseMarkAsResolved: "Mark report as resolved" @@ -635,33 +635,33 @@ public: "Public" i18nInfo: "Misskey is being translated into various languages by volunteers. You can help at {link}." manageAccessTokens: "Manage access tokens" accountInfo: "Account Info" -notesCount: "Amount of notes" -repliesCount: "Amount of replies sent" -renotesCount: "Amount of renotes sent" -repliedCount: "Amount of replies received" -renotedCount: "Amount of renotes received" -followingCount: "Amount of followed accounts" -followersCount: "Amount of followers" -sentReactionsCount: "Amount of sent reactions" -receivedReactionsCount: "Amount of received reactions" -pollVotesCount: "Amount of sent poll votes" -pollVotedCount: "Amount of received poll votes" +notesCount: "Number of notes" +repliesCount: "Number of replies sent" +renotesCount: "Number of renotes sent" +repliedCount: "Number of replies received" +renotedCount: "Number of renotes received" +followingCount: "Number of followed accounts" +followersCount: "Number of followers" +sentReactionsCount: "Number of sent reactions" +receivedReactionsCount: "Number of received reactions" +pollVotesCount: "Number of sent poll votes" +pollVotedCount: "Number of received poll votes" yes: "Yes" no: "No" -driveFilesCount: "Amount of drive files" +driveFilesCount: "Number of drive files" driveUsage: "Drive space usage" noCrawle: "Reject crawler indexing" -noCrawleDescription: "Ask search engines not to index your profile page, notes, Pages, etc." -lockedAccountInfo: "Unless you set your note visiblity to \"Followers only\", your notes are visible to anyone, even if you require followers to be manually approved." -alwaysMarkSensitive: "Mark NSFW by default" -loadRawImages: "Display image attachments fully instead of thumbnails" +noCrawleDescription: "Ask search engines to not index your profile page, notes, Pages, etc." +lockedAccountInfo: "Unless you set your note visiblity to \"Followers only\", your notes will be visible to anyone, even if you require followers to be manually approved." +alwaysMarkSensitive: "Mark as NSFW by default" +loadRawImages: "Load original images instead of showing thumbnails" disableShowingAnimatedImages: "Don't play animated images" verificationEmailSent: "A verification email has been sent. Please access the included link to complete verification." notSet: "Not set" emailVerified: "Email has been verified" -noteFavoritesCount: "Amount of favorite notes" -pageLikesCount: "Amount of received Page likes" -pageLikedCount: "Amount of liked Pages" +noteFavoritesCount: "Number of favorite notes" +pageLikesCount: "Number of liked Pages" +pageLikedCount: "Number of received Page likes" reversiCount: "Number of Reversi matches" contact: "Contact" useSystemFont: "Use the system's default font" @@ -676,22 +676,22 @@ left: "Left" center: "Center" wide: "Wide" narrow: "Narrow" -reloadToApplySetting: "This setting will be applied upon page reload. Reload now?" +reloadToApplySetting: "This setting will only apply after a page reload. Reload now?" showTitlebar: "Show title bar" clearCache: "Clear cache" -onlineUsersCount: "{n} people are online" +onlineUsersCount: "{n} users are online" nUsers: "{n} Users" nNotes: "{n} Notes" sendErrorReports: "Send error reports" -sendErrorReportsDescription: "When turned on, detailed error information will be shared with Misskey when a problem occurs, helping to improve the quality of Misskey.\nThis may include informations such as your OS and its version, the kind of browser you're using, your activity history, etc." +sendErrorReportsDescription: "When turned on, detailed error information will be shared with Misskey when a problem occurs, helping to improve the quality of Misskey.\nThis will include information such the version of your OS, what browser you're using, your activity history, etc." myTheme: "My theme" -backgroundColor: "Background" -accentColor: "Accent" -textColor: "Text" +backgroundColor: "Background color" +accentColor: "Accent color" +textColor: "Textfarbe" saveAs: "Save as..." advanced: "Advanced" value: "Value" -createdAt: "Created on" +createdAt: "Created at" updatedAt: "Updated at" saveConfirm: "Save changes?" deleteConfirm: "Really delete?" @@ -707,7 +707,7 @@ capacity: "Capacity" inUse: "Used" editCode: "Edit code" apply: "Apply" -receiveAnnouncementFromInstance: "Receive Email notifications from this instance" +receiveAnnouncementFromInstance: "Receive notifications from this instance" emailNotification: "Email notifications" publish: "Publish" inChannelSearch: "Search in channel" @@ -722,14 +722,14 @@ unlikeConfirm: "Really remove your like?" fullView: "Full view" quitFullView: "Exit full view" addDescription: "Add description" -userPagePinTip: "You can make notes be displayed here by selecting \"Pin to profile\" from the menu of individual notes" +userPagePinTip: "You can display notes here by selecting \"Pin to profile\" from the menu of individual notes." notSpecifiedMentionWarning: "This note contains mentions of users not included as recipient" info: "About" userInfo: "User information" unknown: "Unknown" onlineStatus: "Online status" hideOnlineStatus: "Hide online status" -hideOnlineStatusDescription: "Hiding your online status reduces the convenience of some functions such as search" +hideOnlineStatusDescription: "Hiding your online status reduces the convenience of some functions such as the search." online: "Online" active: "Active" offline: "Offline" @@ -739,8 +739,8 @@ instanceBlocking: "Blocked Instances" selectAccount: "Select account" enabled: "Enabled" disabled: "Disabled" -quickAction: "Quick action" -user: "Users" +quickAction: "Quick actions" +user: "User" administration: "Management" accounts: "Accounts" switch: "Switch" @@ -759,12 +759,23 @@ priority: "Priority" high: "High" middle: "Medium" low: "Low" -emailNotConfiguredWarning: "Email address not set" +emailNotConfiguredWarning: "Email address not set." ratio: "Ratio" customCss: "Custom CSS" customCssWarn: "This setting should only be used if you know what it does. Entering improper values may cause the client to stop functioning normally." global: "Global" squareAvatars: "Display squared avatars" +sent: "Sent" +received: "Received" +searchResult: "Search results" +hashtags: "Hashtags" +troubleshooting: "Troubleshooting" +_docs: + continueReading: "Read more" + features: "Features" + generalTopics: "General topics" + advancedTopics: "Advanced Topics" + admin: "Administration" _ad: back: "Back" reduceFrequencyOfThisAd: "Show this ad less" @@ -799,8 +810,8 @@ _aboutMisskey: source: "Source code" translation: "Translate Misskey" donate: "Donate to Misskey" - morePatrons: "We really appreciate the support of many other helpers not listed here. Thank you! 🥰" - patrons: "Backers" + morePatrons: "We also appreciate the support of many other helpers not listed here. Thank you! 🥰" + patrons: "Patrons" _nsfw: respect: "Hide NSFW media" ignore: "Don't hide NSFW media" @@ -810,23 +821,23 @@ _mfm: intro: "MFM is a Misskey-exclusive markup language that can be used in many places. Here you can view a list of all available MFM syntax." dummy: "Misskey expands the world of the Fediverse" mention: "Mention" - mentionDescription: "Using an At-Symbol and a username, you can specify a specific user." + mentionDescription: "You can specify a user by using an At-Symbol and a username." hashtag: "Hashtag" - hashtagDescription: "Using a number sign and text, you can specify a hashtag." + hashtagDescription: "You can specify a hashtag using a number sign and text." url: "URL" urlDescription: "URLs can be displayed." link: "Link" - linkDescription: "Specific parts of text can be displayed as URL." + linkDescription: "Specific parts of text can be displayed as an URL." bold: "Bold" boldDescription: "Highlights letters by making them thicker." small: "Small" - smallDescription: "Displays contents small and thinn." + smallDescription: "Displays contents small and thin." center: "Center" centerDescription: "Displays content centered." - inlineCode: "Code (Inline)" - inlineCodeDescription: "Displays inline syntax highlighting for (program-)code." + inlineCode: "Code (In-line)" + inlineCodeDescription: "Displays inline syntax highlighting for (program) code." blockCode: "Code (Block)" - blockCodeDescription: "Displays syntax highlighting for multi-line (program-)code in a block." + blockCodeDescription: "Displays syntax highlighting for multi-line (program) code in a block." inlineMath: "Math (In-line)" inlineMathDescription: "Display math formulas (KaTeX) in-line" blockMath: "Math (Block)" @@ -840,29 +851,31 @@ _mfm: flip: "Flip" flipDescription: "Flips content horizontally or vertically." jelly: "Animation (Jelly)" - jellyDescription: "Infuses a jelly-like animation." + jellyDescription: "Gives content a jelly-like animation." tada: "Animation (Tada)" - tadaDescription: "Infuses a \"Tada!\"-like animation." + tadaDescription: "Gives content a \"Tada!\"-like animation." jump: "Animation (Jump)" - jumpDescription: "Infuses a jumping animation." + jumpDescription: "Gives content a jumping animation." bounce: "Animation (Bounce)" - bounceDescription: "Causes a bouncy animation." + bounceDescription: "Gives content a bouncy animation." shake: "Animation (Shake)" - shakeDescription: "Infuses a shaking animation." + shakeDescription: "Gives content a shaking animation." twitch: "Animation (Twitch)" - twitchDescription: "Infuses a strongly twitching animation." + twitchDescription: "Gives content a strongly twitching animation." spin: "Animation (Spin)" - spinDescription: "Infuses a spinning animation." + spinDescription: "Gives content a spinning animation." x2: "Big" x2Description: "Displays content bigger." x3: "Very big" x3Description: "Displays content even bigger." - x4: "Extremely big" + x4: "Unbelievably big" x4Description: "Displays content even bigger than bigger than big." blur: "Blur" - blurDescription: "Content can be blurred via this effect. It will be clearly displayed by hovering your cursor above it." + blurDescription: "Content can be blurred via this effect. It will be displayed clearly when hovered over." font: "Font" fontDescription: "Sets the font to display contents in." + rainbow: "Rainbow" + rainbowDescription: "Makes the content appear in rainbow colors." _reversi: reversi: "Reversi" gameSettings: "Game settings" @@ -879,12 +892,12 @@ _reversi: cancelReady: "Cancel ready" opponentTurn: "Opponent's turn" myTurn: "Your turn" - turnOf: "{name}'s turn" + turnOf: "It's {name}'s turn" pastTurnOf: "{name}'s turn" surrender: "Surrender" surrendered: "By surrender" drawn: "Draw" - won: "{name}'s win" + won: "{name} wins" black: "Black" white: "White" total: "Total" @@ -894,7 +907,7 @@ _reversi: ended: "Ended" playing: "Currently playing" isLlotheo: "The one with fewer stones wins (Llotheo)" - loopedMap: "Looped map" + loopedMap: "Looping map" canPutEverywhere: "Tiles are placeable everywhere" _instanceTicker: none: "Never show" @@ -915,30 +928,30 @@ _channel: usersCount: "{n} Participants" notesCount: "{n} Notes" _menuDisplay: - sideFull: "Horizontal" - sideIcon: "Horizontal (Icons)" + sideFull: "Side" + sideIcon: "Side (Icons)" top: "Top" hide: "Hide" _wordMute: - muteWords: "Word to mute" - muteWordsDescription: "Separate with spaces for AND condition. Separate with line breaks for OR." + muteWords: "Muted words" + muteWordsDescription: "Separate with spaces for an AND condition or with line breaks for an OR condition." muteWordsDescription2: "Surround keywords by slashes to use regular expressions." - softDescription: "Hide notes fulfilling the set conditions from the timeline." - hardDescription: "Prevent notes fulfilling the set conditions from being added to the timeline. In addition, these notes will not be added to the timeline even if the conditions are changed." + softDescription: "Hides notes fulfilling the set conditions from the timeline." + hardDescription: "Prevents notes fulfilling the set conditions from being added to the timeline. In addition, these notes will not be added to the timeline even if the conditions are changed." soft: "Soft" hard: "Hard" mutedNotes: "Muted notes" _theme: explore: "Explore Themes" - install: "Install theme" - manage: "Themes manager" + install: "Install a theme" + manage: "Manage themes" code: "Theme code" description: "Description" installed: "{name} has been installed" installedThemes: "Installed themes" builtinThemes: "Built-in themes" - alreadyInstalled: "The theme is already installed" - invalid: "Theme format is invalid" + alreadyInstalled: "This theme is already installed" + invalid: "The format of this theme is invalid" make: "Make a theme" base: "Base" addConstant: "Add constant" @@ -955,7 +968,7 @@ _theme: alpha: "Opacity" darken: "Darken" lighten: "Lighten" - inputConstantName: "Enter a name for the constant" + inputConstantName: "Enter a name for this constant" importInfo: "If you enter theme code here, you can import it to the theme editor" deleteConstantConfirm: "Do you really want to delete the constant {const}?" keys: @@ -986,9 +999,9 @@ _theme: infoFg: "Information text" infoWarnBg: "Warning background" infoWarnFg: "Warning text" - cwBg: "CW background" - cwFg: "CW text" - cwHoverBg: "CW background (Hover)" + cwBg: "CW button background" + cwFg: "CW button text" + cwHoverBg: "CW button background (Hover)" toastBg: "Notification background" toastFg: "Notification text" buttonBg: "Button background" @@ -1004,11 +1017,11 @@ _theme: fgHighlighted: "Highlighted Text" _sfx: note: "New note" - noteMy: "My note" + noteMy: "Own note" notification: "Notifications" - chat: "Messaging" - chatBg: "Messaging (Background)" - antenna: "Antenna Reception" + chat: "Chat" + chatBg: "Chat (Background)" + antenna: "Antennas" channel: "Channel notifications" reversiPutBlack: "Reversi: Black makes a move" reversiPutWhite: "Reversi: White makes a move" @@ -1016,92 +1029,92 @@ _ago: unknown: "Unknown" future: "Future" justNow: "Just now" - secondsAgo: "{n}s ago" - minutesAgo: "{n}m ago" - hoursAgo: "{n}h ago" - daysAgo: "{n}d ago" - weeksAgo: "{n}week(s) ago" - monthsAgo: "{n}month(s) ago" - yearsAgo: "{n}year(s) ago" + secondsAgo: "{n} seconds ago" + minutesAgo: "{n} minutes ago" + hoursAgo: "{n} hours ago" + daysAgo: "{n} days ago" + weeksAgo: "{n} week(s) ago" + monthsAgo: "{n} month(s) ago" + yearsAgo: "{n} year(s) ago" _time: - second: "s" - minute: "m" - hour: "h" - day: "d" + second: "Second(s)" + minute: "Minute(s)" + hour: "Hour(s)" + day: "Day(s)" _tutorial: title: "How to use Misskey" step1_1: "Welcome!" - step1_2: "This page is called \"timeline\". It shows chronologically ordered \"notes\" of people who you \"follow\"." + step1_2: "This page is called the \"timeline\". It shows chronologically ordered \"notes\" of people who you \"follow\"." step1_3: "Your timeline is currently empty, since you have not posted any notes or followed anyone yet." step2_1: "Let's finish setting up your profile before writing a note or following anyone." - step2_2: "Providing some information about who you are will make it easier for others to follow you back." + step2_2: "Providing some information about who you are will make it easier for others to tell if they want to see your notes or follow you." 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_2: "Then let's try posting a note next. You can do this by pressing the pencil icon on the top of the screen." 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." + step4_2: "Hurray! Now your first note should be displayed on your timeline." step5_1: "Now, let's try making your timeline more lively by following other people." - step5_2: "{featured} will show you trending notes in this instance. {explore} will let you find trending users. Try following people you like!" - step5_3: "To follow other users, click on their icon and press \"follow\" button on their profile." - step5_4: "If the other user has a lock icon next to their name, that user will have to manually approve your follow request." - step6_1: "Now you will be able to see other users' notes on your timeline." + step5_2: "{featured} will show you trending notes in this instance. {explore} will let you find trending users. Try finding people you'd like to follow there!" + step5_3: "To follow other users, click on their icon and press the \"Follow\" button on their profile." + step5_4: "If the other user has a lock icon next to their name, it may take some time for that user to manually approve your follow request." + step6_1: "You should be able to see other users' notes on your timeline now." step6_2: "You can also put \"reactions\" on other people's notes to quickly respond." step6_3: "To attach a \"reaction\", press the \"+\" mark on another user's note and choose an emoji you'd like to react with." step7_1: "Congratulations! You have now finished Misskey's basic tutorial." step7_2: "If you would like to learn more about Misskey, try the {help} section." - step7_3: "Good luck and have fun! 🚀" + step7_3: "Now then, good luck and have fun with Misskey! 🚀" _2fa: - alreadyRegistered: "You have already registered 2-factor authentication device." + alreadyRegistered: "You have already registered a 2-factor authentication device." registerDevice: "Register a new device" registerKey: "Register a new Security Key" step1: "First, install an authentication app (such as {a} or {b}) on your device." - step2: "Then, scan the QR code on the screen." + step2: "Then, scan the QR code displayed on this screen." step3: "Enter the token provided by your app to finish setup." - step4: "From now, any login attempt will ask for your login token." - securityKeyInfo: "You can setup WebAuthN authentication to further secure the log-in process with not only hardware security key which supports FIDO2, but also fingerprint or PIN authentication on your device." + step4: "From now, any future login attempts will ask for such a login token." + securityKeyInfo: "Besides fingerprint or PIN authentication, you can also setup authentication via hardware security keys that support FIDO2 to further secure your login process." _permissions: "read:account": "View your account information" "write:account": "Edit your account information" - "read:blocks": "View the list of people you blocked" - "write:blocks": "Edit the list of people you blocked" + "read:blocks": "View your list of blocked users" + "write:blocks": "Edit your list of blocked users" "read:drive": "Access your drive files and folders" "write:drive": "Edit or delete your drive files and folders" - "read:favorites": "View your favorites list" - "write:favorites": "Edit your favorites list" - "read:following": "View your following information" + "read:favorites": "View your list of favorites" + "write:favorites": "Edit your list of favorites" + "read:following": "View information on who you follow" "write:following": "Follow or unfollow other accounts" - "read:messaging": "View your messages" - "write:messaging": "Compose or Delete messages" - "read:mutes": "View the list of people you muted" - "write:mutes": "Edit the list of people you muted" - "write:notes": "Compose or Delete notes" - "read:notifications": "View notifications" - "write:notifications": "Work with notifications" - "read:reactions": "View reactions" - "write:reactions": "Edit reactions" + "read:messaging": "View your chats" + "write:messaging": "Compose or delete chat messages" + "read:mutes": "View your list of muted users" + "write:mutes": "Edit your list of muted users" + "write:notes": "Compose or delete notes" + "read:notifications": "View your notifications" + "write:notifications": "Work with your notifications" + "read:reactions": "View your reactions" + "write:reactions": "Edit your reactions" "write:votes": "Vote on a poll" "read:pages": "View your pages" "write:pages": "Edit or delete your pages" - "read:page-likes": "View likes on pages" - "write:page-likes": "Edit likes on pages" - "read:user-groups": "View user groups" - "write:user-groups": "Edit or delete user groups" - "read:channels": "Read channels" - "write:channels": "Modify channels" + "read:page-likes": "View your likes on pages" + "write:page-likes": "Edit your likes on pages" + "read:user-groups": "View your user groups" + "write:user-groups": "Edit or delete your user groups" + "read:channels": "Read your channels" + "write:channels": "Modify your channels" _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:" + permissionAsk: "This application requests the 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" + homeTimeline: "Notes from followed users" users: "Notes from specific users" - userList: "Notes from specific list" - userGroup: "Notes from users in the specified group" + userList: "Notes from a specified list of users" + userGroup: "Notes from users in a specified group" _weekday: sunday: "Sunday" monday: "Monday" @@ -1131,24 +1144,24 @@ _widgets: aiscript: "AiScript console" _cw: hide: "Hide" - show: "Load more" + show: "Show content" chars: "{count} characters" files: "{count} file(s)" _poll: noOnlyOneChoice: "At least two choices are needed" choiceN: "Choice {n}" noMore: "You cannot add more choices" - canMultipleVote: "Allow multiple replies" - expiration: "Poll ends on" + canMultipleVote: "Allow selecting multiple choices" + expiration: "End poll" infinite: "Never" at: "End at..." after: "End after..." deadlineDate: "End date" - deadlineTime: "h" + deadlineTime: "Time" duration: "Duration" votesCount: "{n} votes" - totalVotes: "Total {n} votes" - vote: "Vote on a poll" + totalVotes: "{n} votes in total" + vote: "Vote" showResult: "View results" voted: "Voted" closed: "Ended" @@ -1158,19 +1171,19 @@ _poll: remainingSeconds: "{s} seconds remaining" _visibility: public: "Public" - publicDescription: "Your note will appear on global timeline" + publicDescription: "Your note will be visible for all users" home: "Home" homeDescription: "Post to home timeline only" followers: "Followers" - followersDescription: "Post to followers only" + followersDescription: "Make visible to your followers only" specified: "Direct" - specifiedDescription: "Post to specified users only" + specifiedDescription: "Make visible for specified users only" localOnly: "Local only" localOnlyDescription: "Not visible to remote users" _postForm: replyPlaceholder: "Reply to this note..." quotePlaceholder: "Quote this note..." - channelPlaceholder: "Post to channel" + channelPlaceholder: "Post to a channel..." _placeholders: a: "What are you up to?" b: "What's happening around you?" @@ -1185,17 +1198,17 @@ _profile: youCanIncludeHashtags: "You can also include hashtags in your bio." metadata: "Additional Information" metadataEdit: "Edit additional Information" - metadataDescription: "You can display up to four additional information sections in your profile." + metadataDescription: "You can display up to four additional information fields in your profile." metadataLabel: "Label" metadataContent: "Content" changeAvatar: "Change avatar" changeBanner: "Change banner" _exportOrImport: allNotes: "All notes" - followingList: "Following" - muteList: "Mute" - blockingList: "Block" - userLists: "Lists" + followingList: "Followed users" + muteList: "Muted users" + blockingList: "Blocked users" + userLists: "User lists" _charts: federationInstancesIncDec: "Difference in # of federating instances" federationInstancesTotal: "Total # of federating instances" @@ -1208,7 +1221,7 @@ _charts: notesTotal: "Total # of notes" filesIncDec: "Difference in # of files" filesTotal: "Total # of files" - storageUsageIncDec: "Difference in storage use" + storageUsageIncDec: "Difference in storage usage" storageUsageTotal: "Total storage usage" _instanceCharts: requests: "Requests" @@ -1216,8 +1229,8 @@ _instanceCharts: usersTotal: "Cumulative total # of users" notes: "Difference in # of notes" notesTotal: "Cumulative total # of notes" - ff: "Difference in # of followers" - ffTotal: "Cumulative total # of followers" + ff: "Difference in # of followed users / followers " + ffTotal: "Cumulative total # of followed users / followers" cacheSize: "Difference in cache size" cacheSizeTotal: "Cumulative total cache size" files: "Difference in # of files" @@ -1235,11 +1248,11 @@ _rooms: exit: "Back" remove: "Remove" clear: "Remove All" - clearConfirm: "Are you sure to remove all furnitures in your room?" + clearConfirm: "Do you really want to remove all furniture from your room?" leaveConfirm: "There are unsaved changes. Do you really want to leave?" chooseImage: "Select an image" roomType: "Room type" - carpetColor: "Color of carpet" + carpetColor: "Carpet color" _roomType: default: "Default" washitsu: "Japanese-style" @@ -1263,14 +1276,14 @@ _rooms: book: "Book" book2: "Book 2" piano: "Piano" - facial-tissue: "Facial tissue" - server: "Servers" + facial-tissue: "Tissues" + server: "Server" moon: "Moon" corkboard: "Cork board" mousepad: "Mousepad" monitor: "Monitor" keyboard: "Keyboard" - carpet-stripe: "Carpet (stripe)" + carpet-stripe: "Carpet (striped)" mat: "Mat" color-box: "Bookshelf" wall-clock: "Wall clock" @@ -1278,13 +1291,13 @@ _rooms: cube: "Cube" tv: "TV" pinguin: "Penguin" - rubik-cube: "Rubik's Cube" + rubik-cube: "Puzzle Cube" poster-h: "Poster (Horizontal)" poster-v: "Poster (Vertical)" sofa: "Sofa" spiral: "Spiral Staircase" - bin: "Waste bin" - cup-noodle: "Cup noodle" + bin: "Garbage can" + cup-noodle: "Cup noodles" holo-display: "Holographic display" energy-drink: "Energy drink" doll-ai: "Ai doll" @@ -1293,13 +1306,13 @@ _pages: newPage: "Create a page" editPage: "Edit this page" readPage: "Source view activated" - created: "Successfully created a page!" - updated: "Successfully updated the page!" - deleted: "The page has been deleted" + created: "Page successfully created" + updated: "Page successfully edited" + deleted: "Page successfully deleted" pageSetting: "Page settings" nameAlreadyExists: "The specified page URL already exists" invalidNameTitle: "The specified page URL is invalid" - invalidNameText: "Check whether that is not a blank" + invalidNameText: "Make sure the page title is not empty" editThisPage: "Edit this page" viewSource: "View source" viewPage: "View your pages" @@ -1309,7 +1322,7 @@ _pages: liked: "Liked pages" featured: "Featured" inspector: "Inspector" - contents: "Content" + contents: "Contents" content: "Page block" variables: "Variables" title: "Title" @@ -1320,12 +1333,12 @@ _pages: font: "Font" fontSerif: "Serif" fontSansSerif: "Sans serif" - eyeCatchingImageSet: "Set the eye-catching image" - eyeCatchingImageRemove: "Delete the eye-catching image" + eyeCatchingImageSet: "Set thumbnail" + eyeCatchingImageRemove: "Delete thumbnail" chooseBlock: "Add a block" selectType: "Select a type" - enterVariableName: "Please enter a name for your variable" - variableNameIsAlreadyUsed: "This name is already being used by other variable" + enterVariableName: "Enter a variable name" + variableNameIsAlreadyUsed: "This variable name is already in use" contentBlocks: "Content" inputBlocks: "Input" specialBlocks: "Special" @@ -1341,7 +1354,7 @@ _pages: post: "Compose a note" _post: text: "Content" - attachCanvasImage: "Post with Canvas as Image" + attachCanvasImage: "Post with canvas image" canvasId: "Canvas ID" textInput: "Text input" _textInput: @@ -1366,7 +1379,7 @@ _pages: note: "Embedded note" _note: id: "Note ID" - idDescription: "You can also paste the Note's URL to set it instead." + idDescription: "You can alternatively paste the note URL here." detailed: "Detailed view" switch: "Switch" _switch: @@ -1400,7 +1413,7 @@ _pages: _radioButton: name: "Variable name" title: "Title" - values: "List of choices (separated by line breaks)" + values: "List of choices separated by line breaks" default: "Default value" script: categories: @@ -1412,7 +1425,7 @@ _pages: value: "Values" fn: "Functions" text: "Text operations" - convert: "Transformation" + convert: "Transformations" list: "Lists" blocks: text: "Text" @@ -1420,7 +1433,7 @@ _pages: textList: "Text list" _textList: info: "Separate each entry with a line break" - strLen: "Length of the text" + strLen: "Text length" _strLen: arg1: "Text" strPick: "Extract character" @@ -1431,7 +1444,7 @@ _pages: _strReplace: arg1: "Text" arg2: "Text to be replaced" - arg3: "Replaced with" + arg3: "Replace with" strReverse: "Flip text" _strReverse: arg1: "Text" @@ -1443,7 +1456,7 @@ _pages: _add: arg1: "A" arg2: "B" - subtract: "Substract" + subtract: "Subtract" _subtract: arg1: "A" arg2: "B" @@ -1459,7 +1472,7 @@ _pages: _mod: arg1: "A" arg2: "B" - round: "Round decimal" + round: "Decimal rounding" _round: arg1: "Number" eq: "A and B are equal" @@ -1490,15 +1503,15 @@ _pages: _ltEq: arg1: "A" arg2: "B" - gtEq: ">= A is more than or equal to B" + gtEq: ">= A is greater than or equal to B" _gtEq: arg1: "A" arg2: "B" if: "Branch" _if: arg1: "If" - arg2: "If true" - arg3: "If false" + arg2: "Then" + arg3: "Else" not: "NOT" _not: arg1: "NOT" @@ -1511,15 +1524,15 @@ _pages: arg2: "Maximum value" randomPick: "Randomly choose from list" _randomPick: - arg1: "Lists" - dailyRandom: "Random (lasts for a day)" + arg1: "List" + dailyRandom: "Random (Changes once a day for each user)" _dailyRandom: arg1: "Probability" - dailyRannum: "Random number (lasts for a day)" + dailyRannum: "Random number (Changes once a day for each user)" _dailyRannum: arg1: "Minimum value" arg2: "Maximum value" - dailyRandomPick: "Randomly choose from list (lasts for a day)" + dailyRandomPick: "Randomly choose from a list (Changes once a day for each user)" _dailyRandomPick: arg1: "Lists" seedRandom: "Random (with seed)" @@ -1534,17 +1547,17 @@ _pages: seedRandomPick: "Randomly choose from list (with seed)" _seedRandomPick: arg1: "Seed" - arg2: "Lists" - DRPWPM: "Randomly choose from weighted list (lasts for a day)" + arg2: "Liste" + DRPWPM: "Randomly choose from weighted list (Changes once a day for each user)" _DRPWPM: arg1: "Text list" pick: "Select from list" _pick: - arg1: "Lists" + arg1: "List" arg2: "Position" listLen: "Get length of list" _listLen: - arg1: "Lists" + arg1: "List" number: "Number" stringToNumber: "Text to number" _stringToNumber: @@ -1555,29 +1568,29 @@ _pages: splitStrByLine: "Split text by line breaks" _splitStrByLine: arg1: "Text" - ref: "Variables" - aiScriptVar: "Variable of AiScript" - fn: "Functions" + ref: "Variable" + aiScriptVar: "AiScript Variable" + fn: "Function" _fn: slots: "Slots" - slots-info: "Separate each slots with a line break" + slots-info: "Separate each slot with a line break" arg1: "Output" - for: "Repeat" + for: "for-Loop" _for: arg1: "Number of times to repeat" arg2: "Action" - typeError: "Slot {slot} accepts \"{expect}\" type, but the provided value is \"{actual}\"!" + typeError: "Slot {slot} accepts values of type \"{expect}\", but the provided value is of type \"{actual}\"!" thereIsEmptySlot: "Slot {slot} is empty!" types: string: "Text" number: "Number" boolean: "Flag" - array: "Lists" + array: "List" stringArray: "Text list" emptySlot: "Empty slot" - enviromentVariables: "Environment variable" - pageVariables: "Page element" - argVariables: "Input slot" + enviromentVariables: "Environment variables" + pageVariables: "Page variables" + argVariables: "Input slots" _relayStatus: requesting: "Pending" accepted: "Accepted" @@ -1587,32 +1600,32 @@ _notification: youGotMention: "{name} mentioned you" youGotReply: "{name} replied to you" youGotQuote: "{name} quoted you" - youRenoted: "{name} renoted you" + youRenoted: "Renote from {name}" youGotPoll: "{name} voted on your poll" - youGotMessagingMessageFromUser: "{name} sent you a message" - youGotMessagingMessageFromGroup: "A message was sent to the {name} group" - youWereFollowed: "Followed you" + youGotMessagingMessageFromUser: "{name} sent you a chat message" + youGotMessagingMessageFromGroup: "A chat message was sent to the {name} group" + youWereFollowed: "followed you" youReceivedFollowRequest: "You've received a follow request" yourFollowRequestAccepted: "Your follow request was accepted" - youWereInvitedToGroup: "Invited to group" + youWereInvitedToGroup: "You've been invited to a group" _types: all: "All" - follow: "Follows" + follow: "New followers" mention: "Mentions" reply: "Replies" renote: "Renotes" quote: "Quotes" reaction: "Reactions" pollVote: "Votes on polls" - receiveFollowRequest: "Follow request received" - followRequestAccepted: "Follow request accepted" - groupInvited: "Invited to groups" + receiveFollowRequest: "Received follow requests" + followRequestAccepted: "Accepted follow requests" + groupInvited: "Group invitations" app: "Notifications from apps" _deck: alwaysShowMainColumn: "Always show main column" columnAlign: "Align columns" columnMargin: "Margin between columns" - columnHeaderHeight: " Column header height" + columnHeaderHeight: "Column header height" addColumn: "Add column" swapLeft: "Swap to left" swapRight: "Swap to right" @@ -1627,6 +1640,6 @@ _deck: notifications: "Notifications" tl: "Timeline" antenna: "Antennas" - list: "Lists" + list: "List" mentions: "Mentions" direct: "Direct" diff --git a/locales/eo-UY.yml b/locales/eo-UY.yml index e87afb4b2b..99d2a93c9b 100644 --- a/locales/eo-UY.yml +++ b/locales/eo-UY.yml @@ -1,19 +1,19 @@ --- _lang_: "Esperanto" -headlineMisskey: "Reto ligiĝas per notoj" -introMisskey: "Bonvenon! Miskejo estas malferma kodaの分散型マイクロブログサービスです。\nBonvolu Krei「noto」、いま起こっていることを共有したり、あなたについて皆に発信しよう📡\n「 reaktigoj 」機能で、皆のnotojに素早く反応を追加することもできます👍\n新しい世界を探検しよう🚀" +headlineMisskey: "Reto ligiĝanta per notoj" +introMisskey: "Bonvenon! Misskey (Ĉi-sekve Miskejo) estas malfermitkoda malcentriza mikrobloga servo.\nKreu \"noto\"n por ke kunhavu tion kio nun okazas aŭ ke eksendu tion kio pri vi📡\nFunkcion \"reago\" vi povas uzi kaj aldoni vian reagon pri ciu noto de ĉiu homo👍\nVolu esplori nova mondo🚀" monthAndDay: "{day}-a/{month}" search: "Serĉi" notifications: "Sciigoj" -username: "Uzantonomo" +username: "Uzantnomo" password: "Pasvorto" forgotPassword: "Ĉu vi forgesis pasvorton?" -fetchingAsApObject: "Informpetado de fediverso..." -ok: "Okej" +fetchingAsApObject: "Informpetado de Fediverso..." +ok: "Akcepteble" gotIt: "Mi konprenas!" cancel: "Nuligi" -enterUsername: "Entajpu uzantonomon" -renotedBy: "Renotigojn faras {user}" +enterUsername: "Entajpu uzantnomon" +renotedBy: "Renoton faras {user}" noNotes: "Neniu noto!" noNotifications: "Vi ne havas sciigojn." instance: "Ekzemplo" @@ -22,7 +22,8 @@ basicSettings: "Ĝeneralaj agordoj" otherSettings: "Aliaj agordoj" openInWindow: "Malfermi en nova fenestro" profile: "Profilo" -timeline: "Tempolinio" +timeline: "Templinio" +noAccountDescription: "Tiu uzanto ne enhavas biografion je la profilo." login: "Ensaluti" loggingIn: "Ensalutado..." logout: "Elsaluti" @@ -42,33 +43,34 @@ unpin: "Depingli" copyContent: "Kopii enhavon" copyLink: "Kopii ligilon" delete: "Forviŝi" -deleteAndEdit: "Forviŝi kaj redakti" -deleteAndEditConfirm: "Ĉu vi certas, ke vi volas forviŝi la noton? La reaktigoj, renotigoj, kaj respondoj ankaŭ forigiĝos." -addToList: "Aldoni al listo" +deleteAndEdit: "Foriginte redakti" +deleteAndEditConfirm: "Ĉu vi certas, ke vi volas forigi la noton kaj redakti ĝin? Ĉiuj reagoj, renotoj, kaj respondoj ankaŭ foriĝos." +addToList: "Aldoni al la listo" sendMessage: "Sendi mesaĝon" -copyUsername: "Kopii uzantonomon" +copyUsername: "Kopii uzantnomon" searchUser: "Serĉi uzanton" reply: "Respondi" -loadMore: "Vidu plu" -showMore: "Vidi plu" -youGotNewFollower: "Vi estas eksekvita." +loadMore: "Vidu pli" +showMore: "Vidi pli" +youGotNewFollower: "Vin eksekvis" +receiveFollowRequest: "Eksekvopeton riceviĝis." +followRequestAccepted: "La eksekvopeto akceptiĝis." mention: "Mencioj" -mentions: "Mencioj" -directNotes: "Senperaj notoj" +mentions: "Al vi" importAndExport: "Importaĵo / Eksportaĵo" import: "Importi" export: "Eksporti" files: "Dosieroj" download: "Elŝuti" -driveFileDeleteConfirm: "Ĉu vi certas ke vi volas forviŝi la dosieron \"{name}\"? La notoj kun la aldonaĵo ankaŭ forviŝiĝos." -unfollowConfirm: "Ĉu vi certas, ke vi volas ne plu sekvi {name}?" +driveFileDeleteConfirm: "Ĉu vi certas ke vi volas forviŝi la dosierujon {name}? Noto aldonita ĝin ankaŭ foriĝos." +unfollowConfirm: "Ĉu vi certas, ke vi volas ne plu sekvi {name}'(o)n?" lists: "Listoj" noLists: "Neniu listo" note: "Elsendi noto" notes: "Notoj" -following: "Sekvi" +following: "Sekvatoj" followers: "Sekvantoj" -followsYou: "Sekvas vin" +followsYou: "Vin sekvas " createList: "Kreii liston" error: "Eraro" somethingHappened: "Problemo okazis." @@ -76,13 +78,15 @@ retry: "Reprovi" enterListName: "Entajpu nomon de la listo" privacy: "Privateco" follow: "Sekvi" -followRequest: "Peti eksekvi" +followRequest: "Peti akcepti de vi eksekvi" followRequests: "Eksekvopetoj" unfollow: "Ne plu sekvi" -renote: "Renotici" -unrenote: "Forigi renotici" -cantRenote: "Tiu noto estas renototebla." -cantReRenote: "Renotigo ne estas renotigebla." +enterEmoji: "Entajpu emoĵion" +renote: "Fari renoton" +unrenote: "Malfari renoton" +renoted: "Renoton fariĝis." +cantRenote: "Tiu noto ne estas renototebla." +cantReRenote: "Oni ne povas fari renoton kiu enhavas renoto." quote: "Citi" pinnedNote: "Pinglita noto" pinned: "Alpingli sur la profilo" @@ -103,22 +107,37 @@ unblockConfirm: "Ĉu vi certas ke vi volas malbloki la uzanton?" suspendConfirm: "Ĉu vi certas ke vi volas frostigi la uzanton?" unsuspendConfirm: "Ĉu vi certas ke vi volas fandi la uzanton?" selectList: "Elekti liston" -emojiUrl: "Retadreso de la emoĵio" +selectAntenna: "Elekti antenon" +selectWidget: "Elekti enestraĵon" +editWidgets: "Redakti fenestraĵon" +editWidgetsExit: "Fini la redaktadon" +customEmojis: "Personecigitaj emoĵioj" +emoji: "Emoĵio" +emojiName: "Nomo de emoĵio" +emojiUrl: "URL de la bildo de emoĵio" +addEmoji: "Aldoni emoĵion" +cacheRemoteFiles: "Havi staplon por foraj dosieroj" flagAsBot: "Tiu uzanto estas roboto" flagAsCat: "Tiu uzanto estas kato" addAccount: "Aldoni konton" -showOnRemote: "Vidi sur la transa ekzemplo" +showOnRemote: "Vidi sur la fora ekzemplo" general: "Ĝenerala" searchWith: "Serĉi: {q}" youHaveNoLists: "Vi ne havas listojn." -followConfirm: "Ĉu vi certas, ke vi volas sekvi {name}'n?" +followConfirm: "Ĉu vi certas ke vi volas sekvi {name}'(o)n?" selectUser: "Elekti uzanton" annotation: "Komentarioj" federation: "Fediverso" instances: "Ekzemplo" +perHour: "Po horo" +perDay: "Po tago" blockThisInstance: "Bloki tiu ekzemplo" +withNFiles: "{n} dosiero(j)" disk: "Diskilo" -blockedInstances: "Blokitaj ekzemploj" +instanceInfo: "Informo pri la ekzemplo" +clearCachedFiles: "Forviŝi datumon en staplo" +clearCachedFilesConfirm: "Ĉu vi certas, ke vi volas forviŝi ĉiujn transajn dosierojn en la staplo?" +blockedInstances: "Blokataj ekzemploj" muteAndBlock: "Silentitaj / Blokitaj" mutedUsers: "Silentigitaj uzantoj" blockedUsers: "Blokitaj uzantoj" @@ -131,8 +150,8 @@ federating: "Konfederado" blocked: "Blokita" subscribing: "Abonita" notResponding: "Alvokato ne disponeblas" -instanceFollowing: "Sekvi ekzemplon" -instanceFollowers: "Sekvantoj de la ekzemplo" +instanceFollowing: "Sekvatoj sur la ekzemplo" +instanceFollowers: "Sekvantoj el la ekzemplo" instanceUsers: "Uzantoj de la ekzemplo" changePassword: "Ŝanĝi pasvorton" currentPassword: "Aktuala pasvorto" @@ -140,164 +159,309 @@ newPassword: "Nova pasvorto" newPasswordRetype: "Reentajpu la novan pasvorton" attachFile: "Aldoni dosieron" more: "Plu!" -usernameOrUserId: "Uzantonomo aŭ ID de uzanto" +usernameOrUserId: "Uzantnomo aŭ identigilo de uzanto" noSuchUser: "Neniuj uzantoj trovitaj." -remove: "Forviŝi" +imageUrl: "URL de bildo" +remove: "Forigi" removed: "Forviŝis" -removeAreYouSure: "Ĉu vi certas ke vi volas forigi \"{x}\"?" -deleteAreYouSure: "Ĉu vi certas ke vi volas forigi \"{x}\"?" -messaging: "Babilejoj" +removeAreYouSure: "Ĉu vi certas ke vi volas forigi \"{x}\"'(o)n?" +deleteAreYouSure: "Ĉu vi certas ke vi volas forviŝi \"{x}\"'(o)n?" +messaging: "Retbabili" upload: "Alŝuti" -fromDrive: "De la diskilo" -fromUrl: "De retadreso" -uploadFromUrl: "Aldoni de retadreso" -uploadFromUrlDescription: "Retadreso de la dosiero kiun vi volu alŝuti" +fromDrive: "De la diskingo en Miskejo" +fromUrl: "De URL" +uploadFromUrl: "Alŝuti de URL" +uploadFromUrlDescription: "URL de la dosiero kiun vi volu alŝuti" games: "Ludoj sur Miskejo" messageRead: "Legita" startMessaging: "Komenci babiladon" tos: "Kondiĉoj de Uzado" start: "Komenciĝi" -home: "Ĉefpaĝo" -drive: "Diskilo" +home: "Hejmo" +remoteUserCaution: "Ĉi tiu Infomoj estas ne tute ekzakta pro distanca uzanto." +images: "Bildoj" +birthday: "Naskiĝtago" +registeredDate: "Registriĝdato" +drive: "Diskingo" fileName: "Dosiernomo" selectFile: "Elekti dosieron" selectFiles: "Elekti dosieron" -renameFile: "Renomigi dosieron" +renameFile: "Alinomi la dosieron" +folderName: "Nomo de la dosierujo" +renameFolder: "Alinomi la dosierujon" deleteFolder: "Forviŝi dosierujon" addFile: "Aldoni dosieron" -emptyDrive: "La diskilo enhavas neniun." +emptyDrive: "La diskingo enhavas neniun." unableToDelete: "Ne forigebla" inputNewFileName: "Entajpu nova dosiernomon" -hasChildFilesOrFolders: "La dosierujo estas neforviŝebla pro tio, ke ĝi enhavas dosieron." -copyUrl: "Kopii retadreson" +inputNewFolderName: "Entajpu nova nomon de la dosierujo" +hasChildFilesOrFolders: "La dosierujo enhavas dosieron kaj ne estas forigebla." +copyUrl: "Kopii URL" +rename: "Alinomi" +avatar: "Ikono" nsfw: "Enhavo ne estas deca por laborejo (NSFW)" instanceName: "Nomo de la ekzemplo" +maintainerName: "Nomo de la administranto" +maintainerEmail: "Retpoŝto de la administranto" +tosUrl: "URL de kondiĉoj de uzado" +thisYear: "Ĉi-jare" +thisMonth: "Ĉi-monate" +today: "Hodiaŭ" +dayX: "{day}-a" +monthX: "{month}" +yearX: "La jaro {year}" connectService: "Konekti" disconnectService: "Farkonektiĝi" -driveCapacityPerLocalAccount: "Volumo po unu loka-uzanto" -driveCapacityPerRemoteAccount: "Volumo po unu transa uzanto" +driveCapacityPerLocalAccount: "Volumo de miskej-diskingo po unu loka uzanto" +driveCapacityPerRemoteAccount: "Volumo de miskej-diskingo po unu transa uzanto" +iconUrl: "URL de la ikono (retpaĝsimbolo, ktp.)" pinnedUsers: "Alpinglita uzanto" pinnedNotes: "Pinglita noto" +name: "Nomo" withFileAntenna: "Nur kun aldonaĵo" notesAndReplies: "Kun respondoj" withFiles: "Kun aldonaĵo" silenceConfirm: "Ĉu vi certas ke vi volas silentigi la uzanton?" -unsilenceConfirm: "Ĉu vi certas ke vi volas malsilentigi la uzanton?" +unsilenceConfirm: "Ĉu vi certas, ke vi ne plu volas ke la uzanto silentas?" +popularTags: "Popularaj kradvortoj" userList: "Listoj" aboutMisskey: "Pri Miskejo" +securityKeyName: "Nomo de la ŝlosilo" passwordLessLogin: "Ensaluti sen pasvorto" resetPassword: "Restarigi pasvorton" newPasswordIs: "La nova pasvorto estas {password}." +cacheClear: "Forviŝi datumon en stalo" +help: "Manlibro de uzado" inputMessageHere: "Entajpu masaĝo tie ĉi" +groupName: "Grupa nomo" +messagingWithUser: "Mesaĝado kun uzanto" +messagingWithGroup: "Mesaĝi kun grupo" noteOf: "Noto de {user}" +noMessagesYet: "Neniu mesaĝo" newMessageExists: "Vi ricevis novan mesaĝon." onlyOneFileCanBeAttached: "Vi povas aldoni nur unu dosieron po unu mesaĝo." uiLanguage: "Lingvo de la interfaco" +tags: "Etikedoj" +createAccount: "Krei konton" +existingAccount: "Ekzista konto" noFollowRequests: "Vi ne havas eksekvopetojn." +openImageInNewTab: "Fermi la bildo sur nova tablo" local: "Loka" remote: "Transa" +accountSettings: "Agordoj de Konto" +numberOfDays: "Nombro de tagoj" hideThisNote: "Kaŝi tiun noton" -deleteAllFiles: "Forvisi ĉiujn dosierojn" +objectStorageBaseUrl: "Baza URL" +deleteAll: "Forviŝi ĉiujn" +showInPage: "Vidi en paĝo" +deleteAllFiles: "Forviŝi ĉiujn dosierojn" deleteAllFilesConfirm: "Ĉu vi certas, ke vi volas forviŝi ĉiujn viajn dosierojn?" +deletedNote: "Forviŝita noto" invisibleNote: "Malpublika noto" +poll: "Balotujo" emailServer: "Retpoŝta servilo" email: "Retpoŝto" -emailAddress: "Retpoŝtadreso" -smtpUser: "Uzantonomo" +emailAddress: "Retpoŝta adreso" +smtpUser: "Uzantnomo" smtpPass: "Pasvorto" userSaysSomething: "{name} parolis ion" +display: "Vidi" database: "Datumbazo" channel: "Kanalo" -fileIdOrUrl: "Dosirero ID aŭ retadreso" +fileIdOrUrl: "Dosiera identigilo aŭ URL" +abuseReports: "Signali" +reportAbuse: "Signali" +reportAbuseOf: "Signali {name}'(o)n" send: "Sendi" -i18nInfo: "Tradukojn de Misskey en diversaj lingvoj faras volontuloj. Vi povus kunlabori en tradukado sur {link}, se vi volus." -driveFilesCount: "Numero de dosieroj en la diskilo" -onlineUsersCount: "{n} uzanto(j) estas surkonektita" +i18nInfo: "Misskey estas tradukata en diversaj lingvoj far volontuloj. Oni povas kontribui por la tradukado sur {link}." +followingCount: "Numero de sekvatoj" +followersCount: "Numero de sekvantoj" +yes: "Jes" +no: "Ne" +driveFilesCount: "Numero de dosieroj en la diskingo" +noteFavoritesCount: "Numero de la preferataj notoj" +makeExplorable: "Igi videbla konto sur la paĝo \"Esplorado\"" +showTitlebar: "Montri titolobredon" +clearCache: "Forviŝi datumon en staplo" +onlineUsersCount: "{n} uzanto(j) estas surlinea" nUsers: "{n} uzanto(j)" +saveAs: "Konservi kiel…" +createdAt: "Kreita je" +updatedAt: "Laste ĝisdatigita" +deleteConfirm: "Ĉu certas forviŝi?" +closeAccount: "Forigi konton" emailNotification: "Sciigoj per retpoŝto" publish: "Publikigi" inChannelSearch: "Serĉi en kanalo" typingUsers: "{users} estas entajpanta(j)..." online: "Surkonektita" offline: "Forkonektita" -instanceBlocking: "Ekzempla blokado" +instanceBlocking: "Blokado de ekzemplo" +selectAccount: "Elekti konton" user: "Uzanto" +accounts: "Kontoj" +global: "Konfederacia" +sent: "Sendi" +hashtags: "Kradvorto" _gallery: liked: "Ŝatitaj notoj" _email: _follow: - title: "Vi estas eksekvita." + title: "Vin eksekvis" _receiveFollowRequest: title: "Vi ricevis eksekvopeton." _aboutMisskey: - about: "Misskey estas malferma koda programo evoluigata far syuilo ekde la 2014." + about: "Misskey estas malfermitkoda programo evoluigata de syuilo ekde la 2014." + contributors: "Precipaj kontribuantoj" + allContributors: "Ĉiuj kontribuintoj" source: "Fontkodo" - translation: "Traduki Misskey'on" + translation: "Traduki Miskejon" + patrons: "Mecenatoj" _mfm: mention: "Mencioj" - url: "Retadreso" + hashtag: "Kradvorto" + url: "URL" blockCode: "Kodo (Ujo)" blockMath: "Formulo (Ujo)" quote: "Citi" + emoji: "Personecigitaj emoĵioj" search: "Serĉi" _instanceTicker: none: "Ne montri" remote: "Montri al transaj uzantoj" + always: "Ĉiam montri" _channel: create: "Krei kanalon" edit: "Redakti kanalon" - following: "Sekvaton" + following: "Sekvata" +_menuDisplay: + hide: "Kaŝi" +_wordMute: + muteWords: "Silentanta vorto" + mutedNotes: "Silentigataj notoj" _theme: keys: + hashtag: "Kradvorto" mention: "Mencioj" - renote: "Renotici" + renote: "Fari renoton" _sfx: note: "Nova noto" + noteMy: "Mia noto" notification: "Sciigoj" - chat: "Babilejoj" - channel: "Kanala sciigoj" + chat: "Retbabilejo" + chatBg: "Retbabilejo (BG)" + antenna: "Ricevo de anteno" + channel: "Sciigoj de kanalo" +_ago: + secondsAgo: "Antaŭ {n} sekundoj" + minutesAgo: "Antaŭ {n} minutoj" + hoursAgo: "Antaŭ {n} horoj" + daysAgo: "Antaŭ {n} tagoj" + weeksAgo: "Antaŭ {n} semajnoj" + monthsAgo: "Antaŭ {n} monatoj" + yearsAgo: "Antaŭ {n} jaroj" +_time: + second: "sek" + minute: "min" + hour: "hor" + day: "Tago" _tutorial: - title: "Uzado de Miskejo" + title: "Uzado de Misskey (Ĉi-sekve Miskejo)" + step1_1: "Bonvenon." + step7_2: "Se vi volus scii pli pri Miskejon, volu rigardi la fako {help}." _permissions: "read:blocks": "Vidi la listo de la uzantoj kiun vi blokis." - "read:drive": "Vidi dosierojn en la diskilo" - "read:channels": "Legi kanalon" + "write:blocks": "Redakti la liston de la uzantoj kiun vi blokis." + "read:drive": "Ĉia operacio por legi la informon de dosiero en via diskingo de Miskejo" + "write:drive": "Ĉia operacio por skribi, forviŝi, aŭ alimaniere ŝanĝi la informon de dosiero en via diskingo de Miskejo" + "read:favorites": "Vidi la listo de la preferoj" + "read:following": "Vidi tion kion vi sekvas" + "write:following": "Sekvi kaj/aŭ malsekvi alian uzanton" + "read:messaging": "Vidi via retbabilado" + "write:notes": "Krei / Forviŝi noton" + "read:notifications": "Vidi sciigojn" + "read:reactions": "Vidi reagojn" + "read:pages": "Vidi via paĝojn" + "read:page-likes": "Vidi ŝatojn de paĝo" + "read:channels": "Vidi kanalojn" +_antennaSources: + homeTimeline: "Notoj far uzantoj sekvataj de vi" +_weekday: + sunday: "dimanĉo" + monday: "lundo" + tuesday: "mardo" + wednesday: "merkredo" + thursday: "ĵaŭdo" + friday: "vendredo" + saturday: "sabato" _widgets: notifications: "Sciigoj" - timeline: "Tempolinio" + timeline: "Templinio" + clock: "Horloĝo" federation: "Fediverso" onlineUsers: "Surkonektita uzanto" _cw: - show: "Vidu plu" + show: "Vidu pli" files: "{count} dosiero(j)" +_poll: + choiceN: "Balotilo {n}" + noMore: "Oni ne plu povas aldoni." + infinite: "Neniam" + deadlineTime: "hor" + votesCount: "{n} balotiloj" + vote: "Baloti" + closed: "Oni jam balotis ĝin" _visibility: - publicDescription: "Via noto aperiĝos sur konfederacia tempolinio" - home: "Ĉefpaĝo" - homeDescription: "Elsendi nur sur hejma tempolinio" + publicDescription: "Via noto aperiĝos sur la konfederacia templinio" + home: "Hejmo" + homeDescription: "Elsendi nur sur la hejmtemplinio" followers: "Sekvantoj" - followersDescription: "Elsendi nur al sekvantoj de mi" + followersDescription: "Elsendi nur al sekvantoj al mi" localOnly: "Nur loka" - localOnlyDescription: "Nelegabla al transaj uzantoj" + localOnlyDescription: "Ne montri al transaj uzantoj" _postForm: - channelPlaceholder: "Elsendi sur la kanalo" + replyPlaceholder: "Respondado al tiu noto..." + quotePlaceholder: "Citado tiun noton..." + channelPlaceholder: "Sendi sur la kanalo" _profile: - username: "Uzantonomo" + name: "Nomo" + username: "Uzantnomo" + changeAvatar: "Ŝanĝi profilbildon" _exportOrImport: - followingList: "Sekvi" - muteList: "Silentigi" + followingList: "Sekvataj" + muteList: "Silentigado" blockingList: "Blokado" userLists: "Listoj" _timelines: home: "Hejmo" local: "Loka" - social: "Hejmo kaj loka" + social: "Transa" + global: "Konfederacia" _rooms: + translate: "Movi" + chooseImage: "Elekti bildon" _furnitures: server: "Servilo" + moon: "La luno" _pages: + deleted: "La paĝo estas forigita." + viewPage: "Vidi via paĝojn" + my: "Miaj paĝoj" content: "Blokado de paĝo" - url: "Retadreso de la paĝo" - chooseBlock: "Aldoni blokado" + url: "URL de paĝo" + chooseBlock: "Aldoni ujon" + blocks: + image: "Bildoj" + _post: + canvasId: "Kanvasa identigilo" + _canvas: + id: "Kanvasa identigilo" + _note: + id: "Identigilo de noto" + _button: + _action: + _pushEvent: + event: "Nomo de la evento" script: categories: list: "Listoj" @@ -317,21 +481,26 @@ _pages: arg1: "Listoj" types: array: "Listoj" + stringArray: "List de teksto" _notification: fileUploaded: "La dosiero sukcese alŝutiĝis." - youWereFollowed: "Vi estas eksekvita." + youGotPoll: "{name} balotis" + youGotMessagingMessageFromUser: "{name} sentis mesaĝon al vi." + youWereFollowed: "Vin eksekvis" youReceivedFollowRequest: "Vi ricevis eksekvopeton." yourFollowRequestAccepted: "Via eksekvopeto estas akceptita." _types: - follow: "Sekvi" + follow: "Sekvatoj" mention: "Mencioj" - renote: "Renotici" + renote: "Fari renoton" quote: "Citi" reaction: "Reagoj" receiveFollowRequest: "Eksekvopeto ricevita" + followRequestAccepted: "Eksekvopeto akceptiĝis." _deck: + profile: "Agordaro" _columns: notifications: "Sciigoj" - tl: "Tempolinio" + tl: "Templinio" list: "Listoj" - mentions: "Mencioj" + mentions: "Al vi" diff --git a/locales/es-ES.yml b/locales/es-ES.yml index 81baa9b37f..8c3e6f13ee 100644 --- a/locales/es-ES.yml +++ b/locales/es-ES.yml @@ -665,6 +665,10 @@ administration: "Administrar" expiration: "Termina el" middle: "Mediano" global: "Global" +sent: "Enviar" +hashtags: "Hashtag" +_docs: + admin: "Administrar" _ad: back: "Deseleccionar" _gallery: diff --git a/locales/fr-FR.yml b/locales/fr-FR.yml index 1ebe492b8f..5a1db402ac 100644 --- a/locales/fr-FR.yml +++ b/locales/fr-FR.yml @@ -528,6 +528,7 @@ removeAllFollowing: "Retenir tous les abonnements" removeAllFollowingDescription: "Se désabonner de tous les comptes de {host}. Veuillez lancer cette action uniquement si l’instance n’existe plus." userSuspended: "Cet·te utilisateur·rice a été suspendu·e." userSilenced: "Cette utilisateur·trice a été mis·e en sourdine." +menu: "Menu" divider: "Séparateur" addItem: "Ajouter un élément" rooms: "Chambre" @@ -760,7 +761,18 @@ middle: "Moyen" low: "Basse" emailNotConfiguredWarning: "Vous n'avez pas configuré d'adresse e-mail." ratio: "Ratio" +customCss: "CSS personnalisé" +customCssWarn: "Utilisez cette fonctionnalité uniquement si vous savez exactement ce que vous faites. Une configuration inadaptée peut empêcher le client de s'exécuter normalement." global: "Global" +squareAvatars: "Avatars carrés" +sent: "Envoyer" +hashtags: "Hashtags" +_docs: + continueReading: "Lire plus" + features: "Fonctionnalités" + generalTopics: "Sujets généraux" + advancedTopics: "Sujets avancés" + admin: "Gestion" _ad: back: "Retour" reduceFrequencyOfThisAd: "Voir cette publicité moins souvent" @@ -911,6 +923,9 @@ _channel: usersCount: "{n} Participant·e·s" notesCount: "{n} Notes" _menuDisplay: + sideFull: "Latéral" + sideIcon: "Latéral (icônes)" + top: "Haut de page" hide: "Masquer" _wordMute: muteWords: "Mots à filtrer" diff --git a/locales/id-ID.yml b/locales/id-ID.yml index 7b5cd6b869..16f4d4468b 100644 --- a/locales/id-ID.yml +++ b/locales/id-ID.yml @@ -528,6 +528,7 @@ removeAllFollowing: "Tahan semua mengikuti" removeAllFollowingDescription: "Batal mengikuti semua akun dari {host}. Mohon jalankan ini ketika instansi sudah tidak ada lagi." userSuspended: "Pengguna ini telah dibekukan." userSilenced: "Pengguna ini telah dibungkam." +menu: "Menu" divider: "Pembagi" addItem: "Tambahkan item" rooms: "Ruang" @@ -760,7 +761,14 @@ middle: "Sedang" low: "Rendah" emailNotConfiguredWarning: "Alamat surel tidak disetel." ratio: "Rasio" +customCss: "Custom CSS" +customCssWarn: "Pengaturan ini seharusnya digunakan jika kamu tahu cara kerjanya. Memasukkan nilai yang tidak tepat dapat menyebabkan klien tidak berfungsi semestinya." global: "Global" +squareAvatars: "Tampilkan avatar sebagai persegi" +sent: "Kirim" +hashtags: "Tagar" +_docs: + admin: "Manajemen" _ad: back: "Kembali" reduceFrequencyOfThisAd: "Tampilkan iklan ini lebih sedikit" @@ -911,6 +919,9 @@ _channel: usersCount: "{n} Partisipan" notesCount: "terdapat {n} catatan" _menuDisplay: + sideFull: "Horisontal" + sideIcon: "Horisontal (Ikon)" + top: "Atas" hide: "Sembunyikan" _wordMute: muteWords: "Kata yang dibisukan" diff --git a/locales/it-IT.yml b/locales/it-IT.yml index 0ac8ccfba5..70672aa0a8 100644 --- a/locales/it-IT.yml +++ b/locales/it-IT.yml @@ -741,6 +741,12 @@ low: "Bassa" emailNotConfiguredWarning: "Non hai impostato nessun indirizzo e-mail." ratio: "Rapporto" global: "Federata" +sent: "Inviare" +hashtags: "Hashtag" +_docs: + continueReading: "Leggi di più" + features: "Funzionalità" + admin: "Gestione" _ad: back: "Indietro" reduceFrequencyOfThisAd: "Visualizza questa pubblicità meno spesso" diff --git a/locales/ja-KS.yml b/locales/ja-KS.yml index ef951adce6..05542e8198 100644 --- a/locales/ja-KS.yml +++ b/locales/ja-KS.yml @@ -647,6 +647,10 @@ high: "高い" middle: "中" low: "低い" global: "グローバル" +sent: "送信" +hashtags: "ハッシュタグ" +_docs: + admin: "管理" _ad: back: "戻る" _gallery: diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml index 50d920bf55..bcd3a0fe44 100644 --- a/locales/ko-KR.yml +++ b/locales/ko-KR.yml @@ -528,6 +528,7 @@ removeAllFollowing: "모든 팔로잉 해제" removeAllFollowingDescription: "{host}(으)로부터 모든 팔로잉을 해제합니다. 해당 인스턴스가 더 이상 존재하지 않게 된 경우 등에 실행해 주세요." userSuspended: "이 계정은 정지된 상태입니다." userSilenced: "이 계정은 사일런스된 상태입니다." +menu: "메뉴" divider: "구분선" addItem: "항목 추가" rooms: "방" @@ -760,7 +761,14 @@ middle: "보통" low: "낮음" emailNotConfiguredWarning: "메일 주소가 설정되어 있지 않습니다." ratio: "비율" +customCss: "CSS 사용자화" +customCssWarn: "이 설정은 기능을 알고 있는 경우에만 사용해야 합니다. 잘못된 값을 입력하면 클라이언트가 정상적으로 작동하지 않을 수 있습니다." global: "글로벌" +squareAvatars: "프로필 아이콘을 사각형으로 표시" +sent: "전송" +hashtags: "해시태그" +_docs: + admin: "관리" _ad: back: "뒤로" reduceFrequencyOfThisAd: "이 광고의 표시 빈도 낮추기" @@ -911,6 +919,9 @@ _channel: usersCount: "{n}명 참여 중" notesCount: "{n}노트" _menuDisplay: + sideFull: "가로" + sideIcon: "가로(아이콘)" + top: "상단" hide: "숨기기" _wordMute: muteWords: "뮤트할 단어" diff --git a/locales/pl-PL.yml b/locales/pl-PL.yml index db6241c019..eafd072a9f 100644 --- a/locales/pl-PL.yml +++ b/locales/pl-PL.yml @@ -735,6 +735,10 @@ low: "Niski" emailNotConfiguredWarning: "Nie podano adresu e-mail" ratio: "Stosunek" global: "Globalna" +sent: "Wyślij" +hashtags: "Hashtag" +_docs: + admin: "Zarządzanie" _ad: back: "Wróć" reduceFrequencyOfThisAd: "Pokazuj tę reklamę rzadziej" diff --git a/locales/ru-RU.yml b/locales/ru-RU.yml index 119a78de22..21b38651a6 100644 --- a/locales/ru-RU.yml +++ b/locales/ru-RU.yml @@ -761,6 +761,14 @@ low: "Низкий" emailNotConfiguredWarning: "Не указан адрес электронной почты" ratio: "Соотношение" global: "Всеобщая" +sent: "Отправить" +hashtags: "Хэштег" +_docs: + continueReading: "Читать подробнее" + features: "Возможности" + generalTopics: "Основные темы" + advancedTopics: "Дополнительные темы" + admin: "Управление" _ad: back: "Выход" reduceFrequencyOfThisAd: "Реже показывать эту рекламу" @@ -859,6 +867,8 @@ _mfm: blurDescription: "Размывает текст до нечитаемости, будто его поместили за матовое стекло. Наведение указателя мыши на размытый текст возвращает чёткость." font: "Шрифт" fontDescription: "Так можно писать произвольным шрифтом." + rainbow: "Радуга" + rainbowDescription: "Заставлять содержимое отображаться в цветах радуги." _reversi: reversi: "Реверси" gameSettings: "Настройки игры" @@ -911,6 +921,9 @@ _channel: usersCount: "Участников: {n}" notesCount: "Заметок: {n}" _menuDisplay: + sideFull: "Сторона" + sideIcon: "Сторона (иконки)" + top: "Вверх" hide: "Спрятать" _wordMute: muteWords: "Скрыть слово" diff --git a/locales/uk-UA.yml b/locales/uk-UA.yml index 893fb3bcdc..56ffd3e78f 100644 --- a/locales/uk-UA.yml +++ b/locales/uk-UA.yml @@ -689,6 +689,10 @@ administration: "Управління" expiration: "Опитування закінчується" middle: "Середній" global: "Глобальна" +sent: "Відправити" +hashtags: "Хештеґ" +_docs: + admin: "Управління" _ad: back: "Назад" _gallery: diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml index 2612652c54..6b5182c6f2 100644 --- a/locales/zh-CN.yml +++ b/locales/zh-CN.yml @@ -765,6 +765,16 @@ customCss: "自定义 CSS" customCssWarn: "这些设置必须有相关的基础知识,不当的配置可能导致客户端无法正常使用!" global: "全局" squareAvatars: "显示方形头像图标" +sent: "发送" +received: "收取" +searchResult: "搜索结果" +hashtags: "话题标签" +_docs: + continueReading: "继续阅读" + features: "特性" + generalTopics: "通常提示" + advancedTopics: "进阶提示" + admin: "管理" _ad: back: "返回" reduceFrequencyOfThisAd: "减少此广告的频率" @@ -863,6 +873,8 @@ _mfm: blurDescription: "产生模糊效果。将鼠标指针放在上面即可将内容显示出来。" font: "字体" fontDescription: "可以设置内容所使用的字体。" + rainbow: "彩虹" + rainbowDescription: "用彩虹色来显示内容。" _reversi: reversi: "黑白棋" gameSettings: "对局设置" diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml index 7010220fc1..bae072b0bb 100644 --- a/locales/zh-TW.yml +++ b/locales/zh-TW.yml @@ -751,6 +751,10 @@ low: "低" emailNotConfiguredWarning: "沒有設定電子郵件地址" ratio: "%" global: "公開" +sent: "發送" +hashtags: "#tag" +_docs: + admin: "管理" _ad: back: "返回" reduceFrequencyOfThisAd: "降低此廣告的頻率 " diff --git a/src/docs/eo-UY/custom-emoji.md b/src/docs/eo-UY/custom-emoji.md index ed2e92be16..ab8c6c7f12 100644 --- a/src/docs/eo-UY/custom-emoji.md +++ b/src/docs/eo-UY/custom-emoji.md @@ -1,2 +1,2 @@ -# カスタム絵文字 +# Personecigitaj emoĵioj カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/eo-UY/follow.md b/src/docs/eo-UY/follow.md index 6208b86e3c..6199895eba 100644 --- a/src/docs/eo-UY/follow.md +++ b/src/docs/eo-UY/follow.md @@ -1,2 +1,2 @@ -# Sekvi +# Sekvataj ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/eo-UY/keyboard-shortcut.md b/src/docs/eo-UY/keyboard-shortcut.md index 1765272dab..1efd76f66d 100644 --- a/src/docs/eo-UY/keyboard-shortcut.md +++ b/src/docs/eo-UY/keyboard-shortcut.md @@ -1,6 +1,6 @@ # キーボードショートカット -## グローバル +## Konfederacia これらのショートカットは基本的にどこでも使えます。 diff --git a/src/docs/eo-UY/mute.md b/src/docs/eo-UY/mute.md index 1835bc8d92..3a36c00f7a 100644 --- a/src/docs/eo-UY/mute.md +++ b/src/docs/eo-UY/mute.md @@ -1,4 +1,4 @@ -# Mutigi +# Silentigi ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: diff --git a/src/docs/eo-UY/stream.md b/src/docs/eo-UY/stream.md index 45867d28d2..f06eb96bef 100644 --- a/src/docs/eo-UY/stream.md +++ b/src/docs/eo-UY/stream.md @@ -31,7 +31,7 @@ **ストリームでのやり取りはすべてJSONです。** -## Kanaloj +## Kanalo MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 ### チャンネルに接続する diff --git a/src/docs/eo-UY/timelines.md b/src/docs/eo-UY/timelines.md index e40e99537c..8f0e8a93a5 100644 --- a/src/docs/eo-UY/timelines.md +++ b/src/docs/eo-UY/timelines.md @@ -2,7 +2,7 @@ https://docs.google.com/spreadsheets/d/1lxQ2ugKrhz58Bg96HTDK_2F98BUritkMyIiBkOByjHA/edit?usp=sharing -## Ĉefpaĝo +## Hejmo 自分のフォローしているユーザーの投稿 ## Loka @@ -11,5 +11,5 @@ https://docs.google.com/spreadsheets/d/1lxQ2ugKrhz58Bg96HTDK_2F98BUritkMyIiBkOBy ## Hejmo kaj loka 自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿 -## グローバル +## Konfederacia 全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿 diff --git a/src/docs/id-ID/create-plugin.md b/src/docs/id-ID/create-plugin.md index ec17b95186..5f6b3daa99 100644 --- a/src/docs/id-ID/create-plugin.md +++ b/src/docs/id-ID/create-plugin.md @@ -1,4 +1,4 @@ -# プラグインの作成 +# Membuat Plugin Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 ## Metadata -- cgit v1.2.3-freya From c968633d155587083d280a48c6b425064f5f44c6 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 7 Aug 2021 23:43:42 +0900 Subject: Update misskey.md --- src/docs/ja-JP/general/misskey.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/docs') diff --git a/src/docs/ja-JP/general/misskey.md b/src/docs/ja-JP/general/misskey.md index 97ffd23eb2..d364780ec7 100644 --- a/src/docs/ja-JP/general/misskey.md +++ b/src/docs/ja-JP/general/misskey.md @@ -18,7 +18,7 @@ Misskeyはオープンソースの分散型マイクロブログプラットフ ## 常にオープンソース Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 -Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開]((https://github.com/misskey-dev))されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 +Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 @@ -84,6 +84,8 @@ Misskeyは分散型なため、各サーバーにそれぞれ異なった運営 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + ### サーバーを建てるにはどうしたらいいですか? Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 -- cgit v1.2.3-freya From b90d76dcfe614d9668cc43a0728cc53b48898738 Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 8 Aug 2021 18:47:57 +0900 Subject: Update links.md --- src/docs/ja-JP/general/links.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/docs') diff --git a/src/docs/ja-JP/general/links.md b/src/docs/ja-JP/general/links.md index 9541a6255b..d6b16856fb 100644 --- a/src/docs/ja-JP/general/links.md +++ b/src/docs/ja-JP/general/links.md @@ -1,2 +1,5 @@ # リンク集 -todo + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 -- cgit v1.2.3-freya From ed20805b10f4e332f50d4579c700058cb74c942c Mon Sep 17 00:00:00 2001 From: syuilo Date: Sun, 8 Aug 2021 21:39:45 +0900 Subject: New Crowdin updates (#7616) * New translations troubleshooting.md (Indonesian) * New translations troubleshooting.md (Chinese Traditional) * New translations troubleshooting.md (German) * New translations troubleshooting.md (Chinese Simplified) * New translations troubleshooting.md (Ukrainian) * New translations troubleshooting.md (Russian) * New translations troubleshooting.md (Portuguese) * New translations troubleshooting.md (Polish) * New translations troubleshooting.md (Norwegian) * New translations troubleshooting.md (Dutch) * New translations troubleshooting.md (Korean) * New translations troubleshooting.md (Italian) * New translations report-issue.md (Korean) * New translations report-issue.md (German) * New translations links.md (Portuguese) * New translations links.md (Kannada) * New translations misskey.md (German) * New translations misskey.md (Danish) * New translations misskey.md (Czech) * New translations misskey.md (Arabic) * New translations misskey.md (Spanish) * New translations misskey.md (French) * New translations links.md (Japanese, Kansai) * New translations links.md (Kabyle) * New translations links.md (Haitian Creole) * New translations links.md (Lojban) * New translations misskey.md (Korean) * New translations links.md (Uyghur) * New translations links.md (Esperanto) * New translations links.md (Thai) * New translations links.md (Indonesian) * New translations links.md (English) * New translations links.md (Chinese Traditional) * New translations links.md (Chinese Simplified) * New translations links.md (Ukrainian) * New translations links.md (Russian) * New translations misskey.md (Italian) * New translations misskey.md (Dutch) * New translations report-issue.md (Danish) * New translations misskey.md (Uyghur) * New translations report-issue.md (Czech) * New translations report-issue.md (Arabic) * New translations report-issue.md (Spanish) * New translations report-issue.md (French) * New translations misskey.md (Japanese, Kansai) * New translations misskey.md (Kabyle) * New translations misskey.md (Haitian Creole) * New translations misskey.md (Kannada) * New translations misskey.md (Lojban) * New translations misskey.md (Esperanto) * New translations misskey.md (Norwegian) * New translations misskey.md (Thai) * New translations misskey.md (Indonesian) * New translations misskey.md (English) * New translations misskey.md (Chinese Traditional) * New translations misskey.md (Chinese Simplified) * New translations misskey.md (Ukrainian) * New translations misskey.md (Russian) * New translations misskey.md (Portuguese) * New translations misskey.md (Polish) * New translations widgets.md (Lojban) * New translations reaction.md (Polish) * New translations widgets.md (Esperanto) * New translations pages.md (Esperanto) * New translations reaction.md (Spanish) * New translations reaction.md (French) * New translations pages.md (Japanese, Kansai) * New translations pages.md (Kabyle) * New translations pages.md (Haitian Creole) * New translations pages.md (Kannada) * New translations pages.md (Lojban) * New translations pages.md (Uyghur) * New translations pages.md (Thai) * New translations reaction.md (Czech) * New translations pages.md (Indonesian) * New translations pages.md (English) * New translations pages.md (Chinese Traditional) * New translations pages.md (Chinese Simplified) * New translations pages.md (Ukrainian) * New translations pages.md (Russian) * New translations pages.md (Portuguese) * New translations pages.md (Polish) * New translations pages.md (Norwegian) * New translations reaction.md (Arabic) * New translations reaction.md (Danish) * New translations pages.md (Korean) * New translations reaction.md (Indonesian) * New translations silence.md (French) * New translations reaction.md (Japanese, Kansai) * New translations reaction.md (Kabyle) * New translations reaction.md (Haitian Creole) * New translations reaction.md (Kannada) * New translations reaction.md (Lojban) * New translations reaction.md (Uyghur) * New translations reaction.md (Esperanto) * New translations reaction.md (Thai) * New translations reaction.md (English) * New translations reaction.md (German) * New translations reaction.md (Chinese Traditional) * New translations reaction.md (Chinese Simplified) * New translations reaction.md (Ukrainian) * New translations reaction.md (Russian) * New translations reaction.md (Portuguese) * New translations reaction.md (Norwegian) * New translations reaction.md (Dutch) * New translations reaction.md (Korean) * New translations reaction.md (Italian) * New translations pages.md (Dutch) * New translations pages.md (Italian) * New translations silence.md (Arabic) * New translations mute.md (Kabyle) * New translations note.md (Italian) * New translations note.md (German) * New translations note.md (Danish) * New translations note.md (Czech) * New translations note.md (Arabic) * New translations note.md (Spanish) * New translations note.md (French) * New translations mute.md (Japanese, Kansai) * New translations mute.md (Haitian Creole) * New translations note.md (Dutch) * New translations mute.md (Kannada) * New translations mute.md (Lojban) * New translations mute.md (Uyghur) * New translations mute.md (Esperanto) * New translations mute.md (Thai) * New translations mute.md (Indonesian) * New translations mute.md (English) * New translations mute.md (Chinese Traditional) * New translations mute.md (Chinese Simplified) * New translations note.md (Korean) * New translations note.md (Norwegian) * New translations pages.md (German) * New translations note.md (Lojban) * New translations pages.md (Danish) * New translations pages.md (Czech) * New translations pages.md (Arabic) * New translations pages.md (Spanish) * New translations pages.md (French) * New translations note.md (Japanese, Kansai) * New translations note.md (Kabyle) * New translations note.md (Haitian Creole) * New translations note.md (Kannada) * New translations note.md (Uyghur) * New translations note.md (Polish) * New translations note.md (Esperanto) * New translations note.md (Thai) * New translations note.md (Indonesian) * New translations note.md (English) * New translations note.md (Chinese Traditional) * New translations note.md (Chinese Simplified) * New translations note.md (Ukrainian) * New translations note.md (Russian) * New translations note.md (Portuguese) * New translations silence.md (Spanish) * New translations silence.md (Czech) * New translations widgets.md (Thai) * New translations timeline.md (Portuguese) * New translations timeline.md (Esperanto) * New translations timeline.md (Thai) * New translations timeline.md (Indonesian) * New translations timeline.md (English) * New translations timeline.md (Chinese Traditional) * New translations timeline.md (Chinese Simplified) * New translations timeline.md (Ukrainian) * New translations timeline.md (Russian) * New translations timeline.md (Polish) * New translations timeline.md (Lojban) * New translations timeline.md (Norwegian) * New translations timeline.md (Dutch) * New translations timeline.md (Korean) * New translations timeline.md (Italian) * New translations timeline.md (German) * New translations timeline.md (Danish) * New translations timeline.md (Czech) * New translations timeline.md (Arabic) * New translations timeline.md (Spanish) * New translations timeline.md (Uyghur) * New translations timeline.md (Kannada) * New translations theme.md (Japanese, Kansai) * New translations widgets.md (Dutch) * New translations widgets.md (Indonesian) * New translations widgets.md (English) * New translations widgets.md (Chinese Traditional) * New translations widgets.md (Chinese Simplified) * New translations widgets.md (Ukrainian) * New translations widgets.md (Russian) * New translations widgets.md (Portuguese) * New translations widgets.md (Polish) * New translations widgets.md (Norwegian) * New translations widgets.md (Korean) * New translations timeline.md (Haitian Creole) * New translations widgets.md (Italian) * New translations widgets.md (German) * New translations widgets.md (Danish) * New translations widgets.md (Czech) * New translations widgets.md (Arabic) * New translations widgets.md (Spanish) * New translations widgets.md (French) * New translations timeline.md (Japanese, Kansai) * New translations timeline.md (Kabyle) * New translations timeline.md (French) * New translations theme.md (Kabyle) * New translations silence.md (Danish) * New translations silence.md (Chinese Traditional) * New translations silence.md (Kabyle) * New translations silence.md (Haitian Creole) * New translations silence.md (Kannada) * New translations silence.md (Lojban) * New translations silence.md (Uyghur) * New translations silence.md (Esperanto) * New translations silence.md (Thai) * New translations silence.md (Indonesian) * New translations silence.md (English) * New translations silence.md (Chinese Simplified) * New translations theme.md (French) * New translations silence.md (Ukrainian) * New translations silence.md (Russian) * New translations silence.md (Portuguese) * New translations silence.md (Polish) * New translations silence.md (Norwegian) * New translations silence.md (Dutch) * New translations silence.md (Korean) * New translations silence.md (Italian) * New translations silence.md (German) * New translations silence.md (Japanese, Kansai) * New translations theme.md (Spanish) * New translations theme.md (Haitian Creole) * New translations theme.md (Ukrainian) * New translations theme.md (Kannada) * New translations theme.md (Lojban) * New translations theme.md (Uyghur) * New translations theme.md (Esperanto) * New translations theme.md (Thai) * New translations theme.md (Indonesian) * New translations theme.md (English) * New translations theme.md (Chinese Traditional) * New translations theme.md (Chinese Simplified) * New translations theme.md (Russian) * New translations theme.md (Arabic) * New translations theme.md (Portuguese) * New translations theme.md (Polish) * New translations theme.md (Norwegian) * New translations theme.md (Dutch) * New translations theme.md (Korean) * New translations theme.md (Italian) * New translations theme.md (German) * New translations theme.md (Danish) * New translations theme.md (Czech) * New translations troubleshooting.md (Japanese, Kansai) --- src/docs/ar-SA/admin/disable-timelines.md | 8 + src/docs/ar-SA/admin/faq.md | 5 + src/docs/ar-SA/advanced/aiscript.md | 7 + src/docs/ar-SA/advanced/api.md | 58 ++++ src/docs/ar-SA/advanced/create-plugin.md | 74 ++++++ src/docs/ar-SA/advanced/develop-bot.md | 6 + src/docs/ar-SA/advanced/reversi-bot.md | 160 +++++++++++ src/docs/ar-SA/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/ar-SA/features/antenna.md | 4 + src/docs/ar-SA/features/custom-emoji.md | 2 + src/docs/ar-SA/features/deck.md | 18 ++ src/docs/ar-SA/features/drive.md | 17 ++ src/docs/ar-SA/features/favorite.md | 4 + src/docs/ar-SA/features/follow.md | 2 + src/docs/ar-SA/features/keyboard-shortcut.md | 66 +++++ src/docs/ar-SA/features/mfm.md | 12 + src/docs/ar-SA/features/mute.md | 13 + src/docs/ar-SA/features/note.md | 51 ++++ src/docs/ar-SA/features/pages.md | 10 + src/docs/ar-SA/features/reaction.md | 11 + src/docs/ar-SA/features/silence.md | 6 + src/docs/ar-SA/features/theme.md | 68 +++++ src/docs/ar-SA/features/timeline.md | 31 +++ src/docs/ar-SA/features/widgets.md | 7 + src/docs/ar-SA/general/apps.md | 6 + src/docs/ar-SA/general/faq.md | 22 ++ src/docs/ar-SA/general/glossary.md | 83 ++++++ src/docs/ar-SA/general/links.md | 5 + src/docs/ar-SA/general/misskey.md | 87 ++++++ src/docs/ar-SA/general/report-issue.md | 8 + src/docs/ar-SA/general/troubleshooting.md | 36 +++ src/docs/cs-CZ/admin/disable-timelines.md | 8 + src/docs/cs-CZ/admin/faq.md | 5 + src/docs/cs-CZ/advanced/aiscript.md | 7 + src/docs/cs-CZ/advanced/api.md | 58 ++++ src/docs/cs-CZ/advanced/create-plugin.md | 74 ++++++ src/docs/cs-CZ/advanced/develop-bot.md | 6 + src/docs/cs-CZ/advanced/reversi-bot.md | 160 +++++++++++ src/docs/cs-CZ/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/cs-CZ/features/antenna.md | 4 + src/docs/cs-CZ/features/custom-emoji.md | 2 + src/docs/cs-CZ/features/deck.md | 18 ++ src/docs/cs-CZ/features/drive.md | 17 ++ src/docs/cs-CZ/features/favorite.md | 4 + src/docs/cs-CZ/features/follow.md | 2 + src/docs/cs-CZ/features/keyboard-shortcut.md | 66 +++++ src/docs/cs-CZ/features/mfm.md | 12 + src/docs/cs-CZ/features/mute.md | 13 + src/docs/cs-CZ/features/note.md | 51 ++++ src/docs/cs-CZ/features/pages.md | 10 + src/docs/cs-CZ/features/reaction.md | 11 + src/docs/cs-CZ/features/silence.md | 6 + src/docs/cs-CZ/features/theme.md | 68 +++++ src/docs/cs-CZ/features/timeline.md | 31 +++ src/docs/cs-CZ/features/widgets.md | 7 + src/docs/cs-CZ/general/apps.md | 6 + src/docs/cs-CZ/general/faq.md | 22 ++ src/docs/cs-CZ/general/glossary.md | 83 ++++++ src/docs/cs-CZ/general/links.md | 5 + src/docs/cs-CZ/general/misskey.md | 87 ++++++ src/docs/cs-CZ/general/report-issue.md | 8 + src/docs/cs-CZ/general/troubleshooting.md | 36 +++ src/docs/da-DK/admin/disable-timelines.md | 8 + src/docs/da-DK/admin/faq.md | 5 + src/docs/da-DK/advanced/aiscript.md | 7 + src/docs/da-DK/advanced/api.md | 58 ++++ src/docs/da-DK/advanced/create-plugin.md | 74 ++++++ src/docs/da-DK/advanced/develop-bot.md | 6 + src/docs/da-DK/advanced/reversi-bot.md | 160 +++++++++++ src/docs/da-DK/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/da-DK/features/antenna.md | 4 + src/docs/da-DK/features/custom-emoji.md | 2 + src/docs/da-DK/features/deck.md | 18 ++ src/docs/da-DK/features/drive.md | 17 ++ src/docs/da-DK/features/favorite.md | 4 + src/docs/da-DK/features/follow.md | 2 + src/docs/da-DK/features/keyboard-shortcut.md | 66 +++++ src/docs/da-DK/features/mfm.md | 12 + src/docs/da-DK/features/mute.md | 13 + src/docs/da-DK/features/note.md | 51 ++++ src/docs/da-DK/features/pages.md | 10 + src/docs/da-DK/features/reaction.md | 11 + src/docs/da-DK/features/silence.md | 6 + src/docs/da-DK/features/theme.md | 68 +++++ src/docs/da-DK/features/timeline.md | 31 +++ src/docs/da-DK/features/widgets.md | 7 + src/docs/da-DK/general/apps.md | 6 + src/docs/da-DK/general/faq.md | 22 ++ src/docs/da-DK/general/glossary.md | 83 ++++++ src/docs/da-DK/general/links.md | 5 + src/docs/da-DK/general/misskey.md | 87 ++++++ src/docs/da-DK/general/report-issue.md | 8 + src/docs/da-DK/general/troubleshooting.md | 36 +++ src/docs/de-DE/admin/disable-timelines.md | 8 + src/docs/de-DE/admin/faq.md | 5 + src/docs/de-DE/advanced/aiscript.md | 7 + src/docs/de-DE/advanced/api.md | 58 ++++ src/docs/de-DE/advanced/create-plugin.md | 74 ++++++ src/docs/de-DE/advanced/develop-bot.md | 6 + src/docs/de-DE/advanced/reversi-bot.md | 160 +++++++++++ src/docs/de-DE/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/de-DE/features/antenna.md | 4 + src/docs/de-DE/features/custom-emoji.md | 2 + src/docs/de-DE/features/deck.md | 18 ++ src/docs/de-DE/features/drive.md | 17 ++ src/docs/de-DE/features/favorite.md | 4 + src/docs/de-DE/features/follow.md | 2 + src/docs/de-DE/features/keyboard-shortcut.md | 66 +++++ src/docs/de-DE/features/mfm.md | 12 + src/docs/de-DE/features/mute.md | 13 + src/docs/de-DE/features/note.md | 51 ++++ src/docs/de-DE/features/pages.md | 10 + src/docs/de-DE/features/reaction.md | 11 + src/docs/de-DE/features/silence.md | 6 + src/docs/de-DE/features/theme.md | 68 +++++ src/docs/de-DE/features/timeline.md | 31 +++ src/docs/de-DE/features/widgets.md | 7 + src/docs/de-DE/general/apps.md | 6 + src/docs/de-DE/general/faq.md | 22 ++ src/docs/de-DE/general/glossary.md | 83 ++++++ src/docs/de-DE/general/links.md | 5 + src/docs/de-DE/general/misskey.md | 87 ++++++ src/docs/de-DE/general/report-issue.md | 8 + src/docs/de-DE/general/troubleshooting.md | 36 +++ src/docs/en-US/admin/disable-timelines.md | 8 + src/docs/en-US/admin/faq.md | 5 + src/docs/en-US/advanced/aiscript.md | 7 + src/docs/en-US/advanced/api.md | 58 ++++ src/docs/en-US/advanced/create-plugin.md | 74 ++++++ src/docs/en-US/advanced/develop-bot.md | 6 + src/docs/en-US/advanced/reversi-bot.md | 160 +++++++++++ src/docs/en-US/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/en-US/features/antenna.md | 4 + src/docs/en-US/features/custom-emoji.md | 2 + src/docs/en-US/features/deck.md | 18 ++ src/docs/en-US/features/drive.md | 17 ++ src/docs/en-US/features/favorite.md | 4 + src/docs/en-US/features/follow.md | 2 + src/docs/en-US/features/keyboard-shortcut.md | 66 +++++ src/docs/en-US/features/mfm.md | 12 + src/docs/en-US/features/mute.md | 13 + src/docs/en-US/features/note.md | 51 ++++ src/docs/en-US/features/pages.md | 10 + src/docs/en-US/features/reaction.md | 11 + src/docs/en-US/features/silence.md | 6 + src/docs/en-US/features/theme.md | 68 +++++ src/docs/en-US/features/timeline.md | 31 +++ src/docs/en-US/features/widgets.md | 7 + src/docs/en-US/general/apps.md | 6 + src/docs/en-US/general/faq.md | 22 ++ src/docs/en-US/general/glossary.md | 83 ++++++ src/docs/en-US/general/links.md | 5 + src/docs/en-US/general/misskey.md | 87 ++++++ src/docs/en-US/general/report-issue.md | 8 + src/docs/en-US/general/troubleshooting.md | 36 +++ src/docs/eo-UY/admin/disable-timelines.md | 8 + src/docs/eo-UY/admin/faq.md | 5 + src/docs/eo-UY/advanced/aiscript.md | 7 + src/docs/eo-UY/advanced/api.md | 58 ++++ src/docs/eo-UY/advanced/create-plugin.md | 74 ++++++ src/docs/eo-UY/advanced/develop-bot.md | 6 + src/docs/eo-UY/advanced/reversi-bot.md | 160 +++++++++++ src/docs/eo-UY/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/eo-UY/features/antenna.md | 4 + src/docs/eo-UY/features/custom-emoji.md | 2 + src/docs/eo-UY/features/deck.md | 18 ++ src/docs/eo-UY/features/drive.md | 17 ++ src/docs/eo-UY/features/favorite.md | 4 + src/docs/eo-UY/features/follow.md | 2 + src/docs/eo-UY/features/keyboard-shortcut.md | 66 +++++ src/docs/eo-UY/features/mfm.md | 12 + src/docs/eo-UY/features/mute.md | 13 + src/docs/eo-UY/features/note.md | 51 ++++ src/docs/eo-UY/features/pages.md | 10 + src/docs/eo-UY/features/reaction.md | 11 + src/docs/eo-UY/features/silence.md | 6 + src/docs/eo-UY/features/theme.md | 68 +++++ src/docs/eo-UY/features/timeline.md | 31 +++ src/docs/eo-UY/features/widgets.md | 7 + src/docs/eo-UY/general/apps.md | 6 + src/docs/eo-UY/general/faq.md | 22 ++ src/docs/eo-UY/general/glossary.md | 83 ++++++ src/docs/eo-UY/general/links.md | 5 + src/docs/eo-UY/general/misskey.md | 87 ++++++ src/docs/eo-UY/general/report-issue.md | 8 + src/docs/eo-UY/general/troubleshooting.md | 36 +++ src/docs/es-ES/admin/disable-timelines.md | 8 + src/docs/es-ES/admin/faq.md | 5 + src/docs/es-ES/advanced/aiscript.md | 7 + src/docs/es-ES/advanced/api.md | 58 ++++ src/docs/es-ES/advanced/create-plugin.md | 74 ++++++ src/docs/es-ES/advanced/develop-bot.md | 6 + src/docs/es-ES/advanced/reversi-bot.md | 160 +++++++++++ src/docs/es-ES/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/es-ES/features/antenna.md | 4 + src/docs/es-ES/features/custom-emoji.md | 2 + src/docs/es-ES/features/deck.md | 18 ++ src/docs/es-ES/features/drive.md | 17 ++ src/docs/es-ES/features/favorite.md | 4 + src/docs/es-ES/features/follow.md | 2 + src/docs/es-ES/features/keyboard-shortcut.md | 66 +++++ src/docs/es-ES/features/mfm.md | 12 + src/docs/es-ES/features/mute.md | 13 + src/docs/es-ES/features/note.md | 51 ++++ src/docs/es-ES/features/pages.md | 10 + src/docs/es-ES/features/reaction.md | 11 + src/docs/es-ES/features/silence.md | 6 + src/docs/es-ES/features/theme.md | 68 +++++ src/docs/es-ES/features/timeline.md | 31 +++ src/docs/es-ES/features/widgets.md | 7 + src/docs/es-ES/general/apps.md | 6 + src/docs/es-ES/general/faq.md | 22 ++ src/docs/es-ES/general/glossary.md | 83 ++++++ src/docs/es-ES/general/links.md | 5 + src/docs/es-ES/general/misskey.md | 87 ++++++ src/docs/es-ES/general/report-issue.md | 8 + src/docs/es-ES/general/troubleshooting.md | 36 +++ src/docs/fr-FR/admin/disable-timelines.md | 8 + src/docs/fr-FR/admin/faq.md | 5 + src/docs/fr-FR/advanced/aiscript.md | 7 + src/docs/fr-FR/advanced/api.md | 58 ++++ src/docs/fr-FR/advanced/create-plugin.md | 74 ++++++ src/docs/fr-FR/advanced/develop-bot.md | 6 + src/docs/fr-FR/advanced/reversi-bot.md | 160 +++++++++++ src/docs/fr-FR/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/fr-FR/features/antenna.md | 4 + src/docs/fr-FR/features/custom-emoji.md | 2 + src/docs/fr-FR/features/deck.md | 18 ++ src/docs/fr-FR/features/drive.md | 17 ++ src/docs/fr-FR/features/favorite.md | 4 + src/docs/fr-FR/features/follow.md | 2 + src/docs/fr-FR/features/keyboard-shortcut.md | 66 +++++ src/docs/fr-FR/features/mfm.md | 12 + src/docs/fr-FR/features/mute.md | 13 + src/docs/fr-FR/features/note.md | 51 ++++ src/docs/fr-FR/features/pages.md | 10 + src/docs/fr-FR/features/reaction.md | 11 + src/docs/fr-FR/features/silence.md | 6 + src/docs/fr-FR/features/theme.md | 68 +++++ src/docs/fr-FR/features/timeline.md | 31 +++ src/docs/fr-FR/features/widgets.md | 7 + src/docs/fr-FR/general/apps.md | 6 + src/docs/fr-FR/general/faq.md | 22 ++ src/docs/fr-FR/general/glossary.md | 83 ++++++ src/docs/fr-FR/general/links.md | 5 + src/docs/fr-FR/general/misskey.md | 87 ++++++ src/docs/fr-FR/general/report-issue.md | 8 + src/docs/fr-FR/general/troubleshooting.md | 36 +++ src/docs/ht-HT/admin/disable-timelines.md | 8 + src/docs/ht-HT/admin/faq.md | 5 + src/docs/ht-HT/advanced/aiscript.md | 7 + src/docs/ht-HT/advanced/api.md | 58 ++++ src/docs/ht-HT/advanced/create-plugin.md | 74 ++++++ src/docs/ht-HT/advanced/develop-bot.md | 6 + src/docs/ht-HT/advanced/reversi-bot.md | 160 +++++++++++ src/docs/ht-HT/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/ht-HT/features/antenna.md | 4 + src/docs/ht-HT/features/custom-emoji.md | 2 + src/docs/ht-HT/features/deck.md | 18 ++ src/docs/ht-HT/features/drive.md | 17 ++ src/docs/ht-HT/features/favorite.md | 4 + src/docs/ht-HT/features/follow.md | 2 + src/docs/ht-HT/features/keyboard-shortcut.md | 66 +++++ src/docs/ht-HT/features/mfm.md | 12 + src/docs/ht-HT/features/mute.md | 13 + src/docs/ht-HT/features/note.md | 51 ++++ src/docs/ht-HT/features/pages.md | 10 + src/docs/ht-HT/features/reaction.md | 11 + src/docs/ht-HT/features/silence.md | 6 + src/docs/ht-HT/features/theme.md | 68 +++++ src/docs/ht-HT/features/timeline.md | 31 +++ src/docs/ht-HT/features/widgets.md | 7 + src/docs/ht-HT/general/apps.md | 6 + src/docs/ht-HT/general/faq.md | 22 ++ src/docs/ht-HT/general/glossary.md | 83 ++++++ src/docs/ht-HT/general/links.md | 5 + src/docs/ht-HT/general/misskey.md | 87 ++++++ src/docs/ht-HT/general/report-issue.md | 8 + src/docs/ht-HT/general/troubleshooting.md | 36 +++ src/docs/id-ID/admin/disable-timelines.md | 8 + src/docs/id-ID/admin/faq.md | 5 + src/docs/id-ID/advanced/aiscript.md | 7 + src/docs/id-ID/advanced/api.md | 58 ++++ src/docs/id-ID/advanced/create-plugin.md | 74 ++++++ src/docs/id-ID/advanced/develop-bot.md | 6 + src/docs/id-ID/advanced/reversi-bot.md | 160 +++++++++++ src/docs/id-ID/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/id-ID/features/antenna.md | 4 + src/docs/id-ID/features/custom-emoji.md | 2 + src/docs/id-ID/features/deck.md | 18 ++ src/docs/id-ID/features/drive.md | 17 ++ src/docs/id-ID/features/favorite.md | 4 + src/docs/id-ID/features/follow.md | 2 + src/docs/id-ID/features/keyboard-shortcut.md | 66 +++++ src/docs/id-ID/features/mfm.md | 12 + src/docs/id-ID/features/mute.md | 13 + src/docs/id-ID/features/note.md | 51 ++++ src/docs/id-ID/features/pages.md | 10 + src/docs/id-ID/features/reaction.md | 11 + src/docs/id-ID/features/silence.md | 6 + src/docs/id-ID/features/theme.md | 68 +++++ src/docs/id-ID/features/timeline.md | 31 +++ src/docs/id-ID/features/widgets.md | 7 + src/docs/id-ID/general/apps.md | 6 + src/docs/id-ID/general/faq.md | 22 ++ src/docs/id-ID/general/glossary.md | 83 ++++++ src/docs/id-ID/general/links.md | 5 + src/docs/id-ID/general/misskey.md | 87 ++++++ src/docs/id-ID/general/report-issue.md | 8 + src/docs/id-ID/general/troubleshooting.md | 36 +++ src/docs/it-IT/admin/disable-timelines.md | 8 + src/docs/it-IT/admin/faq.md | 5 + src/docs/it-IT/advanced/aiscript.md | 7 + src/docs/it-IT/advanced/api.md | 58 ++++ src/docs/it-IT/advanced/create-plugin.md | 74 ++++++ src/docs/it-IT/advanced/develop-bot.md | 6 + src/docs/it-IT/advanced/reversi-bot.md | 160 +++++++++++ src/docs/it-IT/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/it-IT/features/antenna.md | 4 + src/docs/it-IT/features/custom-emoji.md | 2 + src/docs/it-IT/features/deck.md | 18 ++ src/docs/it-IT/features/drive.md | 17 ++ src/docs/it-IT/features/favorite.md | 4 + src/docs/it-IT/features/follow.md | 2 + src/docs/it-IT/features/keyboard-shortcut.md | 66 +++++ src/docs/it-IT/features/mfm.md | 12 + src/docs/it-IT/features/mute.md | 13 + src/docs/it-IT/features/note.md | 51 ++++ src/docs/it-IT/features/pages.md | 10 + src/docs/it-IT/features/reaction.md | 11 + src/docs/it-IT/features/silence.md | 6 + src/docs/it-IT/features/theme.md | 68 +++++ src/docs/it-IT/features/timeline.md | 31 +++ src/docs/it-IT/features/widgets.md | 7 + src/docs/it-IT/general/apps.md | 6 + src/docs/it-IT/general/faq.md | 22 ++ src/docs/it-IT/general/glossary.md | 83 ++++++ src/docs/it-IT/general/links.md | 5 + src/docs/it-IT/general/misskey.md | 87 ++++++ src/docs/it-IT/general/report-issue.md | 8 + src/docs/it-IT/general/troubleshooting.md | 36 +++ src/docs/ja-KS/admin/disable-timelines.md | 8 + src/docs/ja-KS/admin/faq.md | 5 + src/docs/ja-KS/advanced/aiscript.md | 7 + src/docs/ja-KS/advanced/api.md | 58 ++++ src/docs/ja-KS/advanced/create-plugin.md | 74 ++++++ src/docs/ja-KS/advanced/develop-bot.md | 6 + src/docs/ja-KS/advanced/reversi-bot.md | 160 +++++++++++ src/docs/ja-KS/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/ja-KS/features/antenna.md | 4 + src/docs/ja-KS/features/custom-emoji.md | 2 + src/docs/ja-KS/features/deck.md | 18 ++ src/docs/ja-KS/features/drive.md | 17 ++ src/docs/ja-KS/features/favorite.md | 4 + src/docs/ja-KS/features/follow.md | 2 + src/docs/ja-KS/features/keyboard-shortcut.md | 66 +++++ src/docs/ja-KS/features/mfm.md | 12 + src/docs/ja-KS/features/mute.md | 13 + src/docs/ja-KS/features/note.md | 51 ++++ src/docs/ja-KS/features/pages.md | 10 + src/docs/ja-KS/features/reaction.md | 11 + src/docs/ja-KS/features/silence.md | 6 + src/docs/ja-KS/features/theme.md | 68 +++++ src/docs/ja-KS/features/timeline.md | 31 +++ src/docs/ja-KS/features/widgets.md | 7 + src/docs/ja-KS/general/apps.md | 6 + src/docs/ja-KS/general/faq.md | 22 ++ src/docs/ja-KS/general/glossary.md | 83 ++++++ src/docs/ja-KS/general/links.md | 5 + src/docs/ja-KS/general/misskey.md | 87 ++++++ src/docs/ja-KS/general/report-issue.md | 8 + src/docs/ja-KS/general/troubleshooting.md | 36 +++ src/docs/jbo-EN/admin/disable-timelines.md | 8 + src/docs/jbo-EN/admin/faq.md | 5 + src/docs/jbo-EN/advanced/aiscript.md | 7 + src/docs/jbo-EN/advanced/api.md | 58 ++++ src/docs/jbo-EN/advanced/create-plugin.md | 74 ++++++ src/docs/jbo-EN/advanced/develop-bot.md | 6 + src/docs/jbo-EN/advanced/reversi-bot.md | 160 +++++++++++ src/docs/jbo-EN/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/jbo-EN/features/antenna.md | 4 + src/docs/jbo-EN/features/custom-emoji.md | 2 + src/docs/jbo-EN/features/deck.md | 18 ++ src/docs/jbo-EN/features/drive.md | 17 ++ src/docs/jbo-EN/features/favorite.md | 4 + src/docs/jbo-EN/features/follow.md | 2 + src/docs/jbo-EN/features/keyboard-shortcut.md | 66 +++++ src/docs/jbo-EN/features/mfm.md | 12 + src/docs/jbo-EN/features/mute.md | 13 + src/docs/jbo-EN/features/note.md | 51 ++++ src/docs/jbo-EN/features/pages.md | 10 + src/docs/jbo-EN/features/reaction.md | 11 + src/docs/jbo-EN/features/silence.md | 6 + src/docs/jbo-EN/features/theme.md | 68 +++++ src/docs/jbo-EN/features/timeline.md | 31 +++ src/docs/jbo-EN/features/widgets.md | 7 + src/docs/jbo-EN/general/apps.md | 6 + src/docs/jbo-EN/general/faq.md | 22 ++ src/docs/jbo-EN/general/glossary.md | 83 ++++++ src/docs/jbo-EN/general/links.md | 5 + src/docs/jbo-EN/general/misskey.md | 87 ++++++ src/docs/jbo-EN/general/report-issue.md | 8 + src/docs/jbo-EN/general/troubleshooting.md | 36 +++ src/docs/kab-KAB/admin/disable-timelines.md | 8 + src/docs/kab-KAB/admin/faq.md | 5 + src/docs/kab-KAB/advanced/aiscript.md | 7 + src/docs/kab-KAB/advanced/api.md | 58 ++++ src/docs/kab-KAB/advanced/create-plugin.md | 74 ++++++ src/docs/kab-KAB/advanced/develop-bot.md | 6 + src/docs/kab-KAB/advanced/reversi-bot.md | 160 +++++++++++ src/docs/kab-KAB/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/kab-KAB/features/antenna.md | 4 + src/docs/kab-KAB/features/custom-emoji.md | 2 + src/docs/kab-KAB/features/deck.md | 18 ++ src/docs/kab-KAB/features/drive.md | 17 ++ src/docs/kab-KAB/features/favorite.md | 4 + src/docs/kab-KAB/features/follow.md | 2 + src/docs/kab-KAB/features/keyboard-shortcut.md | 66 +++++ src/docs/kab-KAB/features/mfm.md | 12 + src/docs/kab-KAB/features/mute.md | 13 + src/docs/kab-KAB/features/note.md | 51 ++++ src/docs/kab-KAB/features/pages.md | 10 + src/docs/kab-KAB/features/reaction.md | 11 + src/docs/kab-KAB/features/silence.md | 6 + src/docs/kab-KAB/features/theme.md | 68 +++++ src/docs/kab-KAB/features/timeline.md | 31 +++ src/docs/kab-KAB/features/widgets.md | 7 + src/docs/kab-KAB/general/apps.md | 6 + src/docs/kab-KAB/general/faq.md | 22 ++ src/docs/kab-KAB/general/glossary.md | 83 ++++++ src/docs/kab-KAB/general/links.md | 5 + src/docs/kab-KAB/general/misskey.md | 87 ++++++ src/docs/kab-KAB/general/report-issue.md | 8 + src/docs/kab-KAB/general/troubleshooting.md | 36 +++ src/docs/kn-IN/admin/disable-timelines.md | 8 + src/docs/kn-IN/admin/faq.md | 5 + src/docs/kn-IN/advanced/aiscript.md | 7 + src/docs/kn-IN/advanced/api.md | 58 ++++ src/docs/kn-IN/advanced/create-plugin.md | 74 ++++++ src/docs/kn-IN/advanced/develop-bot.md | 6 + src/docs/kn-IN/advanced/reversi-bot.md | 160 +++++++++++ src/docs/kn-IN/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/kn-IN/features/antenna.md | 4 + src/docs/kn-IN/features/custom-emoji.md | 2 + src/docs/kn-IN/features/deck.md | 18 ++ src/docs/kn-IN/features/drive.md | 17 ++ src/docs/kn-IN/features/favorite.md | 4 + src/docs/kn-IN/features/follow.md | 2 + src/docs/kn-IN/features/keyboard-shortcut.md | 66 +++++ src/docs/kn-IN/features/mfm.md | 12 + src/docs/kn-IN/features/mute.md | 13 + src/docs/kn-IN/features/note.md | 51 ++++ src/docs/kn-IN/features/pages.md | 10 + src/docs/kn-IN/features/reaction.md | 11 + src/docs/kn-IN/features/silence.md | 6 + src/docs/kn-IN/features/theme.md | 68 +++++ src/docs/kn-IN/features/timeline.md | 31 +++ src/docs/kn-IN/features/widgets.md | 7 + src/docs/kn-IN/general/apps.md | 6 + src/docs/kn-IN/general/faq.md | 22 ++ src/docs/kn-IN/general/glossary.md | 83 ++++++ src/docs/kn-IN/general/links.md | 5 + src/docs/kn-IN/general/misskey.md | 87 ++++++ src/docs/kn-IN/general/report-issue.md | 8 + src/docs/kn-IN/general/troubleshooting.md | 36 +++ src/docs/ko-KR/admin/disable-timelines.md | 8 + src/docs/ko-KR/admin/faq.md | 5 + src/docs/ko-KR/advanced/aiscript.md | 7 + src/docs/ko-KR/advanced/api.md | 58 ++++ src/docs/ko-KR/advanced/create-plugin.md | 74 ++++++ src/docs/ko-KR/advanced/develop-bot.md | 6 + src/docs/ko-KR/advanced/reversi-bot.md | 160 +++++++++++ src/docs/ko-KR/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/ko-KR/features/antenna.md | 4 + src/docs/ko-KR/features/custom-emoji.md | 2 + src/docs/ko-KR/features/deck.md | 18 ++ src/docs/ko-KR/features/drive.md | 17 ++ src/docs/ko-KR/features/favorite.md | 4 + src/docs/ko-KR/features/follow.md | 2 + src/docs/ko-KR/features/keyboard-shortcut.md | 66 +++++ src/docs/ko-KR/features/mfm.md | 12 + src/docs/ko-KR/features/mute.md | 13 + src/docs/ko-KR/features/note.md | 51 ++++ src/docs/ko-KR/features/pages.md | 10 + src/docs/ko-KR/features/reaction.md | 11 + src/docs/ko-KR/features/silence.md | 6 + src/docs/ko-KR/features/theme.md | 68 +++++ src/docs/ko-KR/features/timeline.md | 31 +++ src/docs/ko-KR/features/widgets.md | 7 + src/docs/ko-KR/general/apps.md | 6 + src/docs/ko-KR/general/faq.md | 22 ++ src/docs/ko-KR/general/glossary.md | 83 ++++++ src/docs/ko-KR/general/links.md | 5 + src/docs/ko-KR/general/misskey.md | 87 ++++++ src/docs/ko-KR/general/report-issue.md | 8 + src/docs/ko-KR/general/troubleshooting.md | 36 +++ src/docs/nl-NL/admin/disable-timelines.md | 8 + src/docs/nl-NL/admin/faq.md | 5 + src/docs/nl-NL/advanced/aiscript.md | 7 + src/docs/nl-NL/advanced/api.md | 58 ++++ src/docs/nl-NL/advanced/create-plugin.md | 74 ++++++ src/docs/nl-NL/advanced/develop-bot.md | 6 + src/docs/nl-NL/advanced/reversi-bot.md | 160 +++++++++++ src/docs/nl-NL/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/nl-NL/features/antenna.md | 4 + src/docs/nl-NL/features/custom-emoji.md | 2 + src/docs/nl-NL/features/deck.md | 18 ++ src/docs/nl-NL/features/drive.md | 17 ++ src/docs/nl-NL/features/favorite.md | 4 + src/docs/nl-NL/features/follow.md | 2 + src/docs/nl-NL/features/keyboard-shortcut.md | 66 +++++ src/docs/nl-NL/features/mfm.md | 12 + src/docs/nl-NL/features/mute.md | 13 + src/docs/nl-NL/features/note.md | 51 ++++ src/docs/nl-NL/features/pages.md | 10 + src/docs/nl-NL/features/reaction.md | 11 + src/docs/nl-NL/features/silence.md | 6 + src/docs/nl-NL/features/theme.md | 68 +++++ src/docs/nl-NL/features/timeline.md | 31 +++ src/docs/nl-NL/features/widgets.md | 7 + src/docs/nl-NL/general/apps.md | 6 + src/docs/nl-NL/general/faq.md | 22 ++ src/docs/nl-NL/general/glossary.md | 83 ++++++ src/docs/nl-NL/general/links.md | 5 + src/docs/nl-NL/general/misskey.md | 87 ++++++ src/docs/nl-NL/general/report-issue.md | 8 + src/docs/nl-NL/general/troubleshooting.md | 36 +++ src/docs/no-NO/admin/disable-timelines.md | 8 + src/docs/no-NO/admin/faq.md | 5 + src/docs/no-NO/advanced/aiscript.md | 7 + src/docs/no-NO/advanced/api.md | 58 ++++ src/docs/no-NO/advanced/create-plugin.md | 74 ++++++ src/docs/no-NO/advanced/develop-bot.md | 6 + src/docs/no-NO/advanced/reversi-bot.md | 160 +++++++++++ src/docs/no-NO/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/no-NO/features/antenna.md | 4 + src/docs/no-NO/features/custom-emoji.md | 2 + src/docs/no-NO/features/deck.md | 18 ++ src/docs/no-NO/features/drive.md | 17 ++ src/docs/no-NO/features/favorite.md | 4 + src/docs/no-NO/features/follow.md | 2 + src/docs/no-NO/features/keyboard-shortcut.md | 66 +++++ src/docs/no-NO/features/mfm.md | 12 + src/docs/no-NO/features/mute.md | 13 + src/docs/no-NO/features/note.md | 51 ++++ src/docs/no-NO/features/pages.md | 10 + src/docs/no-NO/features/reaction.md | 11 + src/docs/no-NO/features/silence.md | 6 + src/docs/no-NO/features/theme.md | 68 +++++ src/docs/no-NO/features/timeline.md | 31 +++ src/docs/no-NO/features/widgets.md | 7 + src/docs/no-NO/general/apps.md | 6 + src/docs/no-NO/general/faq.md | 22 ++ src/docs/no-NO/general/glossary.md | 83 ++++++ src/docs/no-NO/general/links.md | 5 + src/docs/no-NO/general/misskey.md | 87 ++++++ src/docs/no-NO/general/report-issue.md | 8 + src/docs/no-NO/general/troubleshooting.md | 36 +++ src/docs/pl-PL/admin/disable-timelines.md | 8 + src/docs/pl-PL/admin/faq.md | 5 + src/docs/pl-PL/advanced/aiscript.md | 7 + src/docs/pl-PL/advanced/api.md | 58 ++++ src/docs/pl-PL/advanced/create-plugin.md | 74 ++++++ src/docs/pl-PL/advanced/develop-bot.md | 6 + src/docs/pl-PL/advanced/reversi-bot.md | 160 +++++++++++ src/docs/pl-PL/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/pl-PL/features/antenna.md | 4 + src/docs/pl-PL/features/custom-emoji.md | 2 + src/docs/pl-PL/features/deck.md | 18 ++ src/docs/pl-PL/features/drive.md | 17 ++ src/docs/pl-PL/features/favorite.md | 4 + src/docs/pl-PL/features/follow.md | 2 + src/docs/pl-PL/features/keyboard-shortcut.md | 66 +++++ src/docs/pl-PL/features/mfm.md | 12 + src/docs/pl-PL/features/mute.md | 13 + src/docs/pl-PL/features/note.md | 51 ++++ src/docs/pl-PL/features/pages.md | 10 + src/docs/pl-PL/features/reaction.md | 11 + src/docs/pl-PL/features/silence.md | 6 + src/docs/pl-PL/features/theme.md | 68 +++++ src/docs/pl-PL/features/timeline.md | 31 +++ src/docs/pl-PL/features/widgets.md | 7 + src/docs/pl-PL/general/apps.md | 6 + src/docs/pl-PL/general/faq.md | 22 ++ src/docs/pl-PL/general/glossary.md | 83 ++++++ src/docs/pl-PL/general/links.md | 5 + src/docs/pl-PL/general/misskey.md | 87 ++++++ src/docs/pl-PL/general/report-issue.md | 8 + src/docs/pl-PL/general/troubleshooting.md | 36 +++ src/docs/pt-PT/admin/disable-timelines.md | 8 + src/docs/pt-PT/admin/faq.md | 5 + src/docs/pt-PT/advanced/aiscript.md | 7 + src/docs/pt-PT/advanced/api.md | 58 ++++ src/docs/pt-PT/advanced/create-plugin.md | 74 ++++++ src/docs/pt-PT/advanced/develop-bot.md | 6 + src/docs/pt-PT/advanced/reversi-bot.md | 160 +++++++++++ src/docs/pt-PT/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/pt-PT/features/antenna.md | 4 + src/docs/pt-PT/features/custom-emoji.md | 2 + src/docs/pt-PT/features/deck.md | 18 ++ src/docs/pt-PT/features/drive.md | 17 ++ src/docs/pt-PT/features/favorite.md | 4 + src/docs/pt-PT/features/follow.md | 2 + src/docs/pt-PT/features/keyboard-shortcut.md | 66 +++++ src/docs/pt-PT/features/mfm.md | 12 + src/docs/pt-PT/features/mute.md | 13 + src/docs/pt-PT/features/note.md | 51 ++++ src/docs/pt-PT/features/pages.md | 10 + src/docs/pt-PT/features/reaction.md | 11 + src/docs/pt-PT/features/silence.md | 6 + src/docs/pt-PT/features/theme.md | 68 +++++ src/docs/pt-PT/features/timeline.md | 31 +++ src/docs/pt-PT/features/widgets.md | 7 + src/docs/pt-PT/general/apps.md | 6 + src/docs/pt-PT/general/faq.md | 22 ++ src/docs/pt-PT/general/glossary.md | 83 ++++++ src/docs/pt-PT/general/links.md | 5 + src/docs/pt-PT/general/misskey.md | 87 ++++++ src/docs/pt-PT/general/report-issue.md | 8 + src/docs/pt-PT/general/troubleshooting.md | 36 +++ src/docs/ru-RU/admin/disable-timelines.md | 8 + src/docs/ru-RU/admin/faq.md | 5 + src/docs/ru-RU/advanced/aiscript.md | 7 + src/docs/ru-RU/advanced/api.md | 58 ++++ src/docs/ru-RU/advanced/create-plugin.md | 74 ++++++ src/docs/ru-RU/advanced/develop-bot.md | 6 + src/docs/ru-RU/advanced/reversi-bot.md | 160 +++++++++++ src/docs/ru-RU/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/ru-RU/features/antenna.md | 4 + src/docs/ru-RU/features/custom-emoji.md | 2 + src/docs/ru-RU/features/deck.md | 18 ++ src/docs/ru-RU/features/drive.md | 17 ++ src/docs/ru-RU/features/favorite.md | 4 + src/docs/ru-RU/features/follow.md | 2 + src/docs/ru-RU/features/keyboard-shortcut.md | 66 +++++ src/docs/ru-RU/features/mfm.md | 12 + src/docs/ru-RU/features/mute.md | 13 + src/docs/ru-RU/features/note.md | 51 ++++ src/docs/ru-RU/features/pages.md | 10 + src/docs/ru-RU/features/reaction.md | 11 + src/docs/ru-RU/features/silence.md | 6 + src/docs/ru-RU/features/theme.md | 68 +++++ src/docs/ru-RU/features/timeline.md | 31 +++ src/docs/ru-RU/features/widgets.md | 7 + src/docs/ru-RU/general/apps.md | 6 + src/docs/ru-RU/general/faq.md | 22 ++ src/docs/ru-RU/general/glossary.md | 83 ++++++ src/docs/ru-RU/general/links.md | 5 + src/docs/ru-RU/general/misskey.md | 87 ++++++ src/docs/ru-RU/general/report-issue.md | 8 + src/docs/ru-RU/general/troubleshooting.md | 36 +++ src/docs/th-TH/admin/disable-timelines.md | 8 + src/docs/th-TH/admin/faq.md | 5 + src/docs/th-TH/advanced/aiscript.md | 7 + src/docs/th-TH/advanced/api.md | 58 ++++ src/docs/th-TH/advanced/create-plugin.md | 74 ++++++ src/docs/th-TH/advanced/develop-bot.md | 6 + src/docs/th-TH/advanced/reversi-bot.md | 160 +++++++++++ src/docs/th-TH/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/th-TH/features/antenna.md | 4 + src/docs/th-TH/features/custom-emoji.md | 2 + src/docs/th-TH/features/deck.md | 18 ++ src/docs/th-TH/features/drive.md | 17 ++ src/docs/th-TH/features/favorite.md | 4 + src/docs/th-TH/features/follow.md | 2 + src/docs/th-TH/features/keyboard-shortcut.md | 66 +++++ src/docs/th-TH/features/mfm.md | 12 + src/docs/th-TH/features/mute.md | 13 + src/docs/th-TH/features/note.md | 51 ++++ src/docs/th-TH/features/pages.md | 10 + src/docs/th-TH/features/reaction.md | 11 + src/docs/th-TH/features/silence.md | 6 + src/docs/th-TH/features/theme.md | 68 +++++ src/docs/th-TH/features/timeline.md | 31 +++ src/docs/th-TH/features/widgets.md | 7 + src/docs/th-TH/general/apps.md | 6 + src/docs/th-TH/general/faq.md | 22 ++ src/docs/th-TH/general/glossary.md | 83 ++++++ src/docs/th-TH/general/links.md | 5 + src/docs/th-TH/general/misskey.md | 87 ++++++ src/docs/th-TH/general/report-issue.md | 8 + src/docs/th-TH/general/troubleshooting.md | 36 +++ src/docs/ug-CN/admin/disable-timelines.md | 8 + src/docs/ug-CN/admin/faq.md | 5 + src/docs/ug-CN/advanced/aiscript.md | 7 + src/docs/ug-CN/advanced/api.md | 58 ++++ src/docs/ug-CN/advanced/create-plugin.md | 74 ++++++ src/docs/ug-CN/advanced/develop-bot.md | 6 + src/docs/ug-CN/advanced/reversi-bot.md | 160 +++++++++++ src/docs/ug-CN/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/ug-CN/features/antenna.md | 4 + src/docs/ug-CN/features/custom-emoji.md | 2 + src/docs/ug-CN/features/deck.md | 18 ++ src/docs/ug-CN/features/drive.md | 17 ++ src/docs/ug-CN/features/favorite.md | 4 + src/docs/ug-CN/features/follow.md | 2 + src/docs/ug-CN/features/keyboard-shortcut.md | 66 +++++ src/docs/ug-CN/features/mfm.md | 12 + src/docs/ug-CN/features/mute.md | 13 + src/docs/ug-CN/features/note.md | 51 ++++ src/docs/ug-CN/features/pages.md | 10 + src/docs/ug-CN/features/reaction.md | 11 + src/docs/ug-CN/features/silence.md | 6 + src/docs/ug-CN/features/theme.md | 68 +++++ src/docs/ug-CN/features/timeline.md | 31 +++ src/docs/ug-CN/features/widgets.md | 7 + src/docs/ug-CN/general/apps.md | 6 + src/docs/ug-CN/general/faq.md | 22 ++ src/docs/ug-CN/general/glossary.md | 83 ++++++ src/docs/ug-CN/general/links.md | 5 + src/docs/ug-CN/general/misskey.md | 87 ++++++ src/docs/ug-CN/general/report-issue.md | 8 + src/docs/ug-CN/general/troubleshooting.md | 36 +++ src/docs/uk-UA/admin/disable-timelines.md | 8 + src/docs/uk-UA/admin/faq.md | 5 + src/docs/uk-UA/advanced/aiscript.md | 7 + src/docs/uk-UA/advanced/api.md | 58 ++++ src/docs/uk-UA/advanced/create-plugin.md | 74 ++++++ src/docs/uk-UA/advanced/develop-bot.md | 6 + src/docs/uk-UA/advanced/reversi-bot.md | 160 +++++++++++ src/docs/uk-UA/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/uk-UA/features/antenna.md | 4 + src/docs/uk-UA/features/custom-emoji.md | 2 + src/docs/uk-UA/features/deck.md | 18 ++ src/docs/uk-UA/features/drive.md | 17 ++ src/docs/uk-UA/features/favorite.md | 4 + src/docs/uk-UA/features/follow.md | 2 + src/docs/uk-UA/features/keyboard-shortcut.md | 66 +++++ src/docs/uk-UA/features/mfm.md | 12 + src/docs/uk-UA/features/mute.md | 13 + src/docs/uk-UA/features/note.md | 51 ++++ src/docs/uk-UA/features/pages.md | 10 + src/docs/uk-UA/features/reaction.md | 11 + src/docs/uk-UA/features/silence.md | 6 + src/docs/uk-UA/features/theme.md | 68 +++++ src/docs/uk-UA/features/timeline.md | 31 +++ src/docs/uk-UA/features/widgets.md | 7 + src/docs/uk-UA/general/apps.md | 6 + src/docs/uk-UA/general/faq.md | 22 ++ src/docs/uk-UA/general/glossary.md | 83 ++++++ src/docs/uk-UA/general/links.md | 5 + src/docs/uk-UA/general/misskey.md | 87 ++++++ src/docs/uk-UA/general/report-issue.md | 8 + src/docs/uk-UA/general/troubleshooting.md | 36 +++ src/docs/zh-CN/admin/disable-timelines.md | 8 + src/docs/zh-CN/admin/faq.md | 5 + src/docs/zh-CN/advanced/aiscript.md | 7 + src/docs/zh-CN/advanced/api.md | 58 ++++ src/docs/zh-CN/advanced/create-plugin.md | 74 ++++++ src/docs/zh-CN/advanced/develop-bot.md | 6 + src/docs/zh-CN/advanced/reversi-bot.md | 160 +++++++++++ src/docs/zh-CN/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/zh-CN/features/antenna.md | 4 + src/docs/zh-CN/features/custom-emoji.md | 2 + src/docs/zh-CN/features/deck.md | 18 ++ src/docs/zh-CN/features/drive.md | 17 ++ src/docs/zh-CN/features/favorite.md | 4 + src/docs/zh-CN/features/follow.md | 2 + src/docs/zh-CN/features/keyboard-shortcut.md | 66 +++++ src/docs/zh-CN/features/mfm.md | 12 + src/docs/zh-CN/features/mute.md | 13 + src/docs/zh-CN/features/note.md | 51 ++++ src/docs/zh-CN/features/pages.md | 10 + src/docs/zh-CN/features/reaction.md | 11 + src/docs/zh-CN/features/silence.md | 6 + src/docs/zh-CN/features/theme.md | 68 +++++ src/docs/zh-CN/features/timeline.md | 31 +++ src/docs/zh-CN/features/widgets.md | 7 + src/docs/zh-CN/general/apps.md | 6 + src/docs/zh-CN/general/faq.md | 22 ++ src/docs/zh-CN/general/glossary.md | 83 ++++++ src/docs/zh-CN/general/links.md | 5 + src/docs/zh-CN/general/misskey.md | 87 ++++++ src/docs/zh-CN/general/report-issue.md | 8 + src/docs/zh-CN/general/troubleshooting.md | 36 +++ src/docs/zh-TW/admin/disable-timelines.md | 8 + src/docs/zh-TW/admin/faq.md | 5 + src/docs/zh-TW/advanced/aiscript.md | 7 + src/docs/zh-TW/advanced/api.md | 58 ++++ src/docs/zh-TW/advanced/create-plugin.md | 74 ++++++ src/docs/zh-TW/advanced/develop-bot.md | 6 + src/docs/zh-TW/advanced/reversi-bot.md | 160 +++++++++++ src/docs/zh-TW/advanced/stream.md | 350 +++++++++++++++++++++++++ src/docs/zh-TW/features/antenna.md | 4 + src/docs/zh-TW/features/custom-emoji.md | 2 + src/docs/zh-TW/features/deck.md | 18 ++ src/docs/zh-TW/features/drive.md | 17 ++ src/docs/zh-TW/features/favorite.md | 4 + src/docs/zh-TW/features/follow.md | 2 + src/docs/zh-TW/features/keyboard-shortcut.md | 66 +++++ src/docs/zh-TW/features/mfm.md | 12 + src/docs/zh-TW/features/mute.md | 13 + src/docs/zh-TW/features/note.md | 51 ++++ src/docs/zh-TW/features/pages.md | 10 + src/docs/zh-TW/features/reaction.md | 11 + src/docs/zh-TW/features/silence.md | 6 + src/docs/zh-TW/features/theme.md | 68 +++++ src/docs/zh-TW/features/timeline.md | 31 +++ src/docs/zh-TW/features/widgets.md | 7 + src/docs/zh-TW/general/apps.md | 6 + src/docs/zh-TW/general/faq.md | 22 ++ src/docs/zh-TW/general/glossary.md | 83 ++++++ src/docs/zh-TW/general/links.md | 5 + src/docs/zh-TW/general/misskey.md | 87 ++++++ src/docs/zh-TW/general/report-issue.md | 8 + src/docs/zh-TW/general/troubleshooting.md | 36 +++ 806 files changed, 32162 insertions(+) create mode 100644 src/docs/ar-SA/admin/disable-timelines.md create mode 100644 src/docs/ar-SA/admin/faq.md create mode 100644 src/docs/ar-SA/advanced/aiscript.md create mode 100644 src/docs/ar-SA/advanced/api.md create mode 100644 src/docs/ar-SA/advanced/create-plugin.md create mode 100644 src/docs/ar-SA/advanced/develop-bot.md create mode 100644 src/docs/ar-SA/advanced/reversi-bot.md create mode 100644 src/docs/ar-SA/advanced/stream.md create mode 100644 src/docs/ar-SA/features/antenna.md create mode 100644 src/docs/ar-SA/features/custom-emoji.md create mode 100644 src/docs/ar-SA/features/deck.md create mode 100644 src/docs/ar-SA/features/drive.md create mode 100644 src/docs/ar-SA/features/favorite.md create mode 100644 src/docs/ar-SA/features/follow.md create mode 100644 src/docs/ar-SA/features/keyboard-shortcut.md create mode 100644 src/docs/ar-SA/features/mfm.md create mode 100644 src/docs/ar-SA/features/mute.md create mode 100644 src/docs/ar-SA/features/note.md create mode 100644 src/docs/ar-SA/features/pages.md create mode 100644 src/docs/ar-SA/features/reaction.md create mode 100644 src/docs/ar-SA/features/silence.md create mode 100644 src/docs/ar-SA/features/theme.md create mode 100644 src/docs/ar-SA/features/timeline.md create mode 100644 src/docs/ar-SA/features/widgets.md create mode 100644 src/docs/ar-SA/general/apps.md create mode 100644 src/docs/ar-SA/general/faq.md create mode 100644 src/docs/ar-SA/general/glossary.md create mode 100644 src/docs/ar-SA/general/links.md create mode 100644 src/docs/ar-SA/general/misskey.md create mode 100644 src/docs/ar-SA/general/report-issue.md create mode 100644 src/docs/ar-SA/general/troubleshooting.md create mode 100644 src/docs/cs-CZ/admin/disable-timelines.md create mode 100644 src/docs/cs-CZ/admin/faq.md create mode 100644 src/docs/cs-CZ/advanced/aiscript.md create mode 100644 src/docs/cs-CZ/advanced/api.md create mode 100644 src/docs/cs-CZ/advanced/create-plugin.md create mode 100644 src/docs/cs-CZ/advanced/develop-bot.md create mode 100644 src/docs/cs-CZ/advanced/reversi-bot.md create mode 100644 src/docs/cs-CZ/advanced/stream.md create mode 100644 src/docs/cs-CZ/features/antenna.md create mode 100644 src/docs/cs-CZ/features/custom-emoji.md create mode 100644 src/docs/cs-CZ/features/deck.md create mode 100644 src/docs/cs-CZ/features/drive.md create mode 100644 src/docs/cs-CZ/features/favorite.md create mode 100644 src/docs/cs-CZ/features/follow.md create mode 100644 src/docs/cs-CZ/features/keyboard-shortcut.md create mode 100644 src/docs/cs-CZ/features/mfm.md create mode 100644 src/docs/cs-CZ/features/mute.md create mode 100644 src/docs/cs-CZ/features/note.md create mode 100644 src/docs/cs-CZ/features/pages.md create mode 100644 src/docs/cs-CZ/features/reaction.md create mode 100644 src/docs/cs-CZ/features/silence.md create mode 100644 src/docs/cs-CZ/features/theme.md create mode 100644 src/docs/cs-CZ/features/timeline.md create mode 100644 src/docs/cs-CZ/features/widgets.md create mode 100644 src/docs/cs-CZ/general/apps.md create mode 100644 src/docs/cs-CZ/general/faq.md create mode 100644 src/docs/cs-CZ/general/glossary.md create mode 100644 src/docs/cs-CZ/general/links.md create mode 100644 src/docs/cs-CZ/general/misskey.md create mode 100644 src/docs/cs-CZ/general/report-issue.md create mode 100644 src/docs/cs-CZ/general/troubleshooting.md create mode 100644 src/docs/da-DK/admin/disable-timelines.md create mode 100644 src/docs/da-DK/admin/faq.md create mode 100644 src/docs/da-DK/advanced/aiscript.md create mode 100644 src/docs/da-DK/advanced/api.md create mode 100644 src/docs/da-DK/advanced/create-plugin.md create mode 100644 src/docs/da-DK/advanced/develop-bot.md create mode 100644 src/docs/da-DK/advanced/reversi-bot.md create mode 100644 src/docs/da-DK/advanced/stream.md create mode 100644 src/docs/da-DK/features/antenna.md create mode 100644 src/docs/da-DK/features/custom-emoji.md create mode 100644 src/docs/da-DK/features/deck.md create mode 100644 src/docs/da-DK/features/drive.md create mode 100644 src/docs/da-DK/features/favorite.md create mode 100644 src/docs/da-DK/features/follow.md create mode 100644 src/docs/da-DK/features/keyboard-shortcut.md create mode 100644 src/docs/da-DK/features/mfm.md create mode 100644 src/docs/da-DK/features/mute.md create mode 100644 src/docs/da-DK/features/note.md create mode 100644 src/docs/da-DK/features/pages.md create mode 100644 src/docs/da-DK/features/reaction.md create mode 100644 src/docs/da-DK/features/silence.md create mode 100644 src/docs/da-DK/features/theme.md create mode 100644 src/docs/da-DK/features/timeline.md create mode 100644 src/docs/da-DK/features/widgets.md create mode 100644 src/docs/da-DK/general/apps.md create mode 100644 src/docs/da-DK/general/faq.md create mode 100644 src/docs/da-DK/general/glossary.md create mode 100644 src/docs/da-DK/general/links.md create mode 100644 src/docs/da-DK/general/misskey.md create mode 100644 src/docs/da-DK/general/report-issue.md create mode 100644 src/docs/da-DK/general/troubleshooting.md create mode 100644 src/docs/de-DE/admin/disable-timelines.md create mode 100644 src/docs/de-DE/admin/faq.md create mode 100644 src/docs/de-DE/advanced/aiscript.md create mode 100644 src/docs/de-DE/advanced/api.md create mode 100644 src/docs/de-DE/advanced/create-plugin.md create mode 100644 src/docs/de-DE/advanced/develop-bot.md create mode 100644 src/docs/de-DE/advanced/reversi-bot.md create mode 100644 src/docs/de-DE/advanced/stream.md create mode 100644 src/docs/de-DE/features/antenna.md create mode 100644 src/docs/de-DE/features/custom-emoji.md create mode 100644 src/docs/de-DE/features/deck.md create mode 100644 src/docs/de-DE/features/drive.md create mode 100644 src/docs/de-DE/features/favorite.md create mode 100644 src/docs/de-DE/features/follow.md create mode 100644 src/docs/de-DE/features/keyboard-shortcut.md create mode 100644 src/docs/de-DE/features/mfm.md create mode 100644 src/docs/de-DE/features/mute.md create mode 100644 src/docs/de-DE/features/note.md create mode 100644 src/docs/de-DE/features/pages.md create mode 100644 src/docs/de-DE/features/reaction.md create mode 100644 src/docs/de-DE/features/silence.md create mode 100644 src/docs/de-DE/features/theme.md create mode 100644 src/docs/de-DE/features/timeline.md create mode 100644 src/docs/de-DE/features/widgets.md create mode 100644 src/docs/de-DE/general/apps.md create mode 100644 src/docs/de-DE/general/faq.md create mode 100644 src/docs/de-DE/general/glossary.md create mode 100644 src/docs/de-DE/general/links.md create mode 100644 src/docs/de-DE/general/misskey.md create mode 100644 src/docs/de-DE/general/report-issue.md create mode 100644 src/docs/de-DE/general/troubleshooting.md create mode 100644 src/docs/en-US/admin/disable-timelines.md create mode 100644 src/docs/en-US/admin/faq.md create mode 100644 src/docs/en-US/advanced/aiscript.md create mode 100644 src/docs/en-US/advanced/api.md create mode 100644 src/docs/en-US/advanced/create-plugin.md create mode 100644 src/docs/en-US/advanced/develop-bot.md create mode 100644 src/docs/en-US/advanced/reversi-bot.md create mode 100644 src/docs/en-US/advanced/stream.md create mode 100644 src/docs/en-US/features/antenna.md create mode 100644 src/docs/en-US/features/custom-emoji.md create mode 100644 src/docs/en-US/features/deck.md create mode 100644 src/docs/en-US/features/drive.md create mode 100644 src/docs/en-US/features/favorite.md create mode 100644 src/docs/en-US/features/follow.md create mode 100644 src/docs/en-US/features/keyboard-shortcut.md create mode 100644 src/docs/en-US/features/mfm.md create mode 100644 src/docs/en-US/features/mute.md create mode 100644 src/docs/en-US/features/note.md create mode 100644 src/docs/en-US/features/pages.md create mode 100644 src/docs/en-US/features/reaction.md create mode 100644 src/docs/en-US/features/silence.md create mode 100644 src/docs/en-US/features/theme.md create mode 100644 src/docs/en-US/features/timeline.md create mode 100644 src/docs/en-US/features/widgets.md create mode 100644 src/docs/en-US/general/apps.md create mode 100644 src/docs/en-US/general/faq.md create mode 100644 src/docs/en-US/general/glossary.md create mode 100644 src/docs/en-US/general/links.md create mode 100644 src/docs/en-US/general/misskey.md create mode 100644 src/docs/en-US/general/report-issue.md create mode 100644 src/docs/en-US/general/troubleshooting.md create mode 100644 src/docs/eo-UY/admin/disable-timelines.md create mode 100644 src/docs/eo-UY/admin/faq.md create mode 100644 src/docs/eo-UY/advanced/aiscript.md create mode 100644 src/docs/eo-UY/advanced/api.md create mode 100644 src/docs/eo-UY/advanced/create-plugin.md create mode 100644 src/docs/eo-UY/advanced/develop-bot.md create mode 100644 src/docs/eo-UY/advanced/reversi-bot.md create mode 100644 src/docs/eo-UY/advanced/stream.md create mode 100644 src/docs/eo-UY/features/antenna.md create mode 100644 src/docs/eo-UY/features/custom-emoji.md create mode 100644 src/docs/eo-UY/features/deck.md create mode 100644 src/docs/eo-UY/features/drive.md create mode 100644 src/docs/eo-UY/features/favorite.md create mode 100644 src/docs/eo-UY/features/follow.md create mode 100644 src/docs/eo-UY/features/keyboard-shortcut.md create mode 100644 src/docs/eo-UY/features/mfm.md create mode 100644 src/docs/eo-UY/features/mute.md create mode 100644 src/docs/eo-UY/features/note.md create mode 100644 src/docs/eo-UY/features/pages.md create mode 100644 src/docs/eo-UY/features/reaction.md create mode 100644 src/docs/eo-UY/features/silence.md create mode 100644 src/docs/eo-UY/features/theme.md create mode 100644 src/docs/eo-UY/features/timeline.md create mode 100644 src/docs/eo-UY/features/widgets.md create mode 100644 src/docs/eo-UY/general/apps.md create mode 100644 src/docs/eo-UY/general/faq.md create mode 100644 src/docs/eo-UY/general/glossary.md create mode 100644 src/docs/eo-UY/general/links.md create mode 100644 src/docs/eo-UY/general/misskey.md create mode 100644 src/docs/eo-UY/general/report-issue.md create mode 100644 src/docs/eo-UY/general/troubleshooting.md create mode 100644 src/docs/es-ES/admin/disable-timelines.md create mode 100644 src/docs/es-ES/admin/faq.md create mode 100644 src/docs/es-ES/advanced/aiscript.md create mode 100644 src/docs/es-ES/advanced/api.md create mode 100644 src/docs/es-ES/advanced/create-plugin.md create mode 100644 src/docs/es-ES/advanced/develop-bot.md create mode 100644 src/docs/es-ES/advanced/reversi-bot.md create mode 100644 src/docs/es-ES/advanced/stream.md create mode 100644 src/docs/es-ES/features/antenna.md create mode 100644 src/docs/es-ES/features/custom-emoji.md create mode 100644 src/docs/es-ES/features/deck.md create mode 100644 src/docs/es-ES/features/drive.md create mode 100644 src/docs/es-ES/features/favorite.md create mode 100644 src/docs/es-ES/features/follow.md create mode 100644 src/docs/es-ES/features/keyboard-shortcut.md create mode 100644 src/docs/es-ES/features/mfm.md create mode 100644 src/docs/es-ES/features/mute.md create mode 100644 src/docs/es-ES/features/note.md create mode 100644 src/docs/es-ES/features/pages.md create mode 100644 src/docs/es-ES/features/reaction.md create mode 100644 src/docs/es-ES/features/silence.md create mode 100644 src/docs/es-ES/features/theme.md create mode 100644 src/docs/es-ES/features/timeline.md create mode 100644 src/docs/es-ES/features/widgets.md create mode 100644 src/docs/es-ES/general/apps.md create mode 100644 src/docs/es-ES/general/faq.md create mode 100644 src/docs/es-ES/general/glossary.md create mode 100644 src/docs/es-ES/general/links.md create mode 100644 src/docs/es-ES/general/misskey.md create mode 100644 src/docs/es-ES/general/report-issue.md create mode 100644 src/docs/es-ES/general/troubleshooting.md create mode 100644 src/docs/fr-FR/admin/disable-timelines.md create mode 100644 src/docs/fr-FR/admin/faq.md create mode 100644 src/docs/fr-FR/advanced/aiscript.md create mode 100644 src/docs/fr-FR/advanced/api.md create mode 100644 src/docs/fr-FR/advanced/create-plugin.md create mode 100644 src/docs/fr-FR/advanced/develop-bot.md create mode 100644 src/docs/fr-FR/advanced/reversi-bot.md create mode 100644 src/docs/fr-FR/advanced/stream.md create mode 100644 src/docs/fr-FR/features/antenna.md create mode 100644 src/docs/fr-FR/features/custom-emoji.md create mode 100644 src/docs/fr-FR/features/deck.md create mode 100644 src/docs/fr-FR/features/drive.md create mode 100644 src/docs/fr-FR/features/favorite.md create mode 100644 src/docs/fr-FR/features/follow.md create mode 100644 src/docs/fr-FR/features/keyboard-shortcut.md create mode 100644 src/docs/fr-FR/features/mfm.md create mode 100644 src/docs/fr-FR/features/mute.md create mode 100644 src/docs/fr-FR/features/note.md create mode 100644 src/docs/fr-FR/features/pages.md create mode 100644 src/docs/fr-FR/features/reaction.md create mode 100644 src/docs/fr-FR/features/silence.md create mode 100644 src/docs/fr-FR/features/theme.md create mode 100644 src/docs/fr-FR/features/timeline.md create mode 100644 src/docs/fr-FR/features/widgets.md create mode 100644 src/docs/fr-FR/general/apps.md create mode 100644 src/docs/fr-FR/general/faq.md create mode 100644 src/docs/fr-FR/general/glossary.md create mode 100644 src/docs/fr-FR/general/links.md create mode 100644 src/docs/fr-FR/general/misskey.md create mode 100644 src/docs/fr-FR/general/report-issue.md create mode 100644 src/docs/fr-FR/general/troubleshooting.md create mode 100644 src/docs/ht-HT/admin/disable-timelines.md create mode 100644 src/docs/ht-HT/admin/faq.md create mode 100644 src/docs/ht-HT/advanced/aiscript.md create mode 100644 src/docs/ht-HT/advanced/api.md create mode 100644 src/docs/ht-HT/advanced/create-plugin.md create mode 100644 src/docs/ht-HT/advanced/develop-bot.md create mode 100644 src/docs/ht-HT/advanced/reversi-bot.md create mode 100644 src/docs/ht-HT/advanced/stream.md create mode 100644 src/docs/ht-HT/features/antenna.md create mode 100644 src/docs/ht-HT/features/custom-emoji.md create mode 100644 src/docs/ht-HT/features/deck.md create mode 100644 src/docs/ht-HT/features/drive.md create mode 100644 src/docs/ht-HT/features/favorite.md create mode 100644 src/docs/ht-HT/features/follow.md create mode 100644 src/docs/ht-HT/features/keyboard-shortcut.md create mode 100644 src/docs/ht-HT/features/mfm.md create mode 100644 src/docs/ht-HT/features/mute.md create mode 100644 src/docs/ht-HT/features/note.md create mode 100644 src/docs/ht-HT/features/pages.md create mode 100644 src/docs/ht-HT/features/reaction.md create mode 100644 src/docs/ht-HT/features/silence.md create mode 100644 src/docs/ht-HT/features/theme.md create mode 100644 src/docs/ht-HT/features/timeline.md create mode 100644 src/docs/ht-HT/features/widgets.md create mode 100644 src/docs/ht-HT/general/apps.md create mode 100644 src/docs/ht-HT/general/faq.md create mode 100644 src/docs/ht-HT/general/glossary.md create mode 100644 src/docs/ht-HT/general/links.md create mode 100644 src/docs/ht-HT/general/misskey.md create mode 100644 src/docs/ht-HT/general/report-issue.md create mode 100644 src/docs/ht-HT/general/troubleshooting.md create mode 100644 src/docs/id-ID/admin/disable-timelines.md create mode 100644 src/docs/id-ID/admin/faq.md create mode 100644 src/docs/id-ID/advanced/aiscript.md create mode 100644 src/docs/id-ID/advanced/api.md create mode 100644 src/docs/id-ID/advanced/create-plugin.md create mode 100644 src/docs/id-ID/advanced/develop-bot.md create mode 100644 src/docs/id-ID/advanced/reversi-bot.md create mode 100644 src/docs/id-ID/advanced/stream.md create mode 100644 src/docs/id-ID/features/antenna.md create mode 100644 src/docs/id-ID/features/custom-emoji.md create mode 100644 src/docs/id-ID/features/deck.md create mode 100644 src/docs/id-ID/features/drive.md create mode 100644 src/docs/id-ID/features/favorite.md create mode 100644 src/docs/id-ID/features/follow.md create mode 100644 src/docs/id-ID/features/keyboard-shortcut.md create mode 100644 src/docs/id-ID/features/mfm.md create mode 100644 src/docs/id-ID/features/mute.md create mode 100644 src/docs/id-ID/features/note.md create mode 100644 src/docs/id-ID/features/pages.md create mode 100644 src/docs/id-ID/features/reaction.md create mode 100644 src/docs/id-ID/features/silence.md create mode 100644 src/docs/id-ID/features/theme.md create mode 100644 src/docs/id-ID/features/timeline.md create mode 100644 src/docs/id-ID/features/widgets.md create mode 100644 src/docs/id-ID/general/apps.md create mode 100644 src/docs/id-ID/general/faq.md create mode 100644 src/docs/id-ID/general/glossary.md create mode 100644 src/docs/id-ID/general/links.md create mode 100644 src/docs/id-ID/general/misskey.md create mode 100644 src/docs/id-ID/general/report-issue.md create mode 100644 src/docs/id-ID/general/troubleshooting.md create mode 100644 src/docs/it-IT/admin/disable-timelines.md create mode 100644 src/docs/it-IT/admin/faq.md create mode 100644 src/docs/it-IT/advanced/aiscript.md create mode 100644 src/docs/it-IT/advanced/api.md create mode 100644 src/docs/it-IT/advanced/create-plugin.md create mode 100644 src/docs/it-IT/advanced/develop-bot.md create mode 100644 src/docs/it-IT/advanced/reversi-bot.md create mode 100644 src/docs/it-IT/advanced/stream.md create mode 100644 src/docs/it-IT/features/antenna.md create mode 100644 src/docs/it-IT/features/custom-emoji.md create mode 100644 src/docs/it-IT/features/deck.md create mode 100644 src/docs/it-IT/features/drive.md create mode 100644 src/docs/it-IT/features/favorite.md create mode 100644 src/docs/it-IT/features/follow.md create mode 100644 src/docs/it-IT/features/keyboard-shortcut.md create mode 100644 src/docs/it-IT/features/mfm.md create mode 100644 src/docs/it-IT/features/mute.md create mode 100644 src/docs/it-IT/features/note.md create mode 100644 src/docs/it-IT/features/pages.md create mode 100644 src/docs/it-IT/features/reaction.md create mode 100644 src/docs/it-IT/features/silence.md create mode 100644 src/docs/it-IT/features/theme.md create mode 100644 src/docs/it-IT/features/timeline.md create mode 100644 src/docs/it-IT/features/widgets.md create mode 100644 src/docs/it-IT/general/apps.md create mode 100644 src/docs/it-IT/general/faq.md create mode 100644 src/docs/it-IT/general/glossary.md create mode 100644 src/docs/it-IT/general/links.md create mode 100644 src/docs/it-IT/general/misskey.md create mode 100644 src/docs/it-IT/general/report-issue.md create mode 100644 src/docs/it-IT/general/troubleshooting.md create mode 100644 src/docs/ja-KS/admin/disable-timelines.md create mode 100644 src/docs/ja-KS/admin/faq.md create mode 100644 src/docs/ja-KS/advanced/aiscript.md create mode 100644 src/docs/ja-KS/advanced/api.md create mode 100644 src/docs/ja-KS/advanced/create-plugin.md create mode 100644 src/docs/ja-KS/advanced/develop-bot.md create mode 100644 src/docs/ja-KS/advanced/reversi-bot.md create mode 100644 src/docs/ja-KS/advanced/stream.md create mode 100644 src/docs/ja-KS/features/antenna.md create mode 100644 src/docs/ja-KS/features/custom-emoji.md create mode 100644 src/docs/ja-KS/features/deck.md create mode 100644 src/docs/ja-KS/features/drive.md create mode 100644 src/docs/ja-KS/features/favorite.md create mode 100644 src/docs/ja-KS/features/follow.md create mode 100644 src/docs/ja-KS/features/keyboard-shortcut.md create mode 100644 src/docs/ja-KS/features/mfm.md create mode 100644 src/docs/ja-KS/features/mute.md create mode 100644 src/docs/ja-KS/features/note.md create mode 100644 src/docs/ja-KS/features/pages.md create mode 100644 src/docs/ja-KS/features/reaction.md create mode 100644 src/docs/ja-KS/features/silence.md create mode 100644 src/docs/ja-KS/features/theme.md create mode 100644 src/docs/ja-KS/features/timeline.md create mode 100644 src/docs/ja-KS/features/widgets.md create mode 100644 src/docs/ja-KS/general/apps.md create mode 100644 src/docs/ja-KS/general/faq.md create mode 100644 src/docs/ja-KS/general/glossary.md create mode 100644 src/docs/ja-KS/general/links.md create mode 100644 src/docs/ja-KS/general/misskey.md create mode 100644 src/docs/ja-KS/general/report-issue.md create mode 100644 src/docs/ja-KS/general/troubleshooting.md create mode 100644 src/docs/jbo-EN/admin/disable-timelines.md create mode 100644 src/docs/jbo-EN/admin/faq.md create mode 100644 src/docs/jbo-EN/advanced/aiscript.md create mode 100644 src/docs/jbo-EN/advanced/api.md create mode 100644 src/docs/jbo-EN/advanced/create-plugin.md create mode 100644 src/docs/jbo-EN/advanced/develop-bot.md create mode 100644 src/docs/jbo-EN/advanced/reversi-bot.md create mode 100644 src/docs/jbo-EN/advanced/stream.md create mode 100644 src/docs/jbo-EN/features/antenna.md create mode 100644 src/docs/jbo-EN/features/custom-emoji.md create mode 100644 src/docs/jbo-EN/features/deck.md create mode 100644 src/docs/jbo-EN/features/drive.md create mode 100644 src/docs/jbo-EN/features/favorite.md create mode 100644 src/docs/jbo-EN/features/follow.md create mode 100644 src/docs/jbo-EN/features/keyboard-shortcut.md create mode 100644 src/docs/jbo-EN/features/mfm.md create mode 100644 src/docs/jbo-EN/features/mute.md create mode 100644 src/docs/jbo-EN/features/note.md create mode 100644 src/docs/jbo-EN/features/pages.md create mode 100644 src/docs/jbo-EN/features/reaction.md create mode 100644 src/docs/jbo-EN/features/silence.md create mode 100644 src/docs/jbo-EN/features/theme.md create mode 100644 src/docs/jbo-EN/features/timeline.md create mode 100644 src/docs/jbo-EN/features/widgets.md create mode 100644 src/docs/jbo-EN/general/apps.md create mode 100644 src/docs/jbo-EN/general/faq.md create mode 100644 src/docs/jbo-EN/general/glossary.md create mode 100644 src/docs/jbo-EN/general/links.md create mode 100644 src/docs/jbo-EN/general/misskey.md create mode 100644 src/docs/jbo-EN/general/report-issue.md create mode 100644 src/docs/jbo-EN/general/troubleshooting.md create mode 100644 src/docs/kab-KAB/admin/disable-timelines.md create mode 100644 src/docs/kab-KAB/admin/faq.md create mode 100644 src/docs/kab-KAB/advanced/aiscript.md create mode 100644 src/docs/kab-KAB/advanced/api.md create mode 100644 src/docs/kab-KAB/advanced/create-plugin.md create mode 100644 src/docs/kab-KAB/advanced/develop-bot.md create mode 100644 src/docs/kab-KAB/advanced/reversi-bot.md create mode 100644 src/docs/kab-KAB/advanced/stream.md create mode 100644 src/docs/kab-KAB/features/antenna.md create mode 100644 src/docs/kab-KAB/features/custom-emoji.md create mode 100644 src/docs/kab-KAB/features/deck.md create mode 100644 src/docs/kab-KAB/features/drive.md create mode 100644 src/docs/kab-KAB/features/favorite.md create mode 100644 src/docs/kab-KAB/features/follow.md create mode 100644 src/docs/kab-KAB/features/keyboard-shortcut.md create mode 100644 src/docs/kab-KAB/features/mfm.md create mode 100644 src/docs/kab-KAB/features/mute.md create mode 100644 src/docs/kab-KAB/features/note.md create mode 100644 src/docs/kab-KAB/features/pages.md create mode 100644 src/docs/kab-KAB/features/reaction.md create mode 100644 src/docs/kab-KAB/features/silence.md create mode 100644 src/docs/kab-KAB/features/theme.md create mode 100644 src/docs/kab-KAB/features/timeline.md create mode 100644 src/docs/kab-KAB/features/widgets.md create mode 100644 src/docs/kab-KAB/general/apps.md create mode 100644 src/docs/kab-KAB/general/faq.md create mode 100644 src/docs/kab-KAB/general/glossary.md create mode 100644 src/docs/kab-KAB/general/links.md create mode 100644 src/docs/kab-KAB/general/misskey.md create mode 100644 src/docs/kab-KAB/general/report-issue.md create mode 100644 src/docs/kab-KAB/general/troubleshooting.md create mode 100644 src/docs/kn-IN/admin/disable-timelines.md create mode 100644 src/docs/kn-IN/admin/faq.md create mode 100644 src/docs/kn-IN/advanced/aiscript.md create mode 100644 src/docs/kn-IN/advanced/api.md create mode 100644 src/docs/kn-IN/advanced/create-plugin.md create mode 100644 src/docs/kn-IN/advanced/develop-bot.md create mode 100644 src/docs/kn-IN/advanced/reversi-bot.md create mode 100644 src/docs/kn-IN/advanced/stream.md create mode 100644 src/docs/kn-IN/features/antenna.md create mode 100644 src/docs/kn-IN/features/custom-emoji.md create mode 100644 src/docs/kn-IN/features/deck.md create mode 100644 src/docs/kn-IN/features/drive.md create mode 100644 src/docs/kn-IN/features/favorite.md create mode 100644 src/docs/kn-IN/features/follow.md create mode 100644 src/docs/kn-IN/features/keyboard-shortcut.md create mode 100644 src/docs/kn-IN/features/mfm.md create mode 100644 src/docs/kn-IN/features/mute.md create mode 100644 src/docs/kn-IN/features/note.md create mode 100644 src/docs/kn-IN/features/pages.md create mode 100644 src/docs/kn-IN/features/reaction.md create mode 100644 src/docs/kn-IN/features/silence.md create mode 100644 src/docs/kn-IN/features/theme.md create mode 100644 src/docs/kn-IN/features/timeline.md create mode 100644 src/docs/kn-IN/features/widgets.md create mode 100644 src/docs/kn-IN/general/apps.md create mode 100644 src/docs/kn-IN/general/faq.md create mode 100644 src/docs/kn-IN/general/glossary.md create mode 100644 src/docs/kn-IN/general/links.md create mode 100644 src/docs/kn-IN/general/misskey.md create mode 100644 src/docs/kn-IN/general/report-issue.md create mode 100644 src/docs/kn-IN/general/troubleshooting.md create mode 100644 src/docs/ko-KR/admin/disable-timelines.md create mode 100644 src/docs/ko-KR/admin/faq.md create mode 100644 src/docs/ko-KR/advanced/aiscript.md create mode 100644 src/docs/ko-KR/advanced/api.md create mode 100644 src/docs/ko-KR/advanced/create-plugin.md create mode 100644 src/docs/ko-KR/advanced/develop-bot.md create mode 100644 src/docs/ko-KR/advanced/reversi-bot.md create mode 100644 src/docs/ko-KR/advanced/stream.md create mode 100644 src/docs/ko-KR/features/antenna.md create mode 100644 src/docs/ko-KR/features/custom-emoji.md create mode 100644 src/docs/ko-KR/features/deck.md create mode 100644 src/docs/ko-KR/features/drive.md create mode 100644 src/docs/ko-KR/features/favorite.md create mode 100644 src/docs/ko-KR/features/follow.md create mode 100644 src/docs/ko-KR/features/keyboard-shortcut.md create mode 100644 src/docs/ko-KR/features/mfm.md create mode 100644 src/docs/ko-KR/features/mute.md create mode 100644 src/docs/ko-KR/features/note.md create mode 100644 src/docs/ko-KR/features/pages.md create mode 100644 src/docs/ko-KR/features/reaction.md create mode 100644 src/docs/ko-KR/features/silence.md create mode 100644 src/docs/ko-KR/features/theme.md create mode 100644 src/docs/ko-KR/features/timeline.md create mode 100644 src/docs/ko-KR/features/widgets.md create mode 100644 src/docs/ko-KR/general/apps.md create mode 100644 src/docs/ko-KR/general/faq.md create mode 100644 src/docs/ko-KR/general/glossary.md create mode 100644 src/docs/ko-KR/general/links.md create mode 100644 src/docs/ko-KR/general/misskey.md create mode 100644 src/docs/ko-KR/general/report-issue.md create mode 100644 src/docs/ko-KR/general/troubleshooting.md create mode 100644 src/docs/nl-NL/admin/disable-timelines.md create mode 100644 src/docs/nl-NL/admin/faq.md create mode 100644 src/docs/nl-NL/advanced/aiscript.md create mode 100644 src/docs/nl-NL/advanced/api.md create mode 100644 src/docs/nl-NL/advanced/create-plugin.md create mode 100644 src/docs/nl-NL/advanced/develop-bot.md create mode 100644 src/docs/nl-NL/advanced/reversi-bot.md create mode 100644 src/docs/nl-NL/advanced/stream.md create mode 100644 src/docs/nl-NL/features/antenna.md create mode 100644 src/docs/nl-NL/features/custom-emoji.md create mode 100644 src/docs/nl-NL/features/deck.md create mode 100644 src/docs/nl-NL/features/drive.md create mode 100644 src/docs/nl-NL/features/favorite.md create mode 100644 src/docs/nl-NL/features/follow.md create mode 100644 src/docs/nl-NL/features/keyboard-shortcut.md create mode 100644 src/docs/nl-NL/features/mfm.md create mode 100644 src/docs/nl-NL/features/mute.md create mode 100644 src/docs/nl-NL/features/note.md create mode 100644 src/docs/nl-NL/features/pages.md create mode 100644 src/docs/nl-NL/features/reaction.md create mode 100644 src/docs/nl-NL/features/silence.md create mode 100644 src/docs/nl-NL/features/theme.md create mode 100644 src/docs/nl-NL/features/timeline.md create mode 100644 src/docs/nl-NL/features/widgets.md create mode 100644 src/docs/nl-NL/general/apps.md create mode 100644 src/docs/nl-NL/general/faq.md create mode 100644 src/docs/nl-NL/general/glossary.md create mode 100644 src/docs/nl-NL/general/links.md create mode 100644 src/docs/nl-NL/general/misskey.md create mode 100644 src/docs/nl-NL/general/report-issue.md create mode 100644 src/docs/nl-NL/general/troubleshooting.md create mode 100644 src/docs/no-NO/admin/disable-timelines.md create mode 100644 src/docs/no-NO/admin/faq.md create mode 100644 src/docs/no-NO/advanced/aiscript.md create mode 100644 src/docs/no-NO/advanced/api.md create mode 100644 src/docs/no-NO/advanced/create-plugin.md create mode 100644 src/docs/no-NO/advanced/develop-bot.md create mode 100644 src/docs/no-NO/advanced/reversi-bot.md create mode 100644 src/docs/no-NO/advanced/stream.md create mode 100644 src/docs/no-NO/features/antenna.md create mode 100644 src/docs/no-NO/features/custom-emoji.md create mode 100644 src/docs/no-NO/features/deck.md create mode 100644 src/docs/no-NO/features/drive.md create mode 100644 src/docs/no-NO/features/favorite.md create mode 100644 src/docs/no-NO/features/follow.md create mode 100644 src/docs/no-NO/features/keyboard-shortcut.md create mode 100644 src/docs/no-NO/features/mfm.md create mode 100644 src/docs/no-NO/features/mute.md create mode 100644 src/docs/no-NO/features/note.md create mode 100644 src/docs/no-NO/features/pages.md create mode 100644 src/docs/no-NO/features/reaction.md create mode 100644 src/docs/no-NO/features/silence.md create mode 100644 src/docs/no-NO/features/theme.md create mode 100644 src/docs/no-NO/features/timeline.md create mode 100644 src/docs/no-NO/features/widgets.md create mode 100644 src/docs/no-NO/general/apps.md create mode 100644 src/docs/no-NO/general/faq.md create mode 100644 src/docs/no-NO/general/glossary.md create mode 100644 src/docs/no-NO/general/links.md create mode 100644 src/docs/no-NO/general/misskey.md create mode 100644 src/docs/no-NO/general/report-issue.md create mode 100644 src/docs/no-NO/general/troubleshooting.md create mode 100644 src/docs/pl-PL/admin/disable-timelines.md create mode 100644 src/docs/pl-PL/admin/faq.md create mode 100644 src/docs/pl-PL/advanced/aiscript.md create mode 100644 src/docs/pl-PL/advanced/api.md create mode 100644 src/docs/pl-PL/advanced/create-plugin.md create mode 100644 src/docs/pl-PL/advanced/develop-bot.md create mode 100644 src/docs/pl-PL/advanced/reversi-bot.md create mode 100644 src/docs/pl-PL/advanced/stream.md create mode 100644 src/docs/pl-PL/features/antenna.md create mode 100644 src/docs/pl-PL/features/custom-emoji.md create mode 100644 src/docs/pl-PL/features/deck.md create mode 100644 src/docs/pl-PL/features/drive.md create mode 100644 src/docs/pl-PL/features/favorite.md create mode 100644 src/docs/pl-PL/features/follow.md create mode 100644 src/docs/pl-PL/features/keyboard-shortcut.md create mode 100644 src/docs/pl-PL/features/mfm.md create mode 100644 src/docs/pl-PL/features/mute.md create mode 100644 src/docs/pl-PL/features/note.md create mode 100644 src/docs/pl-PL/features/pages.md create mode 100644 src/docs/pl-PL/features/reaction.md create mode 100644 src/docs/pl-PL/features/silence.md create mode 100644 src/docs/pl-PL/features/theme.md create mode 100644 src/docs/pl-PL/features/timeline.md create mode 100644 src/docs/pl-PL/features/widgets.md create mode 100644 src/docs/pl-PL/general/apps.md create mode 100644 src/docs/pl-PL/general/faq.md create mode 100644 src/docs/pl-PL/general/glossary.md create mode 100644 src/docs/pl-PL/general/links.md create mode 100644 src/docs/pl-PL/general/misskey.md create mode 100644 src/docs/pl-PL/general/report-issue.md create mode 100644 src/docs/pl-PL/general/troubleshooting.md create mode 100644 src/docs/pt-PT/admin/disable-timelines.md create mode 100644 src/docs/pt-PT/admin/faq.md create mode 100644 src/docs/pt-PT/advanced/aiscript.md create mode 100644 src/docs/pt-PT/advanced/api.md create mode 100644 src/docs/pt-PT/advanced/create-plugin.md create mode 100644 src/docs/pt-PT/advanced/develop-bot.md create mode 100644 src/docs/pt-PT/advanced/reversi-bot.md create mode 100644 src/docs/pt-PT/advanced/stream.md create mode 100644 src/docs/pt-PT/features/antenna.md create mode 100644 src/docs/pt-PT/features/custom-emoji.md create mode 100644 src/docs/pt-PT/features/deck.md create mode 100644 src/docs/pt-PT/features/drive.md create mode 100644 src/docs/pt-PT/features/favorite.md create mode 100644 src/docs/pt-PT/features/follow.md create mode 100644 src/docs/pt-PT/features/keyboard-shortcut.md create mode 100644 src/docs/pt-PT/features/mfm.md create mode 100644 src/docs/pt-PT/features/mute.md create mode 100644 src/docs/pt-PT/features/note.md create mode 100644 src/docs/pt-PT/features/pages.md create mode 100644 src/docs/pt-PT/features/reaction.md create mode 100644 src/docs/pt-PT/features/silence.md create mode 100644 src/docs/pt-PT/features/theme.md create mode 100644 src/docs/pt-PT/features/timeline.md create mode 100644 src/docs/pt-PT/features/widgets.md create mode 100644 src/docs/pt-PT/general/apps.md create mode 100644 src/docs/pt-PT/general/faq.md create mode 100644 src/docs/pt-PT/general/glossary.md create mode 100644 src/docs/pt-PT/general/links.md create mode 100644 src/docs/pt-PT/general/misskey.md create mode 100644 src/docs/pt-PT/general/report-issue.md create mode 100644 src/docs/pt-PT/general/troubleshooting.md create mode 100644 src/docs/ru-RU/admin/disable-timelines.md create mode 100644 src/docs/ru-RU/admin/faq.md create mode 100644 src/docs/ru-RU/advanced/aiscript.md create mode 100644 src/docs/ru-RU/advanced/api.md create mode 100644 src/docs/ru-RU/advanced/create-plugin.md create mode 100644 src/docs/ru-RU/advanced/develop-bot.md create mode 100644 src/docs/ru-RU/advanced/reversi-bot.md create mode 100644 src/docs/ru-RU/advanced/stream.md create mode 100644 src/docs/ru-RU/features/antenna.md create mode 100644 src/docs/ru-RU/features/custom-emoji.md create mode 100644 src/docs/ru-RU/features/deck.md create mode 100644 src/docs/ru-RU/features/drive.md create mode 100644 src/docs/ru-RU/features/favorite.md create mode 100644 src/docs/ru-RU/features/follow.md create mode 100644 src/docs/ru-RU/features/keyboard-shortcut.md create mode 100644 src/docs/ru-RU/features/mfm.md create mode 100644 src/docs/ru-RU/features/mute.md create mode 100644 src/docs/ru-RU/features/note.md create mode 100644 src/docs/ru-RU/features/pages.md create mode 100644 src/docs/ru-RU/features/reaction.md create mode 100644 src/docs/ru-RU/features/silence.md create mode 100644 src/docs/ru-RU/features/theme.md create mode 100644 src/docs/ru-RU/features/timeline.md create mode 100644 src/docs/ru-RU/features/widgets.md create mode 100644 src/docs/ru-RU/general/apps.md create mode 100644 src/docs/ru-RU/general/faq.md create mode 100644 src/docs/ru-RU/general/glossary.md create mode 100644 src/docs/ru-RU/general/links.md create mode 100644 src/docs/ru-RU/general/misskey.md create mode 100644 src/docs/ru-RU/general/report-issue.md create mode 100644 src/docs/ru-RU/general/troubleshooting.md create mode 100644 src/docs/th-TH/admin/disable-timelines.md create mode 100644 src/docs/th-TH/admin/faq.md create mode 100644 src/docs/th-TH/advanced/aiscript.md create mode 100644 src/docs/th-TH/advanced/api.md create mode 100644 src/docs/th-TH/advanced/create-plugin.md create mode 100644 src/docs/th-TH/advanced/develop-bot.md create mode 100644 src/docs/th-TH/advanced/reversi-bot.md create mode 100644 src/docs/th-TH/advanced/stream.md create mode 100644 src/docs/th-TH/features/antenna.md create mode 100644 src/docs/th-TH/features/custom-emoji.md create mode 100644 src/docs/th-TH/features/deck.md create mode 100644 src/docs/th-TH/features/drive.md create mode 100644 src/docs/th-TH/features/favorite.md create mode 100644 src/docs/th-TH/features/follow.md create mode 100644 src/docs/th-TH/features/keyboard-shortcut.md create mode 100644 src/docs/th-TH/features/mfm.md create mode 100644 src/docs/th-TH/features/mute.md create mode 100644 src/docs/th-TH/features/note.md create mode 100644 src/docs/th-TH/features/pages.md create mode 100644 src/docs/th-TH/features/reaction.md create mode 100644 src/docs/th-TH/features/silence.md create mode 100644 src/docs/th-TH/features/theme.md create mode 100644 src/docs/th-TH/features/timeline.md create mode 100644 src/docs/th-TH/features/widgets.md create mode 100644 src/docs/th-TH/general/apps.md create mode 100644 src/docs/th-TH/general/faq.md create mode 100644 src/docs/th-TH/general/glossary.md create mode 100644 src/docs/th-TH/general/links.md create mode 100644 src/docs/th-TH/general/misskey.md create mode 100644 src/docs/th-TH/general/report-issue.md create mode 100644 src/docs/th-TH/general/troubleshooting.md create mode 100644 src/docs/ug-CN/admin/disable-timelines.md create mode 100644 src/docs/ug-CN/admin/faq.md create mode 100644 src/docs/ug-CN/advanced/aiscript.md create mode 100644 src/docs/ug-CN/advanced/api.md create mode 100644 src/docs/ug-CN/advanced/create-plugin.md create mode 100644 src/docs/ug-CN/advanced/develop-bot.md create mode 100644 src/docs/ug-CN/advanced/reversi-bot.md create mode 100644 src/docs/ug-CN/advanced/stream.md create mode 100644 src/docs/ug-CN/features/antenna.md create mode 100644 src/docs/ug-CN/features/custom-emoji.md create mode 100644 src/docs/ug-CN/features/deck.md create mode 100644 src/docs/ug-CN/features/drive.md create mode 100644 src/docs/ug-CN/features/favorite.md create mode 100644 src/docs/ug-CN/features/follow.md create mode 100644 src/docs/ug-CN/features/keyboard-shortcut.md create mode 100644 src/docs/ug-CN/features/mfm.md create mode 100644 src/docs/ug-CN/features/mute.md create mode 100644 src/docs/ug-CN/features/note.md create mode 100644 src/docs/ug-CN/features/pages.md create mode 100644 src/docs/ug-CN/features/reaction.md create mode 100644 src/docs/ug-CN/features/silence.md create mode 100644 src/docs/ug-CN/features/theme.md create mode 100644 src/docs/ug-CN/features/timeline.md create mode 100644 src/docs/ug-CN/features/widgets.md create mode 100644 src/docs/ug-CN/general/apps.md create mode 100644 src/docs/ug-CN/general/faq.md create mode 100644 src/docs/ug-CN/general/glossary.md create mode 100644 src/docs/ug-CN/general/links.md create mode 100644 src/docs/ug-CN/general/misskey.md create mode 100644 src/docs/ug-CN/general/report-issue.md create mode 100644 src/docs/ug-CN/general/troubleshooting.md create mode 100644 src/docs/uk-UA/admin/disable-timelines.md create mode 100644 src/docs/uk-UA/admin/faq.md create mode 100644 src/docs/uk-UA/advanced/aiscript.md create mode 100644 src/docs/uk-UA/advanced/api.md create mode 100644 src/docs/uk-UA/advanced/create-plugin.md create mode 100644 src/docs/uk-UA/advanced/develop-bot.md create mode 100644 src/docs/uk-UA/advanced/reversi-bot.md create mode 100644 src/docs/uk-UA/advanced/stream.md create mode 100644 src/docs/uk-UA/features/antenna.md create mode 100644 src/docs/uk-UA/features/custom-emoji.md create mode 100644 src/docs/uk-UA/features/deck.md create mode 100644 src/docs/uk-UA/features/drive.md create mode 100644 src/docs/uk-UA/features/favorite.md create mode 100644 src/docs/uk-UA/features/follow.md create mode 100644 src/docs/uk-UA/features/keyboard-shortcut.md create mode 100644 src/docs/uk-UA/features/mfm.md create mode 100644 src/docs/uk-UA/features/mute.md create mode 100644 src/docs/uk-UA/features/note.md create mode 100644 src/docs/uk-UA/features/pages.md create mode 100644 src/docs/uk-UA/features/reaction.md create mode 100644 src/docs/uk-UA/features/silence.md create mode 100644 src/docs/uk-UA/features/theme.md create mode 100644 src/docs/uk-UA/features/timeline.md create mode 100644 src/docs/uk-UA/features/widgets.md create mode 100644 src/docs/uk-UA/general/apps.md create mode 100644 src/docs/uk-UA/general/faq.md create mode 100644 src/docs/uk-UA/general/glossary.md create mode 100644 src/docs/uk-UA/general/links.md create mode 100644 src/docs/uk-UA/general/misskey.md create mode 100644 src/docs/uk-UA/general/report-issue.md create mode 100644 src/docs/uk-UA/general/troubleshooting.md create mode 100644 src/docs/zh-CN/admin/disable-timelines.md create mode 100644 src/docs/zh-CN/admin/faq.md create mode 100644 src/docs/zh-CN/advanced/aiscript.md create mode 100644 src/docs/zh-CN/advanced/api.md create mode 100644 src/docs/zh-CN/advanced/create-plugin.md create mode 100644 src/docs/zh-CN/advanced/develop-bot.md create mode 100644 src/docs/zh-CN/advanced/reversi-bot.md create mode 100644 src/docs/zh-CN/advanced/stream.md create mode 100644 src/docs/zh-CN/features/antenna.md create mode 100644 src/docs/zh-CN/features/custom-emoji.md create mode 100644 src/docs/zh-CN/features/deck.md create mode 100644 src/docs/zh-CN/features/drive.md create mode 100644 src/docs/zh-CN/features/favorite.md create mode 100644 src/docs/zh-CN/features/follow.md create mode 100644 src/docs/zh-CN/features/keyboard-shortcut.md create mode 100644 src/docs/zh-CN/features/mfm.md create mode 100644 src/docs/zh-CN/features/mute.md create mode 100644 src/docs/zh-CN/features/note.md create mode 100644 src/docs/zh-CN/features/pages.md create mode 100644 src/docs/zh-CN/features/reaction.md create mode 100644 src/docs/zh-CN/features/silence.md create mode 100644 src/docs/zh-CN/features/theme.md create mode 100644 src/docs/zh-CN/features/timeline.md create mode 100644 src/docs/zh-CN/features/widgets.md create mode 100644 src/docs/zh-CN/general/apps.md create mode 100644 src/docs/zh-CN/general/faq.md create mode 100644 src/docs/zh-CN/general/glossary.md create mode 100644 src/docs/zh-CN/general/links.md create mode 100644 src/docs/zh-CN/general/misskey.md create mode 100644 src/docs/zh-CN/general/report-issue.md create mode 100644 src/docs/zh-CN/general/troubleshooting.md create mode 100644 src/docs/zh-TW/admin/disable-timelines.md create mode 100644 src/docs/zh-TW/admin/faq.md create mode 100644 src/docs/zh-TW/advanced/aiscript.md create mode 100644 src/docs/zh-TW/advanced/api.md create mode 100644 src/docs/zh-TW/advanced/create-plugin.md create mode 100644 src/docs/zh-TW/advanced/develop-bot.md create mode 100644 src/docs/zh-TW/advanced/reversi-bot.md create mode 100644 src/docs/zh-TW/advanced/stream.md create mode 100644 src/docs/zh-TW/features/antenna.md create mode 100644 src/docs/zh-TW/features/custom-emoji.md create mode 100644 src/docs/zh-TW/features/deck.md create mode 100644 src/docs/zh-TW/features/drive.md create mode 100644 src/docs/zh-TW/features/favorite.md create mode 100644 src/docs/zh-TW/features/follow.md create mode 100644 src/docs/zh-TW/features/keyboard-shortcut.md create mode 100644 src/docs/zh-TW/features/mfm.md create mode 100644 src/docs/zh-TW/features/mute.md create mode 100644 src/docs/zh-TW/features/note.md create mode 100644 src/docs/zh-TW/features/pages.md create mode 100644 src/docs/zh-TW/features/reaction.md create mode 100644 src/docs/zh-TW/features/silence.md create mode 100644 src/docs/zh-TW/features/theme.md create mode 100644 src/docs/zh-TW/features/timeline.md create mode 100644 src/docs/zh-TW/features/widgets.md create mode 100644 src/docs/zh-TW/general/apps.md create mode 100644 src/docs/zh-TW/general/faq.md create mode 100644 src/docs/zh-TW/general/glossary.md create mode 100644 src/docs/zh-TW/general/links.md create mode 100644 src/docs/zh-TW/general/misskey.md create mode 100644 src/docs/zh-TW/general/report-issue.md create mode 100644 src/docs/zh-TW/general/troubleshooting.md (limited to 'src/docs') diff --git a/src/docs/ar-SA/admin/disable-timelines.md b/src/docs/ar-SA/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/ar-SA/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/ar-SA/admin/faq.md b/src/docs/ar-SA/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/ar-SA/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/ar-SA/advanced/aiscript.md b/src/docs/ar-SA/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/ar-SA/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/ar-SA/advanced/api.md b/src/docs/ar-SA/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/ar-SA/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/ar-SA/advanced/create-plugin.md b/src/docs/ar-SA/advanced/create-plugin.md new file mode 100644 index 0000000000..a6cba6388a --- /dev/null +++ b/src/docs/ar-SA/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## البيانات الوصفية +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/ar-SA/advanced/develop-bot.md b/src/docs/ar-SA/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/ar-SA/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/ar-SA/advanced/reversi-bot.md b/src/docs/ar-SA/advanced/reversi-bot.md new file mode 100644 index 0000000000..7ab2a7212e --- /dev/null +++ b/src/docs/ar-SA/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### スイッチ +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/ar-SA/advanced/stream.md b/src/docs/ar-SA/advanced/stream.md new file mode 100644 index 0000000000..0e5edd2b0c --- /dev/null +++ b/src/docs/ar-SA/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/ar-SA/features/antenna.md b/src/docs/ar-SA/features/antenna.md new file mode 100644 index 0000000000..0cb6db82c5 --- /dev/null +++ b/src/docs/ar-SA/features/antenna.md @@ -0,0 +1,4 @@ +# الهوائيات +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/ar-SA/features/custom-emoji.md b/src/docs/ar-SA/features/custom-emoji.md new file mode 100644 index 0000000000..b86b191d19 --- /dev/null +++ b/src/docs/ar-SA/features/custom-emoji.md @@ -0,0 +1,2 @@ +# إيموجي مخصص +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/ar-SA/features/deck.md b/src/docs/ar-SA/features/deck.md new file mode 100644 index 0000000000..8057e262fd --- /dev/null +++ b/src/docs/ar-SA/features/deck.md @@ -0,0 +1,18 @@ +# デッキ + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/ar-SA/features/drive.md b/src/docs/ar-SA/features/drive.md new file mode 100644 index 0000000000..f107cb8c56 --- /dev/null +++ b/src/docs/ar-SA/features/drive.md @@ -0,0 +1,17 @@ +# قرص التخرين +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/ar-SA/features/favorite.md b/src/docs/ar-SA/features/favorite.md new file mode 100644 index 0000000000..1554291f1b --- /dev/null +++ b/src/docs/ar-SA/features/favorite.md @@ -0,0 +1,4 @@ +# إضافة إلى المفضلة +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/ar-SA/features/follow.md b/src/docs/ar-SA/features/follow.md new file mode 100644 index 0000000000..9b6562be94 --- /dev/null +++ b/src/docs/ar-SA/features/follow.md @@ -0,0 +1,2 @@ +# المتابَعون +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/ar-SA/features/keyboard-shortcut.md b/src/docs/ar-SA/features/keyboard-shortcut.md new file mode 100644 index 0000000000..3c73013c03 --- /dev/null +++ b/src/docs/ar-SA/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## الشامل +これらのショートカットは基本的にどこでも使えます。 +
+ + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
SالبحثSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/ar-SA/features/mfm.md b/src/docs/ar-SA/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/ar-SA/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/ar-SA/features/mute.md b/src/docs/ar-SA/features/mute.md new file mode 100644 index 0000000000..c04ebcfd72 --- /dev/null +++ b/src/docs/ar-SA/features/mute.md @@ -0,0 +1,13 @@ +# اكتم + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/ar-SA/features/note.md b/src/docs/ar-SA/features/note.md new file mode 100644 index 0000000000..38f0697372 --- /dev/null +++ b/src/docs/ar-SA/features/note.md @@ -0,0 +1,51 @@ +# الملاحظات +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### للعامة +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### الرئيسي +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### المتابِعين +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### مباشرة +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
للعامةالرئيسيالمتابِعينمباشرة
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## دبّسها على الصفحة الشخصية +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/ar-SA/features/pages.md b/src/docs/ar-SA/features/pages.md new file mode 100644 index 0000000000..a7311b95e6 --- /dev/null +++ b/src/docs/ar-SA/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/ar-SA/features/reaction.md b/src/docs/ar-SA/features/reaction.md new file mode 100644 index 0000000000..305bfd25eb --- /dev/null +++ b/src/docs/ar-SA/features/reaction.md @@ -0,0 +1,11 @@ +# تفاعل +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/ar-SA/features/silence.md b/src/docs/ar-SA/features/silence.md new file mode 100644 index 0000000000..617ba64dc4 --- /dev/null +++ b/src/docs/ar-SA/features/silence.md @@ -0,0 +1,6 @@ +# اكتم +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/ar-SA/features/theme.md b/src/docs/ar-SA/features/theme.md new file mode 100644 index 0000000000..59b582fa29 --- /dev/null +++ b/src/docs/ar-SA/features/theme.md @@ -0,0 +1,68 @@ +# المظهر + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 関数 +wip diff --git a/src/docs/ar-SA/features/timeline.md b/src/docs/ar-SA/features/timeline.md new file mode 100644 index 0000000000..988040538e --- /dev/null +++ b/src/docs/ar-SA/features/timeline.md @@ -0,0 +1,31 @@ +# الخيط الزمني +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## الرئيسي +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## المحلي +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## الاجتماعي +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## الشامل +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 比較 +| ソース | | | الخيط الزمني | | | +| ------------ | ---------- | ------- | ------------ | --------- | ------ | +| المستخدمون | 公開範囲 | الرئيسي | المحلي | الاجتماعي | الشامل | +| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ | +| | الرئيسي | ✔ | | ✔ | | +| | المتابِعين | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ | +| | الرئيسي | ✔ | | ✔ | | +| | المتابِعين | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ | +| | الرئيسي | | | | | +| | المتابِعين | | | | | +| リモート (未フォロー) | 公開 | | | | ✔ | +| | الرئيسي | | | | | +| | المتابِعين | | | | | diff --git a/src/docs/ar-SA/features/widgets.md b/src/docs/ar-SA/features/widgets.md new file mode 100644 index 0000000000..a7c2c1d1d6 --- /dev/null +++ b/src/docs/ar-SA/features/widgets.md @@ -0,0 +1,7 @@ +# ウィジェット +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/ar-SA/general/apps.md b/src/docs/ar-SA/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/ar-SA/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/ar-SA/general/faq.md b/src/docs/ar-SA/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/ar-SA/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/ar-SA/general/glossary.md b/src/docs/ar-SA/general/glossary.md new file mode 100644 index 0000000000..c538367f27 --- /dev/null +++ b/src/docs/ar-SA/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renote +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## مثيل الخادم +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## サーバー +todo + +## اكتم +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## علِق +アカウントが使用不可に設定されている状態。 + +## قرص التخرين +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## الملاحظات +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## مشرِف +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## بُعدي +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## الفديرالية +サーバー上で作成された情報が他のサーバーに伝わること。 + +## المحلي +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/ar-SA/general/links.md b/src/docs/ar-SA/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/ar-SA/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/ar-SA/general/misskey.md b/src/docs/ar-SA/general/misskey.md new file mode 100644 index 0000000000..addeeffaeb --- /dev/null +++ b/src/docs/ar-SA/general/misskey.md @@ -0,0 +1,87 @@ +# عن Misskey + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/ar-SA/general/report-issue.md b/src/docs/ar-SA/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/ar-SA/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/ar-SA/general/troubleshooting.md b/src/docs/ar-SA/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/ar-SA/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/cs-CZ/admin/disable-timelines.md b/src/docs/cs-CZ/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/cs-CZ/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/cs-CZ/admin/faq.md b/src/docs/cs-CZ/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/cs-CZ/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/cs-CZ/advanced/aiscript.md b/src/docs/cs-CZ/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/cs-CZ/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/cs-CZ/advanced/api.md b/src/docs/cs-CZ/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/cs-CZ/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/cs-CZ/advanced/create-plugin.md b/src/docs/cs-CZ/advanced/create-plugin.md new file mode 100644 index 0000000000..ec17b95186 --- /dev/null +++ b/src/docs/cs-CZ/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## Metadata +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/cs-CZ/advanced/develop-bot.md b/src/docs/cs-CZ/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/cs-CZ/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/cs-CZ/advanced/reversi-bot.md b/src/docs/cs-CZ/advanced/reversi-bot.md new file mode 100644 index 0000000000..7ab2a7212e --- /dev/null +++ b/src/docs/cs-CZ/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### スイッチ +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/cs-CZ/advanced/stream.md b/src/docs/cs-CZ/advanced/stream.md new file mode 100644 index 0000000000..0e5edd2b0c --- /dev/null +++ b/src/docs/cs-CZ/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/cs-CZ/features/antenna.md b/src/docs/cs-CZ/features/antenna.md new file mode 100644 index 0000000000..395327fd5f --- /dev/null +++ b/src/docs/cs-CZ/features/antenna.md @@ -0,0 +1,4 @@ +# Antény +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/cs-CZ/features/custom-emoji.md b/src/docs/cs-CZ/features/custom-emoji.md new file mode 100644 index 0000000000..39f490037d --- /dev/null +++ b/src/docs/cs-CZ/features/custom-emoji.md @@ -0,0 +1,2 @@ +# Vlastní emoji +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/cs-CZ/features/deck.md b/src/docs/cs-CZ/features/deck.md new file mode 100644 index 0000000000..8057e262fd --- /dev/null +++ b/src/docs/cs-CZ/features/deck.md @@ -0,0 +1,18 @@ +# デッキ + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/cs-CZ/features/drive.md b/src/docs/cs-CZ/features/drive.md new file mode 100644 index 0000000000..a09eb0384c --- /dev/null +++ b/src/docs/cs-CZ/features/drive.md @@ -0,0 +1,17 @@ +# Úložiště +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/cs-CZ/features/favorite.md b/src/docs/cs-CZ/features/favorite.md new file mode 100644 index 0000000000..b5134ffaa8 --- /dev/null +++ b/src/docs/cs-CZ/features/favorite.md @@ -0,0 +1,4 @@ +# Oblíbené +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/cs-CZ/features/follow.md b/src/docs/cs-CZ/features/follow.md new file mode 100644 index 0000000000..61acb28956 --- /dev/null +++ b/src/docs/cs-CZ/features/follow.md @@ -0,0 +1,2 @@ +# Sledovaní +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/cs-CZ/features/keyboard-shortcut.md b/src/docs/cs-CZ/features/keyboard-shortcut.md new file mode 100644 index 0000000000..22b1797839 --- /dev/null +++ b/src/docs/cs-CZ/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
SVyhledáváníSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/cs-CZ/features/mfm.md b/src/docs/cs-CZ/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/cs-CZ/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/cs-CZ/features/mute.md b/src/docs/cs-CZ/features/mute.md new file mode 100644 index 0000000000..fb4ef68d5c --- /dev/null +++ b/src/docs/cs-CZ/features/mute.md @@ -0,0 +1,13 @@ +# Ztlumit + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/cs-CZ/features/note.md b/src/docs/cs-CZ/features/note.md new file mode 100644 index 0000000000..55bb8e6ec0 --- /dev/null +++ b/src/docs/cs-CZ/features/note.md @@ -0,0 +1,51 @@ +# Poznámky +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Přeposlat +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### Domů +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Sledující +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
パブリックDomůSledujícíダイレクト
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## Připnout +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/cs-CZ/features/pages.md b/src/docs/cs-CZ/features/pages.md new file mode 100644 index 0000000000..a7311b95e6 --- /dev/null +++ b/src/docs/cs-CZ/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/cs-CZ/features/reaction.md b/src/docs/cs-CZ/features/reaction.md new file mode 100644 index 0000000000..91bec9b9bb --- /dev/null +++ b/src/docs/cs-CZ/features/reaction.md @@ -0,0 +1,11 @@ +# Reakce +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/cs-CZ/features/silence.md b/src/docs/cs-CZ/features/silence.md new file mode 100644 index 0000000000..7e26feab0d --- /dev/null +++ b/src/docs/cs-CZ/features/silence.md @@ -0,0 +1,6 @@ +# サイレンス +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/cs-CZ/features/theme.md b/src/docs/cs-CZ/features/theme.md new file mode 100644 index 0000000000..f8827662e1 --- /dev/null +++ b/src/docs/cs-CZ/features/theme.md @@ -0,0 +1,68 @@ +# Vzhled + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 関数 +wip diff --git a/src/docs/cs-CZ/features/timeline.md b/src/docs/cs-CZ/features/timeline.md new file mode 100644 index 0000000000..f7381f12a6 --- /dev/null +++ b/src/docs/cs-CZ/features/timeline.md @@ -0,0 +1,31 @@ +# Časová osa +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## Domů +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## ローカル +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## ソーシャル +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## グローバル +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 比較 +| ソース | | | Časová osa | | | +| ------------ | --------- | ---- | ---------- | ----- | ----- | +| Uživatelé | 公開範囲 | Domů | ローカル | ソーシャル | グローバル | +| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ | +| | Domů | ✔ | | ✔ | | +| | Sledující | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ | +| | Domů | ✔ | | ✔ | | +| | Sledující | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ | +| | Domů | | | | | +| | Sledující | | | | | +| リモート (未フォロー) | 公開 | | | | ✔ | +| | Domů | | | | | +| | Sledující | | | | | diff --git a/src/docs/cs-CZ/features/widgets.md b/src/docs/cs-CZ/features/widgets.md new file mode 100644 index 0000000000..a7c2c1d1d6 --- /dev/null +++ b/src/docs/cs-CZ/features/widgets.md @@ -0,0 +1,7 @@ +# ウィジェット +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/cs-CZ/general/apps.md b/src/docs/cs-CZ/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/cs-CZ/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/cs-CZ/general/faq.md b/src/docs/cs-CZ/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/cs-CZ/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/cs-CZ/general/glossary.md b/src/docs/cs-CZ/general/glossary.md new file mode 100644 index 0000000000..8596303efb --- /dev/null +++ b/src/docs/cs-CZ/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Přeposlat +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## Instance +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## サーバー +todo + +## サイレンス +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## Zmrazit +アカウントが使用不可に設定されている状態。 + +## Úložiště +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## Poznámky +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## Moderátor +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## リモート +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## 連合 +サーバー上で作成された情報が他のサーバーに伝わること。 + +## ローカル +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/cs-CZ/general/links.md b/src/docs/cs-CZ/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/cs-CZ/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/cs-CZ/general/misskey.md b/src/docs/cs-CZ/general/misskey.md new file mode 100644 index 0000000000..2ad7e0da66 --- /dev/null +++ b/src/docs/cs-CZ/general/misskey.md @@ -0,0 +1,87 @@ +# O Misskey + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/cs-CZ/general/report-issue.md b/src/docs/cs-CZ/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/cs-CZ/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/cs-CZ/general/troubleshooting.md b/src/docs/cs-CZ/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/cs-CZ/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/da-DK/admin/disable-timelines.md b/src/docs/da-DK/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/da-DK/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/da-DK/admin/faq.md b/src/docs/da-DK/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/da-DK/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/da-DK/advanced/aiscript.md b/src/docs/da-DK/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/da-DK/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/da-DK/advanced/api.md b/src/docs/da-DK/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/da-DK/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/da-DK/advanced/create-plugin.md b/src/docs/da-DK/advanced/create-plugin.md new file mode 100644 index 0000000000..0d2fa19178 --- /dev/null +++ b/src/docs/da-DK/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## メタデータ +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/da-DK/advanced/develop-bot.md b/src/docs/da-DK/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/da-DK/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/da-DK/advanced/reversi-bot.md b/src/docs/da-DK/advanced/reversi-bot.md new file mode 100644 index 0000000000..7ab2a7212e --- /dev/null +++ b/src/docs/da-DK/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### スイッチ +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/da-DK/advanced/stream.md b/src/docs/da-DK/advanced/stream.md new file mode 100644 index 0000000000..0e5edd2b0c --- /dev/null +++ b/src/docs/da-DK/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/da-DK/features/antenna.md b/src/docs/da-DK/features/antenna.md new file mode 100644 index 0000000000..94ad9e4aea --- /dev/null +++ b/src/docs/da-DK/features/antenna.md @@ -0,0 +1,4 @@ +# アンテナ +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/da-DK/features/custom-emoji.md b/src/docs/da-DK/features/custom-emoji.md new file mode 100644 index 0000000000..ed2e92be16 --- /dev/null +++ b/src/docs/da-DK/features/custom-emoji.md @@ -0,0 +1,2 @@ +# カスタム絵文字 +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/da-DK/features/deck.md b/src/docs/da-DK/features/deck.md new file mode 100644 index 0000000000..8057e262fd --- /dev/null +++ b/src/docs/da-DK/features/deck.md @@ -0,0 +1,18 @@ +# デッキ + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/da-DK/features/drive.md b/src/docs/da-DK/features/drive.md new file mode 100644 index 0000000000..b82a41082a --- /dev/null +++ b/src/docs/da-DK/features/drive.md @@ -0,0 +1,17 @@ +# ドライブ +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/da-DK/features/favorite.md b/src/docs/da-DK/features/favorite.md new file mode 100644 index 0000000000..a0e5f8bf78 --- /dev/null +++ b/src/docs/da-DK/features/favorite.md @@ -0,0 +1,4 @@ +# お気に入り +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/da-DK/features/follow.md b/src/docs/da-DK/features/follow.md new file mode 100644 index 0000000000..3c1ea7bbe0 --- /dev/null +++ b/src/docs/da-DK/features/follow.md @@ -0,0 +1,2 @@ +# フォロー +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/da-DK/features/keyboard-shortcut.md b/src/docs/da-DK/features/keyboard-shortcut.md new file mode 100644 index 0000000000..8659ace982 --- /dev/null +++ b/src/docs/da-DK/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
S検索Search
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/da-DK/features/mfm.md b/src/docs/da-DK/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/da-DK/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/da-DK/features/mute.md b/src/docs/da-DK/features/mute.md new file mode 100644 index 0000000000..6a9608662a --- /dev/null +++ b/src/docs/da-DK/features/mute.md @@ -0,0 +1,13 @@ +# ミュート + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/da-DK/features/note.md b/src/docs/da-DK/features/note.md new file mode 100644 index 0000000000..62440b25f9 --- /dev/null +++ b/src/docs/da-DK/features/note.md @@ -0,0 +1,51 @@ +# ノート +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
パブリックホームフォロワーダイレクト
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/da-DK/features/pages.md b/src/docs/da-DK/features/pages.md new file mode 100644 index 0000000000..a7311b95e6 --- /dev/null +++ b/src/docs/da-DK/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/da-DK/features/reaction.md b/src/docs/da-DK/features/reaction.md new file mode 100644 index 0000000000..4d479fd416 --- /dev/null +++ b/src/docs/da-DK/features/reaction.md @@ -0,0 +1,11 @@ +# リアクション +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/da-DK/features/silence.md b/src/docs/da-DK/features/silence.md new file mode 100644 index 0000000000..7e26feab0d --- /dev/null +++ b/src/docs/da-DK/features/silence.md @@ -0,0 +1,6 @@ +# サイレンス +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/da-DK/features/theme.md b/src/docs/da-DK/features/theme.md new file mode 100644 index 0000000000..a406f3433c --- /dev/null +++ b/src/docs/da-DK/features/theme.md @@ -0,0 +1,68 @@ +# テーマ + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 関数 +wip diff --git a/src/docs/da-DK/features/timeline.md b/src/docs/da-DK/features/timeline.md new file mode 100644 index 0000000000..f431014f84 --- /dev/null +++ b/src/docs/da-DK/features/timeline.md @@ -0,0 +1,31 @@ +# タイムライン +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## ホーム +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## ローカル +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## ソーシャル +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## グローバル +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 比較 +| ソース | | | タイムライン | | | +| ------------ | ----- | --- | ------ | ----- | ----- | +| ユーザー | 公開範囲 | ホーム | ローカル | ソーシャル | グローバル | +| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | +| リモート (未フォロー) | 公開 | | | | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | diff --git a/src/docs/da-DK/features/widgets.md b/src/docs/da-DK/features/widgets.md new file mode 100644 index 0000000000..a7c2c1d1d6 --- /dev/null +++ b/src/docs/da-DK/features/widgets.md @@ -0,0 +1,7 @@ +# ウィジェット +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/da-DK/general/apps.md b/src/docs/da-DK/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/da-DK/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/da-DK/general/faq.md b/src/docs/da-DK/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/da-DK/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/da-DK/general/glossary.md b/src/docs/da-DK/general/glossary.md new file mode 100644 index 0000000000..1f403a06d2 --- /dev/null +++ b/src/docs/da-DK/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renote +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## インスタンス +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## サーバー +todo + +## サイレンス +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## 凍結 +アカウントが使用不可に設定されている状態。 + +## ドライブ +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## ノート +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## モデレーター +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## リモート +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## 連合 +サーバー上で作成された情報が他のサーバーに伝わること。 + +## ローカル +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/da-DK/general/links.md b/src/docs/da-DK/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/da-DK/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/da-DK/general/misskey.md b/src/docs/da-DK/general/misskey.md new file mode 100644 index 0000000000..1e64a10e28 --- /dev/null +++ b/src/docs/da-DK/general/misskey.md @@ -0,0 +1,87 @@ +# Misskeyについて + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/da-DK/general/report-issue.md b/src/docs/da-DK/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/da-DK/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/da-DK/general/troubleshooting.md b/src/docs/da-DK/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/da-DK/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/de-DE/admin/disable-timelines.md b/src/docs/de-DE/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/de-DE/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/de-DE/admin/faq.md b/src/docs/de-DE/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/de-DE/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/de-DE/advanced/aiscript.md b/src/docs/de-DE/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/de-DE/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/de-DE/advanced/api.md b/src/docs/de-DE/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/de-DE/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/de-DE/advanced/create-plugin.md b/src/docs/de-DE/advanced/create-plugin.md new file mode 100644 index 0000000000..ee96786857 --- /dev/null +++ b/src/docs/de-DE/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## Metadaten +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/de-DE/advanced/develop-bot.md b/src/docs/de-DE/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/de-DE/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/de-DE/advanced/reversi-bot.md b/src/docs/de-DE/advanced/reversi-bot.md new file mode 100644 index 0000000000..3ffb1ee244 --- /dev/null +++ b/src/docs/de-DE/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### Fallunterscheidung +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/de-DE/advanced/stream.md b/src/docs/de-DE/advanced/stream.md new file mode 100644 index 0000000000..42ec8df084 --- /dev/null +++ b/src/docs/de-DE/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## Kanäle +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/de-DE/features/antenna.md b/src/docs/de-DE/features/antenna.md new file mode 100644 index 0000000000..d9e667d015 --- /dev/null +++ b/src/docs/de-DE/features/antenna.md @@ -0,0 +1,4 @@ +# Antennen +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/de-DE/features/custom-emoji.md b/src/docs/de-DE/features/custom-emoji.md new file mode 100644 index 0000000000..beb3370e11 --- /dev/null +++ b/src/docs/de-DE/features/custom-emoji.md @@ -0,0 +1,2 @@ +# Benutzerdefinierte Emojis +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/de-DE/features/deck.md b/src/docs/de-DE/features/deck.md new file mode 100644 index 0000000000..73e9efdaaf --- /dev/null +++ b/src/docs/de-DE/features/deck.md @@ -0,0 +1,18 @@ +# Deck + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/de-DE/features/drive.md b/src/docs/de-DE/features/drive.md new file mode 100644 index 0000000000..c445b99a86 --- /dev/null +++ b/src/docs/de-DE/features/drive.md @@ -0,0 +1,17 @@ +# Drive +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/de-DE/features/favorite.md b/src/docs/de-DE/features/favorite.md new file mode 100644 index 0000000000..f373490d15 --- /dev/null +++ b/src/docs/de-DE/features/favorite.md @@ -0,0 +1,4 @@ +# Zu Favoriten hinzufügen +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/de-DE/features/follow.md b/src/docs/de-DE/features/follow.md new file mode 100644 index 0000000000..ab1b86197d --- /dev/null +++ b/src/docs/de-DE/features/follow.md @@ -0,0 +1,2 @@ +# Folgt +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/de-DE/features/keyboard-shortcut.md b/src/docs/de-DE/features/keyboard-shortcut.md new file mode 100644 index 0000000000..c0313d53a6 --- /dev/null +++ b/src/docs/de-DE/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## Global +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
SSuchenSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/de-DE/features/mfm.md b/src/docs/de-DE/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/de-DE/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/de-DE/features/mute.md b/src/docs/de-DE/features/mute.md new file mode 100644 index 0000000000..5b1c99cd9b --- /dev/null +++ b/src/docs/de-DE/features/mute.md @@ -0,0 +1,13 @@ +# Stummschalten + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/de-DE/features/note.md b/src/docs/de-DE/features/note.md new file mode 100644 index 0000000000..2ede737b40 --- /dev/null +++ b/src/docs/de-DE/features/note.md @@ -0,0 +1,51 @@ +# Notizen +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Sichtbarkeit +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Öffentlich +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### Startseite +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Gefolgt von +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Direkt +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
ÖffentlichStartseiteGefolgt vonDirekt
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## Anheften +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/de-DE/features/pages.md b/src/docs/de-DE/features/pages.md new file mode 100644 index 0000000000..60f04b9dec --- /dev/null +++ b/src/docs/de-DE/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## Variablen +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/de-DE/features/reaction.md b/src/docs/de-DE/features/reaction.md new file mode 100644 index 0000000000..b6cdf9d976 --- /dev/null +++ b/src/docs/de-DE/features/reaction.md @@ -0,0 +1,11 @@ +# Reaktionen +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/de-DE/features/silence.md b/src/docs/de-DE/features/silence.md new file mode 100644 index 0000000000..97d8ea27ad --- /dev/null +++ b/src/docs/de-DE/features/silence.md @@ -0,0 +1,6 @@ +# Instanzweit stummschalten +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/de-DE/features/theme.md b/src/docs/de-DE/features/theme.md new file mode 100644 index 0000000000..78e65ff511 --- /dev/null +++ b/src/docs/de-DE/features/theme.md @@ -0,0 +1,68 @@ +# Farbthemen + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### Konstante +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### Funktionen +wip diff --git a/src/docs/de-DE/features/timeline.md b/src/docs/de-DE/features/timeline.md new file mode 100644 index 0000000000..08cac4ac87 --- /dev/null +++ b/src/docs/de-DE/features/timeline.md @@ -0,0 +1,31 @@ +# Chronik +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## Startseite +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## Lokal +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## Sozial +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## Global +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## Vergleiche +| ソース | | | Chronik | | | +| ------------ | --------------- | ---------- | ------- | ------ | ------ | +| Benutzer | Sichtbarkeit | Startseite | Lokal | Sozial | Global | +| ローカル (フォロー) | Veröffentlichen | ✔ | ✔ | ✔ | ✔ | +| | Startseite | ✔ | | ✔ | | +| | Gefolgt von | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | Veröffentlichen | ✔ | | ✔ | ✔ | +| | Startseite | ✔ | | ✔ | | +| | Gefolgt von | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | Veröffentlichen | | ✔ | ✔ | ✔ | +| | Startseite | | | | | +| | Gefolgt von | | | | | +| リモート (未フォロー) | Veröffentlichen | | | | ✔ | +| | Startseite | | | | | +| | Gefolgt von | | | | | diff --git a/src/docs/de-DE/features/widgets.md b/src/docs/de-DE/features/widgets.md new file mode 100644 index 0000000000..7c5cacb39a --- /dev/null +++ b/src/docs/de-DE/features/widgets.md @@ -0,0 +1,7 @@ +# Widgets +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/de-DE/general/apps.md b/src/docs/de-DE/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/de-DE/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/de-DE/general/faq.md b/src/docs/de-DE/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/de-DE/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/de-DE/general/glossary.md b/src/docs/de-DE/general/glossary.md new file mode 100644 index 0000000000..a86b4d9000 --- /dev/null +++ b/src/docs/de-DE/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renote +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## Instanz +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## Server +todo + +## Instanzweit stummschalten +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## Sperren +アカウントが使用不可に設定されている状態。 + +## Drive +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## Notizen +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## Moderator +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## Fremd +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## Föderation +サーバー上で作成された情報が他のサーバーに伝わること。 + +## Lokal +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/de-DE/general/links.md b/src/docs/de-DE/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/de-DE/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/de-DE/general/misskey.md b/src/docs/de-DE/general/misskey.md new file mode 100644 index 0000000000..f56844060e --- /dev/null +++ b/src/docs/de-DE/general/misskey.md @@ -0,0 +1,87 @@ +# Über Misskey + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/de-DE/general/report-issue.md b/src/docs/de-DE/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/de-DE/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/de-DE/general/troubleshooting.md b/src/docs/de-DE/general/troubleshooting.md new file mode 100644 index 0000000000..42aa819d80 --- /dev/null +++ b/src/docs/de-DE/general/troubleshooting.md @@ -0,0 +1,36 @@ +# Problembehandlung +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/en-US/admin/disable-timelines.md b/src/docs/en-US/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/en-US/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/en-US/admin/faq.md b/src/docs/en-US/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/en-US/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/en-US/advanced/aiscript.md b/src/docs/en-US/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/en-US/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/en-US/advanced/api.md b/src/docs/en-US/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/en-US/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/en-US/advanced/create-plugin.md b/src/docs/en-US/advanced/create-plugin.md new file mode 100644 index 0000000000..ec17b95186 --- /dev/null +++ b/src/docs/en-US/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## Metadata +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/en-US/advanced/develop-bot.md b/src/docs/en-US/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/en-US/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/en-US/advanced/reversi-bot.md b/src/docs/en-US/advanced/reversi-bot.md new file mode 100644 index 0000000000..f1be888cb6 --- /dev/null +++ b/src/docs/en-US/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### Switch +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/en-US/advanced/stream.md b/src/docs/en-US/advanced/stream.md new file mode 100644 index 0000000000..c0d0efc910 --- /dev/null +++ b/src/docs/en-US/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## Channels +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/en-US/features/antenna.md b/src/docs/en-US/features/antenna.md new file mode 100644 index 0000000000..ed39d30674 --- /dev/null +++ b/src/docs/en-US/features/antenna.md @@ -0,0 +1,4 @@ +# Antennas +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/en-US/features/custom-emoji.md b/src/docs/en-US/features/custom-emoji.md new file mode 100644 index 0000000000..2bef4a563e --- /dev/null +++ b/src/docs/en-US/features/custom-emoji.md @@ -0,0 +1,2 @@ +# Custom Emoji +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/en-US/features/deck.md b/src/docs/en-US/features/deck.md new file mode 100644 index 0000000000..73e9efdaaf --- /dev/null +++ b/src/docs/en-US/features/deck.md @@ -0,0 +1,18 @@ +# Deck + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/en-US/features/drive.md b/src/docs/en-US/features/drive.md new file mode 100644 index 0000000000..c445b99a86 --- /dev/null +++ b/src/docs/en-US/features/drive.md @@ -0,0 +1,17 @@ +# Drive +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/en-US/features/favorite.md b/src/docs/en-US/features/favorite.md new file mode 100644 index 0000000000..4c971af788 --- /dev/null +++ b/src/docs/en-US/features/favorite.md @@ -0,0 +1,4 @@ +# Favorite +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/en-US/features/follow.md b/src/docs/en-US/features/follow.md new file mode 100644 index 0000000000..3e71012b5f --- /dev/null +++ b/src/docs/en-US/features/follow.md @@ -0,0 +1,2 @@ +# Following +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/en-US/features/keyboard-shortcut.md b/src/docs/en-US/features/keyboard-shortcut.md new file mode 100644 index 0000000000..d59c447647 --- /dev/null +++ b/src/docs/en-US/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## Global +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
SSearchSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/en-US/features/mfm.md b/src/docs/en-US/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/en-US/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/en-US/features/mute.md b/src/docs/en-US/features/mute.md new file mode 100644 index 0000000000..306beee570 --- /dev/null +++ b/src/docs/en-US/features/mute.md @@ -0,0 +1,13 @@ +# Mute + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/en-US/features/note.md b/src/docs/en-US/features/note.md new file mode 100644 index 0000000000..e0a7f11193 --- /dev/null +++ b/src/docs/en-US/features/note.md @@ -0,0 +1,51 @@ +# Notes +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Visiblility +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Public +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### Home +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Followers +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Direct +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
PublicHomeFollowersDirect
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## Pin to profile +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/en-US/features/pages.md b/src/docs/en-US/features/pages.md new file mode 100644 index 0000000000..7fc6ee29c3 --- /dev/null +++ b/src/docs/en-US/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## Variables +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/en-US/features/reaction.md b/src/docs/en-US/features/reaction.md new file mode 100644 index 0000000000..41e9339234 --- /dev/null +++ b/src/docs/en-US/features/reaction.md @@ -0,0 +1,11 @@ +# Reactions +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/en-US/features/silence.md b/src/docs/en-US/features/silence.md new file mode 100644 index 0000000000..4d533dc568 --- /dev/null +++ b/src/docs/en-US/features/silence.md @@ -0,0 +1,6 @@ +# Silence +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/en-US/features/theme.md b/src/docs/en-US/features/theme.md new file mode 100644 index 0000000000..a0a9b0d02f --- /dev/null +++ b/src/docs/en-US/features/theme.md @@ -0,0 +1,68 @@ +# Themes + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### Constant +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### Functions +wip diff --git a/src/docs/en-US/features/timeline.md b/src/docs/en-US/features/timeline.md new file mode 100644 index 0000000000..ed62a44667 --- /dev/null +++ b/src/docs/en-US/features/timeline.md @@ -0,0 +1,31 @@ +# Timeline +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## Home +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## Local +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## Social +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## Global +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## Comparison +| ソース | | | Timeline | | | +| ------------ | ----------- | ---- | -------- | ------ | ------ | +| Users | Visiblility | Home | Local | Social | Global | +| ローカル (フォロー) | Publish | ✔ | ✔ | ✔ | ✔ | +| | Home | ✔ | | ✔ | | +| | Followers | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | Publish | ✔ | | ✔ | ✔ | +| | Home | ✔ | | ✔ | | +| | Followers | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | Publish | | ✔ | ✔ | ✔ | +| | Home | | | | | +| | Followers | | | | | +| リモート (未フォロー) | Publish | | | | ✔ | +| | Home | | | | | +| | Followers | | | | | diff --git a/src/docs/en-US/features/widgets.md b/src/docs/en-US/features/widgets.md new file mode 100644 index 0000000000..7c5cacb39a --- /dev/null +++ b/src/docs/en-US/features/widgets.md @@ -0,0 +1,7 @@ +# Widgets +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/en-US/general/apps.md b/src/docs/en-US/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/en-US/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/en-US/general/faq.md b/src/docs/en-US/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/en-US/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/en-US/general/glossary.md b/src/docs/en-US/general/glossary.md new file mode 100644 index 0000000000..91d01e1c80 --- /dev/null +++ b/src/docs/en-US/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renote +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## Instance +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## Server +todo + +## Silence +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## Suspend +アカウントが使用不可に設定されている状態。 + +## Drive +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## Notes +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## Moderator +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## Remote +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## Federation +サーバー上で作成された情報が他のサーバーに伝わること。 + +## Local +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/en-US/general/links.md b/src/docs/en-US/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/en-US/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/en-US/general/misskey.md b/src/docs/en-US/general/misskey.md new file mode 100644 index 0000000000..0e09e008fc --- /dev/null +++ b/src/docs/en-US/general/misskey.md @@ -0,0 +1,87 @@ +# About Misskey + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/en-US/general/report-issue.md b/src/docs/en-US/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/en-US/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/en-US/general/troubleshooting.md b/src/docs/en-US/general/troubleshooting.md new file mode 100644 index 0000000000..8d1d8b7ace --- /dev/null +++ b/src/docs/en-US/general/troubleshooting.md @@ -0,0 +1,36 @@ +# Troubleshooting +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/eo-UY/admin/disable-timelines.md b/src/docs/eo-UY/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/eo-UY/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/eo-UY/admin/faq.md b/src/docs/eo-UY/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/eo-UY/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/eo-UY/advanced/aiscript.md b/src/docs/eo-UY/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/eo-UY/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/eo-UY/advanced/api.md b/src/docs/eo-UY/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/eo-UY/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/eo-UY/advanced/create-plugin.md b/src/docs/eo-UY/advanced/create-plugin.md new file mode 100644 index 0000000000..0d2fa19178 --- /dev/null +++ b/src/docs/eo-UY/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## メタデータ +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/eo-UY/advanced/develop-bot.md b/src/docs/eo-UY/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/eo-UY/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/eo-UY/advanced/reversi-bot.md b/src/docs/eo-UY/advanced/reversi-bot.md new file mode 100644 index 0000000000..7ab2a7212e --- /dev/null +++ b/src/docs/eo-UY/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### スイッチ +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/eo-UY/advanced/stream.md b/src/docs/eo-UY/advanced/stream.md new file mode 100644 index 0000000000..932da90f25 --- /dev/null +++ b/src/docs/eo-UY/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## Kanalo +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/eo-UY/features/antenna.md b/src/docs/eo-UY/features/antenna.md new file mode 100644 index 0000000000..94ad9e4aea --- /dev/null +++ b/src/docs/eo-UY/features/antenna.md @@ -0,0 +1,4 @@ +# アンテナ +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/eo-UY/features/custom-emoji.md b/src/docs/eo-UY/features/custom-emoji.md new file mode 100644 index 0000000000..ab8c6c7f12 --- /dev/null +++ b/src/docs/eo-UY/features/custom-emoji.md @@ -0,0 +1,2 @@ +# Personecigitaj emoĵioj +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/eo-UY/features/deck.md b/src/docs/eo-UY/features/deck.md new file mode 100644 index 0000000000..8057e262fd --- /dev/null +++ b/src/docs/eo-UY/features/deck.md @@ -0,0 +1,18 @@ +# デッキ + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/eo-UY/features/drive.md b/src/docs/eo-UY/features/drive.md new file mode 100644 index 0000000000..517050e0b4 --- /dev/null +++ b/src/docs/eo-UY/features/drive.md @@ -0,0 +1,17 @@ +# Diskingo +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/eo-UY/features/favorite.md b/src/docs/eo-UY/features/favorite.md new file mode 100644 index 0000000000..d87cb83e46 --- /dev/null +++ b/src/docs/eo-UY/features/favorite.md @@ -0,0 +1,4 @@ +# Preferi +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/eo-UY/features/follow.md b/src/docs/eo-UY/features/follow.md new file mode 100644 index 0000000000..69f6b96311 --- /dev/null +++ b/src/docs/eo-UY/features/follow.md @@ -0,0 +1,2 @@ +# Sekvatoj +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/eo-UY/features/keyboard-shortcut.md b/src/docs/eo-UY/features/keyboard-shortcut.md new file mode 100644 index 0000000000..dd44428127 --- /dev/null +++ b/src/docs/eo-UY/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## Konfederacia +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
SSerĉiSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/eo-UY/features/mfm.md b/src/docs/eo-UY/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/eo-UY/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/eo-UY/features/mute.md b/src/docs/eo-UY/features/mute.md new file mode 100644 index 0000000000..3a36c00f7a --- /dev/null +++ b/src/docs/eo-UY/features/mute.md @@ -0,0 +1,13 @@ +# Silentigi + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/eo-UY/features/note.md b/src/docs/eo-UY/features/note.md new file mode 100644 index 0000000000..3355e8d4d0 --- /dev/null +++ b/src/docs/eo-UY/features/note.md @@ -0,0 +1,51 @@ +# Notoj +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Fari renoton +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### Hejmo +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Sekvantoj +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
パブリックHejmoSekvantojダイレクト
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## Alpingli sur la profilo +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/eo-UY/features/pages.md b/src/docs/eo-UY/features/pages.md new file mode 100644 index 0000000000..a7311b95e6 --- /dev/null +++ b/src/docs/eo-UY/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/eo-UY/features/reaction.md b/src/docs/eo-UY/features/reaction.md new file mode 100644 index 0000000000..d53bfd313e --- /dev/null +++ b/src/docs/eo-UY/features/reaction.md @@ -0,0 +1,11 @@ +# Reagoj +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/eo-UY/features/silence.md b/src/docs/eo-UY/features/silence.md new file mode 100644 index 0000000000..7e26feab0d --- /dev/null +++ b/src/docs/eo-UY/features/silence.md @@ -0,0 +1,6 @@ +# サイレンス +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/eo-UY/features/theme.md b/src/docs/eo-UY/features/theme.md new file mode 100644 index 0000000000..a406f3433c --- /dev/null +++ b/src/docs/eo-UY/features/theme.md @@ -0,0 +1,68 @@ +# テーマ + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 関数 +wip diff --git a/src/docs/eo-UY/features/timeline.md b/src/docs/eo-UY/features/timeline.md new file mode 100644 index 0000000000..80ea42f040 --- /dev/null +++ b/src/docs/eo-UY/features/timeline.md @@ -0,0 +1,31 @@ +# Templinio +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## Hejmo +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## Loka +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## Sociala +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## Konfederacia +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 比較 +| ソース | | | Templinio | | | +| ------------ | --------- | ----- | --------- | ------- | ------------ | +| Uzanto | 公開範囲 | Hejmo | Loka | Sociala | Konfederacia | +| ローカル (フォロー) | Publikigi | ✔ | ✔ | ✔ | ✔ | +| | Hejmo | ✔ | | ✔ | | +| | Sekvantoj | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | Publikigi | ✔ | | ✔ | ✔ | +| | Hejmo | ✔ | | ✔ | | +| | Sekvantoj | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | Publikigi | | ✔ | ✔ | ✔ | +| | Hejmo | | | | | +| | Sekvantoj | | | | | +| リモート (未フォロー) | Publikigi | | | | ✔ | +| | Hejmo | | | | | +| | Sekvantoj | | | | | diff --git a/src/docs/eo-UY/features/widgets.md b/src/docs/eo-UY/features/widgets.md new file mode 100644 index 0000000000..a7c2c1d1d6 --- /dev/null +++ b/src/docs/eo-UY/features/widgets.md @@ -0,0 +1,7 @@ +# ウィジェット +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/eo-UY/general/apps.md b/src/docs/eo-UY/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/eo-UY/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/eo-UY/general/faq.md b/src/docs/eo-UY/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/eo-UY/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/eo-UY/general/glossary.md b/src/docs/eo-UY/general/glossary.md new file mode 100644 index 0000000000..dabcca5030 --- /dev/null +++ b/src/docs/eo-UY/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Fari renoton +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## Ekzemplo +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## Servilo +todo + +## サイレンス +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## Flostigi +アカウントが使用不可に設定されている状態。 + +## Diskingo +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## Notoj +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## モデレーター +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## Transa +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## Fediverso +サーバー上で作成された情報が他のサーバーに伝わること。 + +## Loka +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/eo-UY/general/links.md b/src/docs/eo-UY/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/eo-UY/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/eo-UY/general/misskey.md b/src/docs/eo-UY/general/misskey.md new file mode 100644 index 0000000000..9220389b2f --- /dev/null +++ b/src/docs/eo-UY/general/misskey.md @@ -0,0 +1,87 @@ +# Pri Miskejo + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/eo-UY/general/report-issue.md b/src/docs/eo-UY/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/eo-UY/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/eo-UY/general/troubleshooting.md b/src/docs/eo-UY/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/eo-UY/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/es-ES/admin/disable-timelines.md b/src/docs/es-ES/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/es-ES/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/es-ES/admin/faq.md b/src/docs/es-ES/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/es-ES/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/es-ES/advanced/aiscript.md b/src/docs/es-ES/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/es-ES/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/es-ES/advanced/api.md b/src/docs/es-ES/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/es-ES/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/es-ES/advanced/create-plugin.md b/src/docs/es-ES/advanced/create-plugin.md new file mode 100644 index 0000000000..46db702206 --- /dev/null +++ b/src/docs/es-ES/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## Metadatos +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/es-ES/advanced/develop-bot.md b/src/docs/es-ES/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/es-ES/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/es-ES/advanced/reversi-bot.md b/src/docs/es-ES/advanced/reversi-bot.md new file mode 100644 index 0000000000..1019fa4470 --- /dev/null +++ b/src/docs/es-ES/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### Interruptor +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/es-ES/advanced/stream.md b/src/docs/es-ES/advanced/stream.md new file mode 100644 index 0000000000..97e30e98de --- /dev/null +++ b/src/docs/es-ES/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## Canal +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/es-ES/features/antenna.md b/src/docs/es-ES/features/antenna.md new file mode 100644 index 0000000000..f321d79e2d --- /dev/null +++ b/src/docs/es-ES/features/antenna.md @@ -0,0 +1,4 @@ +# Antenas +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/es-ES/features/custom-emoji.md b/src/docs/es-ES/features/custom-emoji.md new file mode 100644 index 0000000000..842db20f02 --- /dev/null +++ b/src/docs/es-ES/features/custom-emoji.md @@ -0,0 +1,2 @@ +# Emojis personalizados +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/es-ES/features/deck.md b/src/docs/es-ES/features/deck.md new file mode 100644 index 0000000000..73e9efdaaf --- /dev/null +++ b/src/docs/es-ES/features/deck.md @@ -0,0 +1,18 @@ +# Deck + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/es-ES/features/drive.md b/src/docs/es-ES/features/drive.md new file mode 100644 index 0000000000..c445b99a86 --- /dev/null +++ b/src/docs/es-ES/features/drive.md @@ -0,0 +1,17 @@ +# Drive +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/es-ES/features/favorite.md b/src/docs/es-ES/features/favorite.md new file mode 100644 index 0000000000..f108d22319 --- /dev/null +++ b/src/docs/es-ES/features/favorite.md @@ -0,0 +1,4 @@ +# Favorito +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/es-ES/features/follow.md b/src/docs/es-ES/features/follow.md new file mode 100644 index 0000000000..474cc594fb --- /dev/null +++ b/src/docs/es-ES/features/follow.md @@ -0,0 +1,2 @@ +# Siguiendo +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/es-ES/features/keyboard-shortcut.md b/src/docs/es-ES/features/keyboard-shortcut.md new file mode 100644 index 0000000000..026b0ea0c0 --- /dev/null +++ b/src/docs/es-ES/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## Global +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
SBuscarSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/es-ES/features/mfm.md b/src/docs/es-ES/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/es-ES/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/es-ES/features/mute.md b/src/docs/es-ES/features/mute.md new file mode 100644 index 0000000000..331e5cc10a --- /dev/null +++ b/src/docs/es-ES/features/mute.md @@ -0,0 +1,13 @@ +# Silenciar + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/es-ES/features/note.md b/src/docs/es-ES/features/note.md new file mode 100644 index 0000000000..70f4a0ddf5 --- /dev/null +++ b/src/docs/es-ES/features/note.md @@ -0,0 +1,51 @@ +# Notas +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Renotar +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Visibilidad +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Público +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### Inicio +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Seguidores +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Mensaje directo +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
PúblicoInicioSeguidoresMensaje directo
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## Fijar +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/es-ES/features/pages.md b/src/docs/es-ES/features/pages.md new file mode 100644 index 0000000000..7fc6ee29c3 --- /dev/null +++ b/src/docs/es-ES/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## Variables +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/es-ES/features/reaction.md b/src/docs/es-ES/features/reaction.md new file mode 100644 index 0000000000..3d13c8faed --- /dev/null +++ b/src/docs/es-ES/features/reaction.md @@ -0,0 +1,11 @@ +# Reacción +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/es-ES/features/silence.md b/src/docs/es-ES/features/silence.md new file mode 100644 index 0000000000..31292d9057 --- /dev/null +++ b/src/docs/es-ES/features/silence.md @@ -0,0 +1,6 @@ +# Silenciar +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/es-ES/features/theme.md b/src/docs/es-ES/features/theme.md new file mode 100644 index 0000000000..3e379ee5f5 --- /dev/null +++ b/src/docs/es-ES/features/theme.md @@ -0,0 +1,68 @@ +# Tema + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### Constante +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### funciones +wip diff --git a/src/docs/es-ES/features/timeline.md b/src/docs/es-ES/features/timeline.md new file mode 100644 index 0000000000..026f2139f2 --- /dev/null +++ b/src/docs/es-ES/features/timeline.md @@ -0,0 +1,31 @@ +# Linea de tiempo +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## Inicio +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## Local +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## Social +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## Global +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## Comparar +| ソース | | | Linea de tiempo | | | +| ------------ | ----------- | ------ | --------------- | ------ | ------ | +| Usuarios | Visibilidad | Inicio | Local | Social | Global | +| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ | +| | Inicio | ✔ | | ✔ | | +| | Seguidores | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ | +| | Inicio | ✔ | | ✔ | | +| | Seguidores | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ | +| | Inicio | | | | | +| | Seguidores | | | | | +| リモート (未フォロー) | 公開 | | | | ✔ | +| | Inicio | | | | | +| | Seguidores | | | | | diff --git a/src/docs/es-ES/features/widgets.md b/src/docs/es-ES/features/widgets.md new file mode 100644 index 0000000000..7c5cacb39a --- /dev/null +++ b/src/docs/es-ES/features/widgets.md @@ -0,0 +1,7 @@ +# Widgets +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/es-ES/general/apps.md b/src/docs/es-ES/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/es-ES/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/es-ES/general/faq.md b/src/docs/es-ES/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/es-ES/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/es-ES/general/glossary.md b/src/docs/es-ES/general/glossary.md new file mode 100644 index 0000000000..dcafe8e0cf --- /dev/null +++ b/src/docs/es-ES/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renotar +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## Instancia +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## Servidor +todo + +## Silenciar +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## Suspender +アカウントが使用不可に設定されている状態。 + +## Drive +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## Notas +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## Moderador +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## Remoto +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## Federación +サーバー上で作成された情報が他のサーバーに伝わること。 + +## Local +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/es-ES/general/links.md b/src/docs/es-ES/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/es-ES/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/es-ES/general/misskey.md b/src/docs/es-ES/general/misskey.md new file mode 100644 index 0000000000..5a45c421ef --- /dev/null +++ b/src/docs/es-ES/general/misskey.md @@ -0,0 +1,87 @@ +# Sobre Misskey + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/es-ES/general/report-issue.md b/src/docs/es-ES/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/es-ES/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/es-ES/general/troubleshooting.md b/src/docs/es-ES/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/es-ES/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/fr-FR/admin/disable-timelines.md b/src/docs/fr-FR/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/fr-FR/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/fr-FR/admin/faq.md b/src/docs/fr-FR/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/fr-FR/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/fr-FR/advanced/aiscript.md b/src/docs/fr-FR/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/fr-FR/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/fr-FR/advanced/api.md b/src/docs/fr-FR/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/fr-FR/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/fr-FR/advanced/create-plugin.md b/src/docs/fr-FR/advanced/create-plugin.md new file mode 100644 index 0000000000..540909de42 --- /dev/null +++ b/src/docs/fr-FR/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## Métadonnées +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/fr-FR/advanced/develop-bot.md b/src/docs/fr-FR/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/fr-FR/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/fr-FR/advanced/reversi-bot.md b/src/docs/fr-FR/advanced/reversi-bot.md new file mode 100644 index 0000000000..2da95be1dc --- /dev/null +++ b/src/docs/fr-FR/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### Interrupteur +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/fr-FR/advanced/stream.md b/src/docs/fr-FR/advanced/stream.md new file mode 100644 index 0000000000..b1820bf616 --- /dev/null +++ b/src/docs/fr-FR/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## Canaux +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/fr-FR/features/antenna.md b/src/docs/fr-FR/features/antenna.md new file mode 100644 index 0000000000..450e7a7aa6 --- /dev/null +++ b/src/docs/fr-FR/features/antenna.md @@ -0,0 +1,4 @@ +# Antennes +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/fr-FR/features/custom-emoji.md b/src/docs/fr-FR/features/custom-emoji.md new file mode 100644 index 0000000000..01840868eb --- /dev/null +++ b/src/docs/fr-FR/features/custom-emoji.md @@ -0,0 +1,2 @@ +# Émojis personnalisés +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/fr-FR/features/deck.md b/src/docs/fr-FR/features/deck.md new file mode 100644 index 0000000000..73e9efdaaf --- /dev/null +++ b/src/docs/fr-FR/features/deck.md @@ -0,0 +1,18 @@ +# Deck + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/fr-FR/features/drive.md b/src/docs/fr-FR/features/drive.md new file mode 100644 index 0000000000..c445b99a86 --- /dev/null +++ b/src/docs/fr-FR/features/drive.md @@ -0,0 +1,17 @@ +# Drive +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/fr-FR/features/favorite.md b/src/docs/fr-FR/features/favorite.md new file mode 100644 index 0000000000..a7ef5b7fde --- /dev/null +++ b/src/docs/fr-FR/features/favorite.md @@ -0,0 +1,4 @@ +# Ajouter aux favoris +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/fr-FR/features/follow.md b/src/docs/fr-FR/features/follow.md new file mode 100644 index 0000000000..93c8428e20 --- /dev/null +++ b/src/docs/fr-FR/features/follow.md @@ -0,0 +1,2 @@ +# Abonnements +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/fr-FR/features/keyboard-shortcut.md b/src/docs/fr-FR/features/keyboard-shortcut.md new file mode 100644 index 0000000000..2bb01c331b --- /dev/null +++ b/src/docs/fr-FR/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## Global +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
SRechercherSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/fr-FR/features/mfm.md b/src/docs/fr-FR/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/fr-FR/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/fr-FR/features/mute.md b/src/docs/fr-FR/features/mute.md new file mode 100644 index 0000000000..b64dbfeaee --- /dev/null +++ b/src/docs/fr-FR/features/mute.md @@ -0,0 +1,13 @@ +# Masquer + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/fr-FR/features/note.md b/src/docs/fr-FR/features/note.md new file mode 100644 index 0000000000..a2c691c48e --- /dev/null +++ b/src/docs/fr-FR/features/note.md @@ -0,0 +1,51 @@ +# Notes +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Partager +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Visibilité +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Public +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### Principal +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Abonné·e·s +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Direct +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
PublicPrincipalAbonné·e·sDirect
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## Épingler sur le profil +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/fr-FR/features/pages.md b/src/docs/fr-FR/features/pages.md new file mode 100644 index 0000000000..7fc6ee29c3 --- /dev/null +++ b/src/docs/fr-FR/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## Variables +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/fr-FR/features/reaction.md b/src/docs/fr-FR/features/reaction.md new file mode 100644 index 0000000000..a61cee1477 --- /dev/null +++ b/src/docs/fr-FR/features/reaction.md @@ -0,0 +1,11 @@ +# Réactions +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/fr-FR/features/silence.md b/src/docs/fr-FR/features/silence.md new file mode 100644 index 0000000000..a33a58525e --- /dev/null +++ b/src/docs/fr-FR/features/silence.md @@ -0,0 +1,6 @@ +# Mettre en sourdine +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/fr-FR/features/theme.md b/src/docs/fr-FR/features/theme.md new file mode 100644 index 0000000000..161cc44dde --- /dev/null +++ b/src/docs/fr-FR/features/theme.md @@ -0,0 +1,68 @@ +# Thème + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### Constante +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### Fonction +wip diff --git a/src/docs/fr-FR/features/timeline.md b/src/docs/fr-FR/features/timeline.md new file mode 100644 index 0000000000..46f26ffd35 --- /dev/null +++ b/src/docs/fr-FR/features/timeline.md @@ -0,0 +1,31 @@ +# Fil +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## Principal +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## Local +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## Social +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## Global +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## Comparer +| ソース | | | Fil | | | +| ------------------ | ---------- | --------- | ----- | ------ | ------ | +| Utilisateur·rice·s | Visibilité | Principal | Local | Social | Global | +| ローカル (フォロー) | Public | ✔ | ✔ | ✔ | ✔ | +| | Principal | ✔ | | ✔ | | +| | Abonné·e·s | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | Public | ✔ | | ✔ | ✔ | +| | Principal | ✔ | | ✔ | | +| | Abonné·e·s | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | Public | | ✔ | ✔ | ✔ | +| | Principal | | | | | +| | Abonné·e·s | | | | | +| リモート (未フォロー) | Public | | | | ✔ | +| | Principal | | | | | +| | Abonné·e·s | | | | | diff --git a/src/docs/fr-FR/features/widgets.md b/src/docs/fr-FR/features/widgets.md new file mode 100644 index 0000000000..7c5cacb39a --- /dev/null +++ b/src/docs/fr-FR/features/widgets.md @@ -0,0 +1,7 @@ +# Widgets +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/fr-FR/general/apps.md b/src/docs/fr-FR/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/fr-FR/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/fr-FR/general/faq.md b/src/docs/fr-FR/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/fr-FR/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/fr-FR/general/glossary.md b/src/docs/fr-FR/general/glossary.md new file mode 100644 index 0000000000..1b5eab6412 --- /dev/null +++ b/src/docs/fr-FR/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Partager +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## Instance +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## Serveurs +todo + +## Mettre en sourdine +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## Suspendre +アカウントが使用不可に設定されている状態。 + +## Drive +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## Notes +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## Modérateurs +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## Distant +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## Fédération +サーバー上で作成された情報が他のサーバーに伝わること。 + +## Local +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/fr-FR/general/links.md b/src/docs/fr-FR/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/fr-FR/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/fr-FR/general/misskey.md b/src/docs/fr-FR/general/misskey.md new file mode 100644 index 0000000000..2a3ee09a96 --- /dev/null +++ b/src/docs/fr-FR/general/misskey.md @@ -0,0 +1,87 @@ +# À propos de Misskey + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/fr-FR/general/report-issue.md b/src/docs/fr-FR/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/fr-FR/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/fr-FR/general/troubleshooting.md b/src/docs/fr-FR/general/troubleshooting.md new file mode 100644 index 0000000000..9f6abff12a --- /dev/null +++ b/src/docs/fr-FR/general/troubleshooting.md @@ -0,0 +1,36 @@ +# Résolution de problèmes +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/ht-HT/admin/disable-timelines.md b/src/docs/ht-HT/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/ht-HT/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/ht-HT/admin/faq.md b/src/docs/ht-HT/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/ht-HT/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/ht-HT/advanced/aiscript.md b/src/docs/ht-HT/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/ht-HT/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/ht-HT/advanced/api.md b/src/docs/ht-HT/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/ht-HT/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/ht-HT/advanced/create-plugin.md b/src/docs/ht-HT/advanced/create-plugin.md new file mode 100644 index 0000000000..0d2fa19178 --- /dev/null +++ b/src/docs/ht-HT/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## メタデータ +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/ht-HT/advanced/develop-bot.md b/src/docs/ht-HT/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/ht-HT/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/ht-HT/advanced/reversi-bot.md b/src/docs/ht-HT/advanced/reversi-bot.md new file mode 100644 index 0000000000..7ab2a7212e --- /dev/null +++ b/src/docs/ht-HT/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### スイッチ +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/ht-HT/advanced/stream.md b/src/docs/ht-HT/advanced/stream.md new file mode 100644 index 0000000000..0e5edd2b0c --- /dev/null +++ b/src/docs/ht-HT/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/ht-HT/features/antenna.md b/src/docs/ht-HT/features/antenna.md new file mode 100644 index 0000000000..94ad9e4aea --- /dev/null +++ b/src/docs/ht-HT/features/antenna.md @@ -0,0 +1,4 @@ +# アンテナ +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/ht-HT/features/custom-emoji.md b/src/docs/ht-HT/features/custom-emoji.md new file mode 100644 index 0000000000..ed2e92be16 --- /dev/null +++ b/src/docs/ht-HT/features/custom-emoji.md @@ -0,0 +1,2 @@ +# カスタム絵文字 +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/ht-HT/features/deck.md b/src/docs/ht-HT/features/deck.md new file mode 100644 index 0000000000..8057e262fd --- /dev/null +++ b/src/docs/ht-HT/features/deck.md @@ -0,0 +1,18 @@ +# デッキ + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/ht-HT/features/drive.md b/src/docs/ht-HT/features/drive.md new file mode 100644 index 0000000000..b82a41082a --- /dev/null +++ b/src/docs/ht-HT/features/drive.md @@ -0,0 +1,17 @@ +# ドライブ +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/ht-HT/features/favorite.md b/src/docs/ht-HT/features/favorite.md new file mode 100644 index 0000000000..a0e5f8bf78 --- /dev/null +++ b/src/docs/ht-HT/features/favorite.md @@ -0,0 +1,4 @@ +# お気に入り +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/ht-HT/features/follow.md b/src/docs/ht-HT/features/follow.md new file mode 100644 index 0000000000..3c1ea7bbe0 --- /dev/null +++ b/src/docs/ht-HT/features/follow.md @@ -0,0 +1,2 @@ +# フォロー +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/ht-HT/features/keyboard-shortcut.md b/src/docs/ht-HT/features/keyboard-shortcut.md new file mode 100644 index 0000000000..8659ace982 --- /dev/null +++ b/src/docs/ht-HT/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
S検索Search
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/ht-HT/features/mfm.md b/src/docs/ht-HT/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/ht-HT/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/ht-HT/features/mute.md b/src/docs/ht-HT/features/mute.md new file mode 100644 index 0000000000..6a9608662a --- /dev/null +++ b/src/docs/ht-HT/features/mute.md @@ -0,0 +1,13 @@ +# ミュート + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/ht-HT/features/note.md b/src/docs/ht-HT/features/note.md new file mode 100644 index 0000000000..62440b25f9 --- /dev/null +++ b/src/docs/ht-HT/features/note.md @@ -0,0 +1,51 @@ +# ノート +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
パブリックホームフォロワーダイレクト
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/ht-HT/features/pages.md b/src/docs/ht-HT/features/pages.md new file mode 100644 index 0000000000..a7311b95e6 --- /dev/null +++ b/src/docs/ht-HT/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/ht-HT/features/reaction.md b/src/docs/ht-HT/features/reaction.md new file mode 100644 index 0000000000..4d479fd416 --- /dev/null +++ b/src/docs/ht-HT/features/reaction.md @@ -0,0 +1,11 @@ +# リアクション +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/ht-HT/features/silence.md b/src/docs/ht-HT/features/silence.md new file mode 100644 index 0000000000..7e26feab0d --- /dev/null +++ b/src/docs/ht-HT/features/silence.md @@ -0,0 +1,6 @@ +# サイレンス +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/ht-HT/features/theme.md b/src/docs/ht-HT/features/theme.md new file mode 100644 index 0000000000..a406f3433c --- /dev/null +++ b/src/docs/ht-HT/features/theme.md @@ -0,0 +1,68 @@ +# テーマ + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 関数 +wip diff --git a/src/docs/ht-HT/features/timeline.md b/src/docs/ht-HT/features/timeline.md new file mode 100644 index 0000000000..f431014f84 --- /dev/null +++ b/src/docs/ht-HT/features/timeline.md @@ -0,0 +1,31 @@ +# タイムライン +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## ホーム +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## ローカル +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## ソーシャル +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## グローバル +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 比較 +| ソース | | | タイムライン | | | +| ------------ | ----- | --- | ------ | ----- | ----- | +| ユーザー | 公開範囲 | ホーム | ローカル | ソーシャル | グローバル | +| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | +| リモート (未フォロー) | 公開 | | | | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | diff --git a/src/docs/ht-HT/features/widgets.md b/src/docs/ht-HT/features/widgets.md new file mode 100644 index 0000000000..a7c2c1d1d6 --- /dev/null +++ b/src/docs/ht-HT/features/widgets.md @@ -0,0 +1,7 @@ +# ウィジェット +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/ht-HT/general/apps.md b/src/docs/ht-HT/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/ht-HT/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/ht-HT/general/faq.md b/src/docs/ht-HT/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/ht-HT/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/ht-HT/general/glossary.md b/src/docs/ht-HT/general/glossary.md new file mode 100644 index 0000000000..1f403a06d2 --- /dev/null +++ b/src/docs/ht-HT/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renote +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## インスタンス +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## サーバー +todo + +## サイレンス +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## 凍結 +アカウントが使用不可に設定されている状態。 + +## ドライブ +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## ノート +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## モデレーター +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## リモート +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## 連合 +サーバー上で作成された情報が他のサーバーに伝わること。 + +## ローカル +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/ht-HT/general/links.md b/src/docs/ht-HT/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/ht-HT/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/ht-HT/general/misskey.md b/src/docs/ht-HT/general/misskey.md new file mode 100644 index 0000000000..1e64a10e28 --- /dev/null +++ b/src/docs/ht-HT/general/misskey.md @@ -0,0 +1,87 @@ +# Misskeyについて + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/ht-HT/general/report-issue.md b/src/docs/ht-HT/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/ht-HT/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/ht-HT/general/troubleshooting.md b/src/docs/ht-HT/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/ht-HT/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/id-ID/admin/disable-timelines.md b/src/docs/id-ID/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/id-ID/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/id-ID/admin/faq.md b/src/docs/id-ID/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/id-ID/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/id-ID/advanced/aiscript.md b/src/docs/id-ID/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/id-ID/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/id-ID/advanced/api.md b/src/docs/id-ID/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/id-ID/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/id-ID/advanced/create-plugin.md b/src/docs/id-ID/advanced/create-plugin.md new file mode 100644 index 0000000000..ec17b95186 --- /dev/null +++ b/src/docs/id-ID/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## Metadata +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/id-ID/advanced/develop-bot.md b/src/docs/id-ID/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/id-ID/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/id-ID/advanced/reversi-bot.md b/src/docs/id-ID/advanced/reversi-bot.md new file mode 100644 index 0000000000..5d764242e2 --- /dev/null +++ b/src/docs/id-ID/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### Beralih +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/id-ID/advanced/stream.md b/src/docs/id-ID/advanced/stream.md new file mode 100644 index 0000000000..0f01df4679 --- /dev/null +++ b/src/docs/id-ID/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## Kanal +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/id-ID/features/antenna.md b/src/docs/id-ID/features/antenna.md new file mode 100644 index 0000000000..a0cc8506ab --- /dev/null +++ b/src/docs/id-ID/features/antenna.md @@ -0,0 +1,4 @@ +# Antena +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/id-ID/features/custom-emoji.md b/src/docs/id-ID/features/custom-emoji.md new file mode 100644 index 0000000000..7a509195e7 --- /dev/null +++ b/src/docs/id-ID/features/custom-emoji.md @@ -0,0 +1,2 @@ +# Emoji kustom +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/id-ID/features/deck.md b/src/docs/id-ID/features/deck.md new file mode 100644 index 0000000000..7e0836f356 --- /dev/null +++ b/src/docs/id-ID/features/deck.md @@ -0,0 +1,18 @@ +# Dek + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/id-ID/features/drive.md b/src/docs/id-ID/features/drive.md new file mode 100644 index 0000000000..c445b99a86 --- /dev/null +++ b/src/docs/id-ID/features/drive.md @@ -0,0 +1,17 @@ +# Drive +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/id-ID/features/favorite.md b/src/docs/id-ID/features/favorite.md new file mode 100644 index 0000000000..27d36e64eb --- /dev/null +++ b/src/docs/id-ID/features/favorite.md @@ -0,0 +1,4 @@ +# Favorit +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/id-ID/features/follow.md b/src/docs/id-ID/features/follow.md new file mode 100644 index 0000000000..4799dc9d85 --- /dev/null +++ b/src/docs/id-ID/features/follow.md @@ -0,0 +1,2 @@ +# Ikuti +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/id-ID/features/keyboard-shortcut.md b/src/docs/id-ID/features/keyboard-shortcut.md new file mode 100644 index 0000000000..779f77dce0 --- /dev/null +++ b/src/docs/id-ID/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## Global +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
SPenelusuranSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/id-ID/features/mfm.md b/src/docs/id-ID/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/id-ID/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/id-ID/features/mute.md b/src/docs/id-ID/features/mute.md new file mode 100644 index 0000000000..66f717a4f1 --- /dev/null +++ b/src/docs/id-ID/features/mute.md @@ -0,0 +1,13 @@ +# Bisukan + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/id-ID/features/note.md b/src/docs/id-ID/features/note.md new file mode 100644 index 0000000000..55f6bad286 --- /dev/null +++ b/src/docs/id-ID/features/note.md @@ -0,0 +1,51 @@ +# Catatan +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Visibilitas +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Publik +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### Beranda +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Pengikut +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Langsung +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
PublikBerandaPengikutLangsung
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## Sematkan ke profil +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/id-ID/features/pages.md b/src/docs/id-ID/features/pages.md new file mode 100644 index 0000000000..a9684c7022 --- /dev/null +++ b/src/docs/id-ID/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## Variabel +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/id-ID/features/reaction.md b/src/docs/id-ID/features/reaction.md new file mode 100644 index 0000000000..5361378acf --- /dev/null +++ b/src/docs/id-ID/features/reaction.md @@ -0,0 +1,11 @@ +# Reaksi +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/id-ID/features/silence.md b/src/docs/id-ID/features/silence.md new file mode 100644 index 0000000000..1aba8535ce --- /dev/null +++ b/src/docs/id-ID/features/silence.md @@ -0,0 +1,6 @@ +# Bungkam +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/id-ID/features/theme.md b/src/docs/id-ID/features/theme.md new file mode 100644 index 0000000000..b4b3f6d083 --- /dev/null +++ b/src/docs/id-ID/features/theme.md @@ -0,0 +1,68 @@ +# Tema + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### Konstanta +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### Fungsi +wip diff --git a/src/docs/id-ID/features/timeline.md b/src/docs/id-ID/features/timeline.md new file mode 100644 index 0000000000..55977ab166 --- /dev/null +++ b/src/docs/id-ID/features/timeline.md @@ -0,0 +1,31 @@ +# Linimasa +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## Beranda +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## Lokal +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## Sosial +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## Global +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## Membandingkan +| ソース | | | Linimasa | | | +| ------------ | ----------- | ------- | -------- | ------ | ------ | +| Pengguna | Visibilitas | Beranda | Lokal | Sosial | Global | +| ローカル (フォロー) | Terbitkan | ✔ | ✔ | ✔ | ✔ | +| | Beranda | ✔ | | ✔ | | +| | Pengikut | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | Terbitkan | ✔ | | ✔ | ✔ | +| | Beranda | ✔ | | ✔ | | +| | Pengikut | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | Terbitkan | | ✔ | ✔ | ✔ | +| | Beranda | | | | | +| | Pengikut | | | | | +| リモート (未フォロー) | Terbitkan | | | | ✔ | +| | Beranda | | | | | +| | Pengikut | | | | | diff --git a/src/docs/id-ID/features/widgets.md b/src/docs/id-ID/features/widgets.md new file mode 100644 index 0000000000..363254503b --- /dev/null +++ b/src/docs/id-ID/features/widgets.md @@ -0,0 +1,7 @@ +# Widget +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/id-ID/general/apps.md b/src/docs/id-ID/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/id-ID/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/id-ID/general/faq.md b/src/docs/id-ID/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/id-ID/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/id-ID/general/glossary.md b/src/docs/id-ID/general/glossary.md new file mode 100644 index 0000000000..1f41236ad1 --- /dev/null +++ b/src/docs/id-ID/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renote +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## Instansi +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## Server +todo + +## Bungkam +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## Bekukan +アカウントが使用不可に設定されている状態。 + +## Drive +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## Catatan +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## Moderator +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## Remote +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## Federasi +サーバー上で作成された情報が他のサーバーに伝わること。 + +## Lokal +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/id-ID/general/links.md b/src/docs/id-ID/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/id-ID/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/id-ID/general/misskey.md b/src/docs/id-ID/general/misskey.md new file mode 100644 index 0000000000..3239b0141d --- /dev/null +++ b/src/docs/id-ID/general/misskey.md @@ -0,0 +1,87 @@ +# Tentang Misskey + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/id-ID/general/report-issue.md b/src/docs/id-ID/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/id-ID/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/id-ID/general/troubleshooting.md b/src/docs/id-ID/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/id-ID/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/it-IT/admin/disable-timelines.md b/src/docs/it-IT/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/it-IT/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/it-IT/admin/faq.md b/src/docs/it-IT/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/it-IT/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/it-IT/advanced/aiscript.md b/src/docs/it-IT/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/it-IT/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/it-IT/advanced/api.md b/src/docs/it-IT/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/it-IT/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/it-IT/advanced/create-plugin.md b/src/docs/it-IT/advanced/create-plugin.md new file mode 100644 index 0000000000..a263408fca --- /dev/null +++ b/src/docs/it-IT/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## Metadato +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/it-IT/advanced/develop-bot.md b/src/docs/it-IT/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/it-IT/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/it-IT/advanced/reversi-bot.md b/src/docs/it-IT/advanced/reversi-bot.md new file mode 100644 index 0000000000..00d4a18a8e --- /dev/null +++ b/src/docs/it-IT/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### Interruttore +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/it-IT/advanced/stream.md b/src/docs/it-IT/advanced/stream.md new file mode 100644 index 0000000000..025eb41dec --- /dev/null +++ b/src/docs/it-IT/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## Canale +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/it-IT/features/antenna.md b/src/docs/it-IT/features/antenna.md new file mode 100644 index 0000000000..87424cc125 --- /dev/null +++ b/src/docs/it-IT/features/antenna.md @@ -0,0 +1,4 @@ +# Antenne +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/it-IT/features/custom-emoji.md b/src/docs/it-IT/features/custom-emoji.md new file mode 100644 index 0000000000..603ac85add --- /dev/null +++ b/src/docs/it-IT/features/custom-emoji.md @@ -0,0 +1,2 @@ +# Emoji personalizzati +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/it-IT/features/deck.md b/src/docs/it-IT/features/deck.md new file mode 100644 index 0000000000..73e9efdaaf --- /dev/null +++ b/src/docs/it-IT/features/deck.md @@ -0,0 +1,18 @@ +# Deck + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/it-IT/features/drive.md b/src/docs/it-IT/features/drive.md new file mode 100644 index 0000000000..c445b99a86 --- /dev/null +++ b/src/docs/it-IT/features/drive.md @@ -0,0 +1,17 @@ +# Drive +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/it-IT/features/favorite.md b/src/docs/it-IT/features/favorite.md new file mode 100644 index 0000000000..2272dbcc95 --- /dev/null +++ b/src/docs/it-IT/features/favorite.md @@ -0,0 +1,4 @@ +# Preferiti +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/it-IT/features/follow.md b/src/docs/it-IT/features/follow.md new file mode 100644 index 0000000000..eab673b0ce --- /dev/null +++ b/src/docs/it-IT/features/follow.md @@ -0,0 +1,2 @@ +# Follows +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/it-IT/features/keyboard-shortcut.md b/src/docs/it-IT/features/keyboard-shortcut.md new file mode 100644 index 0000000000..60533afce5 --- /dev/null +++ b/src/docs/it-IT/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## Federata +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
SCercaSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/it-IT/features/mfm.md b/src/docs/it-IT/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/it-IT/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/it-IT/features/mute.md b/src/docs/it-IT/features/mute.md new file mode 100644 index 0000000000..a6cb073755 --- /dev/null +++ b/src/docs/it-IT/features/mute.md @@ -0,0 +1,13 @@ +# Silenzia + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/it-IT/features/note.md b/src/docs/it-IT/features/note.md new file mode 100644 index 0000000000..ad8ff3c45b --- /dev/null +++ b/src/docs/it-IT/features/note.md @@ -0,0 +1,51 @@ +# Note +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Rinota +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Visibilità +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Pubblica +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### Home +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Followers +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Diretta +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
PubblicaHomeFollowersDiretta
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## Fissa sul profilo +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/it-IT/features/pages.md b/src/docs/it-IT/features/pages.md new file mode 100644 index 0000000000..81c19dd20a --- /dev/null +++ b/src/docs/it-IT/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## Variabili +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/it-IT/features/reaction.md b/src/docs/it-IT/features/reaction.md new file mode 100644 index 0000000000..bca8c97d6b --- /dev/null +++ b/src/docs/it-IT/features/reaction.md @@ -0,0 +1,11 @@ +# Reazione +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/it-IT/features/silence.md b/src/docs/it-IT/features/silence.md new file mode 100644 index 0000000000..bcecce5f47 --- /dev/null +++ b/src/docs/it-IT/features/silence.md @@ -0,0 +1,6 @@ +# Silenzia +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/it-IT/features/theme.md b/src/docs/it-IT/features/theme.md new file mode 100644 index 0000000000..793babb973 --- /dev/null +++ b/src/docs/it-IT/features/theme.md @@ -0,0 +1,68 @@ +# Tema + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### Costante +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### Funzione +wip diff --git a/src/docs/it-IT/features/timeline.md b/src/docs/it-IT/features/timeline.md new file mode 100644 index 0000000000..958c414b77 --- /dev/null +++ b/src/docs/it-IT/features/timeline.md @@ -0,0 +1,31 @@ +# Timeline +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## Home +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## Locale +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## Sociale +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## Federata +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## Metodo comparativo +| ソース | | | Timeline | | | +| ------------ | ---------- | ---- | -------- | ------- | -------- | +| Utente | Visibilità | Home | Locale | Sociale | Federata | +| ローカル (フォロー) | Pubblico | ✔ | ✔ | ✔ | ✔ | +| | Home | ✔ | | ✔ | | +| | Followers | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | Pubblico | ✔ | | ✔ | ✔ | +| | Home | ✔ | | ✔ | | +| | Followers | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | Pubblico | | ✔ | ✔ | ✔ | +| | Home | | | | | +| | Followers | | | | | +| リモート (未フォロー) | Pubblico | | | | ✔ | +| | Home | | | | | +| | Followers | | | | | diff --git a/src/docs/it-IT/features/widgets.md b/src/docs/it-IT/features/widgets.md new file mode 100644 index 0000000000..363254503b --- /dev/null +++ b/src/docs/it-IT/features/widgets.md @@ -0,0 +1,7 @@ +# Widget +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/it-IT/general/apps.md b/src/docs/it-IT/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/it-IT/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/it-IT/general/faq.md b/src/docs/it-IT/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/it-IT/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/it-IT/general/glossary.md b/src/docs/it-IT/general/glossary.md new file mode 100644 index 0000000000..356f028e91 --- /dev/null +++ b/src/docs/it-IT/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Rinota +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## Istanza +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## Server +todo + +## Silenzia +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## Sospendi +アカウントが使用不可に設定されている状態。 + +## Drive +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## Note +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## Moderatore +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## Remoto +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## Federazione +サーバー上で作成された情報が他のサーバーに伝わること。 + +## Locale +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/it-IT/general/links.md b/src/docs/it-IT/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/it-IT/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/it-IT/general/misskey.md b/src/docs/it-IT/general/misskey.md new file mode 100644 index 0000000000..d9243c0c3e --- /dev/null +++ b/src/docs/it-IT/general/misskey.md @@ -0,0 +1,87 @@ +# Informazioni di Misskey + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/it-IT/general/report-issue.md b/src/docs/it-IT/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/it-IT/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/it-IT/general/troubleshooting.md b/src/docs/it-IT/general/troubleshooting.md new file mode 100644 index 0000000000..f400783ac7 --- /dev/null +++ b/src/docs/it-IT/general/troubleshooting.md @@ -0,0 +1,36 @@ +# Risoluzione problemi +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/ja-KS/admin/disable-timelines.md b/src/docs/ja-KS/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/ja-KS/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/ja-KS/admin/faq.md b/src/docs/ja-KS/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/ja-KS/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/ja-KS/advanced/aiscript.md b/src/docs/ja-KS/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/ja-KS/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/ja-KS/advanced/api.md b/src/docs/ja-KS/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/ja-KS/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/ja-KS/advanced/create-plugin.md b/src/docs/ja-KS/advanced/create-plugin.md new file mode 100644 index 0000000000..0d2fa19178 --- /dev/null +++ b/src/docs/ja-KS/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## メタデータ +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/ja-KS/advanced/develop-bot.md b/src/docs/ja-KS/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/ja-KS/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/ja-KS/advanced/reversi-bot.md b/src/docs/ja-KS/advanced/reversi-bot.md new file mode 100644 index 0000000000..7ab2a7212e --- /dev/null +++ b/src/docs/ja-KS/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### スイッチ +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/ja-KS/advanced/stream.md b/src/docs/ja-KS/advanced/stream.md new file mode 100644 index 0000000000..0e5edd2b0c --- /dev/null +++ b/src/docs/ja-KS/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/ja-KS/features/antenna.md b/src/docs/ja-KS/features/antenna.md new file mode 100644 index 0000000000..94ad9e4aea --- /dev/null +++ b/src/docs/ja-KS/features/antenna.md @@ -0,0 +1,4 @@ +# アンテナ +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/ja-KS/features/custom-emoji.md b/src/docs/ja-KS/features/custom-emoji.md new file mode 100644 index 0000000000..ed2e92be16 --- /dev/null +++ b/src/docs/ja-KS/features/custom-emoji.md @@ -0,0 +1,2 @@ +# カスタム絵文字 +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/ja-KS/features/deck.md b/src/docs/ja-KS/features/deck.md new file mode 100644 index 0000000000..8057e262fd --- /dev/null +++ b/src/docs/ja-KS/features/deck.md @@ -0,0 +1,18 @@ +# デッキ + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/ja-KS/features/drive.md b/src/docs/ja-KS/features/drive.md new file mode 100644 index 0000000000..b82a41082a --- /dev/null +++ b/src/docs/ja-KS/features/drive.md @@ -0,0 +1,17 @@ +# ドライブ +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/ja-KS/features/favorite.md b/src/docs/ja-KS/features/favorite.md new file mode 100644 index 0000000000..a0e5f8bf78 --- /dev/null +++ b/src/docs/ja-KS/features/favorite.md @@ -0,0 +1,4 @@ +# お気に入り +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/ja-KS/features/follow.md b/src/docs/ja-KS/features/follow.md new file mode 100644 index 0000000000..3c1ea7bbe0 --- /dev/null +++ b/src/docs/ja-KS/features/follow.md @@ -0,0 +1,2 @@ +# フォロー +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/ja-KS/features/keyboard-shortcut.md b/src/docs/ja-KS/features/keyboard-shortcut.md new file mode 100644 index 0000000000..b4b0d53a7e --- /dev/null +++ b/src/docs/ja-KS/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
S探すSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/ja-KS/features/mfm.md b/src/docs/ja-KS/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/ja-KS/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/ja-KS/features/mute.md b/src/docs/ja-KS/features/mute.md new file mode 100644 index 0000000000..6a9608662a --- /dev/null +++ b/src/docs/ja-KS/features/mute.md @@ -0,0 +1,13 @@ +# ミュート + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/ja-KS/features/note.md b/src/docs/ja-KS/features/note.md new file mode 100644 index 0000000000..3e07ebcf4a --- /dev/null +++ b/src/docs/ja-KS/features/note.md @@ -0,0 +1,51 @@ +# ノート +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
パブリックホームフォロワーダイレクト
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## ピン留めしとく +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/ja-KS/features/pages.md b/src/docs/ja-KS/features/pages.md new file mode 100644 index 0000000000..a7311b95e6 --- /dev/null +++ b/src/docs/ja-KS/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/ja-KS/features/reaction.md b/src/docs/ja-KS/features/reaction.md new file mode 100644 index 0000000000..4d479fd416 --- /dev/null +++ b/src/docs/ja-KS/features/reaction.md @@ -0,0 +1,11 @@ +# リアクション +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/ja-KS/features/silence.md b/src/docs/ja-KS/features/silence.md new file mode 100644 index 0000000000..7e26feab0d --- /dev/null +++ b/src/docs/ja-KS/features/silence.md @@ -0,0 +1,6 @@ +# サイレンス +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/ja-KS/features/theme.md b/src/docs/ja-KS/features/theme.md new file mode 100644 index 0000000000..a406f3433c --- /dev/null +++ b/src/docs/ja-KS/features/theme.md @@ -0,0 +1,68 @@ +# テーマ + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 関数 +wip diff --git a/src/docs/ja-KS/features/timeline.md b/src/docs/ja-KS/features/timeline.md new file mode 100644 index 0000000000..f431014f84 --- /dev/null +++ b/src/docs/ja-KS/features/timeline.md @@ -0,0 +1,31 @@ +# タイムライン +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## ホーム +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## ローカル +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## ソーシャル +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## グローバル +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 比較 +| ソース | | | タイムライン | | | +| ------------ | ----- | --- | ------ | ----- | ----- | +| ユーザー | 公開範囲 | ホーム | ローカル | ソーシャル | グローバル | +| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | +| リモート (未フォロー) | 公開 | | | | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | diff --git a/src/docs/ja-KS/features/widgets.md b/src/docs/ja-KS/features/widgets.md new file mode 100644 index 0000000000..a7c2c1d1d6 --- /dev/null +++ b/src/docs/ja-KS/features/widgets.md @@ -0,0 +1,7 @@ +# ウィジェット +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/ja-KS/general/apps.md b/src/docs/ja-KS/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/ja-KS/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/ja-KS/general/faq.md b/src/docs/ja-KS/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/ja-KS/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/ja-KS/general/glossary.md b/src/docs/ja-KS/general/glossary.md new file mode 100644 index 0000000000..1f403a06d2 --- /dev/null +++ b/src/docs/ja-KS/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renote +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## インスタンス +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## サーバー +todo + +## サイレンス +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## 凍結 +アカウントが使用不可に設定されている状態。 + +## ドライブ +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## ノート +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## モデレーター +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## リモート +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## 連合 +サーバー上で作成された情報が他のサーバーに伝わること。 + +## ローカル +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/ja-KS/general/links.md b/src/docs/ja-KS/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/ja-KS/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/ja-KS/general/misskey.md b/src/docs/ja-KS/general/misskey.md new file mode 100644 index 0000000000..3975b805d8 --- /dev/null +++ b/src/docs/ja-KS/general/misskey.md @@ -0,0 +1,87 @@ +# Misskeyってなんや? + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/ja-KS/general/report-issue.md b/src/docs/ja-KS/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/ja-KS/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/ja-KS/general/troubleshooting.md b/src/docs/ja-KS/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/ja-KS/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/jbo-EN/admin/disable-timelines.md b/src/docs/jbo-EN/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/jbo-EN/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/jbo-EN/admin/faq.md b/src/docs/jbo-EN/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/jbo-EN/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/jbo-EN/advanced/aiscript.md b/src/docs/jbo-EN/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/jbo-EN/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/jbo-EN/advanced/api.md b/src/docs/jbo-EN/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/jbo-EN/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/jbo-EN/advanced/create-plugin.md b/src/docs/jbo-EN/advanced/create-plugin.md new file mode 100644 index 0000000000..0d2fa19178 --- /dev/null +++ b/src/docs/jbo-EN/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## メタデータ +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/jbo-EN/advanced/develop-bot.md b/src/docs/jbo-EN/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/jbo-EN/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/jbo-EN/advanced/reversi-bot.md b/src/docs/jbo-EN/advanced/reversi-bot.md new file mode 100644 index 0000000000..7ab2a7212e --- /dev/null +++ b/src/docs/jbo-EN/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### スイッチ +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/jbo-EN/advanced/stream.md b/src/docs/jbo-EN/advanced/stream.md new file mode 100644 index 0000000000..0e5edd2b0c --- /dev/null +++ b/src/docs/jbo-EN/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/jbo-EN/features/antenna.md b/src/docs/jbo-EN/features/antenna.md new file mode 100644 index 0000000000..94ad9e4aea --- /dev/null +++ b/src/docs/jbo-EN/features/antenna.md @@ -0,0 +1,4 @@ +# アンテナ +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/jbo-EN/features/custom-emoji.md b/src/docs/jbo-EN/features/custom-emoji.md new file mode 100644 index 0000000000..ed2e92be16 --- /dev/null +++ b/src/docs/jbo-EN/features/custom-emoji.md @@ -0,0 +1,2 @@ +# カスタム絵文字 +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/jbo-EN/features/deck.md b/src/docs/jbo-EN/features/deck.md new file mode 100644 index 0000000000..8057e262fd --- /dev/null +++ b/src/docs/jbo-EN/features/deck.md @@ -0,0 +1,18 @@ +# デッキ + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/jbo-EN/features/drive.md b/src/docs/jbo-EN/features/drive.md new file mode 100644 index 0000000000..b82a41082a --- /dev/null +++ b/src/docs/jbo-EN/features/drive.md @@ -0,0 +1,17 @@ +# ドライブ +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/jbo-EN/features/favorite.md b/src/docs/jbo-EN/features/favorite.md new file mode 100644 index 0000000000..a0e5f8bf78 --- /dev/null +++ b/src/docs/jbo-EN/features/favorite.md @@ -0,0 +1,4 @@ +# お気に入り +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/jbo-EN/features/follow.md b/src/docs/jbo-EN/features/follow.md new file mode 100644 index 0000000000..3c1ea7bbe0 --- /dev/null +++ b/src/docs/jbo-EN/features/follow.md @@ -0,0 +1,2 @@ +# フォロー +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/jbo-EN/features/keyboard-shortcut.md b/src/docs/jbo-EN/features/keyboard-shortcut.md new file mode 100644 index 0000000000..8659ace982 --- /dev/null +++ b/src/docs/jbo-EN/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
S検索Search
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/jbo-EN/features/mfm.md b/src/docs/jbo-EN/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/jbo-EN/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/jbo-EN/features/mute.md b/src/docs/jbo-EN/features/mute.md new file mode 100644 index 0000000000..6a9608662a --- /dev/null +++ b/src/docs/jbo-EN/features/mute.md @@ -0,0 +1,13 @@ +# ミュート + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/jbo-EN/features/note.md b/src/docs/jbo-EN/features/note.md new file mode 100644 index 0000000000..62440b25f9 --- /dev/null +++ b/src/docs/jbo-EN/features/note.md @@ -0,0 +1,51 @@ +# ノート +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
パブリックホームフォロワーダイレクト
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/jbo-EN/features/pages.md b/src/docs/jbo-EN/features/pages.md new file mode 100644 index 0000000000..a7311b95e6 --- /dev/null +++ b/src/docs/jbo-EN/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/jbo-EN/features/reaction.md b/src/docs/jbo-EN/features/reaction.md new file mode 100644 index 0000000000..4d479fd416 --- /dev/null +++ b/src/docs/jbo-EN/features/reaction.md @@ -0,0 +1,11 @@ +# リアクション +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/jbo-EN/features/silence.md b/src/docs/jbo-EN/features/silence.md new file mode 100644 index 0000000000..7e26feab0d --- /dev/null +++ b/src/docs/jbo-EN/features/silence.md @@ -0,0 +1,6 @@ +# サイレンス +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/jbo-EN/features/theme.md b/src/docs/jbo-EN/features/theme.md new file mode 100644 index 0000000000..a406f3433c --- /dev/null +++ b/src/docs/jbo-EN/features/theme.md @@ -0,0 +1,68 @@ +# テーマ + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 関数 +wip diff --git a/src/docs/jbo-EN/features/timeline.md b/src/docs/jbo-EN/features/timeline.md new file mode 100644 index 0000000000..f431014f84 --- /dev/null +++ b/src/docs/jbo-EN/features/timeline.md @@ -0,0 +1,31 @@ +# タイムライン +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## ホーム +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## ローカル +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## ソーシャル +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## グローバル +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 比較 +| ソース | | | タイムライン | | | +| ------------ | ----- | --- | ------ | ----- | ----- | +| ユーザー | 公開範囲 | ホーム | ローカル | ソーシャル | グローバル | +| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | +| リモート (未フォロー) | 公開 | | | | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | diff --git a/src/docs/jbo-EN/features/widgets.md b/src/docs/jbo-EN/features/widgets.md new file mode 100644 index 0000000000..a7c2c1d1d6 --- /dev/null +++ b/src/docs/jbo-EN/features/widgets.md @@ -0,0 +1,7 @@ +# ウィジェット +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/jbo-EN/general/apps.md b/src/docs/jbo-EN/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/jbo-EN/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/jbo-EN/general/faq.md b/src/docs/jbo-EN/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/jbo-EN/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/jbo-EN/general/glossary.md b/src/docs/jbo-EN/general/glossary.md new file mode 100644 index 0000000000..1f403a06d2 --- /dev/null +++ b/src/docs/jbo-EN/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renote +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## インスタンス +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## サーバー +todo + +## サイレンス +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## 凍結 +アカウントが使用不可に設定されている状態。 + +## ドライブ +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## ノート +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## モデレーター +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## リモート +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## 連合 +サーバー上で作成された情報が他のサーバーに伝わること。 + +## ローカル +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/jbo-EN/general/links.md b/src/docs/jbo-EN/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/jbo-EN/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/jbo-EN/general/misskey.md b/src/docs/jbo-EN/general/misskey.md new file mode 100644 index 0000000000..1e64a10e28 --- /dev/null +++ b/src/docs/jbo-EN/general/misskey.md @@ -0,0 +1,87 @@ +# Misskeyについて + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/jbo-EN/general/report-issue.md b/src/docs/jbo-EN/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/jbo-EN/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/jbo-EN/general/troubleshooting.md b/src/docs/jbo-EN/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/jbo-EN/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/kab-KAB/admin/disable-timelines.md b/src/docs/kab-KAB/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/kab-KAB/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/kab-KAB/admin/faq.md b/src/docs/kab-KAB/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/kab-KAB/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/kab-KAB/advanced/aiscript.md b/src/docs/kab-KAB/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/kab-KAB/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/kab-KAB/advanced/api.md b/src/docs/kab-KAB/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/kab-KAB/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/kab-KAB/advanced/create-plugin.md b/src/docs/kab-KAB/advanced/create-plugin.md new file mode 100644 index 0000000000..0d2fa19178 --- /dev/null +++ b/src/docs/kab-KAB/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## メタデータ +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/kab-KAB/advanced/develop-bot.md b/src/docs/kab-KAB/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/kab-KAB/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/kab-KAB/advanced/reversi-bot.md b/src/docs/kab-KAB/advanced/reversi-bot.md new file mode 100644 index 0000000000..7ab2a7212e --- /dev/null +++ b/src/docs/kab-KAB/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### スイッチ +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/kab-KAB/advanced/stream.md b/src/docs/kab-KAB/advanced/stream.md new file mode 100644 index 0000000000..0e5edd2b0c --- /dev/null +++ b/src/docs/kab-KAB/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/kab-KAB/features/antenna.md b/src/docs/kab-KAB/features/antenna.md new file mode 100644 index 0000000000..94ad9e4aea --- /dev/null +++ b/src/docs/kab-KAB/features/antenna.md @@ -0,0 +1,4 @@ +# アンテナ +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/kab-KAB/features/custom-emoji.md b/src/docs/kab-KAB/features/custom-emoji.md new file mode 100644 index 0000000000..ed2e92be16 --- /dev/null +++ b/src/docs/kab-KAB/features/custom-emoji.md @@ -0,0 +1,2 @@ +# カスタム絵文字 +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/kab-KAB/features/deck.md b/src/docs/kab-KAB/features/deck.md new file mode 100644 index 0000000000..8057e262fd --- /dev/null +++ b/src/docs/kab-KAB/features/deck.md @@ -0,0 +1,18 @@ +# デッキ + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/kab-KAB/features/drive.md b/src/docs/kab-KAB/features/drive.md new file mode 100644 index 0000000000..b82a41082a --- /dev/null +++ b/src/docs/kab-KAB/features/drive.md @@ -0,0 +1,17 @@ +# ドライブ +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/kab-KAB/features/favorite.md b/src/docs/kab-KAB/features/favorite.md new file mode 100644 index 0000000000..a0e5f8bf78 --- /dev/null +++ b/src/docs/kab-KAB/features/favorite.md @@ -0,0 +1,4 @@ +# お気に入り +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/kab-KAB/features/follow.md b/src/docs/kab-KAB/features/follow.md new file mode 100644 index 0000000000..500073a4b5 --- /dev/null +++ b/src/docs/kab-KAB/features/follow.md @@ -0,0 +1,2 @@ +# Ig ṭṭafaṛ +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/kab-KAB/features/keyboard-shortcut.md b/src/docs/kab-KAB/features/keyboard-shortcut.md new file mode 100644 index 0000000000..82cae4e1b7 --- /dev/null +++ b/src/docs/kab-KAB/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
SNadiSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/kab-KAB/features/mfm.md b/src/docs/kab-KAB/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/kab-KAB/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/kab-KAB/features/mute.md b/src/docs/kab-KAB/features/mute.md new file mode 100644 index 0000000000..6a9608662a --- /dev/null +++ b/src/docs/kab-KAB/features/mute.md @@ -0,0 +1,13 @@ +# ミュート + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/kab-KAB/features/note.md b/src/docs/kab-KAB/features/note.md new file mode 100644 index 0000000000..70c1e2e214 --- /dev/null +++ b/src/docs/kab-KAB/features/note.md @@ -0,0 +1,51 @@ +# ノート +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Imeḍfaṛen +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
パブリックホームImeḍfaṛenダイレクト
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/kab-KAB/features/pages.md b/src/docs/kab-KAB/features/pages.md new file mode 100644 index 0000000000..a7311b95e6 --- /dev/null +++ b/src/docs/kab-KAB/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/kab-KAB/features/reaction.md b/src/docs/kab-KAB/features/reaction.md new file mode 100644 index 0000000000..4d479fd416 --- /dev/null +++ b/src/docs/kab-KAB/features/reaction.md @@ -0,0 +1,11 @@ +# リアクション +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/kab-KAB/features/silence.md b/src/docs/kab-KAB/features/silence.md new file mode 100644 index 0000000000..7e26feab0d --- /dev/null +++ b/src/docs/kab-KAB/features/silence.md @@ -0,0 +1,6 @@ +# サイレンス +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/kab-KAB/features/theme.md b/src/docs/kab-KAB/features/theme.md new file mode 100644 index 0000000000..a406f3433c --- /dev/null +++ b/src/docs/kab-KAB/features/theme.md @@ -0,0 +1,68 @@ +# テーマ + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 関数 +wip diff --git a/src/docs/kab-KAB/features/timeline.md b/src/docs/kab-KAB/features/timeline.md new file mode 100644 index 0000000000..8ba0b76e4d --- /dev/null +++ b/src/docs/kab-KAB/features/timeline.md @@ -0,0 +1,31 @@ +# タイムライン +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## ホーム +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## ローカル +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## ソーシャル +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## グローバル +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 比較 +| ソース | | | タイムライン | | | +| ------------ | --------- | --- | ------ | ----- | ----- | +| ユーザー | 公開範囲 | ホーム | ローカル | ソーシャル | グローバル | +| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | Imeḍfaṛen | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | Imeḍfaṛen | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ | +| | ホーム | | | | | +| | Imeḍfaṛen | | | | | +| リモート (未フォロー) | 公開 | | | | ✔ | +| | ホーム | | | | | +| | Imeḍfaṛen | | | | | diff --git a/src/docs/kab-KAB/features/widgets.md b/src/docs/kab-KAB/features/widgets.md new file mode 100644 index 0000000000..a7c2c1d1d6 --- /dev/null +++ b/src/docs/kab-KAB/features/widgets.md @@ -0,0 +1,7 @@ +# ウィジェット +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/kab-KAB/general/apps.md b/src/docs/kab-KAB/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/kab-KAB/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/kab-KAB/general/faq.md b/src/docs/kab-KAB/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/kab-KAB/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/kab-KAB/general/glossary.md b/src/docs/kab-KAB/general/glossary.md new file mode 100644 index 0000000000..1f403a06d2 --- /dev/null +++ b/src/docs/kab-KAB/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renote +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## インスタンス +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## サーバー +todo + +## サイレンス +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## 凍結 +アカウントが使用不可に設定されている状態。 + +## ドライブ +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## ノート +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## モデレーター +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## リモート +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## 連合 +サーバー上で作成された情報が他のサーバーに伝わること。 + +## ローカル +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/kab-KAB/general/links.md b/src/docs/kab-KAB/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/kab-KAB/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/kab-KAB/general/misskey.md b/src/docs/kab-KAB/general/misskey.md new file mode 100644 index 0000000000..1e64a10e28 --- /dev/null +++ b/src/docs/kab-KAB/general/misskey.md @@ -0,0 +1,87 @@ +# Misskeyについて + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/kab-KAB/general/report-issue.md b/src/docs/kab-KAB/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/kab-KAB/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/kab-KAB/general/troubleshooting.md b/src/docs/kab-KAB/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/kab-KAB/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/kn-IN/admin/disable-timelines.md b/src/docs/kn-IN/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/kn-IN/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/kn-IN/admin/faq.md b/src/docs/kn-IN/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/kn-IN/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/kn-IN/advanced/aiscript.md b/src/docs/kn-IN/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/kn-IN/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/kn-IN/advanced/api.md b/src/docs/kn-IN/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/kn-IN/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/kn-IN/advanced/create-plugin.md b/src/docs/kn-IN/advanced/create-plugin.md new file mode 100644 index 0000000000..0d2fa19178 --- /dev/null +++ b/src/docs/kn-IN/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## メタデータ +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/kn-IN/advanced/develop-bot.md b/src/docs/kn-IN/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/kn-IN/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/kn-IN/advanced/reversi-bot.md b/src/docs/kn-IN/advanced/reversi-bot.md new file mode 100644 index 0000000000..7ab2a7212e --- /dev/null +++ b/src/docs/kn-IN/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### スイッチ +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/kn-IN/advanced/stream.md b/src/docs/kn-IN/advanced/stream.md new file mode 100644 index 0000000000..0e5edd2b0c --- /dev/null +++ b/src/docs/kn-IN/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/kn-IN/features/antenna.md b/src/docs/kn-IN/features/antenna.md new file mode 100644 index 0000000000..94ad9e4aea --- /dev/null +++ b/src/docs/kn-IN/features/antenna.md @@ -0,0 +1,4 @@ +# アンテナ +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/kn-IN/features/custom-emoji.md b/src/docs/kn-IN/features/custom-emoji.md new file mode 100644 index 0000000000..ed2e92be16 --- /dev/null +++ b/src/docs/kn-IN/features/custom-emoji.md @@ -0,0 +1,2 @@ +# カスタム絵文字 +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/kn-IN/features/deck.md b/src/docs/kn-IN/features/deck.md new file mode 100644 index 0000000000..8057e262fd --- /dev/null +++ b/src/docs/kn-IN/features/deck.md @@ -0,0 +1,18 @@ +# デッキ + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/kn-IN/features/drive.md b/src/docs/kn-IN/features/drive.md new file mode 100644 index 0000000000..b82a41082a --- /dev/null +++ b/src/docs/kn-IN/features/drive.md @@ -0,0 +1,17 @@ +# ドライブ +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/kn-IN/features/favorite.md b/src/docs/kn-IN/features/favorite.md new file mode 100644 index 0000000000..8549bab4b7 --- /dev/null +++ b/src/docs/kn-IN/features/favorite.md @@ -0,0 +1,4 @@ +# ಮೆಚ್ಚಿನ +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/kn-IN/features/follow.md b/src/docs/kn-IN/features/follow.md new file mode 100644 index 0000000000..3c1ea7bbe0 --- /dev/null +++ b/src/docs/kn-IN/features/follow.md @@ -0,0 +1,2 @@ +# フォロー +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/kn-IN/features/keyboard-shortcut.md b/src/docs/kn-IN/features/keyboard-shortcut.md new file mode 100644 index 0000000000..7430ad7fe6 --- /dev/null +++ b/src/docs/kn-IN/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
SಹುಡುಕುSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/kn-IN/features/mfm.md b/src/docs/kn-IN/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/kn-IN/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/kn-IN/features/mute.md b/src/docs/kn-IN/features/mute.md new file mode 100644 index 0000000000..6a9608662a --- /dev/null +++ b/src/docs/kn-IN/features/mute.md @@ -0,0 +1,13 @@ +# ミュート + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/kn-IN/features/note.md b/src/docs/kn-IN/features/note.md new file mode 100644 index 0000000000..3deb87fb0e --- /dev/null +++ b/src/docs/kn-IN/features/note.md @@ -0,0 +1,51 @@ +# ノート +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
パブリックホームフォロワーダイレクト
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## ಪ್ರೊಫ಼ೈಲಿಗೆ ಅಂಟಿಸು +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/kn-IN/features/pages.md b/src/docs/kn-IN/features/pages.md new file mode 100644 index 0000000000..a7311b95e6 --- /dev/null +++ b/src/docs/kn-IN/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/kn-IN/features/reaction.md b/src/docs/kn-IN/features/reaction.md new file mode 100644 index 0000000000..4d479fd416 --- /dev/null +++ b/src/docs/kn-IN/features/reaction.md @@ -0,0 +1,11 @@ +# リアクション +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/kn-IN/features/silence.md b/src/docs/kn-IN/features/silence.md new file mode 100644 index 0000000000..7e26feab0d --- /dev/null +++ b/src/docs/kn-IN/features/silence.md @@ -0,0 +1,6 @@ +# サイレンス +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/kn-IN/features/theme.md b/src/docs/kn-IN/features/theme.md new file mode 100644 index 0000000000..a406f3433c --- /dev/null +++ b/src/docs/kn-IN/features/theme.md @@ -0,0 +1,68 @@ +# テーマ + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 関数 +wip diff --git a/src/docs/kn-IN/features/timeline.md b/src/docs/kn-IN/features/timeline.md new file mode 100644 index 0000000000..03e388d557 --- /dev/null +++ b/src/docs/kn-IN/features/timeline.md @@ -0,0 +1,31 @@ +# ಸಮಯಸಾಲು +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## ホーム +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## ローカル +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## ソーシャル +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## グローバル +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 比較 +| ソース | | | ಸಮಯಸಾಲು | | | +| ------------ | ----- | --- | ------- | ----- | ----- | +| ಬಳಕೆದಾರ | 公開範囲 | ホーム | ローカル | ソーシャル | グローバル | +| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | +| リモート (未フォロー) | 公開 | | | | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | diff --git a/src/docs/kn-IN/features/widgets.md b/src/docs/kn-IN/features/widgets.md new file mode 100644 index 0000000000..a7c2c1d1d6 --- /dev/null +++ b/src/docs/kn-IN/features/widgets.md @@ -0,0 +1,7 @@ +# ウィジェット +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/kn-IN/general/apps.md b/src/docs/kn-IN/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/kn-IN/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/kn-IN/general/faq.md b/src/docs/kn-IN/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/kn-IN/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/kn-IN/general/glossary.md b/src/docs/kn-IN/general/glossary.md new file mode 100644 index 0000000000..b580362844 --- /dev/null +++ b/src/docs/kn-IN/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renote +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## ನಿದರ್ಶನ +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## サーバー +todo + +## サイレンス +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## 凍結 +アカウントが使用不可に設定されている状態。 + +## ドライブ +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## ノート +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## モデレーター +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## リモート +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## 連合 +サーバー上で作成された情報が他のサーバーに伝わること。 + +## ローカル +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/kn-IN/general/links.md b/src/docs/kn-IN/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/kn-IN/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/kn-IN/general/misskey.md b/src/docs/kn-IN/general/misskey.md new file mode 100644 index 0000000000..1e64a10e28 --- /dev/null +++ b/src/docs/kn-IN/general/misskey.md @@ -0,0 +1,87 @@ +# Misskeyについて + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/kn-IN/general/report-issue.md b/src/docs/kn-IN/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/kn-IN/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/kn-IN/general/troubleshooting.md b/src/docs/kn-IN/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/kn-IN/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/ko-KR/admin/disable-timelines.md b/src/docs/ko-KR/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/ko-KR/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/ko-KR/admin/faq.md b/src/docs/ko-KR/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/ko-KR/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/ko-KR/advanced/aiscript.md b/src/docs/ko-KR/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/ko-KR/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/ko-KR/advanced/api.md b/src/docs/ko-KR/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/ko-KR/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/ko-KR/advanced/create-plugin.md b/src/docs/ko-KR/advanced/create-plugin.md new file mode 100644 index 0000000000..1562060d72 --- /dev/null +++ b/src/docs/ko-KR/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## 메타데이터 +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/ko-KR/advanced/develop-bot.md b/src/docs/ko-KR/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/ko-KR/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/ko-KR/advanced/reversi-bot.md b/src/docs/ko-KR/advanced/reversi-bot.md new file mode 100644 index 0000000000..aef450f2de --- /dev/null +++ b/src/docs/ko-KR/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### 스위치 +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/ko-KR/advanced/stream.md b/src/docs/ko-KR/advanced/stream.md new file mode 100644 index 0000000000..291fb9271d --- /dev/null +++ b/src/docs/ko-KR/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## 채널 +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/ko-KR/features/antenna.md b/src/docs/ko-KR/features/antenna.md new file mode 100644 index 0000000000..9457015f6b --- /dev/null +++ b/src/docs/ko-KR/features/antenna.md @@ -0,0 +1,4 @@ +# 안테나 +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/ko-KR/features/custom-emoji.md b/src/docs/ko-KR/features/custom-emoji.md new file mode 100644 index 0000000000..6aa3a0fe49 --- /dev/null +++ b/src/docs/ko-KR/features/custom-emoji.md @@ -0,0 +1,2 @@ +# 커스텀 이모지 +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/ko-KR/features/deck.md b/src/docs/ko-KR/features/deck.md new file mode 100644 index 0000000000..87c95d45b3 --- /dev/null +++ b/src/docs/ko-KR/features/deck.md @@ -0,0 +1,18 @@ +# 덱 + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/ko-KR/features/drive.md b/src/docs/ko-KR/features/drive.md new file mode 100644 index 0000000000..9c1d604da7 --- /dev/null +++ b/src/docs/ko-KR/features/drive.md @@ -0,0 +1,17 @@ +# 드라이브 +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/ko-KR/features/favorite.md b/src/docs/ko-KR/features/favorite.md new file mode 100644 index 0000000000..c6a3b413dc --- /dev/null +++ b/src/docs/ko-KR/features/favorite.md @@ -0,0 +1,4 @@ +# 즐겨찾기 +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/ko-KR/features/follow.md b/src/docs/ko-KR/features/follow.md new file mode 100644 index 0000000000..197aee13c5 --- /dev/null +++ b/src/docs/ko-KR/features/follow.md @@ -0,0 +1,2 @@ +# 팔로잉 +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/ko-KR/features/keyboard-shortcut.md b/src/docs/ko-KR/features/keyboard-shortcut.md new file mode 100644 index 0000000000..95cb818846 --- /dev/null +++ b/src/docs/ko-KR/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## 글로벌 +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
S검색Search
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/ko-KR/features/mfm.md b/src/docs/ko-KR/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/ko-KR/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/ko-KR/features/mute.md b/src/docs/ko-KR/features/mute.md new file mode 100644 index 0000000000..89195bb108 --- /dev/null +++ b/src/docs/ko-KR/features/mute.md @@ -0,0 +1,13 @@ +# 뮤트 + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/ko-KR/features/note.md b/src/docs/ko-KR/features/note.md new file mode 100644 index 0000000000..e426e7c003 --- /dev/null +++ b/src/docs/ko-KR/features/note.md @@ -0,0 +1,51 @@ +# 노트 +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 공개 범위 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### 공개 +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### 홈 +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### 팔로워 +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### 다이렉트 +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
공개팔로워다이렉트
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## 프로필에 고정 +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/ko-KR/features/pages.md b/src/docs/ko-KR/features/pages.md new file mode 100644 index 0000000000..54bc853715 --- /dev/null +++ b/src/docs/ko-KR/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 변수 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/ko-KR/features/reaction.md b/src/docs/ko-KR/features/reaction.md new file mode 100644 index 0000000000..260258f934 --- /dev/null +++ b/src/docs/ko-KR/features/reaction.md @@ -0,0 +1,11 @@ +# 리액션 +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/ko-KR/features/silence.md b/src/docs/ko-KR/features/silence.md new file mode 100644 index 0000000000..756aa98405 --- /dev/null +++ b/src/docs/ko-KR/features/silence.md @@ -0,0 +1,6 @@ +# 사일런스 +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/ko-KR/features/theme.md b/src/docs/ko-KR/features/theme.md new file mode 100644 index 0000000000..e01133b831 --- /dev/null +++ b/src/docs/ko-KR/features/theme.md @@ -0,0 +1,68 @@ +# 테마 + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 상수 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 함수 +wip diff --git a/src/docs/ko-KR/features/timeline.md b/src/docs/ko-KR/features/timeline.md new file mode 100644 index 0000000000..6598c0656b --- /dev/null +++ b/src/docs/ko-KR/features/timeline.md @@ -0,0 +1,31 @@ +# 타임라인 +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## 홈 +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## 로컬 +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## 소셜 +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## 글로벌 +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 비교 +| ソース | | | 타임라인 | | | +| ------------ | ----- | - | ---- | -- | --- | +| 유저 | 공개 범위 | 홈 | 로컬 | 소셜 | 글로벌 | +| ローカル (フォロー) | 게시 | ✔ | ✔ | ✔ | ✔ | +| | 홈 | ✔ | | ✔ | | +| | 팔로워 | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 게시 | ✔ | | ✔ | ✔ | +| | 홈 | ✔ | | ✔ | | +| | 팔로워 | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 게시 | | ✔ | ✔ | ✔ | +| | 홈 | | | | | +| | 팔로워 | | | | | +| リモート (未フォロー) | 게시 | | | | ✔ | +| | 홈 | | | | | +| | 팔로워 | | | | | diff --git a/src/docs/ko-KR/features/widgets.md b/src/docs/ko-KR/features/widgets.md new file mode 100644 index 0000000000..5372866d1e --- /dev/null +++ b/src/docs/ko-KR/features/widgets.md @@ -0,0 +1,7 @@ +# 위젯 +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/ko-KR/general/apps.md b/src/docs/ko-KR/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/ko-KR/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/ko-KR/general/faq.md b/src/docs/ko-KR/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/ko-KR/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/ko-KR/general/glossary.md b/src/docs/ko-KR/general/glossary.md new file mode 100644 index 0000000000..34c798b8e6 --- /dev/null +++ b/src/docs/ko-KR/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renote +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## 인스턴스 +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## 서버 +todo + +## 사일런스 +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## 정지 +アカウントが使用不可に設定されている状態。 + +## 드라이브 +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## 노트 +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## 모더레이터 +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## 리모트 +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## 연합 +サーバー上で作成された情報が他のサーバーに伝わること。 + +## 로컬 +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/ko-KR/general/links.md b/src/docs/ko-KR/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/ko-KR/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/ko-KR/general/misskey.md b/src/docs/ko-KR/general/misskey.md new file mode 100644 index 0000000000..f4ddca5c2b --- /dev/null +++ b/src/docs/ko-KR/general/misskey.md @@ -0,0 +1,87 @@ +# Misskey에 대하여 + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/ko-KR/general/report-issue.md b/src/docs/ko-KR/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/ko-KR/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/ko-KR/general/troubleshooting.md b/src/docs/ko-KR/general/troubleshooting.md new file mode 100644 index 0000000000..d3c1c01957 --- /dev/null +++ b/src/docs/ko-KR/general/troubleshooting.md @@ -0,0 +1,36 @@ +# 트러블 슈팅 +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/nl-NL/admin/disable-timelines.md b/src/docs/nl-NL/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/nl-NL/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/nl-NL/admin/faq.md b/src/docs/nl-NL/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/nl-NL/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/nl-NL/advanced/aiscript.md b/src/docs/nl-NL/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/nl-NL/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/nl-NL/advanced/api.md b/src/docs/nl-NL/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/nl-NL/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/nl-NL/advanced/create-plugin.md b/src/docs/nl-NL/advanced/create-plugin.md new file mode 100644 index 0000000000..0d2fa19178 --- /dev/null +++ b/src/docs/nl-NL/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## メタデータ +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/nl-NL/advanced/develop-bot.md b/src/docs/nl-NL/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/nl-NL/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/nl-NL/advanced/reversi-bot.md b/src/docs/nl-NL/advanced/reversi-bot.md new file mode 100644 index 0000000000..7ab2a7212e --- /dev/null +++ b/src/docs/nl-NL/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### スイッチ +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/nl-NL/advanced/stream.md b/src/docs/nl-NL/advanced/stream.md new file mode 100644 index 0000000000..0e5edd2b0c --- /dev/null +++ b/src/docs/nl-NL/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/nl-NL/features/antenna.md b/src/docs/nl-NL/features/antenna.md new file mode 100644 index 0000000000..94ad9e4aea --- /dev/null +++ b/src/docs/nl-NL/features/antenna.md @@ -0,0 +1,4 @@ +# アンテナ +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/nl-NL/features/custom-emoji.md b/src/docs/nl-NL/features/custom-emoji.md new file mode 100644 index 0000000000..ed2e92be16 --- /dev/null +++ b/src/docs/nl-NL/features/custom-emoji.md @@ -0,0 +1,2 @@ +# カスタム絵文字 +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/nl-NL/features/deck.md b/src/docs/nl-NL/features/deck.md new file mode 100644 index 0000000000..8057e262fd --- /dev/null +++ b/src/docs/nl-NL/features/deck.md @@ -0,0 +1,18 @@ +# デッキ + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/nl-NL/features/drive.md b/src/docs/nl-NL/features/drive.md new file mode 100644 index 0000000000..b82a41082a --- /dev/null +++ b/src/docs/nl-NL/features/drive.md @@ -0,0 +1,17 @@ +# ドライブ +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/nl-NL/features/favorite.md b/src/docs/nl-NL/features/favorite.md new file mode 100644 index 0000000000..a0e5f8bf78 --- /dev/null +++ b/src/docs/nl-NL/features/favorite.md @@ -0,0 +1,4 @@ +# お気に入り +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/nl-NL/features/follow.md b/src/docs/nl-NL/features/follow.md new file mode 100644 index 0000000000..3c1ea7bbe0 --- /dev/null +++ b/src/docs/nl-NL/features/follow.md @@ -0,0 +1,2 @@ +# フォロー +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/nl-NL/features/keyboard-shortcut.md b/src/docs/nl-NL/features/keyboard-shortcut.md new file mode 100644 index 0000000000..8659ace982 --- /dev/null +++ b/src/docs/nl-NL/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
S検索Search
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/nl-NL/features/mfm.md b/src/docs/nl-NL/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/nl-NL/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/nl-NL/features/mute.md b/src/docs/nl-NL/features/mute.md new file mode 100644 index 0000000000..6a9608662a --- /dev/null +++ b/src/docs/nl-NL/features/mute.md @@ -0,0 +1,13 @@ +# ミュート + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/nl-NL/features/note.md b/src/docs/nl-NL/features/note.md new file mode 100644 index 0000000000..62440b25f9 --- /dev/null +++ b/src/docs/nl-NL/features/note.md @@ -0,0 +1,51 @@ +# ノート +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
パブリックホームフォロワーダイレクト
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/nl-NL/features/pages.md b/src/docs/nl-NL/features/pages.md new file mode 100644 index 0000000000..a7311b95e6 --- /dev/null +++ b/src/docs/nl-NL/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/nl-NL/features/reaction.md b/src/docs/nl-NL/features/reaction.md new file mode 100644 index 0000000000..4d479fd416 --- /dev/null +++ b/src/docs/nl-NL/features/reaction.md @@ -0,0 +1,11 @@ +# リアクション +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/nl-NL/features/silence.md b/src/docs/nl-NL/features/silence.md new file mode 100644 index 0000000000..7e26feab0d --- /dev/null +++ b/src/docs/nl-NL/features/silence.md @@ -0,0 +1,6 @@ +# サイレンス +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/nl-NL/features/theme.md b/src/docs/nl-NL/features/theme.md new file mode 100644 index 0000000000..a406f3433c --- /dev/null +++ b/src/docs/nl-NL/features/theme.md @@ -0,0 +1,68 @@ +# テーマ + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 関数 +wip diff --git a/src/docs/nl-NL/features/timeline.md b/src/docs/nl-NL/features/timeline.md new file mode 100644 index 0000000000..f431014f84 --- /dev/null +++ b/src/docs/nl-NL/features/timeline.md @@ -0,0 +1,31 @@ +# タイムライン +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## ホーム +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## ローカル +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## ソーシャル +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## グローバル +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 比較 +| ソース | | | タイムライン | | | +| ------------ | ----- | --- | ------ | ----- | ----- | +| ユーザー | 公開範囲 | ホーム | ローカル | ソーシャル | グローバル | +| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | +| リモート (未フォロー) | 公開 | | | | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | diff --git a/src/docs/nl-NL/features/widgets.md b/src/docs/nl-NL/features/widgets.md new file mode 100644 index 0000000000..a7c2c1d1d6 --- /dev/null +++ b/src/docs/nl-NL/features/widgets.md @@ -0,0 +1,7 @@ +# ウィジェット +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/nl-NL/general/apps.md b/src/docs/nl-NL/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/nl-NL/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/nl-NL/general/faq.md b/src/docs/nl-NL/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/nl-NL/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/nl-NL/general/glossary.md b/src/docs/nl-NL/general/glossary.md new file mode 100644 index 0000000000..1f403a06d2 --- /dev/null +++ b/src/docs/nl-NL/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renote +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## インスタンス +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## サーバー +todo + +## サイレンス +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## 凍結 +アカウントが使用不可に設定されている状態。 + +## ドライブ +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## ノート +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## モデレーター +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## リモート +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## 連合 +サーバー上で作成された情報が他のサーバーに伝わること。 + +## ローカル +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/nl-NL/general/links.md b/src/docs/nl-NL/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/nl-NL/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/nl-NL/general/misskey.md b/src/docs/nl-NL/general/misskey.md new file mode 100644 index 0000000000..1e64a10e28 --- /dev/null +++ b/src/docs/nl-NL/general/misskey.md @@ -0,0 +1,87 @@ +# Misskeyについて + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/nl-NL/general/report-issue.md b/src/docs/nl-NL/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/nl-NL/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/nl-NL/general/troubleshooting.md b/src/docs/nl-NL/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/nl-NL/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/no-NO/admin/disable-timelines.md b/src/docs/no-NO/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/no-NO/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/no-NO/admin/faq.md b/src/docs/no-NO/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/no-NO/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/no-NO/advanced/aiscript.md b/src/docs/no-NO/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/no-NO/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/no-NO/advanced/api.md b/src/docs/no-NO/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/no-NO/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/no-NO/advanced/create-plugin.md b/src/docs/no-NO/advanced/create-plugin.md new file mode 100644 index 0000000000..0d2fa19178 --- /dev/null +++ b/src/docs/no-NO/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## メタデータ +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/no-NO/advanced/develop-bot.md b/src/docs/no-NO/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/no-NO/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/no-NO/advanced/reversi-bot.md b/src/docs/no-NO/advanced/reversi-bot.md new file mode 100644 index 0000000000..7ab2a7212e --- /dev/null +++ b/src/docs/no-NO/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### スイッチ +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/no-NO/advanced/stream.md b/src/docs/no-NO/advanced/stream.md new file mode 100644 index 0000000000..0e5edd2b0c --- /dev/null +++ b/src/docs/no-NO/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/no-NO/features/antenna.md b/src/docs/no-NO/features/antenna.md new file mode 100644 index 0000000000..94ad9e4aea --- /dev/null +++ b/src/docs/no-NO/features/antenna.md @@ -0,0 +1,4 @@ +# アンテナ +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/no-NO/features/custom-emoji.md b/src/docs/no-NO/features/custom-emoji.md new file mode 100644 index 0000000000..ed2e92be16 --- /dev/null +++ b/src/docs/no-NO/features/custom-emoji.md @@ -0,0 +1,2 @@ +# カスタム絵文字 +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/no-NO/features/deck.md b/src/docs/no-NO/features/deck.md new file mode 100644 index 0000000000..8057e262fd --- /dev/null +++ b/src/docs/no-NO/features/deck.md @@ -0,0 +1,18 @@ +# デッキ + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/no-NO/features/drive.md b/src/docs/no-NO/features/drive.md new file mode 100644 index 0000000000..b82a41082a --- /dev/null +++ b/src/docs/no-NO/features/drive.md @@ -0,0 +1,17 @@ +# ドライブ +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/no-NO/features/favorite.md b/src/docs/no-NO/features/favorite.md new file mode 100644 index 0000000000..a0e5f8bf78 --- /dev/null +++ b/src/docs/no-NO/features/favorite.md @@ -0,0 +1,4 @@ +# お気に入り +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/no-NO/features/follow.md b/src/docs/no-NO/features/follow.md new file mode 100644 index 0000000000..3c1ea7bbe0 --- /dev/null +++ b/src/docs/no-NO/features/follow.md @@ -0,0 +1,2 @@ +# フォロー +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/no-NO/features/keyboard-shortcut.md b/src/docs/no-NO/features/keyboard-shortcut.md new file mode 100644 index 0000000000..8659ace982 --- /dev/null +++ b/src/docs/no-NO/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
S検索Search
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/no-NO/features/mfm.md b/src/docs/no-NO/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/no-NO/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/no-NO/features/mute.md b/src/docs/no-NO/features/mute.md new file mode 100644 index 0000000000..6a9608662a --- /dev/null +++ b/src/docs/no-NO/features/mute.md @@ -0,0 +1,13 @@ +# ミュート + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/no-NO/features/note.md b/src/docs/no-NO/features/note.md new file mode 100644 index 0000000000..62440b25f9 --- /dev/null +++ b/src/docs/no-NO/features/note.md @@ -0,0 +1,51 @@ +# ノート +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
パブリックホームフォロワーダイレクト
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/no-NO/features/pages.md b/src/docs/no-NO/features/pages.md new file mode 100644 index 0000000000..a7311b95e6 --- /dev/null +++ b/src/docs/no-NO/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/no-NO/features/reaction.md b/src/docs/no-NO/features/reaction.md new file mode 100644 index 0000000000..4d479fd416 --- /dev/null +++ b/src/docs/no-NO/features/reaction.md @@ -0,0 +1,11 @@ +# リアクション +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/no-NO/features/silence.md b/src/docs/no-NO/features/silence.md new file mode 100644 index 0000000000..7e26feab0d --- /dev/null +++ b/src/docs/no-NO/features/silence.md @@ -0,0 +1,6 @@ +# サイレンス +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/no-NO/features/theme.md b/src/docs/no-NO/features/theme.md new file mode 100644 index 0000000000..a406f3433c --- /dev/null +++ b/src/docs/no-NO/features/theme.md @@ -0,0 +1,68 @@ +# テーマ + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 関数 +wip diff --git a/src/docs/no-NO/features/timeline.md b/src/docs/no-NO/features/timeline.md new file mode 100644 index 0000000000..f431014f84 --- /dev/null +++ b/src/docs/no-NO/features/timeline.md @@ -0,0 +1,31 @@ +# タイムライン +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## ホーム +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## ローカル +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## ソーシャル +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## グローバル +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 比較 +| ソース | | | タイムライン | | | +| ------------ | ----- | --- | ------ | ----- | ----- | +| ユーザー | 公開範囲 | ホーム | ローカル | ソーシャル | グローバル | +| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | +| リモート (未フォロー) | 公開 | | | | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | diff --git a/src/docs/no-NO/features/widgets.md b/src/docs/no-NO/features/widgets.md new file mode 100644 index 0000000000..a7c2c1d1d6 --- /dev/null +++ b/src/docs/no-NO/features/widgets.md @@ -0,0 +1,7 @@ +# ウィジェット +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/no-NO/general/apps.md b/src/docs/no-NO/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/no-NO/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/no-NO/general/faq.md b/src/docs/no-NO/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/no-NO/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/no-NO/general/glossary.md b/src/docs/no-NO/general/glossary.md new file mode 100644 index 0000000000..1f403a06d2 --- /dev/null +++ b/src/docs/no-NO/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renote +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## インスタンス +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## サーバー +todo + +## サイレンス +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## 凍結 +アカウントが使用不可に設定されている状態。 + +## ドライブ +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## ノート +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## モデレーター +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## リモート +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## 連合 +サーバー上で作成された情報が他のサーバーに伝わること。 + +## ローカル +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/no-NO/general/links.md b/src/docs/no-NO/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/no-NO/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/no-NO/general/misskey.md b/src/docs/no-NO/general/misskey.md new file mode 100644 index 0000000000..1e64a10e28 --- /dev/null +++ b/src/docs/no-NO/general/misskey.md @@ -0,0 +1,87 @@ +# Misskeyについて + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/no-NO/general/report-issue.md b/src/docs/no-NO/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/no-NO/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/no-NO/general/troubleshooting.md b/src/docs/no-NO/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/no-NO/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/pl-PL/admin/disable-timelines.md b/src/docs/pl-PL/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/pl-PL/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/pl-PL/admin/faq.md b/src/docs/pl-PL/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/pl-PL/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/pl-PL/advanced/aiscript.md b/src/docs/pl-PL/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/pl-PL/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/pl-PL/advanced/api.md b/src/docs/pl-PL/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/pl-PL/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/pl-PL/advanced/create-plugin.md b/src/docs/pl-PL/advanced/create-plugin.md new file mode 100644 index 0000000000..31d89416de --- /dev/null +++ b/src/docs/pl-PL/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## Metadane +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/pl-PL/advanced/develop-bot.md b/src/docs/pl-PL/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/pl-PL/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/pl-PL/advanced/reversi-bot.md b/src/docs/pl-PL/advanced/reversi-bot.md new file mode 100644 index 0000000000..da76db7d1e --- /dev/null +++ b/src/docs/pl-PL/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### Przełącznik +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/pl-PL/advanced/stream.md b/src/docs/pl-PL/advanced/stream.md new file mode 100644 index 0000000000..99653e2638 --- /dev/null +++ b/src/docs/pl-PL/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## Kanały +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/pl-PL/features/antenna.md b/src/docs/pl-PL/features/antenna.md new file mode 100644 index 0000000000..39f782c9a0 --- /dev/null +++ b/src/docs/pl-PL/features/antenna.md @@ -0,0 +1,4 @@ +# Anteny +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/pl-PL/features/custom-emoji.md b/src/docs/pl-PL/features/custom-emoji.md new file mode 100644 index 0000000000..3f71205a67 --- /dev/null +++ b/src/docs/pl-PL/features/custom-emoji.md @@ -0,0 +1,2 @@ +# Niestandardowe emoji +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/pl-PL/features/deck.md b/src/docs/pl-PL/features/deck.md new file mode 100644 index 0000000000..aa879d7dfa --- /dev/null +++ b/src/docs/pl-PL/features/deck.md @@ -0,0 +1,18 @@ +# Tablica + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/pl-PL/features/drive.md b/src/docs/pl-PL/features/drive.md new file mode 100644 index 0000000000..c49ea4f65e --- /dev/null +++ b/src/docs/pl-PL/features/drive.md @@ -0,0 +1,17 @@ +# Dysk +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/pl-PL/features/favorite.md b/src/docs/pl-PL/features/favorite.md new file mode 100644 index 0000000000..82d782b7c3 --- /dev/null +++ b/src/docs/pl-PL/features/favorite.md @@ -0,0 +1,4 @@ +# Dodaj do ulubionych +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/pl-PL/features/follow.md b/src/docs/pl-PL/features/follow.md new file mode 100644 index 0000000000..3b5ce84dce --- /dev/null +++ b/src/docs/pl-PL/features/follow.md @@ -0,0 +1,2 @@ +# Obserwowani +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/pl-PL/features/keyboard-shortcut.md b/src/docs/pl-PL/features/keyboard-shortcut.md new file mode 100644 index 0000000000..d351a66301 --- /dev/null +++ b/src/docs/pl-PL/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## Globalna +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
SSzukajSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/pl-PL/features/mfm.md b/src/docs/pl-PL/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/pl-PL/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/pl-PL/features/mute.md b/src/docs/pl-PL/features/mute.md new file mode 100644 index 0000000000..8daf9f68ad --- /dev/null +++ b/src/docs/pl-PL/features/mute.md @@ -0,0 +1,13 @@ +# Wycisz + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/pl-PL/features/note.md b/src/docs/pl-PL/features/note.md new file mode 100644 index 0000000000..dc5b0f1f21 --- /dev/null +++ b/src/docs/pl-PL/features/note.md @@ -0,0 +1,51 @@ +# Wpisy +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Udostępnij +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Widoczność +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Publiczny +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### Strona główna +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Obserwujący +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Bezpośredni +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
PublicznyStrona głównaObserwującyBezpośredni
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## Przypnij do profilu +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/pl-PL/features/pages.md b/src/docs/pl-PL/features/pages.md new file mode 100644 index 0000000000..efa18263f6 --- /dev/null +++ b/src/docs/pl-PL/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## Zmienne +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/pl-PL/features/reaction.md b/src/docs/pl-PL/features/reaction.md new file mode 100644 index 0000000000..0f292d9c06 --- /dev/null +++ b/src/docs/pl-PL/features/reaction.md @@ -0,0 +1,11 @@ +# Reakcja +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/pl-PL/features/silence.md b/src/docs/pl-PL/features/silence.md new file mode 100644 index 0000000000..c90bbe6ff7 --- /dev/null +++ b/src/docs/pl-PL/features/silence.md @@ -0,0 +1,6 @@ +# Wycisz +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/pl-PL/features/theme.md b/src/docs/pl-PL/features/theme.md new file mode 100644 index 0000000000..e31cb4a098 --- /dev/null +++ b/src/docs/pl-PL/features/theme.md @@ -0,0 +1,68 @@ +# Motywy + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### Stała +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### Funkcje +wip diff --git a/src/docs/pl-PL/features/timeline.md b/src/docs/pl-PL/features/timeline.md new file mode 100644 index 0000000000..6bcd605cb7 --- /dev/null +++ b/src/docs/pl-PL/features/timeline.md @@ -0,0 +1,31 @@ +# Oś czasu +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## Strona główna +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## Lokalne +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## Społeczność +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## Globalna +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## Porównanie +| ソース | | | Oś czasu | | | +| ------------ | ------------- | ------------- | -------- | ----------- | -------- | +| Użytkownicy | Widoczność | Strona główna | Lokalne | Społeczność | Globalna | +| ローカル (フォロー) | Publikuj | ✔ | ✔ | ✔ | ✔ | +| | Strona główna | ✔ | | ✔ | | +| | Obserwujący | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | Publikuj | ✔ | | ✔ | ✔ | +| | Strona główna | ✔ | | ✔ | | +| | Obserwujący | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | Publikuj | | ✔ | ✔ | ✔ | +| | Strona główna | | | | | +| | Obserwujący | | | | | +| リモート (未フォロー) | Publikuj | | | | ✔ | +| | Strona główna | | | | | +| | Obserwujący | | | | | diff --git a/src/docs/pl-PL/features/widgets.md b/src/docs/pl-PL/features/widgets.md new file mode 100644 index 0000000000..976c3bb6fb --- /dev/null +++ b/src/docs/pl-PL/features/widgets.md @@ -0,0 +1,7 @@ +# Widżety +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/pl-PL/general/apps.md b/src/docs/pl-PL/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/pl-PL/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/pl-PL/general/faq.md b/src/docs/pl-PL/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/pl-PL/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/pl-PL/general/glossary.md b/src/docs/pl-PL/general/glossary.md new file mode 100644 index 0000000000..96a5ce2398 --- /dev/null +++ b/src/docs/pl-PL/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Udostępnij +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## Instancja +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## Serwery +todo + +## Wycisz +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## Zawieś +アカウントが使用不可に設定されている状態。 + +## Dysk +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## Wpisy +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## Moderator +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## Zdalny +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## Federacja +サーバー上で作成された情報が他のサーバーに伝わること。 + +## Lokalne +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/pl-PL/general/links.md b/src/docs/pl-PL/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/pl-PL/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/pl-PL/general/misskey.md b/src/docs/pl-PL/general/misskey.md new file mode 100644 index 0000000000..2ad7e0da66 --- /dev/null +++ b/src/docs/pl-PL/general/misskey.md @@ -0,0 +1,87 @@ +# O Misskey + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/pl-PL/general/report-issue.md b/src/docs/pl-PL/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/pl-PL/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/pl-PL/general/troubleshooting.md b/src/docs/pl-PL/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/pl-PL/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/pt-PT/admin/disable-timelines.md b/src/docs/pt-PT/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/pt-PT/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/pt-PT/admin/faq.md b/src/docs/pt-PT/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/pt-PT/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/pt-PT/advanced/aiscript.md b/src/docs/pt-PT/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/pt-PT/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/pt-PT/advanced/api.md b/src/docs/pt-PT/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/pt-PT/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/pt-PT/advanced/create-plugin.md b/src/docs/pt-PT/advanced/create-plugin.md new file mode 100644 index 0000000000..0d2fa19178 --- /dev/null +++ b/src/docs/pt-PT/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## メタデータ +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/pt-PT/advanced/develop-bot.md b/src/docs/pt-PT/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/pt-PT/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/pt-PT/advanced/reversi-bot.md b/src/docs/pt-PT/advanced/reversi-bot.md new file mode 100644 index 0000000000..7ab2a7212e --- /dev/null +++ b/src/docs/pt-PT/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### スイッチ +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/pt-PT/advanced/stream.md b/src/docs/pt-PT/advanced/stream.md new file mode 100644 index 0000000000..0e5edd2b0c --- /dev/null +++ b/src/docs/pt-PT/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/pt-PT/features/antenna.md b/src/docs/pt-PT/features/antenna.md new file mode 100644 index 0000000000..94ad9e4aea --- /dev/null +++ b/src/docs/pt-PT/features/antenna.md @@ -0,0 +1,4 @@ +# アンテナ +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/pt-PT/features/custom-emoji.md b/src/docs/pt-PT/features/custom-emoji.md new file mode 100644 index 0000000000..ed2e92be16 --- /dev/null +++ b/src/docs/pt-PT/features/custom-emoji.md @@ -0,0 +1,2 @@ +# カスタム絵文字 +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/pt-PT/features/deck.md b/src/docs/pt-PT/features/deck.md new file mode 100644 index 0000000000..8057e262fd --- /dev/null +++ b/src/docs/pt-PT/features/deck.md @@ -0,0 +1,18 @@ +# デッキ + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/pt-PT/features/drive.md b/src/docs/pt-PT/features/drive.md new file mode 100644 index 0000000000..b82a41082a --- /dev/null +++ b/src/docs/pt-PT/features/drive.md @@ -0,0 +1,17 @@ +# ドライブ +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/pt-PT/features/favorite.md b/src/docs/pt-PT/features/favorite.md new file mode 100644 index 0000000000..a194f53e04 --- /dev/null +++ b/src/docs/pt-PT/features/favorite.md @@ -0,0 +1,4 @@ +# Favoritar +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/pt-PT/features/follow.md b/src/docs/pt-PT/features/follow.md new file mode 100644 index 0000000000..3c1ea7bbe0 --- /dev/null +++ b/src/docs/pt-PT/features/follow.md @@ -0,0 +1,2 @@ +# フォロー +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/pt-PT/features/keyboard-shortcut.md b/src/docs/pt-PT/features/keyboard-shortcut.md new file mode 100644 index 0000000000..79a9dbcebd --- /dev/null +++ b/src/docs/pt-PT/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
SPesquisarSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/pt-PT/features/mfm.md b/src/docs/pt-PT/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/pt-PT/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/pt-PT/features/mute.md b/src/docs/pt-PT/features/mute.md new file mode 100644 index 0000000000..331e5cc10a --- /dev/null +++ b/src/docs/pt-PT/features/mute.md @@ -0,0 +1,13 @@ +# Silenciar + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/pt-PT/features/note.md b/src/docs/pt-PT/features/note.md new file mode 100644 index 0000000000..7ae3b5551f --- /dev/null +++ b/src/docs/pt-PT/features/note.md @@ -0,0 +1,51 @@ +# Posts +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Repostar +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
パブリックホームフォロワーダイレクト
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/pt-PT/features/pages.md b/src/docs/pt-PT/features/pages.md new file mode 100644 index 0000000000..a7311b95e6 --- /dev/null +++ b/src/docs/pt-PT/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/pt-PT/features/reaction.md b/src/docs/pt-PT/features/reaction.md new file mode 100644 index 0000000000..4d479fd416 --- /dev/null +++ b/src/docs/pt-PT/features/reaction.md @@ -0,0 +1,11 @@ +# リアクション +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/pt-PT/features/silence.md b/src/docs/pt-PT/features/silence.md new file mode 100644 index 0000000000..7e26feab0d --- /dev/null +++ b/src/docs/pt-PT/features/silence.md @@ -0,0 +1,6 @@ +# サイレンス +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/pt-PT/features/theme.md b/src/docs/pt-PT/features/theme.md new file mode 100644 index 0000000000..a406f3433c --- /dev/null +++ b/src/docs/pt-PT/features/theme.md @@ -0,0 +1,68 @@ +# テーマ + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 関数 +wip diff --git a/src/docs/pt-PT/features/timeline.md b/src/docs/pt-PT/features/timeline.md new file mode 100644 index 0000000000..b9392fbdc8 --- /dev/null +++ b/src/docs/pt-PT/features/timeline.md @@ -0,0 +1,31 @@ +# Timeline +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## ホーム +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## ローカル +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## ソーシャル +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## グローバル +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 比較 +| ソース | | | Timeline | | | +| ------------ | ----- | --- | -------- | ----- | ----- | +| Usuários | 公開範囲 | ホーム | ローカル | ソーシャル | グローバル | +| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | +| リモート (未フォロー) | 公開 | | | | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | diff --git a/src/docs/pt-PT/features/widgets.md b/src/docs/pt-PT/features/widgets.md new file mode 100644 index 0000000000..a7c2c1d1d6 --- /dev/null +++ b/src/docs/pt-PT/features/widgets.md @@ -0,0 +1,7 @@ +# ウィジェット +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/pt-PT/general/apps.md b/src/docs/pt-PT/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/pt-PT/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/pt-PT/general/faq.md b/src/docs/pt-PT/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/pt-PT/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/pt-PT/general/glossary.md b/src/docs/pt-PT/general/glossary.md new file mode 100644 index 0000000000..fbf52137b9 --- /dev/null +++ b/src/docs/pt-PT/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Repostar +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## インスタンス +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## サーバー +todo + +## サイレンス +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## 凍結 +アカウントが使用不可に設定されている状態。 + +## ドライブ +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## Posts +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## モデレーター +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## リモート +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## 連合 +サーバー上で作成された情報が他のサーバーに伝わること。 + +## ローカル +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/pt-PT/general/links.md b/src/docs/pt-PT/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/pt-PT/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/pt-PT/general/misskey.md b/src/docs/pt-PT/general/misskey.md new file mode 100644 index 0000000000..1e64a10e28 --- /dev/null +++ b/src/docs/pt-PT/general/misskey.md @@ -0,0 +1,87 @@ +# Misskeyについて + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/pt-PT/general/report-issue.md b/src/docs/pt-PT/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/pt-PT/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/pt-PT/general/troubleshooting.md b/src/docs/pt-PT/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/pt-PT/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/ru-RU/admin/disable-timelines.md b/src/docs/ru-RU/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/ru-RU/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/ru-RU/admin/faq.md b/src/docs/ru-RU/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/ru-RU/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/ru-RU/advanced/aiscript.md b/src/docs/ru-RU/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/ru-RU/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/ru-RU/advanced/api.md b/src/docs/ru-RU/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/ru-RU/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/ru-RU/advanced/create-plugin.md b/src/docs/ru-RU/advanced/create-plugin.md new file mode 100644 index 0000000000..f5baa27646 --- /dev/null +++ b/src/docs/ru-RU/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## Метаданные +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/ru-RU/advanced/develop-bot.md b/src/docs/ru-RU/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/ru-RU/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/ru-RU/advanced/reversi-bot.md b/src/docs/ru-RU/advanced/reversi-bot.md new file mode 100644 index 0000000000..16eb25a607 --- /dev/null +++ b/src/docs/ru-RU/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### Выключатель +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/ru-RU/advanced/stream.md b/src/docs/ru-RU/advanced/stream.md new file mode 100644 index 0000000000..eeea156e2d --- /dev/null +++ b/src/docs/ru-RU/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## Каналы +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/ru-RU/features/antenna.md b/src/docs/ru-RU/features/antenna.md new file mode 100644 index 0000000000..cc46db4740 --- /dev/null +++ b/src/docs/ru-RU/features/antenna.md @@ -0,0 +1,4 @@ +# Антенны +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/ru-RU/features/custom-emoji.md b/src/docs/ru-RU/features/custom-emoji.md new file mode 100644 index 0000000000..6d20e36c15 --- /dev/null +++ b/src/docs/ru-RU/features/custom-emoji.md @@ -0,0 +1,2 @@ +# Эмодзи пользователя +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/ru-RU/features/deck.md b/src/docs/ru-RU/features/deck.md new file mode 100644 index 0000000000..7b109dc4fc --- /dev/null +++ b/src/docs/ru-RU/features/deck.md @@ -0,0 +1,18 @@ +# Пульт + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/ru-RU/features/drive.md b/src/docs/ru-RU/features/drive.md new file mode 100644 index 0000000000..0ab6865642 --- /dev/null +++ b/src/docs/ru-RU/features/drive.md @@ -0,0 +1,17 @@ +# Диск +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/ru-RU/features/favorite.md b/src/docs/ru-RU/features/favorite.md new file mode 100644 index 0000000000..b65b99fed4 --- /dev/null +++ b/src/docs/ru-RU/features/favorite.md @@ -0,0 +1,4 @@ +# В избранное +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/ru-RU/features/follow.md b/src/docs/ru-RU/features/follow.md new file mode 100644 index 0000000000..dde28b9c9a --- /dev/null +++ b/src/docs/ru-RU/features/follow.md @@ -0,0 +1,2 @@ +# Подписки +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/ru-RU/features/keyboard-shortcut.md b/src/docs/ru-RU/features/keyboard-shortcut.md new file mode 100644 index 0000000000..cbdc572746 --- /dev/null +++ b/src/docs/ru-RU/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## Всеобщая +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
SПоискSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/ru-RU/features/mfm.md b/src/docs/ru-RU/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/ru-RU/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/ru-RU/features/mute.md b/src/docs/ru-RU/features/mute.md new file mode 100644 index 0000000000..78a4bf3eb3 --- /dev/null +++ b/src/docs/ru-RU/features/mute.md @@ -0,0 +1,13 @@ +# Скрыть + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/ru-RU/features/note.md b/src/docs/ru-RU/features/note.md new file mode 100644 index 0000000000..9fcc7eeb00 --- /dev/null +++ b/src/docs/ru-RU/features/note.md @@ -0,0 +1,51 @@ +# Заметки +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Репост +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Видимость +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Общедоступно +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### Главная +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Подписчики +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Личное +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
ОбщедоступноГлавнаяПодписчикиЛичное
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## Закрепить в профиле +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/ru-RU/features/pages.md b/src/docs/ru-RU/features/pages.md new file mode 100644 index 0000000000..ea7b15c311 --- /dev/null +++ b/src/docs/ru-RU/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## Переменные +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/ru-RU/features/reaction.md b/src/docs/ru-RU/features/reaction.md new file mode 100644 index 0000000000..6a6994df38 --- /dev/null +++ b/src/docs/ru-RU/features/reaction.md @@ -0,0 +1,11 @@ +# Реакции +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/ru-RU/features/silence.md b/src/docs/ru-RU/features/silence.md new file mode 100644 index 0000000000..a5e1777889 --- /dev/null +++ b/src/docs/ru-RU/features/silence.md @@ -0,0 +1,6 @@ +# Заглушить +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/ru-RU/features/theme.md b/src/docs/ru-RU/features/theme.md new file mode 100644 index 0000000000..e4661c1011 --- /dev/null +++ b/src/docs/ru-RU/features/theme.md @@ -0,0 +1,68 @@ +# Тема + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### Константа +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### Функции +wip diff --git a/src/docs/ru-RU/features/timeline.md b/src/docs/ru-RU/features/timeline.md new file mode 100644 index 0000000000..ce4a4e830f --- /dev/null +++ b/src/docs/ru-RU/features/timeline.md @@ -0,0 +1,31 @@ +# Лента +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## Главная +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## Местная +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## Социальная +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## Всеобщая +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## Сравнение +| ソース | | | Лента | | | +| ------------ | ------------ | ------- | ------- | ---------- | -------- | +| Пользователи | Видимость | Главная | Местная | Социальная | Всеобщая | +| ローカル (フォロー) | Опубликовать | ✔ | ✔ | ✔ | ✔ | +| | Главная | ✔ | | ✔ | | +| | Подписчики | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | Опубликовать | ✔ | | ✔ | ✔ | +| | Главная | ✔ | | ✔ | | +| | Подписчики | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | Опубликовать | | ✔ | ✔ | ✔ | +| | Главная | | | | | +| | Подписчики | | | | | +| リモート (未フォロー) | Опубликовать | | | | ✔ | +| | Главная | | | | | +| | Подписчики | | | | | diff --git a/src/docs/ru-RU/features/widgets.md b/src/docs/ru-RU/features/widgets.md new file mode 100644 index 0000000000..4d841616a1 --- /dev/null +++ b/src/docs/ru-RU/features/widgets.md @@ -0,0 +1,7 @@ +# Виджеты +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/ru-RU/general/apps.md b/src/docs/ru-RU/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/ru-RU/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/ru-RU/general/faq.md b/src/docs/ru-RU/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/ru-RU/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/ru-RU/general/glossary.md b/src/docs/ru-RU/general/glossary.md new file mode 100644 index 0000000000..9ff9bd4589 --- /dev/null +++ b/src/docs/ru-RU/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Репост +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## Инстанс +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## Сервер +todo + +## Заглушить +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## Заморозить +アカウントが使用不可に設定されている状態。 + +## Диск +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## Заметки +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## Модератор +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## С других сайтов +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## Федерация +サーバー上で作成された情報が他のサーバーに伝わること。 + +## Местная +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/ru-RU/general/links.md b/src/docs/ru-RU/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/ru-RU/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/ru-RU/general/misskey.md b/src/docs/ru-RU/general/misskey.md new file mode 100644 index 0000000000..5ee0a9282f --- /dev/null +++ b/src/docs/ru-RU/general/misskey.md @@ -0,0 +1,87 @@ +# О Misskey + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/ru-RU/general/report-issue.md b/src/docs/ru-RU/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/ru-RU/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/ru-RU/general/troubleshooting.md b/src/docs/ru-RU/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/ru-RU/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/th-TH/admin/disable-timelines.md b/src/docs/th-TH/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/th-TH/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/th-TH/admin/faq.md b/src/docs/th-TH/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/th-TH/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/th-TH/advanced/aiscript.md b/src/docs/th-TH/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/th-TH/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/th-TH/advanced/api.md b/src/docs/th-TH/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/th-TH/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/th-TH/advanced/create-plugin.md b/src/docs/th-TH/advanced/create-plugin.md new file mode 100644 index 0000000000..0d2fa19178 --- /dev/null +++ b/src/docs/th-TH/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## メタデータ +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/th-TH/advanced/develop-bot.md b/src/docs/th-TH/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/th-TH/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/th-TH/advanced/reversi-bot.md b/src/docs/th-TH/advanced/reversi-bot.md new file mode 100644 index 0000000000..7ab2a7212e --- /dev/null +++ b/src/docs/th-TH/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### スイッチ +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/th-TH/advanced/stream.md b/src/docs/th-TH/advanced/stream.md new file mode 100644 index 0000000000..0e5edd2b0c --- /dev/null +++ b/src/docs/th-TH/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/th-TH/features/antenna.md b/src/docs/th-TH/features/antenna.md new file mode 100644 index 0000000000..94ad9e4aea --- /dev/null +++ b/src/docs/th-TH/features/antenna.md @@ -0,0 +1,4 @@ +# アンテナ +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/th-TH/features/custom-emoji.md b/src/docs/th-TH/features/custom-emoji.md new file mode 100644 index 0000000000..ed2e92be16 --- /dev/null +++ b/src/docs/th-TH/features/custom-emoji.md @@ -0,0 +1,2 @@ +# カスタム絵文字 +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/th-TH/features/deck.md b/src/docs/th-TH/features/deck.md new file mode 100644 index 0000000000..8057e262fd --- /dev/null +++ b/src/docs/th-TH/features/deck.md @@ -0,0 +1,18 @@ +# デッキ + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/th-TH/features/drive.md b/src/docs/th-TH/features/drive.md new file mode 100644 index 0000000000..b82a41082a --- /dev/null +++ b/src/docs/th-TH/features/drive.md @@ -0,0 +1,17 @@ +# ドライブ +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/th-TH/features/favorite.md b/src/docs/th-TH/features/favorite.md new file mode 100644 index 0000000000..a0e5f8bf78 --- /dev/null +++ b/src/docs/th-TH/features/favorite.md @@ -0,0 +1,4 @@ +# お気に入り +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/th-TH/features/follow.md b/src/docs/th-TH/features/follow.md new file mode 100644 index 0000000000..3c1ea7bbe0 --- /dev/null +++ b/src/docs/th-TH/features/follow.md @@ -0,0 +1,2 @@ +# フォロー +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/th-TH/features/keyboard-shortcut.md b/src/docs/th-TH/features/keyboard-shortcut.md new file mode 100644 index 0000000000..8659ace982 --- /dev/null +++ b/src/docs/th-TH/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
S検索Search
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/th-TH/features/mfm.md b/src/docs/th-TH/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/th-TH/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/th-TH/features/mute.md b/src/docs/th-TH/features/mute.md new file mode 100644 index 0000000000..6a9608662a --- /dev/null +++ b/src/docs/th-TH/features/mute.md @@ -0,0 +1,13 @@ +# ミュート + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/th-TH/features/note.md b/src/docs/th-TH/features/note.md new file mode 100644 index 0000000000..62440b25f9 --- /dev/null +++ b/src/docs/th-TH/features/note.md @@ -0,0 +1,51 @@ +# ノート +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
パブリックホームフォロワーダイレクト
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/th-TH/features/pages.md b/src/docs/th-TH/features/pages.md new file mode 100644 index 0000000000..a7311b95e6 --- /dev/null +++ b/src/docs/th-TH/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/th-TH/features/reaction.md b/src/docs/th-TH/features/reaction.md new file mode 100644 index 0000000000..4d479fd416 --- /dev/null +++ b/src/docs/th-TH/features/reaction.md @@ -0,0 +1,11 @@ +# リアクション +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/th-TH/features/silence.md b/src/docs/th-TH/features/silence.md new file mode 100644 index 0000000000..7e26feab0d --- /dev/null +++ b/src/docs/th-TH/features/silence.md @@ -0,0 +1,6 @@ +# サイレンス +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/th-TH/features/theme.md b/src/docs/th-TH/features/theme.md new file mode 100644 index 0000000000..a406f3433c --- /dev/null +++ b/src/docs/th-TH/features/theme.md @@ -0,0 +1,68 @@ +# テーマ + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 関数 +wip diff --git a/src/docs/th-TH/features/timeline.md b/src/docs/th-TH/features/timeline.md new file mode 100644 index 0000000000..f431014f84 --- /dev/null +++ b/src/docs/th-TH/features/timeline.md @@ -0,0 +1,31 @@ +# タイムライン +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## ホーム +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## ローカル +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## ソーシャル +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## グローバル +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 比較 +| ソース | | | タイムライン | | | +| ------------ | ----- | --- | ------ | ----- | ----- | +| ユーザー | 公開範囲 | ホーム | ローカル | ソーシャル | グローバル | +| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | +| リモート (未フォロー) | 公開 | | | | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | diff --git a/src/docs/th-TH/features/widgets.md b/src/docs/th-TH/features/widgets.md new file mode 100644 index 0000000000..a7c2c1d1d6 --- /dev/null +++ b/src/docs/th-TH/features/widgets.md @@ -0,0 +1,7 @@ +# ウィジェット +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/th-TH/general/apps.md b/src/docs/th-TH/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/th-TH/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/th-TH/general/faq.md b/src/docs/th-TH/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/th-TH/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/th-TH/general/glossary.md b/src/docs/th-TH/general/glossary.md new file mode 100644 index 0000000000..1f403a06d2 --- /dev/null +++ b/src/docs/th-TH/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renote +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## インスタンス +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## サーバー +todo + +## サイレンス +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## 凍結 +アカウントが使用不可に設定されている状態。 + +## ドライブ +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## ノート +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## モデレーター +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## リモート +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## 連合 +サーバー上で作成された情報が他のサーバーに伝わること。 + +## ローカル +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/th-TH/general/links.md b/src/docs/th-TH/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/th-TH/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/th-TH/general/misskey.md b/src/docs/th-TH/general/misskey.md new file mode 100644 index 0000000000..1e64a10e28 --- /dev/null +++ b/src/docs/th-TH/general/misskey.md @@ -0,0 +1,87 @@ +# Misskeyについて + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/th-TH/general/report-issue.md b/src/docs/th-TH/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/th-TH/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/th-TH/general/troubleshooting.md b/src/docs/th-TH/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/th-TH/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/ug-CN/admin/disable-timelines.md b/src/docs/ug-CN/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/ug-CN/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/ug-CN/admin/faq.md b/src/docs/ug-CN/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/ug-CN/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/ug-CN/advanced/aiscript.md b/src/docs/ug-CN/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/ug-CN/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/ug-CN/advanced/api.md b/src/docs/ug-CN/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/ug-CN/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/ug-CN/advanced/create-plugin.md b/src/docs/ug-CN/advanced/create-plugin.md new file mode 100644 index 0000000000..0d2fa19178 --- /dev/null +++ b/src/docs/ug-CN/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## メタデータ +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/ug-CN/advanced/develop-bot.md b/src/docs/ug-CN/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/ug-CN/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/ug-CN/advanced/reversi-bot.md b/src/docs/ug-CN/advanced/reversi-bot.md new file mode 100644 index 0000000000..7ab2a7212e --- /dev/null +++ b/src/docs/ug-CN/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### スイッチ +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/ug-CN/advanced/stream.md b/src/docs/ug-CN/advanced/stream.md new file mode 100644 index 0000000000..0e5edd2b0c --- /dev/null +++ b/src/docs/ug-CN/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/ug-CN/features/antenna.md b/src/docs/ug-CN/features/antenna.md new file mode 100644 index 0000000000..94ad9e4aea --- /dev/null +++ b/src/docs/ug-CN/features/antenna.md @@ -0,0 +1,4 @@ +# アンテナ +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/ug-CN/features/custom-emoji.md b/src/docs/ug-CN/features/custom-emoji.md new file mode 100644 index 0000000000..ed2e92be16 --- /dev/null +++ b/src/docs/ug-CN/features/custom-emoji.md @@ -0,0 +1,2 @@ +# カスタム絵文字 +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/ug-CN/features/deck.md b/src/docs/ug-CN/features/deck.md new file mode 100644 index 0000000000..8057e262fd --- /dev/null +++ b/src/docs/ug-CN/features/deck.md @@ -0,0 +1,18 @@ +# デッキ + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/ug-CN/features/drive.md b/src/docs/ug-CN/features/drive.md new file mode 100644 index 0000000000..b82a41082a --- /dev/null +++ b/src/docs/ug-CN/features/drive.md @@ -0,0 +1,17 @@ +# ドライブ +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/ug-CN/features/favorite.md b/src/docs/ug-CN/features/favorite.md new file mode 100644 index 0000000000..a0e5f8bf78 --- /dev/null +++ b/src/docs/ug-CN/features/favorite.md @@ -0,0 +1,4 @@ +# お気に入り +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/ug-CN/features/follow.md b/src/docs/ug-CN/features/follow.md new file mode 100644 index 0000000000..3c1ea7bbe0 --- /dev/null +++ b/src/docs/ug-CN/features/follow.md @@ -0,0 +1,2 @@ +# フォロー +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/ug-CN/features/keyboard-shortcut.md b/src/docs/ug-CN/features/keyboard-shortcut.md new file mode 100644 index 0000000000..cde62f29c4 --- /dev/null +++ b/src/docs/ug-CN/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
SئىزدەشSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/ug-CN/features/mfm.md b/src/docs/ug-CN/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/ug-CN/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/ug-CN/features/mute.md b/src/docs/ug-CN/features/mute.md new file mode 100644 index 0000000000..6a9608662a --- /dev/null +++ b/src/docs/ug-CN/features/mute.md @@ -0,0 +1,13 @@ +# ミュート + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/ug-CN/features/note.md b/src/docs/ug-CN/features/note.md new file mode 100644 index 0000000000..62440b25f9 --- /dev/null +++ b/src/docs/ug-CN/features/note.md @@ -0,0 +1,51 @@ +# ノート +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
パブリックホームフォロワーダイレクト
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/ug-CN/features/pages.md b/src/docs/ug-CN/features/pages.md new file mode 100644 index 0000000000..a7311b95e6 --- /dev/null +++ b/src/docs/ug-CN/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/ug-CN/features/reaction.md b/src/docs/ug-CN/features/reaction.md new file mode 100644 index 0000000000..4d479fd416 --- /dev/null +++ b/src/docs/ug-CN/features/reaction.md @@ -0,0 +1,11 @@ +# リアクション +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/ug-CN/features/silence.md b/src/docs/ug-CN/features/silence.md new file mode 100644 index 0000000000..7e26feab0d --- /dev/null +++ b/src/docs/ug-CN/features/silence.md @@ -0,0 +1,6 @@ +# サイレンス +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/ug-CN/features/theme.md b/src/docs/ug-CN/features/theme.md new file mode 100644 index 0000000000..a406f3433c --- /dev/null +++ b/src/docs/ug-CN/features/theme.md @@ -0,0 +1,68 @@ +# テーマ + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 関数 +wip diff --git a/src/docs/ug-CN/features/timeline.md b/src/docs/ug-CN/features/timeline.md new file mode 100644 index 0000000000..f431014f84 --- /dev/null +++ b/src/docs/ug-CN/features/timeline.md @@ -0,0 +1,31 @@ +# タイムライン +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## ホーム +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## ローカル +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## ソーシャル +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## グローバル +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 比較 +| ソース | | | タイムライン | | | +| ------------ | ----- | --- | ------ | ----- | ----- | +| ユーザー | 公開範囲 | ホーム | ローカル | ソーシャル | グローバル | +| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ | +| | ホーム | ✔ | | ✔ | | +| | フォロワー | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | +| リモート (未フォロー) | 公開 | | | | ✔ | +| | ホーム | | | | | +| | フォロワー | | | | | diff --git a/src/docs/ug-CN/features/widgets.md b/src/docs/ug-CN/features/widgets.md new file mode 100644 index 0000000000..a7c2c1d1d6 --- /dev/null +++ b/src/docs/ug-CN/features/widgets.md @@ -0,0 +1,7 @@ +# ウィジェット +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/ug-CN/general/apps.md b/src/docs/ug-CN/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/ug-CN/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/ug-CN/general/faq.md b/src/docs/ug-CN/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/ug-CN/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/ug-CN/general/glossary.md b/src/docs/ug-CN/general/glossary.md new file mode 100644 index 0000000000..1f403a06d2 --- /dev/null +++ b/src/docs/ug-CN/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Renote +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## インスタンス +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## サーバー +todo + +## サイレンス +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## 凍結 +アカウントが使用不可に設定されている状態。 + +## ドライブ +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## ノート +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## モデレーター +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## リモート +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## 連合 +サーバー上で作成された情報が他のサーバーに伝わること。 + +## ローカル +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/ug-CN/general/links.md b/src/docs/ug-CN/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/ug-CN/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/ug-CN/general/misskey.md b/src/docs/ug-CN/general/misskey.md new file mode 100644 index 0000000000..1e64a10e28 --- /dev/null +++ b/src/docs/ug-CN/general/misskey.md @@ -0,0 +1,87 @@ +# Misskeyについて + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/ug-CN/general/report-issue.md b/src/docs/ug-CN/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/ug-CN/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/ug-CN/general/troubleshooting.md b/src/docs/ug-CN/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/ug-CN/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/uk-UA/admin/disable-timelines.md b/src/docs/uk-UA/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/uk-UA/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/uk-UA/admin/faq.md b/src/docs/uk-UA/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/uk-UA/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/uk-UA/advanced/aiscript.md b/src/docs/uk-UA/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/uk-UA/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/uk-UA/advanced/api.md b/src/docs/uk-UA/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/uk-UA/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/uk-UA/advanced/create-plugin.md b/src/docs/uk-UA/advanced/create-plugin.md new file mode 100644 index 0000000000..5c60b47800 --- /dev/null +++ b/src/docs/uk-UA/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## Метадані +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/uk-UA/advanced/develop-bot.md b/src/docs/uk-UA/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/uk-UA/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/uk-UA/advanced/reversi-bot.md b/src/docs/uk-UA/advanced/reversi-bot.md new file mode 100644 index 0000000000..ae49801193 --- /dev/null +++ b/src/docs/uk-UA/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### Перемикач +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/uk-UA/advanced/stream.md b/src/docs/uk-UA/advanced/stream.md new file mode 100644 index 0000000000..978df6a211 --- /dev/null +++ b/src/docs/uk-UA/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## Канали +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/uk-UA/features/antenna.md b/src/docs/uk-UA/features/antenna.md new file mode 100644 index 0000000000..68a72648f5 --- /dev/null +++ b/src/docs/uk-UA/features/antenna.md @@ -0,0 +1,4 @@ +# Антени +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/uk-UA/features/custom-emoji.md b/src/docs/uk-UA/features/custom-emoji.md new file mode 100644 index 0000000000..2a130cb1d9 --- /dev/null +++ b/src/docs/uk-UA/features/custom-emoji.md @@ -0,0 +1,2 @@ +# Кастомні емоджі +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/uk-UA/features/deck.md b/src/docs/uk-UA/features/deck.md new file mode 100644 index 0000000000..acb80815c6 --- /dev/null +++ b/src/docs/uk-UA/features/deck.md @@ -0,0 +1,18 @@ +# Дек + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/uk-UA/features/drive.md b/src/docs/uk-UA/features/drive.md new file mode 100644 index 0000000000..0ab6865642 --- /dev/null +++ b/src/docs/uk-UA/features/drive.md @@ -0,0 +1,17 @@ +# Диск +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/uk-UA/features/favorite.md b/src/docs/uk-UA/features/favorite.md new file mode 100644 index 0000000000..31f7835fcf --- /dev/null +++ b/src/docs/uk-UA/features/favorite.md @@ -0,0 +1,4 @@ +# Обране +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/uk-UA/features/follow.md b/src/docs/uk-UA/features/follow.md new file mode 100644 index 0000000000..db2a4c3318 --- /dev/null +++ b/src/docs/uk-UA/features/follow.md @@ -0,0 +1,2 @@ +# Підписки +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/uk-UA/features/keyboard-shortcut.md b/src/docs/uk-UA/features/keyboard-shortcut.md new file mode 100644 index 0000000000..86820bd5f4 --- /dev/null +++ b/src/docs/uk-UA/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## Глобальна +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
SПошукSearch
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/uk-UA/features/mfm.md b/src/docs/uk-UA/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/uk-UA/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/uk-UA/features/mute.md b/src/docs/uk-UA/features/mute.md new file mode 100644 index 0000000000..da3cfcc368 --- /dev/null +++ b/src/docs/uk-UA/features/mute.md @@ -0,0 +1,13 @@ +# Ігнорувати + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/uk-UA/features/note.md b/src/docs/uk-UA/features/note.md new file mode 100644 index 0000000000..1ad874ca68 --- /dev/null +++ b/src/docs/uk-UA/features/note.md @@ -0,0 +1,51 @@ +# Записи +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## Поширити +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Видимість +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Публічний +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### Домівка +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Підписники +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Особисто +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
ПублічнийДомівкаПідписникиОсобисто
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## Закріпити +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/uk-UA/features/pages.md b/src/docs/uk-UA/features/pages.md new file mode 100644 index 0000000000..55cd74544b --- /dev/null +++ b/src/docs/uk-UA/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## Змінні +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/uk-UA/features/reaction.md b/src/docs/uk-UA/features/reaction.md new file mode 100644 index 0000000000..b73f7bf1d0 --- /dev/null +++ b/src/docs/uk-UA/features/reaction.md @@ -0,0 +1,11 @@ +# Реакції +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/uk-UA/features/silence.md b/src/docs/uk-UA/features/silence.md new file mode 100644 index 0000000000..654ffcaeab --- /dev/null +++ b/src/docs/uk-UA/features/silence.md @@ -0,0 +1,6 @@ +# Заглушити +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/uk-UA/features/theme.md b/src/docs/uk-UA/features/theme.md new file mode 100644 index 0000000000..baa74c33e4 --- /dev/null +++ b/src/docs/uk-UA/features/theme.md @@ -0,0 +1,68 @@ +# Тема + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 定数 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### Функції +wip diff --git a/src/docs/uk-UA/features/timeline.md b/src/docs/uk-UA/features/timeline.md new file mode 100644 index 0000000000..3acb613c73 --- /dev/null +++ b/src/docs/uk-UA/features/timeline.md @@ -0,0 +1,31 @@ +# Стрічка +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## Домівка +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## Локальна +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## Соціальна +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## Глобальна +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## Порівняння +| ソース | | | Стрічка | | | +| ------------ | ---------- | ------- | -------- | --------- | --------- | +| Користувачі | Видимість | Домівка | Локальна | Соціальна | Глобальна | +| ローカル (フォロー) | 公開 | ✔ | ✔ | ✔ | ✔ | +| | Домівка | ✔ | | ✔ | | +| | Підписники | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 公開 | ✔ | | ✔ | ✔ | +| | Домівка | ✔ | | ✔ | | +| | Підписники | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 公開 | | ✔ | ✔ | ✔ | +| | Домівка | | | | | +| | Підписники | | | | | +| リモート (未フォロー) | 公開 | | | | ✔ | +| | Домівка | | | | | +| | Підписники | | | | | diff --git a/src/docs/uk-UA/features/widgets.md b/src/docs/uk-UA/features/widgets.md new file mode 100644 index 0000000000..13e848fbe7 --- /dev/null +++ b/src/docs/uk-UA/features/widgets.md @@ -0,0 +1,7 @@ +# Віджети +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/uk-UA/general/apps.md b/src/docs/uk-UA/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/uk-UA/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/uk-UA/general/faq.md b/src/docs/uk-UA/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/uk-UA/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/uk-UA/general/glossary.md b/src/docs/uk-UA/general/glossary.md new file mode 100644 index 0000000000..809babdca4 --- /dev/null +++ b/src/docs/uk-UA/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## Поширити +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## Інстанс +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## Сервер +todo + +## Заглушити +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## Призупинити +アカウントが使用不可に設定されている状態。 + +## Диск +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## Записи +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## Модератор +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## Віддалені +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## Федіверс +サーバー上で作成された情報が他のサーバーに伝わること。 + +## Локальна +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/uk-UA/general/links.md b/src/docs/uk-UA/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/uk-UA/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/uk-UA/general/misskey.md b/src/docs/uk-UA/general/misskey.md new file mode 100644 index 0000000000..293d7093fb --- /dev/null +++ b/src/docs/uk-UA/general/misskey.md @@ -0,0 +1,87 @@ +# Про Misskey + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/uk-UA/general/report-issue.md b/src/docs/uk-UA/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/uk-UA/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/uk-UA/general/troubleshooting.md b/src/docs/uk-UA/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/uk-UA/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/zh-CN/admin/disable-timelines.md b/src/docs/zh-CN/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/zh-CN/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/zh-CN/admin/faq.md b/src/docs/zh-CN/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/zh-CN/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/zh-CN/advanced/aiscript.md b/src/docs/zh-CN/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/zh-CN/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/zh-CN/advanced/api.md b/src/docs/zh-CN/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/zh-CN/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/zh-CN/advanced/create-plugin.md b/src/docs/zh-CN/advanced/create-plugin.md new file mode 100644 index 0000000000..e444b9ed37 --- /dev/null +++ b/src/docs/zh-CN/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## 元数据 +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/zh-CN/advanced/develop-bot.md b/src/docs/zh-CN/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/zh-CN/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/zh-CN/advanced/reversi-bot.md b/src/docs/zh-CN/advanced/reversi-bot.md new file mode 100644 index 0000000000..c89ec0cbe3 --- /dev/null +++ b/src/docs/zh-CN/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### 开关 +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/zh-CN/advanced/stream.md b/src/docs/zh-CN/advanced/stream.md new file mode 100644 index 0000000000..f9584e8c7f --- /dev/null +++ b/src/docs/zh-CN/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## 频道 +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/zh-CN/features/antenna.md b/src/docs/zh-CN/features/antenna.md new file mode 100644 index 0000000000..4645df2d6e --- /dev/null +++ b/src/docs/zh-CN/features/antenna.md @@ -0,0 +1,4 @@ +# 天线 +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/zh-CN/features/custom-emoji.md b/src/docs/zh-CN/features/custom-emoji.md new file mode 100644 index 0000000000..9fc18a70fc --- /dev/null +++ b/src/docs/zh-CN/features/custom-emoji.md @@ -0,0 +1,2 @@ +# 自定义表情符号 +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/zh-CN/features/deck.md b/src/docs/zh-CN/features/deck.md new file mode 100644 index 0000000000..73e9efdaaf --- /dev/null +++ b/src/docs/zh-CN/features/deck.md @@ -0,0 +1,18 @@ +# Deck + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/zh-CN/features/drive.md b/src/docs/zh-CN/features/drive.md new file mode 100644 index 0000000000..4728ccf659 --- /dev/null +++ b/src/docs/zh-CN/features/drive.md @@ -0,0 +1,17 @@ +# 网盘 +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/zh-CN/features/favorite.md b/src/docs/zh-CN/features/favorite.md new file mode 100644 index 0000000000..587687f77d --- /dev/null +++ b/src/docs/zh-CN/features/favorite.md @@ -0,0 +1,4 @@ +# 收藏 +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/zh-CN/features/follow.md b/src/docs/zh-CN/features/follow.md new file mode 100644 index 0000000000..115a2786f6 --- /dev/null +++ b/src/docs/zh-CN/features/follow.md @@ -0,0 +1,2 @@ +# 关注中 +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/zh-CN/features/keyboard-shortcut.md b/src/docs/zh-CN/features/keyboard-shortcut.md new file mode 100644 index 0000000000..5279eb9bd4 --- /dev/null +++ b/src/docs/zh-CN/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## 全局 +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
S搜索Search
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/zh-CN/features/mfm.md b/src/docs/zh-CN/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/zh-CN/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/zh-CN/features/mute.md b/src/docs/zh-CN/features/mute.md new file mode 100644 index 0000000000..502e04ea80 --- /dev/null +++ b/src/docs/zh-CN/features/mute.md @@ -0,0 +1,13 @@ +# 屏蔽 + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/zh-CN/features/note.md b/src/docs/zh-CN/features/note.md new file mode 100644 index 0000000000..dbf223a4e3 --- /dev/null +++ b/src/docs/zh-CN/features/note.md @@ -0,0 +1,51 @@ +# 帖子 +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## 转发 +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 可见性 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### 公开 +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### 首页 +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### 关注者 +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### 指定用户 +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
公开首页关注者指定用户
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## 置顶 +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/zh-CN/features/pages.md b/src/docs/zh-CN/features/pages.md new file mode 100644 index 0000000000..d0d20dcbef --- /dev/null +++ b/src/docs/zh-CN/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 变量 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/zh-CN/features/reaction.md b/src/docs/zh-CN/features/reaction.md new file mode 100644 index 0000000000..61e7cabaf1 --- /dev/null +++ b/src/docs/zh-CN/features/reaction.md @@ -0,0 +1,11 @@ +# 回应 +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/zh-CN/features/silence.md b/src/docs/zh-CN/features/silence.md new file mode 100644 index 0000000000..8469784990 --- /dev/null +++ b/src/docs/zh-CN/features/silence.md @@ -0,0 +1,6 @@ +# 禁言 +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/zh-CN/features/theme.md b/src/docs/zh-CN/features/theme.md new file mode 100644 index 0000000000..62769e5c30 --- /dev/null +++ b/src/docs/zh-CN/features/theme.md @@ -0,0 +1,68 @@ +# 主题 + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 常量 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 函数 +wip diff --git a/src/docs/zh-CN/features/timeline.md b/src/docs/zh-CN/features/timeline.md new file mode 100644 index 0000000000..8ecda37ada --- /dev/null +++ b/src/docs/zh-CN/features/timeline.md @@ -0,0 +1,31 @@ +# 时间线 +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## 首页 +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## 本地 +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## 社交 +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## 全局 +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 比较 +| ソース | | | 时间线 | | | +| ------------ | --- | -- | --- | -- | -- | +| 用户 | 可见性 | 首页 | 本地 | 社交 | 全局 | +| ローカル (フォロー) | 发布 | ✔ | ✔ | ✔ | ✔ | +| | 首页 | ✔ | | ✔ | | +| | 关注者 | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 发布 | ✔ | | ✔ | ✔ | +| | 首页 | ✔ | | ✔ | | +| | 关注者 | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 发布 | | ✔ | ✔ | ✔ | +| | 首页 | | | | | +| | 关注者 | | | | | +| リモート (未フォロー) | 发布 | | | | ✔ | +| | 首页 | | | | | +| | 关注者 | | | | | diff --git a/src/docs/zh-CN/features/widgets.md b/src/docs/zh-CN/features/widgets.md new file mode 100644 index 0000000000..015cfc768e --- /dev/null +++ b/src/docs/zh-CN/features/widgets.md @@ -0,0 +1,7 @@ +# 小工具 +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/zh-CN/general/apps.md b/src/docs/zh-CN/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/zh-CN/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/zh-CN/general/faq.md b/src/docs/zh-CN/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/zh-CN/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/zh-CN/general/glossary.md b/src/docs/zh-CN/general/glossary.md new file mode 100644 index 0000000000..ed62212019 --- /dev/null +++ b/src/docs/zh-CN/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## 转发 +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## 实例 +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## 服务器 +todo + +## 禁言 +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## 冻结 +アカウントが使用不可に設定されている状態。 + +## 网盘 +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## 帖子 +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## 监察员 +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## 远程 +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## 联合 +サーバー上で作成された情報が他のサーバーに伝わること。 + +## 本地 +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/zh-CN/general/links.md b/src/docs/zh-CN/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/zh-CN/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/zh-CN/general/misskey.md b/src/docs/zh-CN/general/misskey.md new file mode 100644 index 0000000000..5c3aa2280f --- /dev/null +++ b/src/docs/zh-CN/general/misskey.md @@ -0,0 +1,87 @@ +# 关于 Misskey + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/zh-CN/general/report-issue.md b/src/docs/zh-CN/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/zh-CN/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/zh-CN/general/troubleshooting.md b/src/docs/zh-CN/general/troubleshooting.md new file mode 100644 index 0000000000..ebeacade2e --- /dev/null +++ b/src/docs/zh-CN/general/troubleshooting.md @@ -0,0 +1,36 @@ +# 故障排除 +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 diff --git a/src/docs/zh-TW/admin/disable-timelines.md b/src/docs/zh-TW/admin/disable-timelines.md new file mode 100644 index 0000000000..b081e35ab0 --- /dev/null +++ b/src/docs/zh-TW/admin/disable-timelines.md @@ -0,0 +1,8 @@ +# LTL/STL/GTLの無効化 +Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 + +LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +
⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。
+ +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 diff --git a/src/docs/zh-TW/admin/faq.md b/src/docs/zh-TW/admin/faq.md new file mode 100644 index 0000000000..317b4e0655 --- /dev/null +++ b/src/docs/zh-TW/admin/faq.md @@ -0,0 +1,5 @@ +# よくある質問 +ここでは、サーバー管理者向けのよくある質問を掲載しています。 + +## デフォルトテーマを設定したい +現在、デフォルトテーマ設定機能は実装されていません。 diff --git a/src/docs/zh-TW/advanced/aiscript.md b/src/docs/zh-TW/advanced/aiscript.md new file mode 100644 index 0000000000..604d17daa8 --- /dev/null +++ b/src/docs/zh-TW/advanced/aiscript.md @@ -0,0 +1,7 @@ +# AiScript +AiScriptは、Misskeyで使用できるスクリプト言語です。 + +
ℹ️ AiScript実装はMisskeyとは別リポジトリで、オープンソースで公開されています。
+ +## 使い方 +AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 diff --git a/src/docs/zh-TW/advanced/api.md b/src/docs/zh-TW/advanced/api.md new file mode 100644 index 0000000000..76019b6145 --- /dev/null +++ b/src/docs/zh-TW/advanced/api.md @@ -0,0 +1,58 @@ +# Misskey API + +MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。 + +APIを使い始めるには、まずアクセストークンを取得する必要があります。 このドキュメントでは、アクセストークンを取得する手順を説明した後、基本的なAPIの使い方を説明します。 + +## アクセストークンの取得 +基本的に、APIはリクエストにはアクセストークンが必要となります。 APIにリクエストするのが自分自身なのか、不特定の利用者に使ってもらうアプリケーションなのかによって取得手順は異なります。 + +* 前者の場合: [「自分自身のアクセストークンを手動発行する」](#自分自身のアクセストークンを手動発行する)に進む +* 後者の場合: [「アプリケーション利用者にアクセストークンの発行をリクエストする」](#アプリケーション利用者にアクセストークンの発行をリクエストする)に進む + +### 自分自身のアクセストークンを手動発行する +「設定 > API」で、自分のアクセストークンを発行できます。 + +[「APIの使い方」へ進む](#APIの使い方) + +### アプリケーション利用者にアクセストークンの発行をリクエストする +アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。 + +#### Step 1 + +UUIDを生成する。以後これをセッションIDと呼びます。 + +> このセッションIDは毎回生成し、使いまわさないようにしてください。 + +#### Step 2 + +`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。 +> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f` + +表示する際、URLにクエリパラメータとしていくつかのオプションを設定できます: +* `name` ... アプリケーション名 + * > 例: `MissDeck` +* `icon` ... アプリケーションのアイコン画像URL + * > 例: `https://missdeck.example.com/icon.png` +* `callback` ... 認証が終わった後にリダイレクトするURL + * > 例: `https://missdeck.example.com/callback` + * リダイレクト時には、`session`というクエリパラメータでセッションIDが付きます +* `permission` ... アプリケーションが要求する権限 + * > 例: `write:notes,write:following,read:drive` + * 要求する権限を`,`で区切って列挙します + * どのような権限があるかは[APIリファレンス](/api-doc)で確認できます + +#### Step 3 +ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。 + +レスポンスに含まれるプロパティ: +* `token` ... ユーザーのアクセストークン +* `user` ... ユーザーの情報 + +[「APIの使い方」へ進む](#APIの使い方) + +## APIの使い方 +**APIはすべてPOSTで、リクエスト/レスポンスともにJSON形式です。RESTではありません。** アクセストークンは、`i`というパラメータ名でリクエストに含めます。 + +* [APIリファレンス](/api-doc) +* [ストリーミングAPI](./stream) diff --git a/src/docs/zh-TW/advanced/create-plugin.md b/src/docs/zh-TW/advanced/create-plugin.md new file mode 100644 index 0000000000..05708c001a --- /dev/null +++ b/src/docs/zh-TW/advanced/create-plugin.md @@ -0,0 +1,74 @@ +# プラグインの作成 +Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 ここではプラグインの作成にあたってのメタデータ定義や、AiScript APIリファレンスを掲載します。 + +## 元資料 +プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。 + +### name +プラグイン名 + +### author +プラグイン作者 + +### version +プラグインバージョン。数値を指定してください。 + +### description +プラグインの説明 + +### permissions +プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。 + +### config +プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。 + +#### type +設定値の種類を表す文字列。以下から選択します。 string number boolean + +#### label +ユーザーに表示する設定名 + +#### description +設定の説明 + +#### default +設定のデフォルト値 + +## APIリファレンス +AiScript標準で組み込まれているAPIは掲載しません。 + +### Mk:dialog(title text type) +ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると info になります。 + +### Mk:confirm(title text type) +確認ダイアログを表示します。typeには以下の値が設定できます。 info success warn error question 省略すると question になります。 ユーザーが"OK"を選択した場合は true を、"キャンセル"を選択した場合は false が返ります。 + +### Mk:api(endpoint params) +Misskey APIにリクエストします。第一引数にエンドポイント名、第二引数にパラメータオブジェクトを渡します。 + +### Mk:save(key value) +任意の値に任意の名前を付けて永続化します。永続化した値は、AiScriptコンテキストが終了しても残り、Mk:loadで読み取ることができます。 + +### Mk:load(key) +Mk:saveで永続化した指定の名前の値を読み取ります。 + +### Plugin:register_post_form_action(title fn) +投稿フォームにアクションを追加します。第一引数にアクション名、第二引数にアクションが選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に投稿フォームオブジェクトが渡されます。 + +### Plugin:register_note_action(title fn) +ノートメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 + +### Plugin:register_user_action(title fn) +ユーザーメニューに項目を追加します。第一引数に項目名、第二引数に項目が選択された際のコールバック関数を渡します。 コールバック関数には、第一引数に対象のユーザーオブジェクトが渡されます。 + +### Plugin:register_note_view_interruptor(fn) +UIに表示されるノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:register_note_post_interruptor(fn) +ノート投稿時にノート情報を書き換えます。 コールバック関数には、第一引数に対象のノートオブジェクトが渡されます。 コールバック関数の返り値でノートが書き換えられます。 + +### Plugin:open_url(url) +第一引数に渡されたURLをブラウザの新しいタブで開きます。 + +### Plugin:config +プラグインの設定が格納されるオブジェクト。プラグイン定義のconfigで設定したキーで値が入ります。 diff --git a/src/docs/zh-TW/advanced/develop-bot.md b/src/docs/zh-TW/advanced/develop-bot.md new file mode 100644 index 0000000000..7f825e9bc4 --- /dev/null +++ b/src/docs/zh-TW/advanced/develop-bot.md @@ -0,0 +1,6 @@ +# Botの作成 +[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。 + +- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装 + +Botを作成したときは、プロフィール設定からBotフラグをオンにしておくことを強くおすすめします。 diff --git a/src/docs/zh-TW/advanced/reversi-bot.md b/src/docs/zh-TW/advanced/reversi-bot.md new file mode 100644 index 0000000000..987b24971c --- /dev/null +++ b/src/docs/zh-TW/advanced/reversi-bot.md @@ -0,0 +1,160 @@ +# MisskeyリバーシBotの開発 +Misskeyのリバーシ機能に対応したBotの開発方法をここに記します。 + +1. `games/reversi`ストリームに以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + +2. 対局への招待が来たら、ストリームから`invited`イベントが流れてくる + * イベントの中身に、`parent`という名前で対局へ誘ってきたユーザーの情報が含まれている + +3. `games/reversi/match`へ、`user_id`として`parent`の`id`が含まれたリクエストを送信する + +4. 上手くいくとゲーム情報が返ってくるので、`games/reversi-game`ストリームへ、以下のパラメータを付けて接続する: + * `i`: botアカウントのAPIキー + * `game`: `game`の`id` + +5. この間、相手がゲームの設定を変更するとその都度`update-settings`イベントが流れてくるので、必要であれば何かしらの処理を行う + +6. 設定に満足したら、`{ type: 'accept' }`メッセージをストリームに送信する + +7. ゲームが開始すると、`started`イベントが流れてくる + * イベントの中身にはゲーム情報が含まれている + +8. 石を打つには、ストリームに`{ type: 'set', pos: <位置> }`を送信する(位置の計算方法は後述) + +9. 相手または自分が石を打つと、ストリームから`set`イベントが流れてくる + * `color`として石の色が含まれている + * `pos`として位置情報が含まれている + +## 位置の計算法 +8x8のマップを考える場合、各マスの位置(インデックスと呼びます)は次のようになっています: +``` ++--+--+--+--+--+--+--+--+ +| 0| 1| 2| 3| 4| 5| 6| 7| ++--+--+--+--+--+--+--+--+ +| 8| 9|10|11|12|13|14|15| ++--+--+--+--+--+--+--+--+ +|16|17|18|19|20|21|22|23| +... +``` + +### X,Y座標 から インデックス に変換する +``` +pos = x + (y * mapWidth) +``` +`mapWidth`は、ゲーム情報の`map`から、次のようにして計算できます: +``` +mapWidth = map[0].length +``` + +### インデックス から X,Y座標 に変換する +``` +x = pos % mapWidth +y = Math.floor(pos / mapWidth) +``` + +## マップ情報 +マップ情報は、ゲーム情報の`map`に入っています。 文字列の配列になっており、ひとつひとつの文字がマス情報を表しています。 それをもとにマップのデザインを知る事が出来ます: +* `(スペース)` ... マス無し +* `-` ... マス +* `b` ... 初期配置される黒石 +* `w` ... 初期配置される白石 + +例えば、4*4の次のような単純なマップがあるとします: +```text ++---+---+---+---+ +| | | | | ++---+---+---+---+ +| | ○ | ● | | ++---+---+---+---+ +| | ● | ○ | | ++---+---+---+---+ +| | | | | ++---+---+---+---+ +``` + +この場合、マップデータはこのようになります: +```javascript +['----', '-wb-', '-bw-', '----'] +``` + +## ユーザーにフォームを提示して対話可能Botを作成する +ユーザーとのコミュニケーションを行うため、ゲームの設定画面でユーザーにフォームを提示することができます。 例えば、Botの強さをユーザーが設定できるようにする、といったシナリオが考えられます。 + +フォームを提示するには、`reversi-game`ストリームに次のメッセージを送信します: +```javascript +{ + type: 'init-form', + body: [フォームコントロールの配列] +} +``` + +フォームコントロールの配列については今から説明します。 フォームコントロールは、次のようなオブジェクトです: +```javascript +{ + id: 'switch1', + type: 'switch', + label: 'Enable hoge', + value: false +} +``` +`id` ... コントロールのID。 `type` ... コントロールの種類。後述します。 `label` ... コントロールと一緒に表記するテキスト。 `value` ... コントロールのデフォルト値。 + +### フォームの操作を受け取る +ユーザーがフォームを操作すると、ストリームから`update-form`イベントが流れてきます。 イベントの中身には、コントロールのIDと、ユーザーが設定した値が含まれています。 例えば、上で示したスイッチをユーザーがオンにしたとすると、次のイベントが流れてきます: +```javascript +{ + id: 'switch1', + value: true +} +``` + +### フォームコントロールの種類 +#### 開關 +type: `switch` スイッチを表示します。何かの機能をオン/オフさせたい場合に有用です。 + +##### プロパティ +`label` ... スイッチに表記するテキスト。 + +#### ラジオボタン +type: `radio` ラジオボタンを表示します。選択肢を提示するのに有用です。例えば、Botの強さを設定させるなどです。 + +##### プロパティ +`items` ... ラジオボタンの選択肢。例: +```javascript +items: [{ + label: '弱', + value: 1 +}, { + label: '中', + value: 2 +}, { + label: '強', + value: 3 +}] +``` + +#### スライダー +type: `slider` スライダーを表示します。 + +##### プロパティ +`min` ... スライダーの下限。 `max` ... スライダーの上限。 `step` ... 入力欄で刻むステップ値。 + +#### テキストボックス +type: `textbox` テキストボックスを表示します。ユーザーになにか入力させる一般的な用途に利用できます。 + +## ユーザーにメッセージを表示する +設定画面でユーザーと対話する、フォーム以外のもうひとつの方法がこれです。ユーザーになにかメッセージを表示することができます。 例えば、ユーザーがBotの対応していないモードやマップを選択したとき、警告を表示するなどです。 メッセージを表示するには、次のメッセージをストリームに送信します: +```javascript +{ + type: 'message', + body: { + text: 'メッセージ内容', + type: 'メッセージの種類' + } +} +``` +メッセージの種類: `success`, `info`, `warning`, `error`。 + +## 投了する +投了をするには、このエンドポイントにリクエストします。 diff --git a/src/docs/zh-TW/advanced/stream.md b/src/docs/zh-TW/advanced/stream.md new file mode 100644 index 0000000000..d5e4f1773a --- /dev/null +++ b/src/docs/zh-TW/advanced/stream.md @@ -0,0 +1,350 @@ +# ストリーミングAPI + +ストリーミングAPIを使うと、リアルタイムで様々な情報(例えばタイムラインに新しい投稿が流れてきた、メッセージが届いた、フォローされた、など)を受け取ったり、様々な操作を行ったりすることができます。 + +## ストリームに接続する + +ストリーミングAPIを利用するには、まずMisskeyサーバーに**websocket**接続する必要があります。 + +以下のURLに、`i`というパラメータ名で認証情報を含めて、websocket接続してください。例: +``` +%WS_URL%/streaming?i=xxxxxxxxxxxxxxx +``` + +認証情報は、自分のAPIキーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +
ℹ️ 認証情報の取得については、こちらのドキュメントをご確認ください。
+ +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## 頻道 +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +
ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
+ +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータがJSONでストリームに流れてきます: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDが設定されています。これで、このメッセージがどのチャンネルからのものなのか知ることができます。 +* `type`にはメッセージの種類が設定されます。チャンネルによって、どのような種類のメッセージが流れてくるかは異なります。 +* `body`にはメッセージの内容が設定されます。チャンネルによって、どのような内容のメッセージが流れてくるかは異なります。 + +### チャンネルに向けてメッセージを送信する +チャンネルによっては、メッセージを受け取るだけでなく、こちらから何かメッセージを送信し、何らかの操作を行える場合があります。 + +チャンネルにメッセージを送信するには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'channel', + body: { + id: 'foobar', + type: 'something', + body: { + some: 'thing' + } + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。これで、このメッセージがどのチャンネルに向けたものなのか識別させることができます。 +* `type`にはメッセージの種類を設定します。チャンネルによって、どのような種類のメッセージを受け付けるかは異なります。 +* `body`にはメッセージの内容を設定します。チャンネルによって、どのような内容のメッセージを受け付けるかは異なります。 + +### チャンネルから切断する +チャンネルから切断するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'disconnect', + body: { + id: 'foobar' + } +} +``` + +ここで、 +* `id`には前述したそのチャンネルに接続する際に設定したIDを設定します。 + +## ストリームを経由してAPIリクエストする + +ストリームを経由してAPIリクエストすると、HTTPリクエストを発生させずにAPIを利用できます。そのため、コードを簡潔にできたり、パフォーマンスの向上を見込めるかもしれません。 + +ストリームを経由してAPIリクエストするには、次のようなデータをJSONでストリームに送信します: +```json +{ + type: 'api', + body: { + id: 'xxxxxxxxxxxxxxxx', + endpoint: 'notes/create', + data: { + text: 'yee haw!' + } + } +} +``` + +ここで、 +* `id`には、APIのレスポンスを識別するための、APIリクエストごとの一意なIDを設定する必要があります。UUIDや、簡単な乱数のようなもので構いません。 +* `endpoint`には、あなたがリクエストしたいAPIのエンドポイントを指定します。 +* `data`には、エンドポイントのパラメータを含めます。 + +
ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。
+ +### レスポンスの受信 + +APIへリクエストすると、レスポンスがストリームから次のような形式で流れてきます。 + +```json +{ + type: 'api:xxxxxxxxxxxxxxxx', + body: { + ... + } +} +``` + +ここで、 +* `xxxxxxxxxxxxxxxx`の部分には、リクエストの際に設定された`id`が含まれています。これにより、どのリクエストに対するレスポンスなのか判別することができます。 +* `body`には、レスポンスが含まれています。 + +## 投稿のキャプチャ + +Misskeyは投稿のキャプチャと呼ばれる仕組みを提供しています。これは、指定した投稿のイベントをストリームで受け取る機能です。 + +例えばタイムラインを取得してユーザーに表示したとします。ここで誰かがそのタイムラインに含まれるどれかの投稿に対してリアクションしたとします。 + +しかし、クライアントからするとある投稿にリアクションが付いたことなどは知る由がないため、リアルタイムでリアクションをタイムライン上の投稿に反映して表示するといったことができません。 + +この問題を解決するために、Misskeyは投稿のキャプチャ機構を用意しています。投稿をキャプチャすると、その投稿に関するイベントを受け取ることができるため、リアルタイムでリアクションを反映させたりすることが可能になります。 + +### 投稿をキャプチャする + +投稿をキャプチャするには、ストリームに次のようなメッセージを送信します: + +```json +{ + type: 'subNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャしたい投稿の`id`を設定します。 + +このメッセージを送信すると、Misskeyにキャプチャを要請したことになり、以後、その投稿に関するイベントが流れてくるようになります。 + +例えば投稿にリアクションが付いたとすると、次のようなメッセージが流れてきます: + +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +ここで、 +* `body`内の`id`に、イベントを発生させた投稿のIDが設定されます。 +* `body`内の`type`に、イベントの種類が設定されます。 +* `body`内の`body`に、イベントの詳細が設定されます。 + +#### イベントの種類 + +##### `reacted` +その投稿にリアクションがされた時に発生します。 + +* `reaction`に、リアクションの種類が設定されます。 +* `userId`に、リアクションを行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'reacted', + body: { + reaction: 'like', + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +##### `deleted` +その投稿が削除された時に発生します。 + +* `deletedAt`に、削除日時が設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'deleted', + body: { + deletedAt: '2018-10-22T02:17:09.703Z' + } + } +} +``` + +##### `pollVoted` +その投稿に添付されたアンケートに投票された時に発生します。 + +* `choice`に、選択肢IDが設定されます。 +* `userId`に、投票を行ったユーザーのIDが設定されます。 + +例: +```json +{ + type: 'noteUpdated', + body: { + id: 'xxxxxxxxxxxxxxxx', + type: 'pollVoted', + body: { + choice: 2, + userId: 'yyyyyyyyyyyyyyyy' + } + } +} +``` + +### 投稿のキャプチャを解除する + +その投稿がもう画面に表示されなくなったりして、その投稿に関するイベントをもう受け取る必要がなくなったときは、キャプチャの解除を申請してください。 + +次のメッセージを送信します: + +```json +{ + type: 'unsubNote', + body: { + id: 'xxxxxxxxxxxxxxxx' + } +} +``` + +ここで、 +* `id`にキャプチャを解除したい投稿の`id`を設定します。 + +このメッセージを送信すると、以後、その投稿に関するイベントは流れてこないようになります。 + +# チャンネル一覧 +## `main` +アカウントに関する基本的な情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `renote` +自分の投稿がRenoteされた時に発生するイベントです。自分自身の投稿をRenoteしたときは発生しません。 + +#### `mention` +誰かからメンションされたときに発生するイベントです。 + +#### `readAllNotifications` +自分宛ての通知がすべて既読になったことを表すイベントです。このイベントを利用して、「通知があることを示すアイコン」のようなものをオフにしたりする等のケースが想定されます。 + +#### `meUpdated` +自分の情報が更新されたことを表すイベントです。 + +#### `follow` +自分が誰かをフォローしたときに発生するイベントです。 + +#### `unfollow` +自分が誰かのフォローを解除したときに発生するイベントです。 + +#### `followed` +自分が誰かにフォローされたときに発生するイベントです。 + +## `homeTimeline` +ホームタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +タイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `localTimeline` +ローカルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ローカルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `hybridTimeline` +ソーシャルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +ソーシャルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 + +## `globalTimeline` +グローバルタイムラインの投稿情報が流れてきます。このチャンネルにパラメータはありません。 + +### 流れてくるイベント一覧 + +#### `note` +グローバルタイムラインに新しい投稿が流れてきたときに発生するイベントです。 diff --git a/src/docs/zh-TW/features/antenna.md b/src/docs/zh-TW/features/antenna.md new file mode 100644 index 0000000000..0ce63a7a1a --- /dev/null +++ b/src/docs/zh-TW/features/antenna.md @@ -0,0 +1,4 @@ +# 天線 +アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 + +条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 diff --git a/src/docs/zh-TW/features/custom-emoji.md b/src/docs/zh-TW/features/custom-emoji.md new file mode 100644 index 0000000000..193cf3eb48 --- /dev/null +++ b/src/docs/zh-TW/features/custom-emoji.md @@ -0,0 +1,2 @@ +# 自訂表情符號 +カスタム絵文字は、インスタンスで用意された画像を絵文字のように使える機能です。 ノート、リアクション、チャット、自己紹介、名前などの場所で使うことができます。 カスタム絵文字をそれらの場所で使うには、絵文字ピッカーボタン(ある場合)を押すか、`:`を入力して絵文字サジェストを表示します。 テキスト内に`:foo:`のような形式の文字列が見つかると、`foo`の部分がカスタム絵文字名と解釈され、表示時には対応したカスタム絵文字に置き換わります。 diff --git a/src/docs/zh-TW/features/deck.md b/src/docs/zh-TW/features/deck.md new file mode 100644 index 0000000000..2e61618436 --- /dev/null +++ b/src/docs/zh-TW/features/deck.md @@ -0,0 +1,18 @@ +# 多欄模式 + +デッキは利用可能なUIのひとつです。「カラム」と呼ばれるビューを複数並べて表示させることで、カスタマイズ性が高く、情報量の多いUIが構築できることが特徴です。 + +## カラムの追加 +デッキの背景を右クリックし、「カラムを追加」して任意のカラムを追加できます。 + +## カラムの移動 +カラムは、ドラッグアンドドロップで他のカラムと位置を入れ替えることが出来るほか、カラムメニュー(カラムのヘッダー右クリック)から位置を移動させることもできます。 + +## カラムの水平分割 +カラムは左右だけでなく、上下に並べることもできます。 カラムメニューを開き、「左に重ねる」を選択すると、左のカラムの下に現在のカラムが移動します。 上下分割を解除するには、カラムメニューの「右に出す」を選択します。 + +## カラムの設定 +カラムメニューの「編集」を選択するとカラムの設定を編集できます。カラムの名前を変えたり、幅を変えたりできます。 + +## デッキの設定 +デッキに関する設定は、[settings/deck](/settings/deck)で行えます。 diff --git a/src/docs/zh-TW/features/drive.md b/src/docs/zh-TW/features/drive.md new file mode 100644 index 0000000000..5a5940e711 --- /dev/null +++ b/src/docs/zh-TW/features/drive.md @@ -0,0 +1,17 @@ +# 雲端硬碟 +ドライブは、Misskey上でファイルを管理できる機能です。 + +[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +
⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。
+ +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +
ℹ️ この項目が閲覧注意なわけではありません
+ +閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 + +このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 diff --git a/src/docs/zh-TW/features/favorite.md b/src/docs/zh-TW/features/favorite.md new file mode 100644 index 0000000000..6c52ec94b0 --- /dev/null +++ b/src/docs/zh-TW/features/favorite.md @@ -0,0 +1,4 @@ +# 我的最愛 +[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 + +ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 diff --git a/src/docs/zh-TW/features/follow.md b/src/docs/zh-TW/features/follow.md new file mode 100644 index 0000000000..1791f039bd --- /dev/null +++ b/src/docs/zh-TW/features/follow.md @@ -0,0 +1,2 @@ +# 追隨中 +ユーザーをフォローすると、タイムラインにそのユーザーの投稿が表示されるようになります。ただし、他のユーザーに対する返信は含まれません。 ユーザーをフォローするには、ユーザーページの「フォロー」ボタンをクリックします。フォローを解除するには、もう一度クリックします。 diff --git a/src/docs/zh-TW/features/keyboard-shortcut.md b/src/docs/zh-TW/features/keyboard-shortcut.md new file mode 100644 index 0000000000..87be6b7bcb --- /dev/null +++ b/src/docs/zh-TW/features/keyboard-shortcut.md @@ -0,0 +1,66 @@ +# キーボードショートカット + +## 公開 +これらのショートカットは基本的にどこでも使えます。 + + + + + + + + + + + +
ショートカット効果由来
P, N新規投稿Post, New, Note
Tタイムラインの最も新しい投稿にフォーカスTimeline, Top
Shift + N通知を表示/隠すNotifications
S搜尋Search
H, ?ヘルプを表示Help
+ +## 投稿にフォーカスされた状態 + + + + + + + + + + + + + + + + + + +
ショートカット効果由来
, K, Shift + Tab上の投稿にフォーカスを移動-
, J, Tab下の投稿にフォーカスを移動-
R返信フォームを開くReply
QRenoteフォームを開くQuote
Ctrl + Q即刻Renoteする(フォームを開かずに)-
E, A, +リアクションフォームを開くEmote, reAction
0~9数字に対応したリアクションをする(対応については後述)-
F, Bお気に入りに登録Favorite, Bookmark
Del, Ctrl + D投稿を削除Delete
M, O投稿に対するメニューを開くMore, Other
SCWで隠された部分を表示 or 隠すShow, See
Escフォーカスを外す-
+ +## Renoteフォーム + + + + + + + + + +
ショートカット効果由来
EnterRenoteする-
Qフォームを展開するQuote
Escフォームを閉じる-
+ +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 + + + + + + + + + + + + + +
ショートカット効果由来
, K上のリアクションにフォーカスを移動-
, J下のリアクションにフォーカスを移動-
, H, Shift + Tab左のリアクションにフォーカスを移動-
, L, Tab右のリアクションにフォーカスを移動-
Enter, Space, +リアクション確定-
0~9数字に対応したリアクションで確定-
Escリアクションするのをやめる-
diff --git a/src/docs/zh-TW/features/mfm.md b/src/docs/zh-TW/features/mfm.md new file mode 100644 index 0000000000..5be2df4f30 --- /dev/null +++ b/src/docs/zh-TW/features/mfm.md @@ -0,0 +1,12 @@ +# MFM +MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用できる専用のマークアップ言語です。 MFMで使用可能な構文は[MFMチートシート](/mfm-cheat-sheet)で確認できます。 + +## MFMが使用可能な場所の例 +- ノート本文 +- CW注釈 +- ユーザーの名前 +- ユーザーの自己紹介 + +## 開発者向け情報 +MFMのパーサー実装はライブラリとして公開されており、簡単にクライアントにMFMを組み込むことが可能です。 +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptパーサー実装 diff --git a/src/docs/zh-TW/features/mute.md b/src/docs/zh-TW/features/mute.md new file mode 100644 index 0000000000..7d17ef4328 --- /dev/null +++ b/src/docs/zh-TW/features/mute.md @@ -0,0 +1,13 @@ +# 靜音 + +ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります: + +* タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote) +* そのユーザーからの通知 +* メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴 + +ユーザーをミュートするには、対象のユーザーのユーザーページに表示されている「ミュート」ボタンを押します。 + +ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。 + +設定>ミュート から、自分がミュートしているユーザー一覧を確認することができます。 diff --git a/src/docs/zh-TW/features/note.md b/src/docs/zh-TW/features/note.md new file mode 100644 index 0000000000..63dc9e5267 --- /dev/null +++ b/src/docs/zh-TW/features/note.md @@ -0,0 +1,51 @@ +# 貼文 +ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 + +ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 + +ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 + +ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 + +## ノートを作成する +ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 +
ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。
+
ℹ️ テキストボックス内でCtrl + Enterを押すことでも投稿できます。
+ +## 轉發 +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +
⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません
+ +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 可見性 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### 公開 +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +
⚠️ アカウントがサイレンス状態の時は、この公開範囲は使用できません。
+ +### 首頁 +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### 追隨者 +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### 指定使用者 +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 + + + + +
公開首頁追隨者指定使用者
フォロワーのLTL/STL/GTL
非フォロワーのLTL/STL/GTL
+ +## 置頂 +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 diff --git a/src/docs/zh-TW/features/pages.md b/src/docs/zh-TW/features/pages.md new file mode 100644 index 0000000000..7e88aa9a47 --- /dev/null +++ b/src/docs/zh-TW/features/pages.md @@ -0,0 +1,10 @@ +# Pages + +## 變數 +変数を使うことで動的なページを作成できます。テキスト内で { 変数名 } と書くとそこに変数の値を埋め込めます。例えば Hello { thing } world! というテキストで、変数(thing)の値が ai だった場合、テキストは Hello ai world! になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から A、B、C と3つの変数を定義したとき、Cの中でABを参照することはできますが、Aの中でBCを参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 diff --git a/src/docs/zh-TW/features/reaction.md b/src/docs/zh-TW/features/reaction.md new file mode 100644 index 0000000000..df2a0b3745 --- /dev/null +++ b/src/docs/zh-TW/features/reaction.md @@ -0,0 +1,11 @@ +# 情感 +他の人のノートに、絵文字を付けて簡単にあなたの反応を伝えられる機能です。 リアクションするには、ノートの + アイコンをクリックしてピッカーを表示し、絵文字を選択します。 リアクションには[カスタム絵文字](./custom-emoji)も使用できます。 + +## リアクションピッカーのカスタマイズ +ピッカーに表示される絵文字を自分好みにカスタマイズすることができます。 設定の「リアクション」で設定します。 + +## リモート投稿へのリアクションについて +リアクションはMisskeyオリジナルの機能であるため、リモートインスタンスがMisskeyでない限りは、ほとんどの場合「Like」としてアクティビティが送信されます。一般的にはLikeは「お気に入り」として実装されているようです。 + +## リモートからのリアクションについて +リモートから「Like」アクティビティを受信したとき、Misskeyでは「👍」のリアクションとして解釈されます。 diff --git a/src/docs/zh-TW/features/silence.md b/src/docs/zh-TW/features/silence.md new file mode 100644 index 0000000000..8469784990 --- /dev/null +++ b/src/docs/zh-TW/features/silence.md @@ -0,0 +1,6 @@ +# 禁言 +サイレンスは、アカウントに設定される状態のひとつです。 + +アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 + +アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 diff --git a/src/docs/zh-TW/features/theme.md b/src/docs/zh-TW/features/theme.md new file mode 100644 index 0000000000..5c8306f090 --- /dev/null +++ b/src/docs/zh-TW/features/theme.md @@ -0,0 +1,68 @@ +# 外觀主題 + +テーマを設定して、Misskeyクライアントの見た目を変更できます。 + +## テーマの設定 +設定 > テーマ + +## テーマを作成する +テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 +``` js +{ + id: '17587283-dd92-4a2c-a22c-be0637c9e22a', + + name: 'Danboard', + author: 'syuilo', + + base: 'light', + + props: { + accent: 'rgb(218, 141, 49)', + bg: 'rgb(218, 212, 190)', + fg: 'rgb(115, 108, 92)', + panel: 'rgb(236, 232, 220)', + renote: 'rgb(100, 152, 106)', + link: 'rgb(100, 152, 106)', + mention: '@accent', + hashtag: 'rgb(100, 152, 106)', + header: 'rgba(239, 227, 213, 0.75)', + navBg: 'rgb(216, 206, 182)', + inputBorder: 'rgba(0, 0, 0, 0.1)', + }, +} + +``` + +* `id` ... テーマの一意なID。UUIDをおすすめします。 +* `name` ... テーマ名 +* `author` ... テーマの作者 +* `desc` ... テーマの説明(オプション) +* `base` ... 明るいテーマか、暗いテーマか + * `light`にすると明るいテーマになり、`dark`にすると暗いテーマになります。 + * テーマはここで設定されたベーステーマを継承します。 +* `props` ... テーマのスタイル定義。これから説明します。 + +### テーマのスタイル定義 +`props`下にはテーマのスタイルを定義します。 キーがCSSの変数名になり、バリューで中身を指定します。 なお、この`props`オブジェクトはベーステーマから継承されます。 ベーステーマは、このテーマの`base`が`light`なら[_light.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_light.json5)で、`dark`なら[_dark.json5](https://github.com/misskey-dev/misskey/blob/develop/src/client/themes/_dark.json5)です。 つまり、このテーマ内の`props`に`panel`というキーが無くても、そこにはベーステーマの`panel`があると見なされます。 + +#### バリューで使える構文 +* 16進数で表された色 + * 例: `#00ff00` +* `rgb(r, g, b)`形式で表された色 + * 例: `rgb(0, 255, 0)` +* `rgb(r, g, b, a)`形式で表された透明度を含む色 + * 例: `rgba(0, 255, 0, 0.5)` +* 他のキーの値の参照 + * `@{キー名}`と書くと他のキーの値の参照になります。`{キー名}`は参照したいキーの名前に置き換えます。 + * 例: `@panel` +* 定数(後述)の参照 + * `${定数名}`と書くと定数の参照になります。`{定数名}`は参照したい定数の名前に置き換えます。 + * 例: `$main` +* 関数(後述) + * `:{関数名}<{引数}<{色}` + +#### 常數 +「CSS変数として出力はしたくないが、他のCSS変数の値として使いまわしたい」値があるときは、定数を使うと便利です。 キー名を`$`で始めると、そのキーはCSS変数として出力されません。 + +#### 函数 +wip diff --git a/src/docs/zh-TW/features/timeline.md b/src/docs/zh-TW/features/timeline.md new file mode 100644 index 0000000000..ee3d2a8fd5 --- /dev/null +++ b/src/docs/zh-TW/features/timeline.md @@ -0,0 +1,31 @@ +# 時間軸 +タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。 + +## 首頁 +自分のフォローしているユーザーの投稿が流れます。HTLと略されます。 + +## 本地 +全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。LTLと略されます。 + +## 社群 +自分のフォローしているユーザーの投稿と、全てのローカルユーザーの「ホーム」指定されていない投稿が流れます。STLと略されます。 + +## 公開 +全てのローカルユーザーの「ホーム」指定されていない投稿と、サーバーに届いた全てのリモートユーザーの「ホーム」指定されていない投稿が流れます。GTLと略されます。 + +## 對比 +| ソース | | | 時間軸 | | | +| ------------ | --- | -- | --- | -- | -- | +| 使用者 | 可見性 | 首頁 | 本地 | 社群 | 公開 | +| ローカル (フォロー) | 發佈 | ✔ | ✔ | ✔ | ✔ | +| | 首頁 | ✔ | | ✔ | | +| | 追隨者 | ✔ | ✔ | ✔ | ✔ | +| リモート (フォロー) | 發佈 | ✔ | | ✔ | ✔ | +| | 首頁 | ✔ | | ✔ | | +| | 追隨者 | ✔ | | ✔ | ✔ | +| ローカル (未フォロー) | 發佈 | | ✔ | ✔ | ✔ | +| | 首頁 | | | | | +| | 追隨者 | | | | | +| リモート (未フォロー) | 發佈 | | | | ✔ | +| | 首頁 | | | | | +| | 追隨者 | | | | | diff --git a/src/docs/zh-TW/features/widgets.md b/src/docs/zh-TW/features/widgets.md new file mode 100644 index 0000000000..015cfc768e --- /dev/null +++ b/src/docs/zh-TW/features/widgets.md @@ -0,0 +1,7 @@ +# 小工具 +ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 + +ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 + +## 利用可能なウィジェット一覧 +todo diff --git a/src/docs/zh-TW/general/apps.md b/src/docs/zh-TW/general/apps.md new file mode 100644 index 0000000000..1f4c85fe8f --- /dev/null +++ b/src/docs/zh-TW/general/apps.md @@ -0,0 +1,6 @@ +# サードパーティアプリのリスト +## クライアント +todo + +## 連携サービス +todo diff --git a/src/docs/zh-TW/general/faq.md b/src/docs/zh-TW/general/faq.md new file mode 100644 index 0000000000..ecb664e32e --- /dev/null +++ b/src/docs/zh-TW/general/faq.md @@ -0,0 +1,22 @@ +# よくある質問 +ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +## 他のサーバーのユーザーをフォローするときは? +メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` + +## Renoteを削除するには? +Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 + +## URLのプレビューを表示させたくない +MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 + +## カスタム絵文字を追加したい +運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 + +## Botを開発したい +Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 diff --git a/src/docs/zh-TW/general/glossary.md b/src/docs/zh-TW/general/glossary.md new file mode 100644 index 0000000000..4515e7295c --- /dev/null +++ b/src/docs/zh-TW/general/glossary.md @@ -0,0 +1,83 @@ +# 用語集 +Misskeyに関する用語集です。 + +## AcitivityPub +(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 + +## AiScript +(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) + +## API +(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) + +## Bot +(読み: ぼっと) プログラムによって動作しているアカウント。 + +## CW +(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 + +## Fediverse +(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 + +## GTL +グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## HTL +ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## LTL +ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## MFM +(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) + +## NSFW +(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 + +## 轉發 +(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) + +## STL +ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) + +## 藍 +(読み: あい) Misskeyの看板娘(公式キャラクター)です。 + +## アクティブユーザー +インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 + +## 實例 +todo + +## コントロールパネル +インスタンスの設定画面のこと。 + +## 伺服器 +todo + +## 禁言 +ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) + +## 凍結 +アカウントが使用不可に設定されている状態。 + +## 雲端硬碟 +Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) + +## 貼文 +Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) + +## ミスキスト +Misskeyを使う人のこと。 + +## 板主 +スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 + +## 遠端 +他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 + +## 站台聯邦 +サーバー上で作成された情報が他のサーバーに伝わること。 + +## 本地 +自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 diff --git a/src/docs/zh-TW/general/links.md b/src/docs/zh-TW/general/links.md new file mode 100644 index 0000000000..d6b16856fb --- /dev/null +++ b/src/docs/zh-TW/general/links.md @@ -0,0 +1,5 @@ +# リンク集 + +## ライブラリ +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - JavaScriptのMisskey SDK +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - JavaScriptのMFMパーサー実装 diff --git a/src/docs/zh-TW/general/misskey.md b/src/docs/zh-TW/general/misskey.md new file mode 100644 index 0000000000..b4f2192e8e --- /dev/null +++ b/src/docs/zh-TW/general/misskey.md @@ -0,0 +1,87 @@ +# 關於 Misskey + +Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 + +## 歴史 +開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +
ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。
+ +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +分散(distributed)型とは、非中央集権(decentralized)とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に通信(連合、federation)することでコンテンツ共有ネットワーク(Fediverse)を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うとソフトウェアのソースコード(プログラム)が公開されていることです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +
ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリはGitHub上でホスティングされています。
+ +## 開発に参加する、プロジェクトを支援する +Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 + +### 機能を追加したり、バグを修正する +ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 + +### 議論に参加する +新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 + +### テキストを翻訳する +Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) + +### 感想を投稿する +不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 + +### ミスキストを増やす +ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 + +### 寄付をする +Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 + +また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 + +## クレジット +Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 + +## よくある質問 +### プロジェクトは何を目指していますか? +強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 + + +### 企業によって開発されていますか? +いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 + +### 誰が運営していますか? +Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 + +### どのサーバーを選べばいいですか? +[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 + +基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 + +### サーバーを建てるにはどうしたらいいですか? +Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 + +### どのような技術を使用していますか? +Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 +- サーバーサイド: Node.js +- データベース: PostgreSQL、Redis +- UIフレームワーク: Vue.js +- プログラミング言語: TypeScript + +また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 + +### Mastodonのフォークですか? +いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 + +### iOS/Androidのアプリはありますか? +公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 + +ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 + +### Misskeyのロゴ、アイコンはどこで入手できますか? +(準備中) + +### 時折目にする猫耳の可愛い女の子は? +Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! +
ℹ️ 藍ちゃんについてはこちらです。
diff --git a/src/docs/zh-TW/general/report-issue.md b/src/docs/zh-TW/general/report-issue.md new file mode 100644 index 0000000000..63527e32af --- /dev/null +++ b/src/docs/zh-TW/general/report-issue.md @@ -0,0 +1,8 @@ +# 不具合の報告 +不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 + +## 含める情報 +- Misskeyのバージョン([情報ページ](/about)で確認できます) +- お使いのブラウザの種類とバージョン +- お使いのOSの種類とバージョン +- 問題の再現手順 diff --git a/src/docs/zh-TW/general/troubleshooting.md b/src/docs/zh-TW/general/troubleshooting.md new file mode 100644 index 0000000000..4a35091299 --- /dev/null +++ b/src/docs/zh-TW/general/troubleshooting.md @@ -0,0 +1,36 @@ +# トラブルシューティング +
ℹ️ よくある質問も合わせてお役立てください。
+ +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 -- cgit v1.2.3-freya