From 7705a7928e1ea952b7185162844576575c1a4bab Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sat, 7 Aug 2021 20:39:27 +0900 Subject: [PATCH 01/40] fix bug that docs not loading --- src/server/web/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/web/index.ts b/src/server/web/index.ts index a732e7f5b4..30a53a703b 100644 --- a/src/server/web/index.ts +++ b/src/server/web/index.ts @@ -168,7 +168,7 @@ router.get('/docs.json', async ctx => { } docs.push({ - path: path.replace(`${dirPath}/`, '').split('.')[0], + path: path.match(new RegExp(`docs\/${lang}\/(.+?)\.md$`))![1], title: markdown.renderer.render(headingTokens, {}, {}), summary: markdown.renderer.render(firstParagrapfTokens, {}, {}), }); From 39a8942daf6085fbd919e73256d2f688d817ccd4 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sat, 7 Aug 2021 22:06:50 +0900 Subject: [PATCH 02/40] :art: --- src/client/ui/default.vue | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/client/ui/default.vue b/src/client/ui/default.vue index 645f67c123..3fc666c833 100644 --- a/src/client/ui/default.vue +++ b/src/client/ui/default.vue @@ -12,7 +12,7 @@ </div> </template> - <main class="main _panel" @contextmenu.stop="onContextmenu"> + <main class="main" @contextmenu.stop="onContextmenu"> <header class="header" @click="onHeaderClick"> <XHeader :info="pageInfo" :back-button="true" @back="back()"/> </header> @@ -292,7 +292,10 @@ export default defineComponent({ width: 750px; margin: 0 16px 0 0; background: var(--panel); + border-left: solid 1px var(--divider); + border-right: solid 1px var(--divider); border-radius: 0; + overflow: clip; --margin: 12px; > .header { @@ -343,6 +346,7 @@ export default defineComponent({ > .main { margin-top: 0; + border: solid 1px var(--divider); border-radius: var(--radius); } From c968633d155587083d280a48c6b425064f5f44c6 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sat, 7 Aug 2021 23:43:42 +0900 Subject: [PATCH 03/40] Update misskey.md --- src/docs/ja-JP/general/misskey.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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はこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 -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のホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 From 65858dab3e2656f44b0be668c994781cfb4b419d Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sun, 8 Aug 2021 12:19:10 +0900 Subject: [PATCH 04/40] Improve client --- src/client/components/drive.file.vue | 2 +- src/client/components/drive.vue | 2 +- src/client/components/emoji-picker-dialog.vue | 14 +- src/client/components/note-detailed.vue | 8 +- src/client/components/note.vue | 8 +- src/client/components/post-form-attaches.vue | 2 +- src/client/components/post-form.vue | 2 +- src/client/components/sample.vue | 2 +- src/client/components/ui/button.vue | 2 +- src/client/components/ui/input.vue | 6 +- .../ui/{modal-menu.vue => popup-menu.vue} | 29 +-- src/client/components/ui/popup.vue | 208 ++++++++++++++++++ src/client/components/ui/select.vue | 6 +- src/client/components/ui/textarea.vue | 6 +- src/client/menu.ts | 2 +- src/client/os.ts | 4 +- src/client/pages/advanced-theme-editor.vue | 2 +- src/client/pages/clip.vue | 2 +- src/client/pages/emojis.vue | 2 +- src/client/pages/instance/emojis.vue | 2 +- src/client/pages/instance/index.vue | 2 +- src/client/pages/messaging/index.vue | 2 +- src/client/pages/messaging/messaging-room.vue | 2 +- src/client/pages/settings/accounts.vue | 4 +- src/client/pages/settings/reaction.vue | 2 +- src/client/pages/timeline.vue | 6 +- src/client/pages/user/index.vue | 2 +- src/client/pages/welcome.entrance.a.vue | 2 +- src/client/pages/welcome.entrance.b.vue | 2 +- src/client/pages/welcome.entrance.c.vue | 2 +- src/client/scripts/select-file.ts | 2 +- src/client/ui/_common_/header.vue | 4 +- src/client/ui/_common_/sidebar.vue | 4 +- src/client/ui/chat/note.vue | 8 +- src/client/ui/chat/pages/channel.vue | 2 +- src/client/ui/chat/post-form.vue | 2 +- src/client/ui/default.header.vue | 4 +- src/client/ui/default.sidebar.vue | 4 +- src/client/widgets/timeline.vue | 2 +- 39 files changed, 286 insertions(+), 83 deletions(-) rename src/client/components/ui/{modal-menu.vue => popup-menu.vue} (51%) create mode 100644 src/client/components/ui/popup.vue diff --git a/src/client/components/drive.file.vue b/src/client/components/drive.file.vue index 3d20de23e9..b1be3d0cab 100644 --- a/src/client/components/drive.file.vue +++ b/src/client/components/drive.file.vue @@ -114,7 +114,7 @@ export default defineComponent({ if (this.selectMode) { this.$emit('chosen', this.file); } else { - os.modalMenu(this.getMenu(), ev.currentTarget || ev.target); + os.popupMenu(this.getMenu(), ev.currentTarget || ev.target); } }, diff --git a/src/client/components/drive.vue b/src/client/components/drive.vue index 98f7b54828..5dadf9a11f 100644 --- a/src/client/components/drive.vue +++ b/src/client/components/drive.vue @@ -629,7 +629,7 @@ export default defineComponent({ }, showMenu(ev) { - os.modalMenu(this.getMenu(), ev.currentTarget || ev.target); + os.popupMenu(this.getMenu(), ev.currentTarget || ev.target); }, onContextmenu(ev) { diff --git a/src/client/components/emoji-picker-dialog.vue b/src/client/components/emoji-picker-dialog.vue index 9400819a1f..5860acaa42 100644 --- a/src/client/components/emoji-picker-dialog.vue +++ b/src/client/components/emoji-picker-dialog.vue @@ -1,17 +1,17 @@ <template> -<MkModal ref="modal" :manual-showing="manualShowing" :src="src" :front="true" @click="$refs.modal.close()" @opening="opening" @close="$emit('close')" @closed="$emit('closed')"> - <MkEmojiPicker :show-pinned="showPinned" :as-reaction-picker="asReactionPicker" @chosen="chosen" ref="picker"/> -</MkModal> +<MkPopup ref="popup" :manual-showing="manualShowing" :src="src" :front="true" @click="$refs.popup.close()" @opening="opening" @close="$emit('close')" @closed="$emit('closed')"> + <MkEmojiPicker :show-pinned="showPinned" :as-reaction-picker="asReactionPicker" @chosen="chosen" ref="picker" style="box-shadow: 0 8px 32px rgb(0 0 0 / 30%);"/> +</MkPopup> </template> <script lang="ts"> import { defineComponent, markRaw } from 'vue'; -import MkModal from '@client/components/ui/modal.vue'; +import MkPopup from '@client/components/ui/popup.vue'; import MkEmojiPicker from '@client/components/emoji-picker.vue'; export default defineComponent({ components: { - MkModal, + MkPopup, MkEmojiPicker, }, @@ -33,7 +33,7 @@ export default defineComponent({ }, }, - emits: ['done', 'closed'], + emits: ['done', 'close', 'closed'], data() { return { @@ -44,7 +44,7 @@ export default defineComponent({ methods: { chosen(emoji: any) { this.$emit('done', emoji); - this.$refs.modal.close(); + this.$refs.popup.close(); }, opening() { diff --git a/src/client/components/note-detailed.vue b/src/client/components/note-detailed.vue index 6040ad378f..d601052927 100644 --- a/src/client/components/note-detailed.vue +++ b/src/client/components/note-detailed.vue @@ -454,7 +454,7 @@ export default defineComponent({ renote(viaKeyboard = false) { pleaseLogin(); this.blur(); - os.modalMenu([{ + os.popupMenu([{ text: this.$ts.renote, icon: 'fas fa-retweet', action: () => { @@ -743,14 +743,14 @@ export default defineComponent({ }, menu(viaKeyboard = false) { - os.modalMenu(this.getMenu(), this.$refs.menuButton, { + os.popupMenu(this.getMenu(), this.$refs.menuButton, { viaKeyboard }).then(this.focus); }, showRenoteMenu(viaKeyboard = false) { if (!this.isMyRenote) return; - os.modalMenu([{ + os.popupMenu([{ text: this.$ts.unrenote, icon: 'fas fa-trash-alt', danger: true, @@ -794,7 +794,7 @@ export default defineComponent({ async clip() { const clips = await os.api('clips/list'); - os.modalMenu([{ + os.popupMenu([{ icon: 'fas fa-plus', text: this.$ts.createNew, action: async () => { diff --git a/src/client/components/note.vue b/src/client/components/note.vue index 504d07c0eb..873b96030a 100644 --- a/src/client/components/note.vue +++ b/src/client/components/note.vue @@ -429,7 +429,7 @@ export default defineComponent({ renote(viaKeyboard = false) { pleaseLogin(); this.blur(); - os.modalMenu([{ + os.popupMenu([{ text: this.$ts.renote, icon: 'fas fa-retweet', action: () => { @@ -718,14 +718,14 @@ export default defineComponent({ }, menu(viaKeyboard = false) { - os.modalMenu(this.getMenu(), this.$refs.menuButton, { + os.popupMenu(this.getMenu(), this.$refs.menuButton, { viaKeyboard }).then(this.focus); }, showRenoteMenu(viaKeyboard = false) { if (!this.isMyRenote) return; - os.modalMenu([{ + os.popupMenu([{ text: this.$ts.unrenote, icon: 'fas fa-trash-alt', danger: true, @@ -769,7 +769,7 @@ export default defineComponent({ async clip() { const clips = await os.api('clips/list'); - os.modalMenu([{ + os.popupMenu([{ icon: 'fas fa-plus', text: this.$ts.createNew, action: async () => { diff --git a/src/client/components/post-form-attaches.vue b/src/client/components/post-form-attaches.vue index 27e20fdfa8..9365365653 100644 --- a/src/client/components/post-form-attaches.vue +++ b/src/client/components/post-form-attaches.vue @@ -112,7 +112,7 @@ export default defineComponent({ showFileMenu(file, ev: MouseEvent) { if (this.menu) return; - this.menu = os.modalMenu([{ + this.menu = os.popupMenu([{ text: this.$ts.renameFile, icon: 'fas fa-i-cursor', action: () => { this.rename(file) } diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue index ed2a934c26..969f8563a4 100644 --- a/src/client/components/post-form.vue +++ b/src/client/components/post-form.vue @@ -664,7 +664,7 @@ export default defineComponent({ }, showActions(ev) { - os.modalMenu(postFormActions.map(action => ({ + os.popupMenu(postFormActions.map(action => ({ text: action.title, action: () => { action.handler({ diff --git a/src/client/components/sample.vue b/src/client/components/sample.vue index 53eac0e2e6..bce02466f6 100644 --- a/src/client/components/sample.vue +++ b/src/client/components/sample.vue @@ -93,7 +93,7 @@ export default defineComponent({ }, async openMenu(ev) { - os.modalMenu([{ + os.popupMenu([{ type: 'label', text: 'Fruits' }, { diff --git a/src/client/components/ui/button.vue b/src/client/components/ui/button.vue index 8a83943825..000f6302a0 100644 --- a/src/client/components/ui/button.vue +++ b/src/client/components/ui/button.vue @@ -115,7 +115,7 @@ export default defineComponent({ z-index: 1; // 他コンポーネントのbox-shadowに隠されないようにするため display: block; min-width: 100px; - width: min-content; + width: max-content; padding: 8px 14px; text-align: center; font-weight: normal; diff --git a/src/client/components/ui/input.vue b/src/client/components/ui/input.vue index 3e2a5fb0dd..05ce5d3e15 100644 --- a/src/client/components/ui/input.vue +++ b/src/client/components/ui/input.vue @@ -210,8 +210,7 @@ export default defineComponent({ > .label { font-size: 0.85em; - padding: 0 0 6px 6px; - font-weight: bold; + padding: 0 0 8px 12px; user-select: none; &:empty { @@ -221,7 +220,7 @@ export default defineComponent({ > .caption { font-size: 0.8em; - padding: 6px 0 0 6px; + padding: 8px 0 0 12px; color: var(--fgTransparentWeak); &:empty { @@ -251,6 +250,7 @@ export default defineComponent({ outline: none; box-shadow: none; box-sizing: border-box; + transition: border-color 0.1s ease-out; &:hover { border-color: var(--inputBorderHover); diff --git a/src/client/components/ui/modal-menu.vue b/src/client/components/ui/popup-menu.vue similarity index 51% rename from src/client/components/ui/modal-menu.vue rename to src/client/components/ui/popup-menu.vue index aac4be9c3b..ceb3c47bf9 100644 --- a/src/client/components/ui/modal-menu.vue +++ b/src/client/components/ui/popup-menu.vue @@ -1,20 +1,25 @@ <template> -<MkModal ref="modal" :src="src" @click="$refs.modal.close()" @closed="$emit('closed')"> - <MkMenu :items="items" :align="align" @close="$refs.modal.close()" class="_popup"/> -</MkModal> +<MkPopup ref="popup" :src="src" @closed="$emit('closed')"> + <MkMenu :items="items" :align="align" @close="$refs.popup.close()" class="_popup" style="box-shadow: 0 8px 32px rgb(0 0 0 / 30%);"/> +</MkPopup> </template> <script lang="ts"> import { defineComponent } from 'vue'; -import MkModal from './modal.vue'; +import MkPopup from './popup.vue'; import MkMenu from './menu.vue'; export default defineComponent({ components: { - MkModal, + MkPopup, MkMenu, }, + props: { + showing: { + type: Boolean, + required: true, + }, items: { type: Array, required: true @@ -31,17 +36,7 @@ export default defineComponent({ required: false }, }, - emits: ['closed'], - computed: { - keymap(): any { - return { - 'esc': () => this.$refs.modal.close(), - }; - }, - }, + + emits: ['close', 'closed'], }); </script> - -<style lang="scss" scoped> - -</style> diff --git a/src/client/components/ui/popup.vue b/src/client/components/ui/popup.vue new file mode 100644 index 0000000000..85df3f432d --- /dev/null +++ b/src/client/components/ui/popup.vue @@ -0,0 +1,208 @@ +<template> +<transition :name="$store.state.animation ? 'popup-menu' : ''" :duration="$store.state.animation ? 300 : 0" appear @after-leave="onClosed" @enter="$emit('opening')" @after-enter="childRendered"> + <div v-show="manualShowing != null ? manualShowing : showing" class="ccczpooj" :class="{ front, fixed, top: position === 'top' }" ref="content" :style="{ pointerEvents: (manualShowing != null ? manualShowing : showing) ? 'auto' : 'none', '--transformOrigin': transformOrigin }"> + <slot></slot> + </div> +</transition> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue'; + +function getFixedContainer(el: Element | null): Element | null { + if (el == null || el.tagName === 'BODY') return null; + const position = window.getComputedStyle(el).getPropertyValue('position'); + if (position === 'fixed') { + return el; + } else { + return getFixedContainer(el.parentElement); + } +} + +export default defineComponent({ + props: { + manualShowing: { + type: Boolean, + required: false, + default: null, + }, + srcCenter: { + type: Boolean, + required: false + }, + src: { + required: false, + }, + position: { + required: false + }, + front: { + type: Boolean, + required: false, + default: false, + } + }, + + emits: ['opening', 'click', 'esc', 'close', 'closed'], + + data() { + return { + showing: true, + fixed: false, + transformOrigin: 'center', + contentClicking: false, + }; + }, + + mounted() { + this.$watch('src', () => { + this.fixed = getFixedContainer(this.src) != null; + this.$nextTick(() => { + this.align(); + }); + }, { immediate: true }); + + this.$nextTick(() => { + const popover = this.$refs.content as any; + new ResizeObserver((entries, observer) => { + this.align(); + }).observe(popover); + }); + + document.addEventListener('mousedown', this.onDocumentClick); + }, + + beforeUnmount() { + document.removeEventListener('mousedown', this.onDocumentClick); + }, + + methods: { + align() { + if (this.src == null) return; + + const popover = this.$refs.content as any; + + if (popover == null) return; + + const rect = this.src.getBoundingClientRect(); + + const width = popover.offsetWidth; + const height = popover.offsetHeight; + + let left; + let top; + + if (this.srcCenter) { + const x = rect.left + (this.fixed ? 0 : window.pageXOffset) + (this.src.offsetWidth / 2); + const y = rect.top + (this.fixed ? 0 : window.pageYOffset) + (this.src.offsetHeight / 2); + left = (x - (width / 2)); + top = (y - (height / 2)); + } else { + const x = rect.left + (this.fixed ? 0 : window.pageXOffset) + (this.src.offsetWidth / 2); + const y = rect.top + (this.fixed ? 0 : window.pageYOffset) + this.src.offsetHeight; + left = (x - (width / 2)); + top = y; + } + + if (this.fixed) { + if (left + width > window.innerWidth) { + left = window.innerWidth - width; + } + + if (top + height > window.innerHeight) { + top = window.innerHeight - height; + } + } else { + if (left + width - window.pageXOffset > window.innerWidth) { + left = window.innerWidth - width + window.pageXOffset - 1; + } + + if (top + height - window.pageYOffset > window.innerHeight) { + top = window.innerHeight - height + window.pageYOffset - 1; + } + } + + if (top < 0) { + top = 0; + } + + if (left < 0) { + left = 0; + } + + if (top > rect.top + (this.fixed ? 0 : window.pageYOffset)) { + this.transformOrigin = 'center top'; + } else { + this.transformOrigin = 'center'; + } + + popover.style.left = left + 'px'; + popover.style.top = top + 'px'; + }, + + childRendered() { + // モーダルコンテンツにマウスボタンが押され、コンテンツ外でマウスボタンが離されたときにモーダルバックグラウンドクリックと判定させないためにマウスイベントを監視しフラグ管理する + const content = this.$refs.content.children[0]; + content.addEventListener('mousedown', e => { + this.contentClicking = true; + window.addEventListener('mouseup', e => { + // click イベントより先に mouseup イベントが発生するかもしれないのでちょっと待つ + setTimeout(() => { + this.contentClicking = false; + }, 100); + }, { passive: true, once: true }); + }, { passive: true }); + }, + + close() { + this.showing = false; + this.$emit('close'); + }, + + onClosed() { + this.$emit('closed'); + }, + + onDocumentClick(ev) { + const flyoutElement = this.$refs.content; + let targetElement = ev.target; + do { + if (targetElement === flyoutElement) { + return; + } + targetElement = targetElement.parentNode; + } while (targetElement); + this.close(); + } + } +}); +</script> + +<style lang="scss" scoped> +.popup-menu-enter-active { + transform-origin: var(--transformOrigin); + transition: opacity 0.2s cubic-bezier(0, 0, 0.2, 1), transform 0.2s cubic-bezier(0, 0, 0.2, 1) !important; +} +.popup-menu-leave-active { + transform-origin: var(--transformOrigin); + transition: opacity 0.2s cubic-bezier(0.4, 0, 1, 1), transform 0.2s cubic-bezier(0.4, 0, 1, 1) !important; +} +.popup-menu-enter-from, .popup-menu-leave-to { + pointer-events: none; + opacity: 0; + transform: scale(0.9); +} + +.ccczpooj { + position: absolute; + z-index: 10000; + + &.fixed { + position: fixed; + } + + &.front { + z-index: 20000; + } +} +</style> diff --git a/src/client/components/ui/select.vue b/src/client/components/ui/select.vue index 987d4f194c..e9d43d8a64 100644 --- a/src/client/components/ui/select.vue +++ b/src/client/components/ui/select.vue @@ -155,8 +155,7 @@ export default defineComponent({ > .label { font-size: 0.85em; - padding: 0 0 6px 6px; - font-weight: bold; + padding: 0 0 8px 12px; user-select: none; &:empty { @@ -166,7 +165,7 @@ export default defineComponent({ > .caption { font-size: 0.8em; - padding: 6px 0 0 6px; + padding: 8px 0 0 12px; color: var(--fgTransparentWeak); &:empty { @@ -197,6 +196,7 @@ export default defineComponent({ box-shadow: none; box-sizing: border-box; cursor: pointer; + transition: border-color 0.1s ease-out; &:hover { border-color: var(--inputBorderHover); diff --git a/src/client/components/ui/textarea.vue b/src/client/components/ui/textarea.vue index a61324f25f..53a141f011 100644 --- a/src/client/components/ui/textarea.vue +++ b/src/client/components/ui/textarea.vue @@ -176,8 +176,7 @@ export default defineComponent({ > .label { font-size: 0.85em; - padding: 0 0 6px 6px; - font-weight: bold; + padding: 0 0 8px 12px; user-select: none; &:empty { @@ -187,7 +186,7 @@ export default defineComponent({ > .caption { font-size: 0.8em; - padding: 6px 0 0 6px; + padding: 8px 0 0 12px; color: var(--fgTransparentWeak); &:empty { @@ -218,6 +217,7 @@ export default defineComponent({ outline: none; box-shadow: none; box-sizing: border-box; + transition: border-color 0.1s ease-out; &:hover { border-color: var(--inputBorderHover); diff --git a/src/client/menu.ts b/src/client/menu.ts index 0b5341f970..8e65496cf3 100644 --- a/src/client/menu.ts +++ b/src/client/menu.ts @@ -143,7 +143,7 @@ export const menuDef = { title: 'switchUi', icon: 'fas fa-columns', action: (ev) => { - os.modalMenu([{ + os.popupMenu([{ text: i18n.locale.default, action: () => { localStorage.setItem('ui', 'default'); diff --git a/src/client/os.ts b/src/client/os.ts index 987844b2d2..284f982f06 100644 --- a/src/client/os.ts +++ b/src/client/os.ts @@ -368,10 +368,10 @@ export async function openEmojiPicker(src?: HTMLElement, opts, initialTextarea: }); } -export function modalMenu(items: any[], src?: HTMLElement, options?: { align?: string; viaKeyboard?: boolean }) { +export function popupMenu(items: any[], src?: HTMLElement, options?: { align?: string; viaKeyboard?: boolean }) { return new Promise((resolve, reject) => { let dispose; - popup(import('@client/components/ui/modal-menu.vue'), { + popup(import('@client/components/ui/popup-menu.vue'), { items, src, align: options?.align, diff --git a/src/client/pages/advanced-theme-editor.vue b/src/client/pages/advanced-theme-editor.vue index b40d9808ca..c03d88b82d 100644 --- a/src/client/pages/advanced-theme-editor.vue +++ b/src/client/pages/advanced-theme-editor.vue @@ -272,7 +272,7 @@ export default defineComponent({ showTypeMenu(e: MouseEvent) { return new Promise<ThemeValue>((resolve) => { - os.modalMenu([{ + os.popupMenu([{ text: this.$ts._theme.defaultValue, action: () => resolve(null), }, { diff --git a/src/client/pages/clip.vue b/src/client/pages/clip.vue index 8777975557..e4b00d5e28 100644 --- a/src/client/pages/clip.vue +++ b/src/client/pages/clip.vue @@ -79,7 +79,7 @@ export default defineComponent({ methods: { menu(ev) { - os.modalMenu([this.isOwned ? { + os.popupMenu([this.isOwned ? { icon: 'fas fa-pencil-alt', text: this.$ts.edit, action: async () => { diff --git a/src/client/pages/emojis.vue b/src/client/pages/emojis.vue index 435727e196..391aff8297 100644 --- a/src/client/pages/emojis.vue +++ b/src/client/pages/emojis.vue @@ -80,7 +80,7 @@ export default defineComponent({ methods: { menu(emoji, ev) { - os.modalMenu([{ + os.popupMenu([{ type: 'label', text: ':' + emoji.name + ':', }, { diff --git a/src/client/pages/instance/emojis.vue b/src/client/pages/instance/emojis.vue index e971ca942e..7badc9da02 100644 --- a/src/client/pages/instance/emojis.vue +++ b/src/client/pages/instance/emojis.vue @@ -146,7 +146,7 @@ export default defineComponent({ }, remoteMenu(emoji, ev) { - os.modalMenu([{ + os.popupMenu([{ type: 'label', text: ':' + emoji.name + ':', }, { diff --git a/src/client/pages/instance/index.vue b/src/client/pages/instance/index.vue index 90dd29d55f..612bfa762a 100644 --- a/src/client/pages/instance/index.vue +++ b/src/client/pages/instance/index.vue @@ -167,7 +167,7 @@ export default defineComponent({ }; const lookup = (ev) => { - os.modalMenu([{ + os.popupMenu([{ text: i18n.locale.user, icon: 'fas fa-user', action: () => { diff --git a/src/client/pages/messaging/index.vue b/src/client/pages/messaging/index.vue index 1d4e816fb9..1e0d4dc64c 100644 --- a/src/client/pages/messaging/index.vue +++ b/src/client/pages/messaging/index.vue @@ -116,7 +116,7 @@ export default defineComponent({ }, start(ev) { - os.modalMenu([{ + os.popupMenu([{ text: this.$ts.messagingWithUser, icon: 'fas fa-user', action: () => { this.startUser() } diff --git a/src/client/pages/messaging/messaging-room.vue b/src/client/pages/messaging/messaging-room.vue index 24ed105913..b6a2fbd3d4 100644 --- a/src/client/pages/messaging/messaging-room.vue +++ b/src/client/pages/messaging/messaging-room.vue @@ -320,7 +320,7 @@ const Component = defineComponent({ menu(ev) { const path = this.groupId ? `/my/messaging/group/${this.groupId}` : `/my/messaging/${this.userAcct}`; - os.modalMenu([this.inWindow ? undefined : { + os.popupMenu([this.inWindow ? undefined : { text: this.$ts.openInWindow, icon: 'fas fa-window-maximize', action: () => { diff --git a/src/client/pages/settings/accounts.vue b/src/client/pages/settings/accounts.vue index a3fa0d4eb0..53e28bdf6f 100644 --- a/src/client/pages/settings/accounts.vue +++ b/src/client/pages/settings/accounts.vue @@ -64,7 +64,7 @@ export default defineComponent({ methods: { menu(account, ev) { - os.modalMenu([{ + os.popupMenu([{ text: this.$ts.switch, icon: 'fas fa-exchange-alt', action: () => this.switchAccount(account), @@ -77,7 +77,7 @@ export default defineComponent({ }, addAccount(ev) { - os.modalMenu([{ + os.popupMenu([{ text: this.$ts.existingAccount, action: () => { this.addExistingAccount(); }, }, { diff --git a/src/client/pages/settings/reaction.vue b/src/client/pages/settings/reaction.vue index 9bffd5f903..a0024234e4 100644 --- a/src/client/pages/settings/reaction.vue +++ b/src/client/pages/settings/reaction.vue @@ -94,7 +94,7 @@ export default defineComponent({ }, remove(reaction, ev) { - os.modalMenu([{ + os.popupMenu([{ text: this.$ts.remove, action: () => { this.reactions = this.reactions.filter(x => x !== reaction) diff --git a/src/client/pages/timeline.vue b/src/client/pages/timeline.vue index 55c4743264..a6a0e6987f 100644 --- a/src/client/pages/timeline.vue +++ b/src/client/pages/timeline.vue @@ -147,7 +147,7 @@ export default defineComponent({ this.saveSrc(); } })); - os.modalMenu(items, ev.currentTarget || ev.target); + os.popupMenu(items, ev.currentTarget || ev.target); }, async chooseAntenna(ev) { @@ -161,7 +161,7 @@ export default defineComponent({ this.saveSrc(); } })); - os.modalMenu(items, ev.currentTarget || ev.target); + os.popupMenu(items, ev.currentTarget || ev.target); }, async chooseChannel(ev) { @@ -177,7 +177,7 @@ export default defineComponent({ this.$router.push(`/channels/${channel.id}`); } })); - os.modalMenu(items, ev.currentTarget || ev.target); + os.popupMenu(items, ev.currentTarget || ev.target); }, saveSrc() { diff --git a/src/client/pages/user/index.vue b/src/client/pages/user/index.vue index dec5ec39e2..9cf424b127 100644 --- a/src/client/pages/user/index.vue +++ b/src/client/pages/user/index.vue @@ -338,7 +338,7 @@ export default defineComponent({ }, menu(ev) { - os.modalMenu(getUserMenu(this.user), ev.currentTarget || ev.target); + os.popupMenu(getUserMenu(this.user), ev.currentTarget || ev.target); }, parallaxLoop() { diff --git a/src/client/pages/welcome.entrance.a.vue b/src/client/pages/welcome.entrance.a.vue index da3c694265..299271c347 100644 --- a/src/client/pages/welcome.entrance.a.vue +++ b/src/client/pages/welcome.entrance.a.vue @@ -117,7 +117,7 @@ export default defineComponent({ }, showMenu(ev) { - os.modalMenu([{ + os.popupMenu([{ text: this.$t('aboutX', { x: instanceName }), icon: 'fas fa-info-circle', action: () => { diff --git a/src/client/pages/welcome.entrance.b.vue b/src/client/pages/welcome.entrance.b.vue index d108eb7d94..a5c12f09e2 100644 --- a/src/client/pages/welcome.entrance.b.vue +++ b/src/client/pages/welcome.entrance.b.vue @@ -101,7 +101,7 @@ export default defineComponent({ }, showMenu(ev) { - os.modalMenu([{ + os.popupMenu([{ text: this.$t('aboutX', { x: instanceName }), icon: 'fas fa-info-circle', action: () => { diff --git a/src/client/pages/welcome.entrance.c.vue b/src/client/pages/welcome.entrance.c.vue index 93811e98fb..2c8db6e264 100644 --- a/src/client/pages/welcome.entrance.c.vue +++ b/src/client/pages/welcome.entrance.c.vue @@ -121,7 +121,7 @@ export default defineComponent({ }, showMenu(ev) { - os.modalMenu([{ + os.popupMenu([{ text: this.$t('aboutX', { x: instanceName }), icon: 'fas fa-info-circle', action: () => { diff --git a/src/client/scripts/select-file.ts b/src/client/scripts/select-file.ts index 9d7146e215..f7b971e113 100644 --- a/src/client/scripts/select-file.ts +++ b/src/client/scripts/select-file.ts @@ -69,7 +69,7 @@ export function selectFile(src: any, label: string | null, multiple = false) { }); }; - os.modalMenu([label ? { + os.popupMenu([label ? { text: label, type: 'label' } : undefined, { diff --git a/src/client/ui/_common_/header.vue b/src/client/ui/_common_/header.vue index 24b9046717..67bb3abb93 100644 --- a/src/client/ui/_common_/header.vue +++ b/src/client/ui/_common_/header.vue @@ -31,7 +31,7 @@ <script lang="ts"> import { defineComponent } from 'vue'; -import { modalMenu } from '@client/os'; +import { popupMenu } from '@client/os'; import { url } from '@client/config'; export default defineComponent({ @@ -121,7 +121,7 @@ export default defineComponent({ if (menu.length > 0) menu.push(null); menu = menu.concat(this.menu); } - modalMenu(menu, ev.currentTarget || ev.target); + popupMenu(menu, ev.currentTarget || ev.target); } } }); diff --git a/src/client/ui/_common_/sidebar.vue b/src/client/ui/_common_/sidebar.vue index 073907cde9..ffa3a67b13 100644 --- a/src/client/ui/_common_/sidebar.vue +++ b/src/client/ui/_common_/sidebar.vue @@ -150,7 +150,7 @@ export default defineComponent({ }); })); - os.modalMenu([...[{ + os.popupMenu([...[{ type: 'link', text: this.$ts.profile, to: `/@${ this.$i.username }`, @@ -159,7 +159,7 @@ export default defineComponent({ icon: 'fas fa-plus', text: this.$ts.addAccount, action: () => { - os.modalMenu([{ + os.popupMenu([{ text: this.$ts.existingAccount, action: () => { this.addAccount(); }, }, { diff --git a/src/client/ui/chat/note.vue b/src/client/ui/chat/note.vue index 7a525d9edb..6d2b9bbf54 100644 --- a/src/client/ui/chat/note.vue +++ b/src/client/ui/chat/note.vue @@ -432,7 +432,7 @@ export default defineComponent({ pleaseLogin(); this.operating = true; this.blur(); - os.modalMenu([{ + os.popupMenu([{ text: this.$ts.renote, icon: 'fas fa-retweet', action: () => { @@ -726,7 +726,7 @@ export default defineComponent({ menu(viaKeyboard = false) { this.operating = true; - os.modalMenu(this.getMenu(), this.$refs.menuButton, { + os.popupMenu(this.getMenu(), this.$refs.menuButton, { viaKeyboard }).then(() => { this.operating = false; @@ -736,7 +736,7 @@ export default defineComponent({ showRenoteMenu(viaKeyboard = false) { if (!this.isMyRenote) return; - os.modalMenu([{ + os.popupMenu([{ text: this.$ts.unrenote, icon: 'fas fa-trash-alt', danger: true, @@ -780,7 +780,7 @@ export default defineComponent({ async clip() { const clips = await os.api('clips/list'); - os.modalMenu([{ + os.popupMenu([{ icon: 'fas fa-plus', text: this.$ts.createNew, action: async () => { diff --git a/src/client/ui/chat/pages/channel.vue b/src/client/ui/chat/pages/channel.vue index 76b334487e..d11d40b210 100644 --- a/src/client/ui/chat/pages/channel.vue +++ b/src/client/ui/chat/pages/channel.vue @@ -178,7 +178,7 @@ export default defineComponent({ }, openChannelMenu(ev) { - os.modalMenu([{ + os.popupMenu([{ text: this.$ts.copyUrl, icon: 'fas fa-link', action: () => { diff --git a/src/client/ui/chat/post-form.vue b/src/client/ui/chat/post-form.vue index 6812eb31ba..0f9a206fab 100644 --- a/src/client/ui/chat/post-form.vue +++ b/src/client/ui/chat/post-form.vue @@ -594,7 +594,7 @@ export default defineComponent({ }, showActions(ev) { - os.modalMenu(postFormActions.map(action => ({ + os.popupMenu(postFormActions.map(action => ({ text: action.title, action: () => { action.handler({ diff --git a/src/client/ui/default.header.vue b/src/client/ui/default.header.vue index a67883020f..df2e99f13a 100644 --- a/src/client/ui/default.header.vue +++ b/src/client/ui/default.header.vue @@ -116,7 +116,7 @@ export default defineComponent({ }); })); - os.modalMenu([...[{ + os.popupMenu([...[{ type: 'link', text: this.$ts.profile, to: `/@${ this.$i.username }`, @@ -125,7 +125,7 @@ export default defineComponent({ icon: 'fas fa-plus', text: this.$ts.addAccount, action: () => { - os.modalMenu([{ + os.popupMenu([{ text: this.$ts.existingAccount, action: () => { this.addAccount(); }, }, { diff --git a/src/client/ui/default.sidebar.vue b/src/client/ui/default.sidebar.vue index 2e0336878d..dd6d4d1516 100644 --- a/src/client/ui/default.sidebar.vue +++ b/src/client/ui/default.sidebar.vue @@ -136,7 +136,7 @@ export default defineComponent({ }); })); - os.modalMenu([...[{ + os.popupMenu([...[{ type: 'link', text: this.$ts.profile, to: `/@${ this.$i.username }`, @@ -145,7 +145,7 @@ export default defineComponent({ icon: 'fas fa-plus', text: this.$ts.addAccount, action: () => { - os.modalMenu([{ + os.popupMenu([{ text: this.$ts.existingAccount, action: () => { this.addAccount(); }, }, { diff --git a/src/client/widgets/timeline.vue b/src/client/widgets/timeline.vue index 8548574afc..bd951d8565 100644 --- a/src/client/widgets/timeline.vue +++ b/src/client/widgets/timeline.vue @@ -86,7 +86,7 @@ export default defineComponent({ this.setSrc('list'); } })); - os.modalMenu([{ + os.popupMenu([{ text: this.$ts._timelines.home, icon: 'fas fa-home', action: () => { this.setSrc('home') } From b3c5c3f0ea07311f42af788daad24d6d23b7148a Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sun, 8 Aug 2021 12:45:44 +0900 Subject: [PATCH 05/40] Improve usability --- src/client/components/ui/popup.vue | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/client/components/ui/popup.vue b/src/client/components/ui/popup.vue index 85df3f432d..c98e17fa25 100644 --- a/src/client/components/ui/popup.vue +++ b/src/client/components/ui/popup.vue @@ -7,7 +7,7 @@ </template> <script lang="ts"> -import { defineComponent } from 'vue'; +import { defineComponent, PropType } from 'vue'; function getFixedContainer(el: Element | null): Element | null { if (el == null || el.tagName === 'BODY') return null; @@ -31,6 +31,7 @@ export default defineComponent({ required: false }, src: { + type: Object as PropType<HTMLElement>, required: false, }, position: { @@ -56,6 +57,9 @@ export default defineComponent({ mounted() { this.$watch('src', () => { + if (this.src) { + this.src.style.pointerEvents = 'none'; + } this.fixed = getFixedContainer(this.src) != null; this.$nextTick(() => { this.align(); @@ -69,7 +73,7 @@ export default defineComponent({ }).observe(popover); }); - document.addEventListener('mousedown', this.onDocumentClick); + document.addEventListener('mousedown', this.onDocumentClick, { passive: true }); }, beforeUnmount() { @@ -155,6 +159,7 @@ export default defineComponent({ }, close() { + if (this.src) this.src.style.pointerEvents = 'auto'; this.showing = false; this.$emit('close'); }, From 9e03335ff8e741dbb4e41db9e248cd86944afd27 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sun, 8 Aug 2021 13:02:58 +0900 Subject: [PATCH 06/40] Improve client --- src/client/components/signin.vue | 6 ++---- src/client/components/ui/popup-menu.vue | 4 ---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/client/components/signin.vue b/src/client/components/signin.vue index 0c6cd3440a..f1e5d6afe5 100755 --- a/src/client/components/signin.vue +++ b/src/client/components/signin.vue @@ -3,13 +3,11 @@ <div class="auth _section"> <div class="avatar" :style="{ backgroundImage: user ? `url('${ user.avatarUrl }')` : null }" v-show="withAvatar"></div> <div class="normal-signin" v-if="!totpLogin"> - <MkInput v-model="username" type="text" pattern="^[a-zA-Z0-9_]+$" spellcheck="false" autofocus required @update:modelValue="onUsernameChange"> - <template #label>{{ $ts.username }}</template> + <MkInput v-model="username" :placeholder="$ts.username" type="text" pattern="^[a-zA-Z0-9_]+$" spellcheck="false" autofocus required @update:modelValue="onUsernameChange"> <template #prefix>@</template> <template #suffix>@{{ host }}</template> </MkInput> - <MkInput v-model="password" type="password" :with-password-toggle="true" v-if="!user || user && !user.usePasswordLessLogin" required> - <template #label>{{ $ts.password }}</template> + <MkInput v-model="password" :placeholder="$ts.password" type="password" :with-password-toggle="true" v-if="!user || user && !user.usePasswordLessLogin" required> <template #prefix><i class="fas fa-lock"></i></template> <template #caption><button class="_textButton" @click="resetPassword" type="button">{{ $ts.forgotPassword }}</button></template> </MkInput> diff --git a/src/client/components/ui/popup-menu.vue b/src/client/components/ui/popup-menu.vue index ceb3c47bf9..cc4c83667f 100644 --- a/src/client/components/ui/popup-menu.vue +++ b/src/client/components/ui/popup-menu.vue @@ -16,10 +16,6 @@ export default defineComponent({ }, props: { - showing: { - type: Boolean, - required: true, - }, items: { type: Array, required: true From 82150bd5b84e31f79d606b22dd8041e038ce67f1 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sun, 8 Aug 2021 16:30:30 +0900 Subject: [PATCH 07/40] :art: --- src/client/components/emoji-picker-dialog.vue | 2 +- src/client/components/ui/popup-menu.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/client/components/emoji-picker-dialog.vue b/src/client/components/emoji-picker-dialog.vue index 5860acaa42..9aca47f547 100644 --- a/src/client/components/emoji-picker-dialog.vue +++ b/src/client/components/emoji-picker-dialog.vue @@ -1,6 +1,6 @@ <template> <MkPopup ref="popup" :manual-showing="manualShowing" :src="src" :front="true" @click="$refs.popup.close()" @opening="opening" @close="$emit('close')" @closed="$emit('closed')"> - <MkEmojiPicker :show-pinned="showPinned" :as-reaction-picker="asReactionPicker" @chosen="chosen" ref="picker" style="box-shadow: 0 8px 32px rgb(0 0 0 / 30%);"/> + <MkEmojiPicker class="_shadow" :show-pinned="showPinned" :as-reaction-picker="asReactionPicker" @chosen="chosen" ref="picker"/> </MkPopup> </template> diff --git a/src/client/components/ui/popup-menu.vue b/src/client/components/ui/popup-menu.vue index cc4c83667f..23f7c89f3b 100644 --- a/src/client/components/ui/popup-menu.vue +++ b/src/client/components/ui/popup-menu.vue @@ -1,6 +1,6 @@ <template> <MkPopup ref="popup" :src="src" @closed="$emit('closed')"> - <MkMenu :items="items" :align="align" @close="$refs.popup.close()" class="_popup" style="box-shadow: 0 8px 32px rgb(0 0 0 / 30%);"/> + <MkMenu :items="items" :align="align" @close="$refs.popup.close()" class="_popup _shadow"/> </MkPopup> </template> From c95619b2bf85ad031b4dd5f141dbefc0c8d5d617 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sun, 8 Aug 2021 17:23:16 +0900 Subject: [PATCH 08/40] Update ja-JP.yml --- locales/ja-JP.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 3a00c28ddb..55e5c8e408 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -128,6 +128,7 @@ editWidgets: "ウィジェットを編集" editWidgetsExit: "編集を終了" customEmojis: "カスタム絵文字" emoji: "絵文字" +emojis: "絵文字" emojiName: "絵文字名" emojiUrl: "絵文字画像URL" addEmoji: "絵文字を追加" From b90d76dcfe614d9668cc43a0728cc53b48898738 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sun, 8 Aug 2021 18:47:57 +0900 Subject: [PATCH 09/40] Update links.md --- src/docs/ja-JP/general/links.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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パーサー実装 From 0062e084f84340e5e65e02e4d66bb986a8f26bf5 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sun, 8 Aug 2021 18:55:15 +0900 Subject: [PATCH 10/40] New Crowdin updates (#7614) * New translations ja-JP.yml (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (Chinese Simplified) * New translations ja-JP.yml (Kabyle) * New translations ja-JP.yml (Kabyle) * New translations ja-JP.yml (Korean) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (Esperanto) * New translations ja-JP.yml (French) * New translations ja-JP.yml (Italian) * New translations ja-JP.yml (French) * New translations ja-JP.yml (Italian) * New translations ja-JP.yml (French) * New translations ja-JP.yml (Italian) * New translations ja-JP.yml (Italian) * 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 (Czech) * 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) --- locales/cs-CZ.yml | 1 + locales/de-DE.yml | 5 +++-- locales/en-US.yml | 5 +++-- locales/eo-UY.yml | 5 +++-- locales/es-ES.yml | 1 + locales/fr-FR.yml | 10 +++++++--- locales/id-ID.yml | 1 + locales/it-IT.yml | 9 ++++++--- locales/ja-KS.yml | 1 + locales/kab-KAB.yml | 20 ++++++++++++++++++++ locales/ko-KR.yml | 10 ++++++++++ locales/pl-PL.yml | 1 + locales/ru-RU.yml | 1 + locales/uk-UA.yml | 1 + locales/zh-CN.yml | 2 ++ locales/zh-TW.yml | 1 + 16 files changed, 62 insertions(+), 12 deletions(-) diff --git a/locales/cs-CZ.yml b/locales/cs-CZ.yml index 958323525a..1897f3f2aa 100644 --- a/locales/cs-CZ.yml +++ b/locales/cs-CZ.yml @@ -111,6 +111,7 @@ editWidgets: "Upravit widget" editWidgetsExit: "Hotovo" customEmojis: "Vlastní emoji" emoji: "Emoji" +emojis: "Emoji" emojiName: "Jméno emoji" emojiUrl: "URL obrázku" addEmoji: "Přidat emoji" diff --git a/locales/de-DE.yml b/locales/de-DE.yml index c9cff1fec1..d7538c7fe6 100644 --- a/locales/de-DE.yml +++ b/locales/de-DE.yml @@ -128,6 +128,7 @@ editWidgets: "Widgets bearbeiten" editWidgetsExit: "Fertig" customEmojis: "Benutzerdefinierte Emojis" emoji: "Emojis" +emojis: "Emojis" emojiName: "Emojiname" emojiUrl: "Emoji-URL" addEmoji: "Emoji hinzufügen" @@ -158,8 +159,8 @@ annotation: "Anmerkung" federation: "Föderation" instances: "Instanzen" registeredAt: "Registriert am" -latestRequestSentAt: "Letzte Anfrage gesendet am" -latestRequestReceivedAt: "Letzte Anfrage erhalten am" +latestRequestSentAt: "Letzte Anfrage gesendet" +latestRequestReceivedAt: "Letzte Anfrage erhalten" latestStatus: "Neuster Status" storageUsage: "Verbrauchter Speicherplatz" charts: "Diagramme" diff --git a/locales/en-US.yml b/locales/en-US.yml index 7b02532331..e5ed9fa9c5 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -128,6 +128,7 @@ editWidgets: "Edit widgets" editWidgetsExit: "Done" customEmojis: "Custom Emoji" emoji: "Emoji" +emojis: "Emoji" emojiName: "Emoji name" emojiUrl: "Emoji URL" addEmoji: "Add an emoji" @@ -158,8 +159,8 @@ annotation: "Comments" federation: "Federation" instances: "Instances" registeredAt: "Registered at" -latestRequestSentAt: "Last request sent at" -latestRequestReceivedAt: "Last request received at" +latestRequestSentAt: "Last request sent" +latestRequestReceivedAt: "Last request received" latestStatus: "Latest status" storageUsage: "Storage usage" charts: "Charts" diff --git a/locales/eo-UY.yml b/locales/eo-UY.yml index 99d2a93c9b..89f84a84ad 100644 --- a/locales/eo-UY.yml +++ b/locales/eo-UY.yml @@ -113,6 +113,7 @@ editWidgets: "Redakti fenestraĵon" editWidgetsExit: "Fini la redaktadon" customEmojis: "Personecigitaj emoĵioj" emoji: "Emoĵio" +emojis: "Emoĵio" emojiName: "Nomo de emoĵio" emojiUrl: "URL de la bildo de emoĵio" addEmoji: "Aldoni emoĵion" @@ -366,7 +367,7 @@ _time: hour: "hor" day: "Tago" _tutorial: - title: "Uzado de Misskey (Ĉi-sekve Miskejo)" + title: "Uzado de Misskey" step1_1: "Bonvenon." step7_2: "Se vi volus scii pli pri Miskejon, volu rigardi la fako {help}." _permissions: @@ -435,7 +436,7 @@ _exportOrImport: _timelines: home: "Hejmo" local: "Loka" - social: "Transa" + social: "Sociala" global: "Konfederacia" _rooms: translate: "Movi" diff --git a/locales/es-ES.yml b/locales/es-ES.yml index 8c3e6f13ee..0defcabd0e 100644 --- a/locales/es-ES.yml +++ b/locales/es-ES.yml @@ -127,6 +127,7 @@ editWidgets: "Editar widgets" editWidgetsExit: "Terminar edición" customEmojis: "Emojis personalizados" emoji: "Emoji" +emojis: "Emoji" emojiName: "Nombre del emoji" emojiUrl: "URL de la imágen del emoji" addEmoji: "Agregar emoji" diff --git a/locales/fr-FR.yml b/locales/fr-FR.yml index 5a1db402ac..4a95aae42f 100644 --- a/locales/fr-FR.yml +++ b/locales/fr-FR.yml @@ -128,6 +128,7 @@ editWidgets: "Modifier les widgets" editWidgetsExit: "Valider les modifications" customEmojis: "Émojis personnalisés" emoji: "Émoji" +emojis: "Émoji" emojiName: "Nom de l’émoji" emojiUrl: "URL de l’émoji" addEmoji: "Ajouter un émoji" @@ -767,6 +768,7 @@ global: "Global" squareAvatars: "Avatars carrés" sent: "Envoyer" hashtags: "Hashtags" +troubleshooting: "Résolution de problèmes" _docs: continueReading: "Lire plus" features: "Fonctionnalités" @@ -871,6 +873,8 @@ _mfm: blurDescription: "Le contenu peut être flouté ; il sera visible en le survolant avec le curseur." font: "Police de caractères" fontDescription: "Il est possible de choisir la police." + rainbow: "Arc-en-ciel" + rainbowDescription: "Permet d'afficher le contenu en couleurs arc-en-ciel." _reversi: reversi: "Reversi" gameSettings: "Réglages de la partie" @@ -1605,11 +1609,11 @@ _notification: youWereInvitedToGroup: "Invité·e au groupe" _types: all: "Toutes" - follow: "Abonnements" + follow: "Nouvel·le abonné·e" mention: "Mentions" reply: "Réponses" - renote: "Partager" - quote: "Citer" + renote: "Renotes" + quote: "Citations" reaction: "Réactions" pollVote: "Votes dans des sondages" receiveFollowRequest: "Demande d'abonnement reçue" diff --git a/locales/id-ID.yml b/locales/id-ID.yml index 16f4d4468b..6b98b43ca8 100644 --- a/locales/id-ID.yml +++ b/locales/id-ID.yml @@ -128,6 +128,7 @@ editWidgets: "Sunting gawit" editWidgetsExit: "Selesai" customEmojis: "Emoji kustom" emoji: "Emoji" +emojis: "Emoji" emojiName: "Nama emoji" emojiUrl: "URL Emoji" addEmoji: "Tambahkan emoji" diff --git a/locales/it-IT.yml b/locales/it-IT.yml index 70672aa0a8..f291eaa17f 100644 --- a/locales/it-IT.yml +++ b/locales/it-IT.yml @@ -127,6 +127,7 @@ editWidgets: "Modifica i widget" editWidgetsExit: "Modifica fine" customEmojis: "Emoji personalizzati" emoji: "Emoji" +emojis: "Emoji" emojiName: "Nome dell'emoji" emojiUrl: "URL dell'emoji" addEmoji: "Aggiungi un emoji" @@ -743,6 +744,7 @@ ratio: "Rapporto" global: "Federata" sent: "Inviare" hashtags: "Hashtag" +troubleshooting: "Risoluzione problemi" _docs: continueReading: "Leggi di più" features: "Funzionalità" @@ -805,6 +807,7 @@ _mfm: blur: "Sfocatura" font: "Tipo di carattere" fontDescription: "Puoi scegliere il tipo di carattere per il contenuto." + rainbow: "Arcobaleno" _reversi: reversi: "Reversi" gameSettings: "Impostazioni di gioco" @@ -1392,12 +1395,12 @@ _notification: youWereInvitedToGroup: "Invitat@ al gruppo" _types: all: "Tutto" - follow: "Follows" + follow: "Nuovə follower" mention: "Menzioni" - reply: "Rispondi" + reply: "Risposte" renote: "Rinota" quote: "Cita" - reaction: "Reazione" + reaction: "Reazioni" pollVote: "Voti ricevuti" receiveFollowRequest: "Richiesta di follow ricevuta" followRequestAccepted: "Richiesta di follow accettata" diff --git a/locales/ja-KS.yml b/locales/ja-KS.yml index 05542e8198..80ac48a765 100644 --- a/locales/ja-KS.yml +++ b/locales/ja-KS.yml @@ -127,6 +127,7 @@ editWidgets: "ウィジェットをいじる" editWidgetsExit: "編集終ったで" customEmojis: "カスタム絵文字" emoji: "絵文字" +emojis: "絵文字" emojiName: "絵文字名" emojiUrl: "絵文字画像URL" addEmoji: "絵文字を追加" diff --git a/locales/kab-KAB.yml b/locales/kab-KAB.yml index e96f5b366f..199e4cc135 100644 --- a/locales/kab-KAB.yml +++ b/locales/kab-KAB.yml @@ -7,7 +7,9 @@ username: "Isem n umseqdac" password: "Awal uffir" ok: "IH" settings: "Iɣewwaṛen" +otherSettings: "Iɣewwaren nniḍen" profile: "Amaɣnu" +signup: "Jerred" save: "Sekles" delete: "Kkes" addToList: "Rnu ɣer tebdart" @@ -27,15 +29,31 @@ followers: "Imeḍfaṛen" followsYou: "Yeṭṭafaṛ-ik·em-id" createList: "Snulfu-d tabdart" enterListName: "Isem n tebdart" +privacy: "Tabaḍnit" follow: "Ḍfeṛ" you: "Kečči·mmi" selectList: "Fren tabdart" youHaveNoLists: "Ulac ɣur-k·m ula d yiwet n tabdart" +security: "Taɣellist" remove: "Kkes" userList: "Tibdarin" +securityKey: "Tasarutt n tɣellist" +securityKeyName: "Isem n tsarutt" +signinRequired: "Ttxil jerred" +signinWith: "Tuqqna s {x}" +tapSecurityKey: "Sekcem tasarutt-ik·im n tɣellist" uiLanguage: "Tutlayt n wegrudem" +accountSettings: "Iɣewwaṛen n umiḍan" +plugins: "Izegrar" +email: "Imayl" +emailAddress: "Tansa imayl" smtpUser: "Isem n umseqdac" smtpPass: "Awal uffir" +other: "Wiyyaḍ" +accountInfo: "Talɣut n umiḍan" +emailNotification: "Ilɣa imayl" +selectAccount: "Fren amiḍan" +accounts: "Imiḍan" _email: _follow: title: "Yeṭṭafaṛ-ik·em-id" @@ -48,6 +66,8 @@ _theme: mention: "Bder" _sfx: notification: "Ilɣuyen" +_permissions: + "write:account": "Ẓreg talɣut n umiḍan-ik·im" _widgets: notifications: "Ilɣuyen" _cw: diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml index bcd3a0fe44..6562874bc1 100644 --- a/locales/ko-KR.yml +++ b/locales/ko-KR.yml @@ -128,6 +128,7 @@ editWidgets: "위젯 편집" editWidgetsExit: "편집 종료" customEmojis: "커스텀 이모지" emoji: "이모지" +emojis: "이모지" emojiName: "이모지 이름" emojiUrl: "이모지 URL" addEmoji: "이모지 추가" @@ -766,8 +767,15 @@ customCssWarn: "이 설정은 기능을 알고 있는 경우에만 사용해야 global: "글로벌" squareAvatars: "프로필 아이콘을 사각형으로 표시" sent: "전송" +received: "수신" +searchResult: "검색 결과" hashtags: "해시태그" +troubleshooting: "트러블 슈팅" _docs: + continueReading: "계속 읽기" + features: "기능" + generalTopics: "일반 주제" + advancedTopics: "심화 주제" admin: "관리" _ad: back: "뒤로" @@ -867,6 +875,8 @@ _mfm: blurDescription: "내용이 흐리게 보입니다. 마우스를 위에 올려두면 내용이 보입니다." font: "폰트" fontDescription: "내용의 글꼴을 지정할 수 있습니다." + rainbow: "무지개" + rainbowDescription: "내용을 무지개로 표시합니다." _reversi: reversi: "리버시" gameSettings: "대국 설정" diff --git a/locales/pl-PL.yml b/locales/pl-PL.yml index eafd072a9f..379f06dd1b 100644 --- a/locales/pl-PL.yml +++ b/locales/pl-PL.yml @@ -128,6 +128,7 @@ editWidgets: "Edytuj widżet" editWidgetsExit: "Gotowe" customEmojis: "Niestandardowe emoji" emoji: "Emoji" +emojis: "Emoji" emojiName: "Nazwa emoji" emojiUrl: "Adres URL emoji" addEmoji: "Dodaj emoji" diff --git a/locales/ru-RU.yml b/locales/ru-RU.yml index 21b38651a6..2d1334f521 100644 --- a/locales/ru-RU.yml +++ b/locales/ru-RU.yml @@ -128,6 +128,7 @@ editWidgets: "Редактировать виджеты" editWidgetsExit: "Готово" customEmojis: "Эмодзи пользователя" emoji: "Эмодзи" +emojis: "Эмодзи" emojiName: "Название эмодзи" emojiUrl: "URL эмодзи" addEmoji: "Добавить эмодзи" diff --git a/locales/uk-UA.yml b/locales/uk-UA.yml index 56ffd3e78f..b68f99c67b 100644 --- a/locales/uk-UA.yml +++ b/locales/uk-UA.yml @@ -127,6 +127,7 @@ editWidgets: "Редагувати віджети" editWidgetsExit: "Готово" customEmojis: "Кастомні емоджі" emoji: "Емоджі" +emojis: "Емоджі" emojiName: "Назва емоджі" emojiUrl: "URL емодзі" addEmoji: "Додати емодзі" diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml index 6b5182c6f2..3e5e2ecd63 100644 --- a/locales/zh-CN.yml +++ b/locales/zh-CN.yml @@ -128,6 +128,7 @@ editWidgets: "编辑小工具" editWidgetsExit: "完成编辑" customEmojis: "自定义表情符号" emoji: "表情符号" +emojis: "表情符号" emojiName: "表情符号名称" emojiUrl: "表情符号地址" addEmoji: "添加表情符号" @@ -769,6 +770,7 @@ sent: "发送" received: "收取" searchResult: "搜索结果" hashtags: "话题标签" +troubleshooting: "故障排除" _docs: continueReading: "继续阅读" features: "特性" diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml index bae072b0bb..f362d4258b 100644 --- a/locales/zh-TW.yml +++ b/locales/zh-TW.yml @@ -128,6 +128,7 @@ editWidgets: "編輯小工具" editWidgetsExit: "完成" customEmojis: "自訂表情符號" emoji: "表情符號" +emojis: "表情符號" emojiName: "表情符號名稱" emojiUrl: "表情符號URL" addEmoji: "加入表情符號" From 576303cd725920c11c83fea2ca88603c6f21801b Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sun, 8 Aug 2021 18:57:07 +0900 Subject: [PATCH 11/40] Update crowdin.yml --- crowdin.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crowdin.yml b/crowdin.yml index 160b9184d3..2d2cd5a49d 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -2,6 +2,6 @@ files: - source: /locales/ja-JP.yml translation: /locales/%locale%.yml update_option: update_as_unapproved - - source: /src/docs/ja-JP/*.md - translation: /src/docs/%locale%/%original_file_name% + - source: /src/docs/ja-JP/**/*.md + translation: /src/docs/%locale%/**/%original_file_name% update_option: update_as_unapproved From ed20805b10f4e332f50d4579c700058cb74c942c Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sun, 8 Aug 2021 21:39:45 +0900 Subject: [PATCH 12/40] 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 + .../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 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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## الشامل +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>البحث</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### للعامة +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### الرئيسي +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### المتابِعين +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### مباشرة +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>للعامة</th><th>الرئيسي</th><th>المتابِعين</th><th>مباشرة</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## دبّسها على الصفحة الشخصية +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>Vyhledávání</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Přeposlat +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### Domů +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Sledující +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>パブリック</th><th>Domů</th><th>Sledující</th><th>ダイレクト</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## 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 + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>検索</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>パブリック</th><th>ホーム</th><th>フォロワー</th><th>ダイレクト</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%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`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>Suchen</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Sichtbarkeit +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Öffentlich +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### Startseite +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Gefolgt von +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Direkt +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>Öffentlich</th><th>Startseite</th><th>Gefolgt von</th><th>Direkt</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## 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 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%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`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>Search</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Visiblility +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Public +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### Home +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Followers +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Direct +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>Public</th><th>Home</th><th>Followers</th><th>Direct</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## 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 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%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`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>Serĉi</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Fari renoton +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### Hejmo +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Sekvantoj +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>パブリック</th><th>Hejmo</th><th>Sekvantoj</th><th>ダイレクト</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## 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 + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%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`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>Buscar</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Renotar +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Visibilidad +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Público +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### Inicio +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Seguidores +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Mensaje directo +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>Público</th><th>Inicio</th><th>Seguidores</th><th>Mensaje directo</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## 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 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%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`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>Rechercher</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Partager +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Visibilité +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Public +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### Principal +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Abonné·e·s +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Direct +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>Public</th><th>Principal</th><th>Abonné·e·s</th><th>Direct</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## É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 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>検索</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>パブリック</th><th>ホーム</th><th>フォロワー</th><th>ダイレクト</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%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`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>Penelusuran</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Visibilitas +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Publik +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### Beranda +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Pengikut +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Langsung +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>Publik</th><th>Beranda</th><th>Pengikut</th><th>Langsung</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## 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 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%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`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>Cerca</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Rinota +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Visibilità +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Pubblica +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### Home +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Followers +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Diretta +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>Pubblica</th><th>Home</th><th>Followers</th><th>Diretta</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## 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 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>探す</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>パブリック</th><th>ホーム</th><th>フォロワー</th><th>ダイレクト</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## ピン留めしとく +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>検索</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>パブリック</th><th>ホーム</th><th>フォロワー</th><th>ダイレクト</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>Nadi</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Imeḍfaṛen +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>パブリック</th><th>ホーム</th><th>Imeḍfaṛen</th><th>ダイレクト</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>ಹುಡುಕು</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>パブリック</th><th>ホーム</th><th>フォロワー</th><th>ダイレクト</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## ಪ್ರೊಫ಼ೈಲಿಗೆ ಅಂಟಿಸು +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## 채널 +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## 글로벌 +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>검색</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 공개 범위 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### 공개 +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### 홈 +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### 팔로워 +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### 다이렉트 +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>공개</th><th>홈</th><th>팔로워</th><th>다이렉트</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## 프로필에 고정 +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## 변수 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# 트러블 슈팅 +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>検索</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>パブリック</th><th>ホーム</th><th>フォロワー</th><th>ダイレクト</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>検索</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>パブリック</th><th>ホーム</th><th>フォロワー</th><th>ダイレクト</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%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`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>Szukaj</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Udostępnij +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Widoczność +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Publiczny +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### Strona główna +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Obserwujący +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Bezpośredni +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>Publiczny</th><th>Strona główna</th><th>Obserwujący</th><th>Bezpośredni</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## 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 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>Pesquisar</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Repostar +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>パブリック</th><th>ホーム</th><th>フォロワー</th><th>ダイレクト</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## Каналы +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## Всеобщая +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>Поиск</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Репост +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Видимость +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Общедоступно +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### Главная +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Подписчики +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Личное +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>Общедоступно</th><th>Главная</th><th>Подписчики</th><th>Личное</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## Закрепить в профиле +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## Переменные +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>検索</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>パブリック</th><th>ホーム</th><th>フォロワー</th><th>ダイレクト</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## チャンネル +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## グローバル +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>ئىزدەش</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Renote +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 公開範囲 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### パブリック +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### ホーム +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### フォロワー +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### ダイレクト +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>パブリック</th><th>ホーム</th><th>フォロワー</th><th>ダイレクト</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## ピン留め +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## 変数 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## Канали +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## Глобальна +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>Пошук</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## Поширити +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## Видимість +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### Публічний +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### Домівка +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### Підписники +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### Особисто +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>Публічний</th><th>Домівка</th><th>Підписники</th><th>Особисто</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## Закріпити +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## Змінні +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## 频道 +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## 全局 +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>搜索</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## 转发 +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 可见性 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### 公开 +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### 首页 +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### 关注者 +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### 指定用户 +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>公开</th><th>首页</th><th>关注者</th><th>指定用户</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## 置顶 +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## 变量 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# 故障排除 +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./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は、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 + +<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> + +なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 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で使用できるスクリプト言語です。 + +<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> + +## 使い方 +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`。 + +## 投了する +投了をするには、<a href="./api/endpoints/games/reversi/games/surrender">このエンドポイント</a>にリクエストします。 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キーや、アプリケーションからストリームに接続する際はユーザーのアクセストークンのことを指します。 + +<div class="info">ℹ️ 認証情報の取得については、<a href="./api">こちらのドキュメント</a>をご確認ください。</div> + +--- + +認証情報は省略することもできますが、その場合非ログインでの利用ということになり、受信できる情報や可能な操作は限られます。例: + +``` +%WS_URL%/streaming +``` + +--- + +ストリームに接続すると、後述するAPI操作や、投稿の購読を行ったりすることができます。 しかしまだこの段階では、例えばタイムラインへの新しい投稿を受信したりすることはできません。 それを行うには、ストリーム上で、後述する**チャンネル**に接続する必要があります。 + +**ストリームでのやり取りはすべてJSONです。** + +## 頻道 +MisskeyのストリーミングAPIにはチャンネルという概念があります。これは、送受信する情報を分離するための仕組みです。 Misskeyのストリームに接続しただけでは、まだリアルタイムでタイムラインの投稿を受信したりはできません。 ストリーム上でチャンネルに接続することで、様々な情報を受け取ったり情報を送信したりすることができるようになります。 + +ひとつのストリーム上で、同時に複数のチャンネルに接続することができます。 + +### チャンネルに接続する +チャンネルに接続するには、次のようなデータをJSONでストリームに送信します: + +```json +{ + type: 'connect', + body: { + channel: 'xxxxxxxx', + id: 'foobar', + params: { + ... + } + } +} +``` + +ここで、 +* `channel`には接続したいチャンネル名を設定します。チャンネルの種類については後述します。 +* `id`にはそのチャンネルとやり取りするための任意のIDを設定します。ストリームでは様々なメッセージが流れるので、そのメッセージがどのチャンネルからのものなのか識別する必要があるからです。このIDは、UUIDや、乱数のようなもので構いません。 +* `params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。 + +<div class="info">ℹ️ IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。</div> + +### チャンネルからのメッセージを受け取る +例えばタイムラインのチャンネルなら、新しい投稿があった時にメッセージを発します。そのメッセージを受け取ることで、タイムラインに新しい投稿がされたことをリアルタイムで知ることができます。 + +チャンネルがメッセージを発すると、次のようなデータが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`には、エンドポイントのパラメータを含めます。 + +<div class="info">ℹ️ APIのエンドポイントやパラメータについてはAPIリファレンスをご確認ください。</div> + +### レスポンスの受信 + +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)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 + +<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> + +ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 + +ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 + +## 閲覧注意 (NSFW) +<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> + +閲覧注意または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 @@ +# キーボードショートカット + +## 公開 +これらのショートカットは基本的にどこでも使えます。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">P</kbd>, <kbd class="key">N</kbd></td><td>新規投稿</td><td><b>P</b>ost, <b>N</b>ew, <b>N</b>ote</td></tr> + <tr><td><kbd class="key">T</kbd></td><td>タイムラインの最も新しい投稿にフォーカス</td><td><b>T</b>imeline, <b>T</b>op</td></tr> + <tr><td><kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">N</kbd></kbd></td><td>通知を表示/隠す</td><td><b>N</b>otifications</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>搜尋</td><td><b>S</b>earch</td></tr> + <tr><td><kbd class="key">H</kbd>, <kbd class="key">?</kbd></td><td>ヘルプを表示</td><td><b>H</b>elp</td></tr> + </tbody> +</table> + +## 投稿にフォーカスされた状態 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>上の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd>, <kbd class="key">Tab</kbd></td><td>下の投稿にフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">R</kbd></td><td>返信フォームを開く</td><td><b>R</b>eply</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>Renoteフォームを開く</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">Q</kbd></kbd></td><td>即刻Renoteする(フォームを開かずに)</td><td>-</td></tr> + <tr><td><kbd class="key">E</kbd>, <kbd class="key">A</kbd>, <kbd class="key">+</kbd></td><td>リアクションフォームを開く</td><td><b>E</b>mote, re<b>A</b>ction</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションをする(対応については後述)</td><td>-</td></tr> + <tr><td><kbd class="key">F</kbd>, <kbd class="key">B</kbd></td><td>お気に入りに登録</td><td><b>F</b>avorite, <b>B</b>ookmark</td></tr> + <tr><td><kbd class="key">Del</kbd>, <kbd class="group"><kbd class="key">Ctrl</kbd> + <kbd class="key">D</kbd></kbd></td><td>投稿を削除</td><td><b>D</b>elete</tr> + <tr><td><kbd class="key">M</kbd>, <kbd class="key">O</kbd></td><td>投稿に対するメニューを開く</td><td><b>M</b>ore, <b>O</b>ther</td></tr> + <tr><td><kbd class="key">S</kbd></td><td>CWで隠された部分を表示 or 隠す</td><td><b>S</b>how, <b>S</b>ee</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォーカスを外す</td><td>-</td></tr> + </tbody> +</table> + +## Renoteフォーム +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">Enter</kbd></td><td>Renoteする</td><td>-</td></tr> + <tr><td><kbd class="key">Q</kbd></td><td>フォームを展開する</td><td><b>Q</b>uote</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>フォームを閉じる</td><td>-</td></tr> + </tbody> +</table> + +## リアクションフォーム +デフォルトで「👍」にフォーカスが当たっている状態です。 +<table> + <thead> + <tr><th>ショートカット</th><th>効果</th><th>由来</th></tr> + </thead> + <tbody> + <tr><td><kbd class="key">↑</kbd>, <kbd class="key">K</kbd></td><td>上のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">↓</kbd>, <kbd class="key">J</kbd></td><td>下のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">←</kbd>, <kbd class="key">H</kbd>, <kbd class="group"><kbd class="key">Shift</kbd> + <kbd class="key">Tab</kbd></kbd></td><td>左のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">→</kbd>, <kbd class="key">L</kbd>, <kbd class="key">Tab</kbd></td><td>右のリアクションにフォーカスを移動</td><td>-</td></tr> + <tr><td><kbd class="key">Enter</kbd>, <kbd class="key">Space</kbd>, <kbd class="key">+</kbd></td><td>リアクション確定</td><td>-</td></tr> + <tr><td><kbd class="key">0</kbd>~<kbd class="key">9</kbd></td><td>数字に対応したリアクションで確定</td><td>-</td></tr> + <tr><td><kbd class="key">Esc</kbd></td><td>リアクションするのをやめる</td><td>-</td></tr> + </tbody> +</table> 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や公開範囲といった設定も行えます(詳細は後述)。 +<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> +<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> + +## 轉發 +既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 +<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> + +Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 + +## CW +Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 + +## 可見性 +ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 + +### 公開 +全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 +<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> + +### 首頁 +全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 + +### 追隨者 +自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 + +### 指定使用者 +指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 + +### 「ローカルのみ」オプション +このオプションを有効にすると、リモートにノートを連合しなくなります。 + +### 公開範囲の比較 +<table> + <tr><th></th><th>公開</th><th>首頁</th><th>追隨者</th><th>指定使用者</th></tr> + <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> +</table> + +## 置頂 +ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 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 + +## 變數 +変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。 + +変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。 + +ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。 + +関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。 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を実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 +<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> + +誰でも開発に参加することができ、現在でも活発に開発が続いています。 + +## 分散型とは何か? + +<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 + +## 常にオープンソース +Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 + +<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> + +## 開発に参加する、プロジェクトを支援する +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は他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +<!-- TODO: ここにロードマップへのリンク --> + +### 企業によって開発されていますか? +いいえ。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の守り神、藍ちゃんです。アイチャンカワイイヤッター! +<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> 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 @@ +# トラブルシューティング +<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> + +問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 + +## クライアントが起動しない +ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 + +これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +## ページが読み込めない +クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 + +これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 + +まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 + +## クライアントの動作が遅い +以下を試してみてください: + +- クライアント設定で「UIのアニメーションを減らす」を有効にする +- クライアント設定で「モーダルにぼかし効果を使用」を無効にする +- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする +- お使いのデバイスのスペックを上げる + +## 通知やアンテナ等の点滅が消えない +点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 + +## Renoteができない +フォロワー限定のノートはRenoteすることはできません。 + +## UI上で特定の要素が表示されない +広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 + +## UI上で未翻訳の部分がある +ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 From 6cfad65ac773cc850a41bf79d443e3666d83552c Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sun, 8 Aug 2021 21:59:18 +0900 Subject: [PATCH 13/40] :art: --- src/client/components/ui/button.vue | 2 +- src/client/components/ui/menu.vue | 4 ++-- src/client/scripts/theme.ts | 1 + src/client/style.scss | 2 +- src/client/themes/_dark.json5 | 2 ++ src/client/themes/_light.json5 | 2 ++ src/client/themes/d-future.json5 | 25 +++++++++++++++++++++++++ 7 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 src/client/themes/d-future.json5 diff --git a/src/client/components/ui/button.vue b/src/client/components/ui/button.vue index 000f6302a0..4c5d617d76 100644 --- a/src/client/components/ui/button.vue +++ b/src/client/components/ui/button.vue @@ -142,7 +142,7 @@ export default defineComponent({ &.primary { font-weight: bold; - color: #fff !important; + color: var(--fgOnAccent) !important; background: var(--accent); &:not(:disabled):hover { diff --git a/src/client/components/ui/menu.vue b/src/client/components/ui/menu.vue index eb96450774..8a1871e256 100644 --- a/src/client/components/ui/menu.vue +++ b/src/client/components/ui/menu.vue @@ -171,13 +171,13 @@ export default defineComponent({ } &:hover { - color: #fff; + color: var(--fgOnAccent); background: var(--accent); text-decoration: none; } &:active { - color: #fff; + color: var(--fgOnAccent); background: var(--accentDarken); } diff --git a/src/client/scripts/theme.ts b/src/client/scripts/theme.ts index 09441c8a76..3fb5666a72 100644 --- a/src/client/scripts/theme.ts +++ b/src/client/scripts/theme.ts @@ -23,6 +23,7 @@ export const builtinThemes = [ require('@client/themes/d-dark.json5'), require('@client/themes/d-persimmon.json5'), require('@client/themes/d-astro.json5'), + require('@client/themes/d-future.json5'), require('@client/themes/d-black.json5'), ] as Theme[]; diff --git a/src/client/style.scss b/src/client/style.scss index 9127b6f238..25a30a36ff 100644 --- a/src/client/style.scss +++ b/src/client/style.scss @@ -319,7 +319,7 @@ hr { } ._popup { - background: var(--panel); + background: var(--popup); border-radius: var(--radius); contain: content; } diff --git a/src/client/themes/_dark.json5 b/src/client/themes/_dark.json5 index fef8df4c7c..ca9994d5e9 100644 --- a/src/client/themes/_dark.json5 +++ b/src/client/themes/_dark.json5 @@ -19,6 +19,7 @@ fgTransparentWeak: ':alpha<0.75<@fg', fgTransparent: ':alpha<0.5<@fg', fgHighlighted: ':lighten<3<@fg', + fgOnAccent: '#fff', divider: 'rgba(255, 255, 255, 0.1)', indicator: '@accent', panel: ':lighten<3<@bg', @@ -28,6 +29,7 @@ panelHeaderDivider: 'rgba(0, 0, 0, 0)', panelBorder: '" solid 1px var(--divider)', acrylicPanel: ':alpha<0.5<@panel', + popup: ':lighten<3<@panel', shadow: 'rgba(0, 0, 0, 0.3)', header: ':alpha<0.7<@panel', navBg: '@panel', diff --git a/src/client/themes/_light.json5 b/src/client/themes/_light.json5 index 97f56c75f5..973a6251f0 100644 --- a/src/client/themes/_light.json5 +++ b/src/client/themes/_light.json5 @@ -19,6 +19,7 @@ fgTransparentWeak: ':alpha<0.75<@fg', fgTransparent: ':alpha<0.5<@fg', fgHighlighted: ':darken<3<@fg', + fgOnAccent: '#fff', divider: 'rgba(0, 0, 0, 0.1)', indicator: '@accent', panel: ':lighten<3<@bg', @@ -28,6 +29,7 @@ panelHeaderDivider: 'rgba(0, 0, 0, 0)', panelBorder: '" solid 1px var(--divider)', acrylicPanel: ':alpha<0.5<@panel', + popup: ':lighten<3<@panel', shadow: 'rgba(0, 0, 0, 0.1)', header: ':alpha<0.7<@panel', navBg: '@panel', diff --git a/src/client/themes/d-future.json5 b/src/client/themes/d-future.json5 new file mode 100644 index 0000000000..05ffe87bf0 --- /dev/null +++ b/src/client/themes/d-future.json5 @@ -0,0 +1,25 @@ +{ + id: '32a637ef-b47a-4775-bb7b-bacbb823f865', + + name: 'Mi Future', + author: 'syuilo', + + base: 'dark', + + props: { + accent: '#63e2b7', + bg: '#101014', + fg: '#D5D5D6', + fgHighlighted: '#fff', + fgOnAccent: '#000', + divider: 'rgba(255, 255, 255, 0.1)', + panel: '#18181c', + panelHeaderBg: '@panel', + panelHeaderDivider: '@divider', + renote: '@accent', + mention: '#f2c97d', + mentionMe: '@accent', + hashtag: '#70c0e8', + link: '#e88080', + }, +} From 0cb04ded3683a2c312c2c73c77fbaf1a9bc269bb Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Sun, 8 Aug 2021 23:25:13 +0900 Subject: [PATCH 14/40] 12.85.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c89fe96103..af531145ea 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "misskey", "author": "syuilo <syuilotan@yahoo.co.jp>", - "version": "12.84.3", + "version": "12.85.0", "codename": "indigo", "repository": { "type": "git", From 048ed26f4137e994d93b0a2cb35130c4403d2f5a Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Mon, 9 Aug 2021 12:28:23 +0900 Subject: [PATCH 15/40] =?UTF-8?q?=E9=80=A3=E5=90=88=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E3=82=B9=E3=82=BF=E3=83=B3=E3=82=B9=E8=A8=AD=E5=AE=9A=E3=83=80?= =?UTF-8?q?=E3=82=A4=E3=82=A2=E3=83=AD=E3=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/pages/instance-info.vue | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/client/pages/instance-info.vue b/src/client/pages/instance-info.vue index 4165f73734..7d03c0847d 100644 --- a/src/client/pages/instance-info.vue +++ b/src/client/pages/instance-info.vue @@ -14,6 +14,8 @@ </FormKeyValueView> </FormGroup> + <FormButton v-if="$i.isAdmin || $i.isModerator" @click="info" primary>{{ $ts.settings }}</FormButton> + <FormTextarea readonly :value="instance.description"> <span>{{ $ts.description }}</span> </FormTextarea> @@ -147,6 +149,7 @@ import * as os from '@client/os'; import number from '@client/filters/number'; import bytes from '@client/filters/bytes'; import * as symbols from '@client/symbols'; +import MkInstanceInfo from '@client/pages/instance/instance.vue'; const chartLimit = 90; const sum = (...arr) => arr.reduce((r, a) => r.map((b, i) => a[i] + b)); @@ -440,6 +443,12 @@ export default defineComponent({ }] }; }, + + info() { + os.popup(MkInstanceInfo, { + instance: this.instance + }, {}, 'closed'); + } } }); </script> From 1c764139bf9dfa5575ea32cfa0a4eecf9690cd7d Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Mon, 9 Aug 2021 18:01:12 +0900 Subject: [PATCH 16/40] :art: --- src/client/components/emoji-picker-dialog.vue | 157 ++---------------- src/client/components/emoji-picker.vue | 3 +- src/client/components/poll-editor.vue | 3 +- src/client/components/ui/button.vue | 1 + src/client/components/ui/menu.vue | 24 ++- src/client/components/ui/popup-menu.vue | 4 +- src/client/components/ui/popup.vue | 5 +- src/client/components/ui/window.vue | 1 + src/client/pages/doc.vue | 2 +- src/client/pages/my-lists/index.vue | 15 +- src/client/style.scss | 2 +- 11 files changed, 61 insertions(+), 156 deletions(-) diff --git a/src/client/components/emoji-picker-dialog.vue b/src/client/components/emoji-picker-dialog.vue index 9aca47f547..aa17b8b250 100644 --- a/src/client/components/emoji-picker-dialog.vue +++ b/src/client/components/emoji-picker-dialog.vue @@ -1,6 +1,6 @@ <template> -<MkPopup ref="popup" :manual-showing="manualShowing" :src="src" :front="true" @click="$refs.popup.close()" @opening="opening" @close="$emit('close')" @closed="$emit('closed')"> - <MkEmojiPicker class="_shadow" :show-pinned="showPinned" :as-reaction-picker="asReactionPicker" @chosen="chosen" ref="picker"/> +<MkPopup ref="popup" :manual-showing="manualShowing" :src="src" :front="true" @click="$refs.popup.close()" @opening="opening" @close="$emit('close')" @closed="$emit('closed')" #default="{point}"> + <MkEmojiPicker class="ryghynhb _popup _shadow" :class="{ pointer: point === 'top' }" :show-pinned="showPinned" :as-reaction-picker="asReactionPicker" @chosen="chosen" ref="picker"/> </MkPopup> </template> @@ -56,145 +56,20 @@ export default defineComponent({ </script> <style lang="scss" scoped> -.omfetrab { - $pad: 8px; - --eachSize: 40px; - - display: flex; - flex-direction: column; - contain: content; - - &.big { - --eachSize: 44px; - } - - &.w1 { - width: calc((var(--eachSize) * 5) + (#{$pad} * 2)); - } - - &.w2 { - width: calc((var(--eachSize) * 6) + (#{$pad} * 2)); - } - - &.w3 { - width: calc((var(--eachSize) * 7) + (#{$pad} * 2)); - } - - &.h1 { - --height: calc((var(--eachSize) * 4) + (#{$pad} * 2)); - } - - &.h2 { - --height: calc((var(--eachSize) * 6) + (#{$pad} * 2)); - } - - &.h3 { - --height: calc((var(--eachSize) * 8) + (#{$pad} * 2)); - } - - > .search { - width: 100%; - padding: 12px; - box-sizing: border-box; - font-size: 1em; - outline: none; - border: none; - background: transparent; - color: var(--fg); - - &:not(.filled) { - order: 1; - z-index: 2; - box-shadow: 0px -1px 0 0px var(--divider); - } - } - - > .emojis { - height: var(--height); - overflow-y: auto; - overflow-x: hidden; - - scrollbar-width: none; - - &::-webkit-scrollbar { - display: none; - } - - > .index { - min-height: var(--height); - position: relative; - border-bottom: solid 0.5px var(--divider); - - > .arrow { - position: absolute; - bottom: 0; - left: 0; - width: 100%; - padding: 16px 0; - text-align: center; - opacity: 0.5; - pointer-events: none; - } - } - - section { - > header { - position: sticky; - top: 0; - left: 0; - z-index: 1; - padding: 8px; - font-size: 12px; - } - - > div { - padding: $pad; - - > button { - position: relative; - padding: 0; - width: var(--eachSize); - height: var(--eachSize); - border-radius: 4px; - - &:focus { - outline: solid 2px var(--focus); - z-index: 1; - } - - &:hover { - background: rgba(0, 0, 0, 0.05); - } - - &:active { - background: var(--accent); - box-shadow: inset 0 0.15em 0.3em rgba(27, 31, 35, 0.15); - } - - > * { - font-size: 24px; - height: 1.25em; - vertical-align: -.25em; - pointer-events: none; - } - } - } - - &.result { - border-bottom: solid 0.5px var(--divider); - - &:empty { - display: none; - } - } - - &.unicode { - min-height: 384px; - } - - &.custom { - min-height: 64px; - } +.ryghynhb { + &.pointer { + &:before { + --size: 8px; + content: ''; + display: block; + position: absolute; + top: calc(0px - (var(--size) * 2)); + left: 0; + right: 0; + width: 0; + margin: auto; + border: solid var(--size) transparent; + border-bottom-color: var(--popup); } } } diff --git a/src/client/components/emoji-picker.vue b/src/client/components/emoji-picker.vue index 06653324d7..d8703202c7 100644 --- a/src/client/components/emoji-picker.vue +++ b/src/client/components/emoji-picker.vue @@ -1,5 +1,5 @@ <template> -<div class="omfetrab _popup" :class="['w' + width, 'h' + height, { big }]"> +<div class="omfetrab" :class="['w' + width, 'h' + height, { big }]"> <input ref="search" class="search" data-prevent-emoji-insert :class="{ filled: q != null && q != '' }" v-model.trim="q" :placeholder="$ts.search" @paste.stop="paste" @keyup.enter="done()"> <div class="emojis" ref="emojis"> <section class="result"> @@ -346,7 +346,6 @@ export default defineComponent({ display: flex; flex-direction: column; - contain: content; &.big { --eachSize: 44px; diff --git a/src/client/components/poll-editor.vue b/src/client/components/poll-editor.vue index dfc198fc1e..0a9a1c6a03 100644 --- a/src/client/components/poll-editor.vue +++ b/src/client/components/poll-editor.vue @@ -5,8 +5,7 @@ </p> <ul ref="choices"> <li v-for="(choice, i) in choices" :key="i"> - <MkInput class="input" :model-value="choice" @update:modelValue="onInput(i, $event)"> - <template #label>{{ $t('_poll.choiceN', { n: i + 1 }) }}</template> + <MkInput class="input" :model-value="choice" @update:modelValue="onInput(i, $event)" :placeholder="$t('_poll.choiceN', { n: i + 1 })"> </MkInput> <button @click="remove(i)" class="_button"> <i class="fas fa-times"></i> diff --git a/src/client/components/ui/button.vue b/src/client/components/ui/button.vue index 4c5d617d76..1e72660f33 100644 --- a/src/client/components/ui/button.vue +++ b/src/client/components/ui/button.vue @@ -127,6 +127,7 @@ export default defineComponent({ border-radius: 999px; overflow: hidden; box-sizing: border-box; + transition: background 0.1s ease; &:not(:disabled):hover { background: var(--buttonHoverBg); diff --git a/src/client/components/ui/menu.vue b/src/client/components/ui/menu.vue index 8a1871e256..d652d9b84f 100644 --- a/src/client/components/ui/menu.vue +++ b/src/client/components/ui/menu.vue @@ -1,5 +1,5 @@ <template> -<div class="rrevdjwt" :class="{ left: align === 'left' }" +<div class="rrevdjwt" :class="{ left: align === 'left', pointer: point === 'top' }" ref="items" @contextmenu.self="e => e.preventDefault()" v-hotkey="keymap" @@ -58,7 +58,11 @@ export default defineComponent({ align: { type: String, requried: false - } + }, + point: { + type: String, + requried: false + }, }, emits: ['close'], data() { @@ -137,6 +141,22 @@ export default defineComponent({ .rrevdjwt { padding: 8px 0; + &.pointer { + &:before { + --size: 8px; + content: ''; + display: block; + position: absolute; + top: calc(0px - (var(--size) * 2)); + left: 0; + right: 0; + width: 0; + margin: auto; + border: solid var(--size) transparent; + border-bottom-color: var(--popup); + } + } + &.left { > .item { text-align: left; diff --git a/src/client/components/ui/popup-menu.vue b/src/client/components/ui/popup-menu.vue index 23f7c89f3b..3590426172 100644 --- a/src/client/components/ui/popup-menu.vue +++ b/src/client/components/ui/popup-menu.vue @@ -1,6 +1,6 @@ <template> -<MkPopup ref="popup" :src="src" @closed="$emit('closed')"> - <MkMenu :items="items" :align="align" @close="$refs.popup.close()" class="_popup _shadow"/> +<MkPopup ref="popup" :src="src" @closed="$emit('closed')" #default="{point}"> + <MkMenu :items="items" :align="align" :point="point" @close="$refs.popup.close()" class="_popup _shadow"/> </MkPopup> </template> diff --git a/src/client/components/ui/popup.vue b/src/client/components/ui/popup.vue index c98e17fa25..9e360411c0 100644 --- a/src/client/components/ui/popup.vue +++ b/src/client/components/ui/popup.vue @@ -1,7 +1,7 @@ <template> <transition :name="$store.state.animation ? 'popup-menu' : ''" :duration="$store.state.animation ? 300 : 0" appear @after-leave="onClosed" @enter="$emit('opening')" @after-enter="childRendered"> <div v-show="manualShowing != null ? manualShowing : showing" class="ccczpooj" :class="{ front, fixed, top: position === 'top' }" ref="content" :style="{ pointerEvents: (manualShowing != null ? manualShowing : showing) ? 'auto' : 'none', '--transformOrigin': transformOrigin }"> - <slot></slot> + <slot :point="point"></slot> </div> </transition> </template> @@ -52,6 +52,7 @@ export default defineComponent({ fixed: false, transformOrigin: 'center', contentClicking: false, + point: null, }; }, @@ -135,8 +136,10 @@ export default defineComponent({ } if (top > rect.top + (this.fixed ? 0 : window.pageYOffset)) { + this.point = 'top'; this.transformOrigin = 'center top'; } else { + this.point = null; this.transformOrigin = 'center'; } diff --git a/src/client/components/ui/window.vue b/src/client/components/ui/window.vue index f8b7d82d4a..4fabab3d6d 100644 --- a/src/client/components/ui/window.vue +++ b/src/client/components/ui/window.vue @@ -416,6 +416,7 @@ export default defineComponent({ flex-shrink: 0; user-select: none; height: var(--height); + border-bottom: solid 1px var(--divider); > ::v-deep(button) { height: var(--height); diff --git a/src/client/pages/doc.vue b/src/client/pages/doc.vue index 753dd8013d..af3f56abcb 100644 --- a/src/client/pages/doc.vue +++ b/src/client/pages/doc.vue @@ -115,7 +115,7 @@ export default defineComponent({ line-height: 1.5; &.max-width_500px { - padding: 16px; + padding: 24px; } > .main { diff --git a/src/client/pages/my-lists/index.vue b/src/client/pages/my-lists/index.vue index 2b60917060..e92f11c7d0 100644 --- a/src/client/pages/my-lists/index.vue +++ b/src/client/pages/my-lists/index.vue @@ -1,11 +1,9 @@ <template> -<div class="qkcjvfiv _section"> +<div class="qkcjvfiv"> <MkButton @click="create" primary class="add"><i class="fas fa-plus"></i> {{ $ts.createList }}</MkButton> <MkPagination :pagination="pagination" #default="{items}" class="lists _content" ref="list"> - <div class="list _panel" v-for="(list, i) in items" :key="list.id"> - <MkA :to="`/my/lists/${ list.id }`">{{ list.name }}</MkA> - </div> + <MkA v-for="(list, i) in items" :key="list.id" class="list _panel" :to="`/my/lists/${ list.id }`">{{ list.name }}</MkA> </MkPagination> </div> </template> @@ -57,6 +55,8 @@ export default defineComponent({ <style lang="scss" scoped> .qkcjvfiv { + padding: 16px; + > .add { margin: 0 auto var(--margin) auto; } @@ -65,6 +65,13 @@ export default defineComponent({ > .list { display: flex; padding: 16px; + border: solid 1px var(--divider); + border-radius: 6px; + + &:hover { + border: solid 1px var(--accent); + text-decoration: none; + } } } } diff --git a/src/client/style.scss b/src/client/style.scss index 25a30a36ff..5b6969356d 100644 --- a/src/client/style.scss +++ b/src/client/style.scss @@ -321,7 +321,7 @@ hr { ._popup { background: var(--popup); border-radius: var(--radius); - contain: content; + contain: layout; // ふき出しがボックスから飛び出て表示されるようなデザインをする場合もあるので paint は contain することができない } ._root { From f9022fdf16d1eeb62336a9467dbf355f931b7c4a Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Mon, 9 Aug 2021 18:05:32 +0900 Subject: [PATCH 17/40] :art: --- src/client/style.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/style.scss b/src/client/style.scss index 5b6969356d..874928942f 100644 --- a/src/client/style.scss +++ b/src/client/style.scss @@ -189,7 +189,7 @@ hr { ._buttonPrimary { @extend ._button; - color: #fff; + color: var(--fgOnAccent); background: var(--accent); &:not(:disabled):hover { From e3642a8d10dcc8c23d0d91ca35fa0b0c655039c3 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Mon, 9 Aug 2021 18:55:39 +0900 Subject: [PATCH 18/40] :art: --- src/client/components/reactions-viewer.reaction.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/components/reactions-viewer.reaction.vue b/src/client/components/reactions-viewer.reaction.vue index 99b4d50c52..6754d13815 100644 --- a/src/client/components/reactions-viewer.reaction.vue +++ b/src/client/components/reactions-viewer.reaction.vue @@ -170,7 +170,7 @@ export default defineComponent({ } > span { - color: #fff; + color: var(--fgOnAccent); } } From 6678d97cc46cd91caa9598a451999caee27792a7 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Mon, 9 Aug 2021 21:41:20 +0900 Subject: [PATCH 19/40] :art: --- src/client/components/modal-page-window.vue | 2 +- src/client/components/ui/modal-window.vue | 2 +- src/client/components/ui/window.vue | 2 +- src/client/style.scss | 6 ++++++ 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/client/components/modal-page-window.vue b/src/client/components/modal-page-window.vue index ddf8ac446e..e7d96f7a6f 100644 --- a/src/client/components/modal-page-window.vue +++ b/src/client/components/modal-page-window.vue @@ -1,6 +1,6 @@ <template> <MkModal ref="modal" @click="$emit('click')" @closed="$emit('closed')"> - <div class="hrmcaedk _popup _narrow_" :style="{ width: `${width}px`, height: (height ? `min(${height}px, 100%)` : '100%') }"> + <div class="hrmcaedk _window _narrow_" :style="{ width: `${width}px`, height: (height ? `min(${height}px, 100%)` : '100%') }"> <div class="header" @contextmenu="onContextmenu"> <span class="title"> <XHeader :info="pageInfo" :back-button="history.length > 0" @back="back()" :close-button="true" @close="$refs.modal.close()"/> diff --git a/src/client/components/ui/modal-window.vue b/src/client/components/ui/modal-window.vue index 2d2b587662..da98192b87 100644 --- a/src/client/components/ui/modal-window.vue +++ b/src/client/components/ui/modal-window.vue @@ -1,6 +1,6 @@ <template> <MkModal ref="modal" @click="$emit('click')" @closed="$emit('closed')"> - <div class="ebkgoccj _popup _narrow_" @keydown="onKeydown" :style="{ width: `${width}px`, height: scroll ? (height ? `${height}px` : null) : (height ? `min(${height}px, 100%)` : '100%') }"> + <div class="ebkgoccj _window _narrow_" @keydown="onKeydown" :style="{ width: `${width}px`, height: scroll ? (height ? `${height}px` : null) : (height ? `min(${height}px, 100%)` : '100%') }"> <div class="header"> <button class="_button" v-if="withOkButton" @click="$emit('close')"><i class="fas fa-times"></i></button> <span class="title"> diff --git a/src/client/components/ui/window.vue b/src/client/components/ui/window.vue index 4fabab3d6d..773c3b9b13 100644 --- a/src/client/components/ui/window.vue +++ b/src/client/components/ui/window.vue @@ -1,7 +1,7 @@ <template> <transition :name="$store.state.animation ? 'window' : ''" appear @after-leave="$emit('closed')"> <div class="ebkgocck" :class="{ front }" v-if="showing"> - <div class="body _popup _shadow _narrow_" @mousedown="onBodyMousedown" @keydown="onKeydown"> + <div class="body _window _shadow _narrow_" @mousedown="onBodyMousedown" @keydown="onKeydown"> <div class="header" :class="{ mini }" @contextmenu.prevent.stop="onContextmenu"> <button v-if="closeButton" class="_button" @click="close()"><i class="fas fa-times"></i></button> diff --git a/src/client/style.scss b/src/client/style.scss index 874928942f..1253141d36 100644 --- a/src/client/style.scss +++ b/src/client/style.scss @@ -318,6 +318,12 @@ hr { } } +._window { + background: var(--panel); + border-radius: var(--radius); + contain: content; +} + ._popup { background: var(--popup); border-radius: var(--radius); From fa49427df0ca9fd3ec5878a64cb4e1a4e40bf0f5 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Mon, 9 Aug 2021 21:45:46 +0900 Subject: [PATCH 20/40] :art: --- src/client/pages/federation.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/pages/federation.vue b/src/client/pages/federation.vue index 4a861ac911..f4ab9d0ec3 100644 --- a/src/client/pages/federation.vue +++ b/src/client/pages/federation.vue @@ -228,6 +228,7 @@ export default defineComponent({ > .footer { display: flex; align-items: center; + font-size: 0.9em; > .status { &.suspended { @@ -249,7 +250,6 @@ export default defineComponent({ > .right { margin-left: auto; - font-size: 0.9em; > .latestStatus { border: solid 1px var(--divider); From 19f753c15c8da276bddb9eb9f84e61ed1632b71c Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Mon, 9 Aug 2021 21:47:43 +0900 Subject: [PATCH 21/40] 12.85.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index af531145ea..45f74ef0be 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "misskey", "author": "syuilo <syuilotan@yahoo.co.jp>", - "version": "12.85.0", + "version": "12.85.1", "codename": "indigo", "repository": { "type": "git", From 09450ba544ea6f20c0d8f66dc81be69cac0bb9e6 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Mon, 9 Aug 2021 22:35:22 +0900 Subject: [PATCH 22/40] Update troubleshooting.md --- src/docs/ja-JP/general/troubleshooting.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/docs/ja-JP/general/troubleshooting.md b/src/docs/ja-JP/general/troubleshooting.md index 508e9dd70c..55302cc8f8 100644 --- a/src/docs/ja-JP/general/troubleshooting.md +++ b/src/docs/ja-JP/general/troubleshooting.md @@ -25,6 +25,11 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 +クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 From c30f02ae4c046b73b94c437be5912fa5e94684b7 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Tue, 10 Aug 2021 15:07:15 +0900 Subject: [PATCH 23/40] Update vue to 3.2.1 --- package.json | 4 +- src/client/scripts/paging.ts | 12 +++- yarn.lock | 106 +++++++++++++++++------------------ 3 files changed, 65 insertions(+), 57 deletions(-) diff --git a/package.json b/package.json index 45f74ef0be..b4dfcfb6da 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "@types/websocket": "1.0.3", "@types/ws": "7.4.6", "@typescript-eslint/parser": "4.28.3", - "@vue/compiler-sfc": "3.1.5", + "@vue/compiler-sfc": "3.2.1", "abort-controller": "3.0.0", "apexcharts": "3.27.2", "autobind-decorator": "2.4.0", @@ -238,7 +238,7 @@ "uuid": "8.3.2", "v-debounce": "0.1.2", "vanilla-tilt": "1.7.0", - "vue": "3.1.5", + "vue": "3.2.1", "vue-color": "2.8.1", "vue-json-pretty": "1.8.1", "vue-loader": "16.3.1", diff --git a/src/client/scripts/paging.ts b/src/client/scripts/paging.ts index 194c2e8003..1da518efa1 100644 --- a/src/client/scripts/paging.ts +++ b/src/client/scripts/paging.ts @@ -201,7 +201,11 @@ export default (opts) => ({ if (isBottom) { // オーバーフローしたら古いアイテムは捨てる if (this.items.length >= opts.displayLimit) { - this.items = this.items.slice(-opts.displayLimit); + // このやり方だとVue 3.2以降アニメーションが動かなくなる + //this.items = this.items.slice(-opts.displayLimit); + while (this.items.length >= opts.displayLimit) { + this.items.shift(); + } this.more = true; } } @@ -216,7 +220,11 @@ export default (opts) => ({ // オーバーフローしたら古いアイテムは捨てる if (this.items.length >= opts.displayLimit) { - this.items = this.items.slice(0, opts.displayLimit); + // このやり方だとVue 3.2以降アニメーションが動かなくなる + //this.items = this.items.slice(0, opts.displayLimit); + while (this.items.length >= opts.displayLimit) { + this.items.pop(); + } this.more = true; } } else { diff --git a/yarn.lock b/yarn.lock index 60f6d11ba8..131892cd2c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1312,37 +1312,37 @@ resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== -"@vue/compiler-core@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.1.5.tgz#298f905b6065d6d81ff63756f98c60876b393c87" - integrity sha512-TXBhFinoBaXKDykJzY26UEuQU1K07FOp/0Ie+OXySqqk0bS0ZO7Xvl7UmiTUPYcLrWbxWBR7Bs/y55AI0MNc2Q== +"@vue/compiler-core@3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.1.tgz#8e13232f7aef8e308fb2d4a10571a5640257064b" + integrity sha512-UEJf2ZGww5wGVdrWIXIZo04KdJFGPmI2bHRUsBZ3AdyCAqJ5ykRXKOBn1OR1hvA2YzimudOEyHM+DpbBv91Kww== dependencies: "@babel/parser" "^7.12.0" "@babel/types" "^7.12.0" - "@vue/shared" "3.1.5" + "@vue/shared" "3.2.1" estree-walker "^2.0.1" source-map "^0.6.1" -"@vue/compiler-dom@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.1.5.tgz#cbb97020c62a5faa3fbc2a97916bd98041ac9856" - integrity sha512-ZsL3jqJ52OjGU/YiT/9XiuZAmWClKInZM2aFJh9gnsAPqOrj2JIELMbkIFpVKR/CrVO/f2VxfPiiQdQTr65jcQ== +"@vue/compiler-dom@3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.1.tgz#5cc68873f1928c7b9aee8c8a2846f7f362cb1ab9" + integrity sha512-tXg8tkPb3j54zNfWqoao9T1JI41yWPz8TROzmif/QNNA46eq8/SRuRsBd36i47GWaz7mh+yg3vOJ87/YBjcMyQ== dependencies: - "@vue/compiler-core" "3.1.5" - "@vue/shared" "3.1.5" + "@vue/compiler-core" "3.2.1" + "@vue/shared" "3.2.1" -"@vue/compiler-sfc@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.1.5.tgz#e61e54f3a963b0f4a8e523fbb8632390dc52b0d6" - integrity sha512-mtMY6xMvZeSRx9MTa1+NgJWndrkzVTdJ1pQAmAKQuxyb5LsHVvrgP7kcQFvxPHVpLVTORbTJWHaiqoKrJvi1iA== +"@vue/compiler-sfc@3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.1.tgz#7809b298cf0fbce62a2c628b7dfc1e82dd9a3a9b" + integrity sha512-fVLdme5RZVkBt+jxv2LCSRM72o4FX7BR2eu2FpjjEi1kEtUMKBDnjKwGWy7TyhTju0t0CocctyoM+G56vH7NpQ== dependencies: "@babel/parser" "^7.13.9" "@babel/types" "^7.13.0" "@types/estree" "^0.0.48" - "@vue/compiler-core" "3.1.5" - "@vue/compiler-dom" "3.1.5" - "@vue/compiler-ssr" "3.1.5" - "@vue/shared" "3.1.5" + "@vue/compiler-core" "3.2.1" + "@vue/compiler-dom" "3.2.1" + "@vue/compiler-ssr" "3.2.1" + "@vue/shared" "3.2.1" consolidate "^0.16.0" estree-walker "^2.0.1" hash-sum "^2.0.0" @@ -1354,42 +1354,42 @@ postcss-selector-parser "^6.0.4" source-map "^0.6.1" -"@vue/compiler-ssr@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.1.5.tgz#f068652774293256a1e53084bed48a67682df9d2" - integrity sha512-CU5N7Di/a4lyJ18LGJxJYZS2a8PlLdWpWHX9p/XcsjT2TngMpj3QvHVRkuik2u8QrIDZ8OpYmTyj1WDNsOV+Dg== +"@vue/compiler-ssr@3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.1.tgz#f900762f83482e44e9260c2322e3d332c711826c" + integrity sha512-6YAOtQunuEyYlVSjK1F7a7BXi7rxVfiTiJ0Ro7eq0q0MNCFV9Z+sN68lfa/E4ABVb0ledEY/Rt8kL23nwCoTCQ== dependencies: - "@vue/compiler-dom" "3.1.5" - "@vue/shared" "3.1.5" + "@vue/compiler-dom" "3.2.1" + "@vue/shared" "3.2.1" -"@vue/reactivity@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.1.5.tgz#dbec4d9557f7c8f25c2635db1e23a78a729eb991" - integrity sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg== +"@vue/reactivity@3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.1.tgz#0e71d4ee00b0d0ca6a6141966c30b68b3f685002" + integrity sha512-4Lja2KmyiKvuraDed6dXK2A6+r/7x7xGDA7vVR2Aqc8hQVu0+FWeVX+IBfiVOSpbZXFlHLNmCBFkbuWLQSlgxg== dependencies: - "@vue/shared" "3.1.5" + "@vue/shared" "3.2.1" -"@vue/runtime-core@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.1.5.tgz#a545b7f146092929cb5e833e85439150f17ac87b" - integrity sha512-YQbG5cBktN1RowQDKA22itmvQ+b40f0WgQ6CXK4VYoYICAiAfu6Cc14777ve8zp1rJRGtk5oIeS149TOculrTg== +"@vue/runtime-core@3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.1.tgz#39641110b2f84fdda3b80b86830827b7b5ef041a" + integrity sha512-IsgelRM/5hYeRhz5+ECi66XvYDdjG2t4lARjHvCXw5s9Q4N6uIbjLMwtLzAWRxYf3/y258BrD+ehxAi943ScJg== dependencies: - "@vue/reactivity" "3.1.5" - "@vue/shared" "3.1.5" + "@vue/reactivity" "3.2.1" + "@vue/shared" "3.2.1" -"@vue/runtime-dom@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.1.5.tgz#4fa28947d408aa368fa17ea0edc1beb9af1472a1" - integrity sha512-tNcf3JhVR0RfW0kw1p8xZgv30nvX8Y9rsz7eiQ0dHe273sfoCngAG0y4GvMaY4Xd8FsjUwFedd4suQ8Lu8meXg== +"@vue/runtime-dom@3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.1.tgz#087cf36f40ad0869712c4154693c620e478061a8" + integrity sha512-bUAHUSe49A5wYdHQ8wsLU1CMPXaG2fRuv2661mx/6Q9+20QxglT3ss8ZeL6AVRu16JNJMcdvTTsNpbnMbVc/lQ== dependencies: - "@vue/runtime-core" "3.1.5" - "@vue/shared" "3.1.5" + "@vue/runtime-core" "3.2.1" + "@vue/shared" "3.2.1" csstype "^2.6.8" -"@vue/shared@3.1.5": - version "3.1.5" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.1.5.tgz#74ee3aad995d0a3996a6bb9533d4d280514ede03" - integrity sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA== +"@vue/shared@3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.1.tgz#1f1fe26fe0334404cce10740b5ffb2654f1281aa" + integrity sha512-INN92dVBNgd0TW9BqfQQKx/HWGCHhUUbAV5EZ5FgSCiEdwuZsJbGt1mdnaD9IxGhpiyOjP2ClxGG8SFp7ELcWg== "@webassemblyjs/ast@1.11.0": version "1.11.0" @@ -11591,14 +11591,14 @@ vue-svg-loader@0.17.0-beta.2: semver "^7.3.2" svgo "^1.3.2" -vue@3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.1.5.tgz#12879b11d0685ee4478c8869551799630a52f9fe" - integrity sha512-Ho7HNb1nfDoO+HVb6qYZgeaobt1XbY6KXFe4HGs1b9X6RhkWG/113n4/SrtM1LUclM6OrP/Se5aPHHvAPG1iVQ== +vue@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.1.tgz#30dde152f2fdad0669ea9854d5a90a00ef96974b" + integrity sha512-0jhXluF5mzTAK5bXw/8yq4McvsI8HwEWI4cnQwJeN8NYGRbwh9wwuE4FNv1Kej9pxBB5ajTNsWr0M6DPs5EJZg== dependencies: - "@vue/compiler-dom" "3.1.5" - "@vue/runtime-dom" "3.1.5" - "@vue/shared" "3.1.5" + "@vue/compiler-dom" "3.2.1" + "@vue/runtime-dom" "3.2.1" + "@vue/shared" "3.2.1" vuedraggable@4.0.1: version "4.0.1" From ea6b8b599f28edc761fd8b18e4320afaaf99784c Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Tue, 10 Aug 2021 15:28:01 +0900 Subject: [PATCH 24/40] Update html comment --- src/server/web/views/base.pug | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/server/web/views/base.pug b/src/server/web/views/base.pug index 8992f96db9..42c068c403 100644 --- a/src/server/web/views/base.pug +++ b/src/server/web/views/base.pug @@ -2,11 +2,16 @@ block vars doctype html -!= '\n' -!= '<!-- Thank you for using Misskey! -->\n' -!= '<!-- If you are reading this message... how about joining the development of Misskey? -->\n' -!= '<!-- https://github.com/misskey-dev/misskey -->' -!= '\n' +!= '<!--\n' +!= ' _____ _ _ \n' +!= ' | |_|___ ___| |_ ___ _ _ \n' +!= ' | | | | |_ -|_ -| \'_| -_| | |\n' +!= ' |_|_|_|_|___|___|_,_|___|_ |\n' +!= ' |___|\n' +!= ' Thank you for using Misskey!\n' +!= ' If you are reading this message... how about joining the development?\n' +!= ' https://github.com/misskey-dev/misskey' +!= '\n-->\n' html From f4f8debb92050363e54601b5bd257d413672e0b0 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Tue, 10 Aug 2021 15:29:30 +0900 Subject: [PATCH 25/40] :art: --- src/client/components/post-form.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue index 969f8563a4..82d28f30e8 100644 --- a/src/client/components/post-form.vue +++ b/src/client/components/post-form.vue @@ -45,7 +45,7 @@ <button class="_button" @click="togglePoll" :class="{ active: poll }" v-tooltip="$ts.poll"><i class="fas fa-poll-h"></i></button> <button class="_button" @click="useCw = !useCw" :class="{ active: useCw }" v-tooltip="$ts.useCw"><i class="fas fa-eye-slash"></i></button> <button class="_button" @click="insertMention" v-tooltip="$ts.mention"><i class="fas fa-at"></i></button> - <button class="_button" @click="withHashtags = !withHashtags" v-tooltip="$ts.hashtags"><i class="fas fa-hashtag"></i></button> + <button class="_button" @click="withHashtags = !withHashtags" :class="{ active: withHashtags }" v-tooltip="$ts.hashtags"><i class="fas fa-hashtag"></i></button> <button class="_button" @click="insertEmoji" v-tooltip="$ts.emoji"><i class="fas fa-laugh-squint"></i></button> <button class="_button" @click="showActions" v-tooltip="$ts.plugin" v-if="postFormActions.length > 0"><i class="fas fa-plug"></i></button> </footer> From e19cc8bebfdc4a4de9a0456c063612eaa9c88a34 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Tue, 10 Aug 2021 16:06:14 +0900 Subject: [PATCH 26/40] =?UTF-8?q?=E3=83=8F=E3=83=83=E3=82=B7=E3=83=A5?= =?UTF-8?q?=E3=82=BF=E3=82=B0=E5=85=A5=E5=8A=9B=E3=81=8C=E7=A9=BA=E3=81=AE?= =?UTF-8?q?=E3=81=A8=E3=81=8D=E3=81=AB#=E3=81=8C=E4=BB=98=E3=81=8F?= =?UTF-8?q?=E3=81=AE=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/client/components/post-form.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue index 82d28f30e8..f2c625a556 100644 --- a/src/client/components/post-form.vue +++ b/src/client/components/post-form.vue @@ -615,7 +615,7 @@ export default defineComponent({ viaMobile: isMobile }; - if (this.withHashtags) { + if (this.withHashtags && this.hashtags && this.hashtags.trim() !== '') { const hashtags = this.hashtags.trim().split(' ').map(x => x.startsWith('#') ? x : '#' + x).join(' '); data.text = data.text ? `${data.text} ${hashtags}` : hashtags; } From fff3c552e24f7d5b08252696bc55c8a1b9df3509 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Tue, 10 Aug 2021 18:19:59 +0900 Subject: [PATCH 27/40] perf(client): use function for render slot to improve performance See: https://forum.vuejs.org/t/how-to-avoid-non-function-value-encountered-for-default-slot-warning/107039 --- src/client/components/date-separated-list.vue | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/client/components/date-separated-list.vue b/src/client/components/date-separated-list.vue index 6a0c7f29f2..7a4cc5ef98 100644 --- a/src/client/components/date-separated-list.vue +++ b/src/client/components/date-separated-list.vue @@ -48,15 +48,7 @@ export default defineComponent({ render() { if (this.items.length === 0) return; - return h(this.$store.state.animation ? TransitionGroup : 'div', this.$store.state.animation ? { - class: 'sqadhkmv' + (this.noGap ? ' noGap _block' : ''), - name: 'list', - tag: 'div', - 'data-direction': this.direction, - 'data-reversed': this.reversed ? 'true' : 'false', - } : { - class: 'sqadhkmv' + (this.noGap ? ' noGap _block' : ''), - }, this.items.map((item, i) => { + const renderChildren = () => this.items.map((item, i) => { const el = this.$slots.default({ item: item })[0]; @@ -98,7 +90,19 @@ export default defineComponent({ return el; } } - })); + }); + + return h(this.$store.state.animation ? TransitionGroup : 'div', this.$store.state.animation ? { + class: 'sqadhkmv' + (this.noGap ? ' noGap _block' : ''), + name: 'list', + tag: 'div', + 'data-direction': this.direction, + 'data-reversed': this.reversed ? 'true' : 'false', + } : { + class: 'sqadhkmv' + (this.noGap ? ' noGap _block' : ''), + }, { + default: renderChildren + }); }, }); </script> From 5bb619fe7b57e2494393f420aad30ebe7203d0ed Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Tue, 10 Aug 2021 19:19:02 +0900 Subject: [PATCH 28/40] Improve doc --- CHANGELOG.md | 9 ++++++++- src/docs/ja-JP/general/changelog.md | 5 +++++ src/server/web/index.ts | 18 +++++++++++++----- 3 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 src/docs/ja-JP/general/changelog.md diff --git a/CHANGELOG.md b/CHANGELOG.md index b60eb59313..753c37e134 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1 +1,8 @@ -see [releases](https://github.com/misskey-dev/misskey/releases) +## 12.86.0 (unreleased) + +### Improvements +- ドキュメントにchangelogを追加 +- Vueを3.2.1に更新 + +### Bugfixes +- ハッシュタグ入力が空のときに#が付くのを修正 diff --git a/src/docs/ja-JP/general/changelog.md b/src/docs/ja-JP/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/ja-JP/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/server/web/index.ts b/src/server/web/index.ts index 30a53a703b..44ab2a997f 100644 --- a/src/server/web/index.ts +++ b/src/server/web/index.ts @@ -28,6 +28,13 @@ const markdown = MarkdownIt({ html: true }); +const changelog = fs.readFileSync(`${__dirname}/../../../CHANGELOG.md`, { encoding: 'utf8' }); +function genDoc(path: string): string { + let md = fs.readFileSync(path, { encoding: 'utf8' }); + md = md.replace('<!--[CHANGELOG]-->', changelog); + return md; +} + const staticAssets = `${__dirname}/../../../assets/`; const docAssets = `${__dirname}/../../../src/docs/`; const assets = `${__dirname}/../../assets/`; @@ -67,10 +74,11 @@ router.get('/static-assets/(.*)', async ctx => { }); router.get('/doc-assets/(.*)', async ctx => { - await send(ctx as any, ctx.path.replace('/doc-assets/', ''), { - root: docAssets, - maxage: ms('7 days'), - }); + if (ctx.path.includes('..')) return; + const path = `${__dirname}/../../../src/docs/${ctx.path.replace('/doc-assets/', '')}`; + const doc = genDoc(path); + ctx.set('Content-Type', 'text/plain; charset=utf-8'); + ctx.body = doc; }); router.get('/assets/(.*)', async ctx => { @@ -130,7 +138,7 @@ router.get('/docs.json', async ctx => { const paths = glob.sync(`${dirPath}/**/*.md`); const docs: { path: string; title: string; summary: string; }[] = []; for (const path of paths) { - const md = fs.readFileSync(path, { encoding: 'utf8' }); + const md = genDoc(path); if (query && query.length > 0) { // TODO: カタカナをひらがなにして比較するなどしたい From baa2a871f13c14faa8c98b9c41e4ba26b1d92d63 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Tue, 10 Aug 2021 19:34:53 +0900 Subject: [PATCH 29/40] Update patrons list --- src/client/pages/about-misskey.vue | 56 ++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 19 deletions(-) diff --git a/src/client/pages/about-misskey.vue b/src/client/pages/about-misskey.vue index 1d57c80810..f7b9245fcc 100644 --- a/src/client/pages/about-misskey.vue +++ b/src/client/pages/about-misskey.vue @@ -68,40 +68,58 @@ import * as symbols from '@client/symbols'; const patrons = [ 'Satsuki Yanagi', 'noellabo', - 'Gargron', - 'Atsuko Tominaga', + 'mametsuko', 'AureoleArk', + 'Gargron', + 'Nokotaro Takeda', + 'Suji Yan', + 'Hekovic', + 'Gitmo Life Services', + 'nenohi', 'naga_rus', 'Melilot', - 'Hekovic', - 'Nokotaro Takeda', - 'dansup', - 'nenohi', - 'motcha', - 'nanami kan', - 'Eduardo Quiros', - 'Peter G.', - 'YUKIMOCHI', 'Efertone', - 'makokunsan', + 'oi_yekssim', + 'nanami kan', + 'motcha', + 'dansup', + 'Quinton Macejkovic', + 'YUKIMOCHI', 'mewl hayabusa', + 'makokunsan', + 'Peter G.', + 'Nesakko', + 'regtan', '見当かなみ', 'natalie', + 'Jerry', 'takimura', 'sikyosyounin', - 'weepjp', - 'mydarkstar', - 'Nesakko', + 'YuzuRyo61', 'sheeta.s', 'osapon', - 'YuzuRyo61', - 'wara', 'mkatze', - 'kiritan', 'CG', + 'nafuchoco', + 'Takumi Sugita', + 'chidori ninokura', + 'mydarkstar', + 'kiritan', + 'kabo2468y', + 'weepjp', + 'Liaizon Wakest', + 'Steffen K9', + 'Roujo', + 'uroco @99', + 'totokoro', + 'public_yusuke', + 'wara', + 'S Y', 'Denshi', 'Osushimaru', - 'Liaizon Wakest', + '吴浥', + 'DignifiedSilence', + 't_w', ]; export default defineComponent({ From 227f52d758103318a4ad60dab1e323899fd27bfd Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Tue, 10 Aug 2021 19:51:56 +0900 Subject: [PATCH 30/40] Improve docs --- locales/ja-JP.yml | 1 + src/client/pages/doc.vue | 1 + src/docs/ja-JP/general/links.md | 6 ++++++ 3 files changed, 8 insertions(+) diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index 55e5c8e408..a1d0c14ea3 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -778,6 +778,7 @@ _docs: generalTopics: "一般的なトピック" advancedTopics: "高度なトピック" admin: "管理" + translateWarn: "このドキュメントは翻訳されたものです。オリジナルとは内容が異なる場合があります。" _ad: back: "戻る" diff --git a/src/client/pages/doc.vue b/src/client/pages/doc.vue index af3f56abcb..500d0340b7 100644 --- a/src/client/pages/doc.vue +++ b/src/client/pages/doc.vue @@ -5,6 +5,7 @@ <div class="body" v-html="body"></div> <div class="footer"> <MkLink :url="`https://github.com/misskey-dev/misskey/blob/master/src/docs/${lang}/${doc}.md`" class="at">{{ $ts.docSource }}</MkLink> + <p v-if="lang !== 'ja-JP'">{{ $ts.translateWarn }}</p> </div> </div> </div> diff --git a/src/docs/ja-JP/general/links.md b/src/docs/ja-JP/general/links.md index d6b16856fb..021b51ae56 100644 --- a/src/docs/ja-JP/general/links.md +++ b/src/docs/ja-JP/general/links.md @@ -1,5 +1,11 @@ # リンク集 +## Webサイト +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## アカウント +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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パーサー実装 From 4149c7782f9efe9450d5c056e7ad22a654717746 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Wed, 11 Aug 2021 00:21:24 +0900 Subject: [PATCH 31/40] :art: --- src/client/components/ui/button.vue | 13 ++----------- src/client/pages/my-lists/index.vue | 13 +++++++++++-- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/client/components/ui/button.vue b/src/client/components/ui/button.vue index 1e72660f33..d6ac42994f 100644 --- a/src/client/components/ui/button.vue +++ b/src/client/components/ui/button.vue @@ -177,17 +177,8 @@ export default defineComponent({ } &:focus { - &:after { - content: ""; - pointer-events: none; - position: absolute; - top: -5px; - right: -5px; - bottom: -5px; - left: -5px; - border: 2px solid var(--accentAlpha03); - border-radius: 10px; - } + outline: solid 2px var(--focus); + outline-offset: 2px; } &.inline + .bghgjjyj { diff --git a/src/client/pages/my-lists/index.vue b/src/client/pages/my-lists/index.vue index e92f11c7d0..7de31bb308 100644 --- a/src/client/pages/my-lists/index.vue +++ b/src/client/pages/my-lists/index.vue @@ -3,7 +3,10 @@ <MkButton @click="create" primary class="add"><i class="fas fa-plus"></i> {{ $ts.createList }}</MkButton> <MkPagination :pagination="pagination" #default="{items}" class="lists _content" ref="list"> - <MkA v-for="(list, i) in items" :key="list.id" class="list _panel" :to="`/my/lists/${ list.id }`">{{ list.name }}</MkA> + <MkA v-for="list in items" :key="list.id" class="list _panel" :to="`/my/lists/${ list.id }`"> + <div class="name">{{ list.name }}</div> + <MkAvatars :user-ids="list.userIds"/> + </MkA> </MkPagination> </div> </template> @@ -12,6 +15,7 @@ import { defineComponent } from 'vue'; import MkPagination from '@client/components/ui/pagination.vue'; import MkButton from '@client/components/ui/button.vue'; +import MkAvatars from '@client/components/avatars.vue'; import * as os from '@client/os'; import * as symbols from '@client/symbols'; @@ -19,6 +23,7 @@ export default defineComponent({ components: { MkPagination, MkButton, + MkAvatars, }, data() { @@ -63,7 +68,7 @@ export default defineComponent({ > .lists { > .list { - display: flex; + display: block; padding: 16px; border: solid 1px var(--divider); border-radius: 6px; @@ -72,6 +77,10 @@ export default defineComponent({ border: solid 1px var(--accent); text-decoration: none; } + + > .name { + margin-bottom: 4px; + } } } } From 31b6ab9b23d14551e4b37b3b9e7e29f5a016b8ff Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Wed, 11 Aug 2021 00:21:48 +0900 Subject: [PATCH 32/40] fix chore error --- src/client/components/widgets.vue | 4 ++-- src/client/ui/chat/index.vue | 2 +- src/client/ui/default.widgets.vue | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/client/components/widgets.vue b/src/client/components/widgets.vue index 6e5c2d5ade..150d61c027 100644 --- a/src/client/components/widgets.vue +++ b/src/client/components/widgets.vue @@ -18,12 +18,12 @@ <div class="customize-container"> <button class="config _button" @click.prevent.stop="configWidget(element.id)"><i class="fas fa-cog"></i></button> <button class="remove _button" @click.prevent.stop="removeWidget(element)"><i class="fas fa-times"></i></button> - <component :is="`mkw-${element.name}`" :widget="element" :setting-callback="setting => settings[element.id] = setting" :column="column" @updateProps="updateWidget(element.id, $event)"/> + <component :is="`mkw-${element.name}`" :widget="element" :setting-callback="setting => settings[element.id] = setting" @updateProps="updateWidget(element.id, $event)"/> </div> </template> </XDraggable> </template> - <component v-else class="widget" v-for="widget in widgets" :is="`mkw-${widget.name}`" :key="widget.id" :widget="widget" :column="column" @updateProps="updateWidget(widget.id, $event)"/> + <component v-else class="widget" v-for="widget in widgets" :is="`mkw-${widget.name}`" :key="widget.id" :widget="widget" @updateProps="updateWidget(widget.id, $event)"/> </div> </template> diff --git a/src/client/ui/chat/index.vue b/src/client/ui/chat/index.vue index db663c4530..6d6e302e3c 100644 --- a/src/client/ui/chat/index.vue +++ b/src/client/ui/chat/index.vue @@ -55,7 +55,7 @@ <MkA to="/my/favorites" class="item"><i class="fas fa-star icon"></i>{{ $ts.favorites }}</MkA> </div> </div> - <MkAd class="a" prefer="square"/> + <MkAd class="a" :prefer="['square']"/> </div> <footer class="footer"> <div class="left"> diff --git a/src/client/ui/default.widgets.vue b/src/client/ui/default.widgets.vue index 0bacc83d52..f9584402a2 100644 --- a/src/client/ui/default.widgets.vue +++ b/src/client/ui/default.widgets.vue @@ -1,7 +1,7 @@ <template> <div class="ddiqwdnk"> <XWidgets class="widgets" :edit="editMode" :widgets="$store.reactiveState.widgets.value.filter(w => w.place === place)" @add-widget="addWidget" @remove-widget="removeWidget" @update-widget="updateWidget" @update-widgets="updateWidgets" @exit="editMode = false"/> - <MkAd class="a" prefer="square"/> + <MkAd class="a" :prefer="['square']"/> <button v-if="editMode" @click="editMode = false" class="_textButton edit" style="font-size: 0.9em;"><i class="fas fa-check"></i> {{ $ts.editWidgetsExit }}</button> <button v-else @click="editMode = true" class="_textButton edit" style="font-size: 0.9em;"><i class="fas fa-pencil-alt"></i> {{ $ts.editWidgets }}</button> From 90a7b9b5516cb1b55044bc3ac659f9c91087f0c4 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Wed, 11 Aug 2021 21:05:26 +0900 Subject: [PATCH 33/40] :art: --- src/client/pages/welcome.entrance.a.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/client/pages/welcome.entrance.a.vue b/src/client/pages/welcome.entrance.a.vue index 299271c347..7d49ddd7d7 100644 --- a/src/client/pages/welcome.entrance.a.vue +++ b/src/client/pages/welcome.entrance.a.vue @@ -260,6 +260,7 @@ export default defineComponent({ display: block; margin: 0; padding: 32px 32px 24px 32px; + font-size: 1.5em; > .logo { vertical-align: bottom; From b2e5ade5ac92a5001d50415219129e050d3247e6 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Wed, 11 Aug 2021 21:08:05 +0900 Subject: [PATCH 34/40] =?UTF-8?q?=20=E3=83=95=E3=82=A9=E3=83=AD=E3=83=BC?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E3=81=AEE=E3=83=A1=E3=83=BC=E3=83=AB?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + src/services/send-email-notification.ts | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 753c37e134..c85afa04b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,3 +6,4 @@ ### Bugfixes - ハッシュタグ入力が空のときに#が付くのを修正 +- フォロー通知のEメール通知を修正 diff --git a/src/services/send-email-notification.ts b/src/services/send-email-notification.ts index b475585129..ad17429516 100644 --- a/src/services/send-email-notification.ts +++ b/src/services/send-email-notification.ts @@ -16,12 +16,13 @@ async function follow(userId: User['id'], follower: User) { sendEmail(userProfile.email, i18n.t('_email._follow.title'), `${follower.name} (@${getAcct(follower)})`, `${follower.name} (@${getAcct(follower)})`); } -async function receiveFollowRequest(userId: User['id'], args: {}) { +async function receiveFollowRequest(userId: User['id'], follower: User) { const userProfile = await UserProfiles.findOneOrFail({ userId: userId }); if (!userProfile.email || !userProfile.emailNotificationTypes.includes('receiveFollowRequest')) return; const locale = locales[userProfile.lang || 'ja-JP']; const i18n = new I18n(locale); - sendEmail(userProfile.email, i18n.t('_email._receiveFollowRequest.title'), 'test', 'test'); + // TODO: render user information html + sendEmail(userProfile.email, i18n.t('_email._receiveFollowRequest.title'), `${follower.name} (@${getAcct(follower)})`, `${follower.name} (@${getAcct(follower)})`); } export const sendEmailNotification = { From ad4700b3b11cfb0980ea95587545d5ed7c6f25d2 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Wed, 11 Aug 2021 21:10:48 +0900 Subject: [PATCH 35/40] Improve doc --- CHANGELOG.md | 4 +++- src/docs/ja-JP/features/note.md | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c85afa04b8..b891d336a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,10 @@ ## 12.86.0 (unreleased) ### Improvements -- ドキュメントにchangelogを追加 +- ドキュメントの更新 + - ドキュメントにchangelogを追加 - Vueを3.2.1に更新 +- UIの調整 ### Bugfixes - ハッシュタグ入力が空のときに#が付くのを修正 diff --git a/src/docs/ja-JP/features/note.md b/src/docs/ja-JP/features/note.md index c5de5c89a5..1d043660ff 100644 --- a/src/docs/ja-JP/features/note.md +++ b/src/docs/ja-JP/features/note.md @@ -56,3 +56,7 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## ウォッチ +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 +ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 From aeb24b96eb99960d5741d5ca9091746c0f0963bb Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Wed, 11 Aug 2021 21:13:17 +0900 Subject: [PATCH 36/40] Add discord link --- src/docs/ja-JP/general/links.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/docs/ja-JP/general/links.md b/src/docs/ja-JP/general/links.md index 021b51ae56..5ce5e1ddbb 100644 --- a/src/docs/ja-JP/general/links.md +++ b/src/docs/ja-JP/general/links.md @@ -1,6 +1,7 @@ # リンク集 ## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー - [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム ## アカウント From 0f55e657014f6a171c9e4f4389dd7ae49493a5fc Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Wed, 11 Aug 2021 22:34:45 +0900 Subject: [PATCH 37/40] =?UTF-8?q?=E3=81=BC=E3=81=8B=E3=81=97=E5=8A=B9?= =?UTF-8?q?=E6=9E=9C=E3=81=AE=E5=88=87=E3=82=8A=E6=9B=BF=E3=81=88=E6=A9=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + locales/ja-JP.yml | 1 + src/client/components/form/form.scss | 4 ++-- src/client/components/ui/folder.vue | 4 ++-- src/client/init.ts | 8 ++++++++ src/client/pages/channel.vue | 4 ++-- src/client/pages/mfm-cheat-sheet.vue | 4 ++-- src/client/pages/settings/general.vue | 2 ++ src/client/pages/user/index.vue | 4 ++-- src/client/store.ts | 4 ++++ src/client/style.scss | 4 ++-- src/client/ui/_common_/sidebar.vue | 4 ++-- src/client/ui/chat/index.vue | 4 ++-- src/client/ui/chat/side.vue | 4 ++-- src/client/ui/deck/column.vue | 4 ++-- src/client/ui/default.side.vue | 4 ++-- src/client/ui/default.vue | 10 +++++----- src/client/ui/universal.vue | 10 +++++----- src/client/ui/visitor/header.vue | 4 ++-- src/client/ui/visitor/kanban.vue | 8 ++++---- src/client/ui/zen.vue | 4 ++-- 21 files changed, 56 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b891d336a3..7d49d96055 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ### Improvements - ドキュメントの更新 - ドキュメントにchangelogを追加 +- ぼかし効果のオプションを追加 - Vueを3.2.1に更新 - UIの調整 diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index a1d0c14ea3..9b03c20cd1 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -771,6 +771,7 @@ received: "受信" searchResult: "検索結果" hashtags: "ハッシュタグ" troubleshooting: "トラブルシューティング" +useBlurEffect: "UIにぼかし効果を使用" _docs: continueReading: "続きを読む" diff --git a/src/client/components/form/form.scss b/src/client/components/form/form.scss index 05994ae650..00f40df9b1 100644 --- a/src/client/components/form/form.scss +++ b/src/client/components/form/form.scss @@ -32,8 +32,8 @@ margin: -8px calc(var(--formXPadding) * -1) 0 calc(var(--formXPadding) * -1); padding: 8px calc(var(--formContentHMargin) + var(--formXPadding)) 8px calc(var(--formContentHMargin) + var(--formXPadding)); background: var(--X17); - -webkit-backdrop-filter: blur(10px); - backdrop-filter: blur(10px); + -webkit-backdrop-filter: var(--blur, blur(10px)); + backdrop-filter: var(--blur, blur(10px)); } ._themeChanging_ ._formLabel { diff --git a/src/client/components/ui/folder.vue b/src/client/components/ui/folder.vue index e6af40e36d..1f3593a74a 100644 --- a/src/client/components/ui/folder.vue +++ b/src/client/components/ui/folder.vue @@ -102,8 +102,8 @@ export default defineComponent({ background: var(--panel); /* TODO panelの半透明バージョンをプログラマティックに作りたい background: var(--X17); - -webkit-backdrop-filter: blur(8px); - backdrop-filter: blur(20px); + -webkit-backdrop-filter: var(--blur, blur(8px)); + backdrop-filter: var(--blur, blur(20px)); */ > .title { diff --git a/src/client/init.ts b/src/client/init.ts index e6b308c5fb..a4a228da22 100644 --- a/src/client/init.ts +++ b/src/client/init.ts @@ -243,6 +243,14 @@ watch(defaultStore.reactiveState.useBlurEffectForModal, v => { document.documentElement.style.setProperty('--modalBgFilter', v ? 'blur(4px)' : 'none'); }, { immediate: true }); +watch(defaultStore.reactiveState.useBlurEffect, v => { + if (v) { + document.documentElement.style.removeProperty('--blur'); + } else { + document.documentElement.style.setProperty('--blur', 'none'); + } +}, { immediate: true }); + let reloadDialogShowing = false; stream.on('_disconnected_', async () => { if (defaultStore.state.serverDisconnectedBehavior === 'reload') { diff --git a/src/client/pages/channel.vue b/src/client/pages/channel.vue index 1504264af5..d725db9e49 100644 --- a/src/client/pages/channel.vue +++ b/src/client/pages/channel.vue @@ -152,8 +152,8 @@ export default defineComponent({ left: 0; width: 100%; height: 100%; - -webkit-backdrop-filter: blur(16px); - backdrop-filter: blur(16px); + -webkit-backdrop-filter: var(--blur, blur(16px)); + backdrop-filter: var(--blur, blur(16px)); background: rgba(0, 0, 0, 0.3); } diff --git a/src/client/pages/mfm-cheat-sheet.vue b/src/client/pages/mfm-cheat-sheet.vue index 751dccd7a1..95ddc1cbd1 100644 --- a/src/client/pages/mfm-cheat-sheet.vue +++ b/src/client/pages/mfm-cheat-sheet.vue @@ -333,8 +333,8 @@ export default defineComponent({ top: var(--stickyTop, 0px); padding: 16px; font-weight: bold; - -webkit-backdrop-filter: blur(10px); - backdrop-filter: blur(10px); + -webkit-backdrop-filter: var(--blur, blur(10px)); + backdrop-filter: var(--blur, blur(10px)); background-color: var(--X16); } diff --git a/src/client/pages/settings/general.vue b/src/client/pages/settings/general.vue index cc40d2be98..cfa8107d28 100644 --- a/src/client/pages/settings/general.vue +++ b/src/client/pages/settings/general.vue @@ -33,6 +33,7 @@ <template #label>{{ $ts.appearance }}</template> <FormSwitch v-model:value="disableAnimatedMfm">{{ $ts.disableAnimatedMfm }}</FormSwitch> <FormSwitch v-model:value="reduceAnimation">{{ $ts.reduceUiAnimation }}</FormSwitch> + <FormSwitch v-model:value="useBlurEffect">{{ $ts.useBlurEffect }}</FormSwitch> <FormSwitch v-model:value="useBlurEffectForModal">{{ $ts.useBlurEffectForModal }}</FormSwitch> <FormSwitch v-model:value="showGapBetweenNotesInTimeline">{{ $ts.showGapBetweenNotesInTimeline }}</FormSwitch> <FormSwitch v-model:value="loadRawImages">{{ $ts.loadRawImages }}</FormSwitch> @@ -132,6 +133,7 @@ export default defineComponent({ serverDisconnectedBehavior: defaultStore.makeGetterSetter('serverDisconnectedBehavior'), reduceAnimation: defaultStore.makeGetterSetter('animation', v => !v, v => !v), useBlurEffectForModal: defaultStore.makeGetterSetter('useBlurEffectForModal'), + useBlurEffect: defaultStore.makeGetterSetter('useBlurEffect'), showGapBetweenNotesInTimeline: defaultStore.makeGetterSetter('showGapBetweenNotesInTimeline'), disableAnimatedMfm: defaultStore.makeGetterSetter('animatedMfm', v => !v, v => !v), useOsNativeEmojis: defaultStore.makeGetterSetter('useOsNativeEmojis'), diff --git a/src/client/pages/user/index.vue b/src/client/pages/user/index.vue index 9cf424b127..4145c86d56 100644 --- a/src/client/pages/user/index.vue +++ b/src/client/pages/user/index.vue @@ -613,8 +613,8 @@ export default defineComponent({ position: absolute; top: 12px; right: 12px; - -webkit-backdrop-filter: blur(8px); - backdrop-filter: blur(8px); + -webkit-backdrop-filter: var(--blur, blur(8px)); + backdrop-filter: var(--blur, blur(8px)); background: rgba(0, 0, 0, 0.2); padding: 8px; border-radius: 24px; diff --git a/src/client/store.ts b/src/client/store.ts index 364d8afd93..4c4a7d93e9 100644 --- a/src/client/store.ts +++ b/src/client/store.ts @@ -142,6 +142,10 @@ export const defaultStore = markRaw(new Storage('base', { where: 'device', default: true }, + useBlurEffect: { + where: 'device', + default: false + }, showFixedPostForm: { where: 'device', default: false diff --git a/src/client/style.scss b/src/client/style.scss index 1253141d36..a3e3b6a6a1 100644 --- a/src/client/style.scss +++ b/src/client/style.scss @@ -404,8 +404,8 @@ hr { ._acrylic { background: var(--acrylicPanel); - -webkit-backdrop-filter: blur(15px); - backdrop-filter: blur(15px); + -webkit-backdrop-filter: var(--blur, blur(15px)); + backdrop-filter: var(--blur, blur(15px)); } ._inputSplit { diff --git a/src/client/ui/_common_/sidebar.vue b/src/client/ui/_common_/sidebar.vue index ffa3a67b13..b7b88faeac 100644 --- a/src/client/ui/_common_/sidebar.vue +++ b/src/client/ui/_common_/sidebar.vue @@ -374,8 +374,8 @@ export default defineComponent({ padding-top: 8px; padding-bottom: 8px; background: var(--X14); - -webkit-backdrop-filter: blur(8px); - backdrop-filter: blur(8px); + -webkit-backdrop-filter: var(--blur, blur(8px)); + backdrop-filter: var(--blur, blur(8px)); } &:first-child { diff --git a/src/client/ui/chat/index.vue b/src/client/ui/chat/index.vue index 6d6e302e3c..e8275def81 100644 --- a/src/client/ui/chat/index.vue +++ b/src/client/ui/chat/index.vue @@ -373,8 +373,8 @@ export default defineComponent({ position: sticky; top: 0; background: var(--X17); - -webkit-backdrop-filter: blur(8px); - backdrop-filter: blur(8px); + -webkit-backdrop-filter: var(--blur, blur(8px)); + backdrop-filter: var(--blur, blur(8px)); z-index: 1; color: var(--fgTransparentWeak); diff --git a/src/client/ui/chat/side.vue b/src/client/ui/chat/side.vue index 5ccfad1b75..ebf1cf9979 100644 --- a/src/client/ui/chat/side.vue +++ b/src/client/ui/chat/side.vue @@ -130,8 +130,8 @@ export default defineComponent({ width: 100%; font-weight: bold; //background-color: var(--panel); - -webkit-backdrop-filter: blur(32px); - backdrop-filter: blur(32px); + -webkit-backdrop-filter: var(--blur, blur(32px)); + backdrop-filter: var(--blur, blur(32px)); background-color: var(--header); border-bottom: solid 0.5px var(--divider); box-sizing: border-box; diff --git a/src/client/ui/deck/column.vue b/src/client/ui/deck/column.vue index eaf9280698..842a6ff59f 100644 --- a/src/client/ui/deck/column.vue +++ b/src/client/ui/deck/column.vue @@ -305,8 +305,8 @@ export default defineComponent({ &.naked { background: var(--acrylicBg) !important; - -webkit-backdrop-filter: blur(10px); - backdrop-filter: blur(10px); + -webkit-backdrop-filter: var(--blur, blur(10px)); + backdrop-filter: var(--blur, blur(10px)); > header { background: transparent; diff --git a/src/client/ui/default.side.vue b/src/client/ui/default.side.vue index dca16cdb3e..4d65779612 100644 --- a/src/client/ui/default.side.vue +++ b/src/client/ui/default.side.vue @@ -138,8 +138,8 @@ export default defineComponent({ text-align: center; font-weight: bold; //background-color: var(--panel); - -webkit-backdrop-filter: blur(32px); - backdrop-filter: blur(32px); + -webkit-backdrop-filter: var(--blur, blur(32px)); + backdrop-filter: var(--blur, blur(32px)); background-color: var(--header); > ._button { diff --git a/src/client/ui/default.vue b/src/client/ui/default.vue index 3fc666c833..23b63114cc 100644 --- a/src/client/ui/default.vue +++ b/src/client/ui/default.vue @@ -240,7 +240,7 @@ export default defineComponent({ &.wallpaper { background: var(--wallpaperOverlay); - //backdrop-filter: blur(4px); + //backdrop-filter: var(--blur, blur(4px)); } &.isMobile { @@ -303,8 +303,8 @@ export default defineComponent({ z-index: 1000; top: var(--globalHeaderHeight, 0px); height: $header-height; - -webkit-backdrop-filter: blur(32px); - backdrop-filter: blur(32px); + -webkit-backdrop-filter: var(--blur, blur(32px)); + backdrop-filter: var(--blur, blur(32px)); background-color: var(--header); border-bottom: solid 0.5px var(--divider); } @@ -380,8 +380,8 @@ export default defineComponent({ display: flex; width: 100%; box-sizing: border-box; - -webkit-backdrop-filter: blur(32px); - backdrop-filter: blur(32px); + -webkit-backdrop-filter: var(--blur, blur(32px)); + backdrop-filter: var(--blur, blur(32px)); background-color: var(--header); border-top: solid 0.5px var(--divider); diff --git a/src/client/ui/universal.vue b/src/client/ui/universal.vue index 1e8c4b36d5..c49ad730f4 100644 --- a/src/client/ui/universal.vue +++ b/src/client/ui/universal.vue @@ -250,7 +250,7 @@ export default defineComponent({ &.wallpaper { background: var(--wallpaperOverlay); - //backdrop-filter: blur(4px); + //backdrop-filter: var(--blur, blur(4px)); } > .contents { @@ -269,8 +269,8 @@ export default defineComponent({ text-align: center; font-weight: bold; //background-color: var(--panel); - -webkit-backdrop-filter: blur(32px); - backdrop-filter: blur(32px); + -webkit-backdrop-filter: var(--blur, blur(32px)); + backdrop-filter: var(--blur, blur(32px)); background-color: var(--header); //border-bottom: solid 0.5px var(--divider); user-select: none; @@ -341,8 +341,8 @@ export default defineComponent({ display: flex; width: 100%; box-sizing: border-box; - -webkit-backdrop-filter: blur(32px); - backdrop-filter: blur(32px); + -webkit-backdrop-filter: var(--blur, blur(32px)); + backdrop-filter: var(--blur, blur(32px)); background-color: var(--header); &:not(.navHidden) { diff --git a/src/client/ui/visitor/header.vue b/src/client/ui/visitor/header.vue index 1effadf4f7..6d2ebc880f 100644 --- a/src/client/ui/visitor/header.vue +++ b/src/client/ui/visitor/header.vue @@ -90,8 +90,8 @@ export default defineComponent({ left: 0; z-index: 1000; line-height: $height; - -webkit-backdrop-filter: blur(32px); - backdrop-filter: blur(32px); + -webkit-backdrop-filter: var(--blur, blur(32px)); + backdrop-filter: var(--blur, blur(32px)); background-color: var(--X16); > .wide { diff --git a/src/client/ui/visitor/kanban.vue b/src/client/ui/visitor/kanban.vue index ffa7a3d1ff..5fbbff3d32 100644 --- a/src/client/ui/visitor/kanban.vue +++ b/src/client/ui/visitor/kanban.vue @@ -122,8 +122,8 @@ export default defineComponent({ background: rgba(0, 0, 0, 0.3); &.transparent { - -webkit-backdrop-filter: blur(12px); - backdrop-filter: blur(12px); + -webkit-backdrop-filter: var(--blur, blur(12px)); + backdrop-filter: var(--blur, blur(12px)); } } @@ -140,8 +140,8 @@ export default defineComponent({ margin: 0 auto; > .panel { - -webkit-backdrop-filter: blur(8px); - backdrop-filter: blur(8px); + -webkit-backdrop-filter: var(--blur, blur(8px)); + backdrop-filter: var(--blur, blur(8px)); background: rgba(0, 0, 0, 0.5); border-radius: var(--radius); diff --git a/src/client/ui/zen.vue b/src/client/ui/zen.vue index 6e7382b0d3..3756ddb5c3 100644 --- a/src/client/ui/zen.vue +++ b/src/client/ui/zen.vue @@ -89,8 +89,8 @@ export default defineComponent({ line-height: $header-height; text-align: center; //background-color: var(--panel); - -webkit-backdrop-filter: blur(32px); - backdrop-filter: blur(32px); + -webkit-backdrop-filter: var(--blur, blur(32px)); + backdrop-filter: var(--blur, blur(32px)); background-color: var(--header); border-bottom: solid 0.5px var(--divider); } From 7b2cb30a9dd4d5385b4410f40e91c952045dc4a3 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Wed, 11 Aug 2021 22:36:36 +0900 Subject: [PATCH 38/40] New Crowdin updates (#7617) * 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 (German) * 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 silence.md (Esperanto) * New translations glossary.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 troubleshooting.md (French) * New translations troubleshooting.md (Chinese Simplified) * New translations troubleshooting.md (Kabyle) * New translations troubleshooting.md (Haitian Creole) * New translations troubleshooting.md (Kannada) * New translations troubleshooting.md (Lojban) * New translations troubleshooting.md (Uyghur) * New translations troubleshooting.md (Esperanto) * New translations troubleshooting.md (Thai) * New translations troubleshooting.md (Indonesian) * New translations troubleshooting.md (English) * New translations troubleshooting.md (Chinese Traditional) * New translations troubleshooting.md (Ukrainian) * New translations troubleshooting.md (Spanish) * 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 troubleshooting.md (German) * New translations troubleshooting.md (Danish) * New translations troubleshooting.md (Czech) * New translations troubleshooting.md (Arabic) * New translations troubleshooting.md (Japanese, Kansai) * 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 theme.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 changelog.md (French) * New translations changelog.md (Chinese Simplified) * New translations changelog.md (Kabyle) * New translations changelog.md (Haitian Creole) * New translations changelog.md (Kannada) * New translations changelog.md (Lojban) * New translations changelog.md (Uyghur) * New translations changelog.md (Esperanto) * New translations changelog.md (Thai) * New translations changelog.md (Indonesian) * New translations changelog.md (English) * New translations changelog.md (Chinese Traditional) * New translations changelog.md (Ukrainian) * New translations changelog.md (Spanish) * New translations changelog.md (Russian) * New translations changelog.md (Portuguese) * New translations changelog.md (Polish) * New translations changelog.md (Norwegian) * New translations changelog.md (Dutch) * New translations changelog.md (Korean) * New translations changelog.md (Italian) * New translations changelog.md (German) * New translations changelog.md (Danish) * New translations changelog.md (Czech) * New translations changelog.md (Arabic) * New translations changelog.md (Japanese, Kansai) * New translations links.md (Ukrainian) * New translations links.md (Czech) * New translations links.md (Danish) * New translations links.md (German) * New translations links.md (Italian) * New translations links.md (Korean) * New translations links.md (Dutch) * New translations links.md (Norwegian) * New translations links.md (Polish) * New translations links.md (Portuguese) * New translations links.md (Russian) * New translations links.md (Chinese Simplified) * New translations links.md (Spanish) * New translations links.md (Chinese Traditional) * New translations links.md (English) * New translations links.md (Indonesian) * New translations links.md (Thai) * New translations links.md (Esperanto) * New translations links.md (Uyghur) * New translations links.md (Lojban) * New translations links.md (Kannada) * New translations links.md (Haitian Creole) * New translations links.md (Kabyle) * New translations links.md (Arabic) * New translations links.md (French) * New translations ja-JP.yml (English) * New translations links.md (Japanese, Kansai) * New translations disable-timelines.md (English) * New translations disable-timelines.md (English) * New translations disable-timelines.md (English) * New translations faq.md (English) * New translations faq.md (English) * New translations misskey.md (English) * New translations ja-JP.yml (English) * New translations faq.md (English) * New translations apps.md (English) * New translations apps.md (English) * New translations faq.md (English) * New translations misskey.md (English) * New translations changelog.md (English) * New translations faq.md (English) * New translations misskey.md (English) * New translations faq.md (English) * New translations glossary.md (English) * New translations glossary.md (English) * New translations glossary.md (English) * New translations glossary.md (English) * New translations links.md (English) * New translations links.md (English) * New translations report-issue.md (English) * New translations ja-JP.yml (German) * New translations ja-JP.yml (English) * New translations antenna.md (English) * New translations drive.md (English) * New translations drive.md (English) * New translations faq.md (English) * New translations antenna.md (English) * New translations drive.md (English) * New translations favorite.md (English) * New translations silence.md (English) * New translations glossary.md (English) * New translations silence.md (English) * New translations widgets.md (English) * New translations ja-JP.yml (English) * New translations misskey.md (English) * New translations faq.md (English) * New translations antenna.md (English) * New translations drive.md (English) * New translations favorite.md (English) * New translations glossary.md (English) * New translations misskey.md (English) * New translations misskey.md (English) * New translations misskey.md (English) * New translations troubleshooting.md (English) * New translations troubleshooting.md (English) * New translations troubleshooting.md (English) * New translations troubleshooting.md (English) * New translations misskey.md (English) * New translations misskey.md (English) * New translations misskey.md (English) * New translations misskey.md (English) * New translations misskey.md (English) * New translations misskey.md (English) * New translations misskey.md (English) * New translations ja-JP.yml (Chinese Simplified) * New translations disable-timelines.md (Chinese Simplified) * New translations links.md (Chinese Simplified) * New translations note.md (English) * New translations silence.md (English) * New translations note.md (English) * New translations note.md (English) * New translations note.md (English) * New translations note.md (English) * New translations note.md (Ukrainian) * New translations note.md (Czech) * New translations note.md (Danish) * New translations note.md (German) * New translations note.md (Italian) * New translations note.md (Korean) * New translations note.md (Dutch) * New translations note.md (Norwegian) * New translations note.md (Polish) * New translations note.md (Portuguese) * New translations note.md (Russian) * New translations note.md (Chinese Simplified) * New translations note.md (Spanish) * New translations note.md (Chinese Traditional) * New translations note.md (English) * New translations note.md (Indonesian) * New translations note.md (Thai) * New translations note.md (Esperanto) * New translations note.md (Uyghur) * New translations note.md (Lojban) * New translations note.md (Kannada) * New translations note.md (Haitian Creole) * New translations note.md (Kabyle) * New translations note.md (Arabic) * New translations note.md (French) * New translations note.md (Japanese, Kansai) * New translations ja-JP.yml (Esperanto) * New translations links.md (Ukrainian) * New translations links.md (Kabyle) * New translations links.md (Haitian Creole) * New translations links.md (Kannada) * New translations links.md (Lojban) * 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 (Russian) * New translations links.md (French) * New translations links.md (Portuguese) * New translations links.md (Polish) * New translations links.md (Norwegian) * New translations links.md (Dutch) * New translations links.md (Korean) * New translations links.md (Italian) * New translations links.md (German) * New translations links.md (Danish) * New translations links.md (Czech) * New translations links.md (Arabic) * New translations links.md (Spanish) * New translations links.md (Japanese, Kansai) * New translations note.md (Esperanto) * New translations disable-timelines.md (Chinese Simplified) --- locales/de-DE.yml | 3 +- locales/en-US.yml | 9 +- locales/eo-UY.yml | 96 ++++++++++------- locales/zh-CN.yml | 1 + src/docs/ar-SA/features/note.md | 3 + src/docs/ar-SA/general/changelog.md | 5 + src/docs/ar-SA/general/links.md | 7 ++ src/docs/ar-SA/general/troubleshooting.md | 4 + src/docs/cs-CZ/features/note.md | 3 + src/docs/cs-CZ/general/changelog.md | 5 + src/docs/cs-CZ/general/links.md | 7 ++ src/docs/cs-CZ/general/troubleshooting.md | 4 + src/docs/da-DK/features/note.md | 3 + src/docs/da-DK/general/changelog.md | 5 + src/docs/da-DK/general/links.md | 7 ++ src/docs/da-DK/general/troubleshooting.md | 4 + src/docs/de-DE/features/note.md | 3 + src/docs/de-DE/general/changelog.md | 5 + src/docs/de-DE/general/links.md | 7 ++ src/docs/de-DE/general/troubleshooting.md | 4 + src/docs/en-US/admin/disable-timelines.md | 10 +- src/docs/en-US/admin/faq.md | 8 +- src/docs/en-US/features/antenna.md | 4 +- src/docs/en-US/features/drive.md | 18 ++-- src/docs/en-US/features/favorite.md | 6 +- src/docs/en-US/features/note.md | 51 ++++----- src/docs/en-US/features/silence.md | 6 +- src/docs/en-US/features/widgets.md | 6 +- src/docs/en-US/general/apps.md | 6 +- src/docs/en-US/general/changelog.md | 5 + src/docs/en-US/general/faq.md | 30 +++--- src/docs/en-US/general/glossary.md | 64 +++++------ src/docs/en-US/general/links.md | 15 ++- src/docs/en-US/general/misskey.md | 113 ++++++++++---------- src/docs/en-US/general/report-issue.md | 14 +-- src/docs/en-US/general/troubleshooting.md | 50 +++++---- src/docs/eo-UY/features/note.md | 3 + src/docs/eo-UY/features/silence.md | 2 +- src/docs/eo-UY/features/theme.md | 8 +- src/docs/eo-UY/general/changelog.md | 5 + src/docs/eo-UY/general/glossary.md | 4 +- src/docs/eo-UY/general/links.md | 7 ++ src/docs/eo-UY/general/troubleshooting.md | 4 + src/docs/es-ES/features/note.md | 3 + src/docs/es-ES/general/changelog.md | 5 + src/docs/es-ES/general/links.md | 7 ++ src/docs/es-ES/general/troubleshooting.md | 4 + src/docs/fr-FR/features/note.md | 3 + src/docs/fr-FR/general/changelog.md | 5 + src/docs/fr-FR/general/links.md | 7 ++ src/docs/fr-FR/general/troubleshooting.md | 4 + src/docs/ht-HT/features/note.md | 3 + src/docs/ht-HT/general/changelog.md | 5 + src/docs/ht-HT/general/links.md | 7 ++ src/docs/ht-HT/general/troubleshooting.md | 4 + src/docs/id-ID/features/note.md | 3 + src/docs/id-ID/general/changelog.md | 5 + src/docs/id-ID/general/links.md | 7 ++ src/docs/id-ID/general/troubleshooting.md | 4 + src/docs/it-IT/features/note.md | 3 + src/docs/it-IT/general/changelog.md | 5 + src/docs/it-IT/general/links.md | 7 ++ src/docs/it-IT/general/troubleshooting.md | 4 + src/docs/ja-KS/features/note.md | 3 + src/docs/ja-KS/general/changelog.md | 5 + src/docs/ja-KS/general/links.md | 7 ++ src/docs/ja-KS/general/troubleshooting.md | 4 + src/docs/jbo-EN/features/note.md | 3 + src/docs/jbo-EN/general/changelog.md | 5 + src/docs/jbo-EN/general/links.md | 7 ++ src/docs/jbo-EN/general/troubleshooting.md | 4 + src/docs/kab-KAB/features/note.md | 3 + src/docs/kab-KAB/general/changelog.md | 5 + src/docs/kab-KAB/general/links.md | 7 ++ src/docs/kab-KAB/general/troubleshooting.md | 4 + src/docs/kn-IN/features/note.md | 3 + src/docs/kn-IN/general/changelog.md | 5 + src/docs/kn-IN/general/links.md | 7 ++ src/docs/kn-IN/general/troubleshooting.md | 4 + src/docs/ko-KR/features/note.md | 3 + src/docs/ko-KR/general/changelog.md | 5 + src/docs/ko-KR/general/links.md | 7 ++ src/docs/ko-KR/general/troubleshooting.md | 4 + src/docs/nl-NL/features/note.md | 3 + src/docs/nl-NL/general/changelog.md | 5 + src/docs/nl-NL/general/links.md | 7 ++ src/docs/nl-NL/general/troubleshooting.md | 4 + src/docs/no-NO/features/note.md | 3 + src/docs/no-NO/general/changelog.md | 5 + src/docs/no-NO/general/links.md | 7 ++ src/docs/no-NO/general/troubleshooting.md | 4 + src/docs/pl-PL/features/note.md | 3 + src/docs/pl-PL/general/changelog.md | 5 + src/docs/pl-PL/general/links.md | 7 ++ src/docs/pl-PL/general/troubleshooting.md | 4 + src/docs/pt-PT/features/note.md | 3 + src/docs/pt-PT/general/changelog.md | 5 + src/docs/pt-PT/general/links.md | 7 ++ src/docs/pt-PT/general/troubleshooting.md | 4 + src/docs/ru-RU/features/note.md | 3 + src/docs/ru-RU/general/changelog.md | 5 + src/docs/ru-RU/general/links.md | 7 ++ src/docs/ru-RU/general/troubleshooting.md | 4 + src/docs/th-TH/features/note.md | 3 + src/docs/th-TH/general/changelog.md | 5 + src/docs/th-TH/general/links.md | 7 ++ src/docs/th-TH/general/troubleshooting.md | 4 + src/docs/ug-CN/features/note.md | 3 + src/docs/ug-CN/general/changelog.md | 5 + src/docs/ug-CN/general/links.md | 7 ++ src/docs/ug-CN/general/troubleshooting.md | 4 + src/docs/uk-UA/features/note.md | 3 + src/docs/uk-UA/general/changelog.md | 5 + src/docs/uk-UA/general/links.md | 7 ++ src/docs/uk-UA/general/troubleshooting.md | 4 + src/docs/zh-CN/admin/disable-timelines.md | 4 +- src/docs/zh-CN/admin/faq.md | 8 +- src/docs/zh-CN/advanced/aiscript.md | 8 +- src/docs/zh-CN/features/note.md | 3 + src/docs/zh-CN/general/changelog.md | 5 + src/docs/zh-CN/general/faq.md | 2 +- src/docs/zh-CN/general/links.md | 7 ++ src/docs/zh-CN/general/misskey.md | 2 +- src/docs/zh-CN/general/troubleshooting.md | 4 + src/docs/zh-TW/features/note.md | 3 + src/docs/zh-TW/general/changelog.md | 5 + src/docs/zh-TW/general/links.md | 7 ++ src/docs/zh-TW/general/troubleshooting.md | 4 + 128 files changed, 774 insertions(+), 254 deletions(-) create mode 100644 src/docs/ar-SA/general/changelog.md create mode 100644 src/docs/cs-CZ/general/changelog.md create mode 100644 src/docs/da-DK/general/changelog.md create mode 100644 src/docs/de-DE/general/changelog.md create mode 100644 src/docs/en-US/general/changelog.md create mode 100644 src/docs/eo-UY/general/changelog.md create mode 100644 src/docs/es-ES/general/changelog.md create mode 100644 src/docs/fr-FR/general/changelog.md create mode 100644 src/docs/ht-HT/general/changelog.md create mode 100644 src/docs/id-ID/general/changelog.md create mode 100644 src/docs/it-IT/general/changelog.md create mode 100644 src/docs/ja-KS/general/changelog.md create mode 100644 src/docs/jbo-EN/general/changelog.md create mode 100644 src/docs/kab-KAB/general/changelog.md create mode 100644 src/docs/kn-IN/general/changelog.md create mode 100644 src/docs/ko-KR/general/changelog.md create mode 100644 src/docs/nl-NL/general/changelog.md create mode 100644 src/docs/no-NO/general/changelog.md create mode 100644 src/docs/pl-PL/general/changelog.md create mode 100644 src/docs/pt-PT/general/changelog.md create mode 100644 src/docs/ru-RU/general/changelog.md create mode 100644 src/docs/th-TH/general/changelog.md create mode 100644 src/docs/ug-CN/general/changelog.md create mode 100644 src/docs/uk-UA/general/changelog.md create mode 100644 src/docs/zh-CN/general/changelog.md create mode 100644 src/docs/zh-TW/general/changelog.md diff --git a/locales/de-DE.yml b/locales/de-DE.yml index d7538c7fe6..e9cca4249e 100644 --- a/locales/de-DE.yml +++ b/locales/de-DE.yml @@ -777,6 +777,7 @@ _docs: generalTopics: "Allgemeine Themen" advancedTopics: "Erweiterte Themen" admin: "Administration" + translateWarn: "Dies ist ein übersetztes Dokument. Es kann zu Unterschieden mit dem Original kommen." _ad: back: "Zurück" reduceFrequencyOfThisAd: "Diese Werbung weniger anzeigen" @@ -1643,4 +1644,4 @@ _deck: antenna: "Antennen" list: "Listen" mentions: "Erwähnungen" - direct: "Direkt" + direct: "Direktnachrichten" diff --git a/locales/en-US.yml b/locales/en-US.yml index e5ed9fa9c5..36ce8c0f89 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -730,7 +730,7 @@ 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 the search." +hideOnlineStatusDescription: "Hiding your online status reduces the convenience of some features such as the search." online: "Online" active: "Active" offline: "Offline" @@ -777,6 +777,7 @@ _docs: generalTopics: "General topics" advancedTopics: "Advanced Topics" admin: "Administration" + translateWarn: "This is a translated document. Its contents may differ from the original." _ad: back: "Back" reduceFrequencyOfThisAd: "Show this ad less" @@ -1077,7 +1078,7 @@ _2fa: _permissions: "read:account": "View your account information" "write:account": "Edit your account information" - "read:blocks": "View your list of blocked users" + "read:blocks": "View the list of people you blocked" "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" @@ -1621,7 +1622,7 @@ _notification: receiveFollowRequest: "Received follow requests" followRequestAccepted: "Accepted follow requests" groupInvited: "Group invitations" - app: "Notifications from apps" + app: "Notifications from linked apps" _deck: alwaysShowMainColumn: "Always show main column" columnAlign: "Align columns" @@ -1643,4 +1644,4 @@ _deck: antenna: "Antennas" list: "List" mentions: "Mentions" - direct: "Direct" + direct: "Direct notes" diff --git a/locales/eo-UY.yml b/locales/eo-UY.yml index 89f84a84ad..69beb9ab1c 100644 --- a/locales/eo-UY.yml +++ b/locales/eo-UY.yml @@ -1,7 +1,7 @@ --- _lang_: "Esperanto" 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🚀" +introMisskey: "Bonvenon! Misskey estas malfermitkoda malcentriza mikrobloga servo.\nKreu \"noto\"n por kunhavu tion ke nun okazas, aŭ por dissendu pri vi📡\nPer la funkcio \"reago\" vi ankaŭ povas rapide esprimi vian senton pri ĉies noto👍\nVolu esplori nova mondo🚀" monthAndDay: "{day}-a/{month}" search: "Serĉi" notifications: "Sciigoj" @@ -23,7 +23,7 @@ otherSettings: "Aliaj agordoj" openInWindow: "Malfermi en nova fenestro" profile: "Profilo" timeline: "Templinio" -noAccountDescription: "Tiu uzanto ne enhavas biografion je la profilo." +noAccountDescription: "Tiu uzanto ankoraŭ ne skribis biografieton" login: "Ensaluti" loggingIn: "Ensalutado..." logout: "Elsaluti" @@ -43,8 +43,8 @@ unpin: "Depingli" copyContent: "Kopii enhavon" copyLink: "Kopii ligilon" delete: "Forviŝi" -deleteAndEdit: "Foriginte redakti" -deleteAndEditConfirm: "Ĉu vi certas, ke vi volas forigi la noton kaj redakti ĝin? Ĉiuj reagoj, renotoj, kaj respondoj ankaŭ foriĝos." +deleteAndEdit: "Forigi kaj redakti" +deleteAndEditConfirm: "Ĉu vi certas, ke vi volas forigi kaj redakti la noton? Ĉiuj reagoj, renotoj, kaj respondoj ankaŭ foriĝos." addToList: "Aldoni al la listo" sendMessage: "Sendi mesaĝon" copyUsername: "Kopii uzantnomon" @@ -62,7 +62,7 @@ import: "Importi" export: "Eksporti" files: "Dosieroj" download: "Elŝuti" -driveFileDeleteConfirm: "Ĉu vi certas ke vi volas forviŝi la dosierujon {name}? Noto aldonita ĝin ankaŭ foriĝos." +driveFileDeleteConfirm: "Ĉu vi certas, ke vi volas forviŝi la dosieron \"{name}\"? Ankaŭ notoj kiu enhavas ĝin forviŝiĝos." unfollowConfirm: "Ĉu vi certas, ke vi volas ne plu sekvi {name}'(o)n?" lists: "Listoj" noLists: "Neniu listo" @@ -117,7 +117,8 @@ emojis: "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" +settingGuide: "Rekomendaj agordoj" +cacheRemoteFiles: "Havi staplon por transaj dosieroj" flagAsBot: "Tiu uzanto estas roboto" flagAsCat: "Tiu uzanto estas kato" addAccount: "Aldoni konton" @@ -128,7 +129,7 @@ youHaveNoLists: "Vi ne havas listojn." followConfirm: "Ĉu vi certas ke vi volas sekvi {name}'(o)n?" selectUser: "Elekti uzanton" annotation: "Komentarioj" -federation: "Fediverso" +federation: "Konfederacio" instances: "Ekzemplo" perHour: "Po horo" perDay: "Po tago" @@ -136,19 +137,19 @@ blockThisInstance: "Bloki tiu ekzemplo" withNFiles: "{n} dosiero(j)" disk: "Diskilo" instanceInfo: "Informo pri la ekzemplo" -clearCachedFiles: "Forviŝi datumon en staplo" +clearCachedFiles: "Malplenigi la staplon" 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" +muteAndBlock: "Silentigatoj kaj blokatoj" +mutedUsers: "Silentigataj uzantoj" +blockedUsers: "Blokataj uzantoj" noUsers: "Sen uzantoj" editProfile: "Redakti profilon" noteDeleteConfirm: "Ĉu vi certas ke vi volas forviŝi la noton?" pinLimitExceeded: "Vi ne plu povas alpingli noton." noCustomEmojis: "Neniu emoĵio" federating: "Konfederado" -blocked: "Blokita" +blocked: "Blokata" subscribing: "Abonita" notResponding: "Alvokato ne disponeblas" instanceFollowing: "Sekvatoj sur la ekzemplo" @@ -169,14 +170,14 @@ 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 diskingo en Miskejo" +fromDrive: "De la diskingo" fromUrl: "De URL" uploadFromUrl: "Alŝuti de URL" uploadFromUrlDescription: "URL de la dosiero kiun vi volu alŝuti" -games: "Ludoj sur Miskejo" +games: "Ludoj sur Misskey" messageRead: "Legita" startMessaging: "Komenci babiladon" -tos: "Kondiĉoj de Uzado" +tos: "Kondiĉoj de uzado" start: "Komenciĝi" home: "Hejmo" remoteUserCaution: "Ĉi tiu Infomoj estas ne tute ekzakta pro distanca uzanto." @@ -192,11 +193,11 @@ folderName: "Nomo de la dosierujo" renameFolder: "Alinomi la dosierujon" deleteFolder: "Forviŝi dosierujon" addFile: "Aldoni dosieron" -emptyDrive: "La diskingo enhavas neniun." +emptyDrive: "La diskingo malplenas." unableToDelete: "Ne forigebla" inputNewFileName: "Entajpu nova dosiernomon" inputNewFolderName: "Entajpu nova nomon de la dosierujo" -hasChildFilesOrFolders: "La dosierujo enhavas dosieron kaj ne estas forigebla." +hasChildFilesOrFolders: "La dosierujo ne estas forviŝebla, ĉar ĝi ne malplenas." copyUrl: "Kopii URL" rename: "Alinomi" avatar: "Ikono" @@ -222,16 +223,20 @@ 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 ne plu volas ke la uzanto silentas?" +silence: "Mutigi" +silenceConfirm: "Ĉu vi certas ke vi volas mutigi la uzanton?" +unsilence: "Malmutigi" +unsilenceConfirm: "Ĉu vi certas ke vi volas malmutigi la uzanton?" +recentlyUpdatedUsers: "Uzantoj kiu lastatempe faris noton" +recentlyRegisteredUsers: "Nove aniĝintaj uzantoj" popularTags: "Popularaj kradvortoj" userList: "Listoj" -aboutMisskey: "Pri Miskejo" +aboutMisskey: "Pri Misskey" securityKeyName: "Nomo de la ŝlosilo" passwordLessLogin: "Ensaluti sen pasvorto" resetPassword: "Restarigi pasvorton" newPasswordIs: "La nova pasvorto estas {password}." -cacheClear: "Forviŝi datumon en stalo" +cacheClear: "Malplenigi staplon" help: "Manlibro de uzado" inputMessageHere: "Entajpu masaĝo tie ĉi" groupName: "Grupa nomo" @@ -241,12 +246,13 @@ 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." +invitationCode: "Kodo de invito" 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" +openImageInNewTab: "Fermi la bildon en nova tablo" local: "Loka" remote: "Transa" accountSettings: "Agordoj de Konto" @@ -257,14 +263,17 @@ 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?" +userSilenced: "Tiu uzanto estas mutigata." deletedNote: "Forviŝita noto" invisibleNote: "Malpublika noto" poll: "Balotujo" +edit: "Redakti" emailServer: "Retpoŝta servilo" email: "Retpoŝto" emailAddress: "Retpoŝta adreso" smtpUser: "Uzantnomo" smtpPass: "Pasvorto" +wordMute: "Silentigo de vortoj" userSaysSomething: "{name} parolis ion" display: "Vidi" database: "Datumbazo" @@ -274,7 +283,9 @@ abuseReports: "Signali" reportAbuse: "Signali" reportAbuseOf: "Signali {name}'(o)n" send: "Sendi" -i18nInfo: "Misskey estas tradukata en diversaj lingvoj far volontuloj. Oni povas kontribui por la tradukado sur {link}." +openInNewTab: "Malfermi en nova langeto" +editTheseSettingsMayBreakAccount: "Redakti tiujn agordojn estas eble damaĝi konton." +i18nInfo: "Misskey estas tradukata en diversaj lingvoj far volontuloj. Oni povas kontribui por la tradukado ĉe {link}." followingCount: "Numero de sekvatoj" followersCount: "Numero de sekvantoj" yes: "Jes" @@ -283,7 +294,7 @@ 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" +clearCache: "Malplenigi staplon" onlineUsersCount: "{n} uzanto(j) estas surlinea" nUsers: "{n} uzanto(j)" saveAs: "Konservi kiel…" @@ -291,9 +302,11 @@ createdAt: "Kreita je" updatedAt: "Laste ĝisdatigita" deleteConfirm: "Ĉu certas forviŝi?" closeAccount: "Forigi konton" +editCode: "Redakti kodon" emailNotification: "Sciigoj per retpoŝto" publish: "Publikigi" inChannelSearch: "Serĉi en kanalo" +useReactionPickerForContextMenu: "Malfermu reago-elektilon per dekstro-kliki" typingUsers: "{users} estas entajpanta(j)..." online: "Surkonektita" offline: "Forkonektita" @@ -316,14 +329,16 @@ _aboutMisskey: contributors: "Precipaj kontribuantoj" allContributors: "Ĉiuj kontribuintoj" source: "Fontkodo" - translation: "Traduki Miskejon" + translation: "Traduki Misskey'on" patrons: "Mecenatoj" _mfm: mention: "Mencioj" hashtag: "Kradvorto" url: "URL" - blockCode: "Kodo (Ujo)" - blockMath: "Formulo (Ujo)" + inlineCode: "Kodo (en linio)" + blockCode: "Kodo (bloko)" + inlineMath: "Formulo (en linio)" + blockMath: "Formulo (bloko)" quote: "Citi" emoji: "Personecigitaj emoĵioj" search: "Serĉi" @@ -338,9 +353,10 @@ _channel: _menuDisplay: hide: "Kaŝi" _wordMute: - muteWords: "Silentanta vorto" + muteWords: "Silentigataj vortoj" mutedNotes: "Silentigataj notoj" _theme: + code: "Kodo de koloraro" keys: hashtag: "Kradvorto" mention: "Mencioj" @@ -369,19 +385,23 @@ _time: _tutorial: title: "Uzado de Misskey" step1_1: "Bonvenon." - step7_2: "Se vi volus scii pli pri Miskejon, volu rigardi la fako {help}." + step7_2: "Se vi volus scii pli pri Miskejon, volu rigardi la fakon {help}." + step7_3: "Do, bonvolu amuziĝi Miskejon🚀" _permissions: - "read:blocks": "Vidi la listo de la uzantoj kiun vi blokis." - "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" + "read:blocks": "Vidi la liston de uzantoj kiun vi blokas" + "write:blocks": "Redakti vian liston de blokataj uzantoj" + "read:drive": "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:favorites": "Vidi vian liston de preferatoj" "read:following": "Vidi tion kion vi sekvas" "write:following": "Sekvi kaj/aŭ malsekvi alian uzanton" "read:messaging": "Vidi via retbabilado" + "read:mutes": "Vidi vian liston de silentigoj" + "write:mutes": "Redakti vian liston de silentigoj" "write:notes": "Krei / Forviŝi noton" "read:notifications": "Vidi sciigojn" "read:reactions": "Vidi reagojn" + "write:reactions": "Redakti viajn reagojn" "read:pages": "Vidi via paĝojn" "read:page-likes": "Vidi ŝatojn de paĝo" "read:channels": "Vidi kanalojn" @@ -399,7 +419,8 @@ _widgets: notifications: "Sciigoj" timeline: "Templinio" clock: "Horloĝo" - federation: "Fediverso" + federation: "Konfederacio" + slideshow: "Bildoprezento" onlineUsers: "Surkonektita uzanto" _cw: show: "Vidu pli" @@ -427,10 +448,11 @@ _postForm: _profile: name: "Nomo" username: "Uzantnomo" + metadataEdit: "Redakti kromaj informoj" changeAvatar: "Ŝanĝi profilbildon" _exportOrImport: followingList: "Sekvataj" - muteList: "Silentigado" + muteList: "Silentigoj" blockingList: "Blokado" userLists: "Listoj" _timelines: @@ -445,12 +467,14 @@ _rooms: server: "Servilo" moon: "La luno" _pages: + editPage: "Redakti paĝon" deleted: "La paĝo estas forigita." + editThisPage: "Redakti la paĝon" viewPage: "Vidi via paĝojn" my: "Miaj paĝoj" content: "Blokado de paĝo" url: "URL de paĝo" - chooseBlock: "Aldoni ujon" + chooseBlock: "Aldoni blokon" blocks: image: "Bildoj" _post: diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml index 3e5e2ecd63..650353dac1 100644 --- a/locales/zh-CN.yml +++ b/locales/zh-CN.yml @@ -777,6 +777,7 @@ _docs: generalTopics: "通常提示" advancedTopics: "进阶提示" admin: "管理" + translateWarn: "本文档是翻译后的文档。内容可能与原文有所不同。" _ad: back: "返回" reduceFrequencyOfThisAd: "减少此广告的频率" diff --git a/src/docs/ar-SA/features/note.md b/src/docs/ar-SA/features/note.md index 38f0697372..93e9ee0319 100644 --- a/src/docs/ar-SA/features/note.md +++ b/src/docs/ar-SA/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## دبّسها على الصفحة الشخصية ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## راقب +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/ar-SA/general/changelog.md b/src/docs/ar-SA/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/ar-SA/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/ar-SA/general/links.md b/src/docs/ar-SA/general/links.md index d6b16856fb..5ce5e1ddbb 100644 --- a/src/docs/ar-SA/general/links.md +++ b/src/docs/ar-SA/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## アカウント +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/ar-SA/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/ar-SA/general/troubleshooting.md +++ b/src/docs/ar-SA/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/cs-CZ/features/note.md b/src/docs/cs-CZ/features/note.md index 55bb8e6ec0..0ff99d9d04 100644 --- a/src/docs/cs-CZ/features/note.md +++ b/src/docs/cs-CZ/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## Připnout ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## Sledovat +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/cs-CZ/general/changelog.md b/src/docs/cs-CZ/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/cs-CZ/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/cs-CZ/general/links.md b/src/docs/cs-CZ/general/links.md index d6b16856fb..5ce5e1ddbb 100644 --- a/src/docs/cs-CZ/general/links.md +++ b/src/docs/cs-CZ/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## アカウント +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/cs-CZ/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/cs-CZ/general/troubleshooting.md +++ b/src/docs/cs-CZ/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/da-DK/features/note.md b/src/docs/da-DK/features/note.md index 62440b25f9..305ff626f0 100644 --- a/src/docs/da-DK/features/note.md +++ b/src/docs/da-DK/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## ピン留め ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## ウォッチ +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/da-DK/general/changelog.md b/src/docs/da-DK/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/da-DK/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/da-DK/general/links.md b/src/docs/da-DK/general/links.md index d6b16856fb..5ce5e1ddbb 100644 --- a/src/docs/da-DK/general/links.md +++ b/src/docs/da-DK/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## アカウント +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/da-DK/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/da-DK/general/troubleshooting.md +++ b/src/docs/da-DK/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/de-DE/features/note.md b/src/docs/de-DE/features/note.md index 2ede737b40..1442b10960 100644 --- a/src/docs/de-DE/features/note.md +++ b/src/docs/de-DE/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## Anheften ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## Beobachten +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/de-DE/general/changelog.md b/src/docs/de-DE/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/de-DE/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/de-DE/general/links.md b/src/docs/de-DE/general/links.md index d6b16856fb..0d6bed82b0 100644 --- a/src/docs/de-DE/general/links.md +++ b/src/docs/de-DE/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## Benutzerkonten +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/de-DE/general/troubleshooting.md index 42aa819d80..c0b8b010cc 100644 --- a/src/docs/de-DE/general/troubleshooting.md +++ b/src/docs/de-DE/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/en-US/admin/disable-timelines.md b/src/docs/en-US/admin/disable-timelines.md index b081e35ab0..94ba3dd174 100644 --- a/src/docs/en-US/admin/disable-timelines.md +++ b/src/docs/en-US/admin/disable-timelines.md @@ -1,8 +1,8 @@ -# LTL/STL/GTLの無効化 -Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 +# Disabling the LTL/STL/GTL +In Misskey, it's possible to individually deactivate the LTL/STL/GTL.You can enable or disable these individual timelines via the instance control panel. -LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。 +As all posts across your instance can be seen in both the LTL and STL, they have the advantage of making it easy for new users to find others that they are interested in without having to use the manual user search. At the same time however, this means that following other users to see their posts is less important and inappropriate posts may be shown to users more frequently. Additionally, the experience becomes more alike that of a Chatroom, which in turn may make it more difficult for new users to join in one conversations with those who have been taking part for a long time. As the weight of these advantages and disadvantages may vary from server to server, the choice of using or not using them has been left to each individual instance. If you feel like the demerits outweigh the merits, please consider deactivating these respective timelines. -<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div> +<div class="warn">⚠️ Disabling timelines can lead to confusion and possibly to a short-time drop in users.Therefore, please carefully consider the effects of disabling a timeline, and explain the reasoning for doing so in advance, so that your users can prepare by e.g. following users they often talk with on the LTL/STL.</div> -なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。 +Additionally, Administrators / Moderators will be able to continue viewing these timelines even after they have been disabled. diff --git a/src/docs/en-US/admin/faq.md b/src/docs/en-US/admin/faq.md index 317b4e0655..a7fbc66a75 100644 --- a/src/docs/en-US/admin/faq.md +++ b/src/docs/en-US/admin/faq.md @@ -1,5 +1,5 @@ -# よくある質問 -ここでは、サーバー管理者向けのよくある質問を掲載しています。 +# Frequently Asked Questions +This document is aimed at server administrators and will list answers for frequently asked questions. -## デフォルトテーマを設定したい -現在、デフォルトテーマ設定機能は実装されていません。 +## "I want to set a default theme for my instance" +There is currently no feature allowing you to set a default theme for your instance. diff --git a/src/docs/en-US/features/antenna.md b/src/docs/en-US/features/antenna.md index ed39d30674..6c4fd8ad66 100644 --- a/src/docs/en-US/features/antenna.md +++ b/src/docs/en-US/features/antenna.md @@ -1,4 +1,4 @@ # Antennas -アンテナは、自由に条件を設定して、合致するノートを自動で収集することができる機能です。 +Antennas are a feature through which you can automatically collect notes meeting freely specified conditions. -条件を設定したアンテナが作成された状態で、条件に合致するノートが投稿されると、リアルタイムでそのアンテナのタイムラインにノートが追加されます。 +If a note meeting the conditions of an existing antenna is posted, this note will be added to the timeline of that antenna in real-time. diff --git a/src/docs/en-US/features/drive.md b/src/docs/en-US/features/drive.md index c445b99a86..c4a51f6e8e 100644 --- a/src/docs/en-US/features/drive.md +++ b/src/docs/en-US/features/drive.md @@ -1,17 +1,17 @@ # Drive -ドライブは、Misskey上でファイルを管理できる機能です。 +Drive is a feature to manage the files you have uploaded to Misskey. -[ドライブのページ](/my/drive)から任意のファイルをアップロードできるほか、アバターに設定した画像や、ノートに添付したファイルなどもすべてドライブにアップロードされます。 +In addition to being able to upload files to your Drive from the [Drive page](/my/drive), any images set as your avatar or those included in your notes will be added to your Drive. -<div class="warn">⚠️ ドライブからファイルを削除すると、そのファイルが添付されたノートも消えます。</div> +<div class="warn">⚠️ By deleting a file from your Drive, any note it is attached to will also be deleted.</div> -ドライブにアップロードされたファイルは、いつでもダウンロードすることができるほか、ノート作成時に「ドライブからファイルを添付」することでファイルを再利用することもできます。 +You can always download any file uploaded to your Drive, and also reuse it during the composition of new notes by selecting "Attach from Drive" before posting. -ドライブ内にフォルダを作り、複数のファイルをまとめて整理することもできます。 +In addition, you can create folders within your Drive to easen the organization multiple files. -## 閲覧注意 (NSFW) -<div class="info">ℹ️ この項目が閲覧注意なわけではありません</div> +## NSFW +<div class="info">ℹ️ This text section itself is not NSFW</div> -閲覧注意またはNSFW (Not safe for work) は、ドライブのファイルに設定することができるフラグです。 閲覧注意フラグを設定されたファイルは、表示される際に閲覧者の操作なしには表示されなくなります。 このフラグは、例えば職場や公共の場で閲覧するのに適切でないと思われる画像などに設定し、そのような画像が突然表示されてしまうことを防ぐ目的で使われます。 +NSFW ("Not Safe For Work") is a setting that can be applied to files in your Drive. Images with this setting will not be displayed unless explicitly requested by the viewing user. This setting is for example used to prevent an image that would not be suitable at places like one's workplace or in public from being abrubtly displayed to other users. -このフラグは手動でオンオフを切り替えられるほか、モデレーターの判断で設定される場合もあります。 +This flag can be switched off and on, and may be manually set for images by the discretion of a Moderator. diff --git a/src/docs/en-US/features/favorite.md b/src/docs/en-US/features/favorite.md index 4c971af788..39e3ceadf4 100644 --- a/src/docs/en-US/features/favorite.md +++ b/src/docs/en-US/features/favorite.md @@ -1,4 +1,4 @@ -# Favorite -[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。 +# Favorites +A feature to register a [note](./node) as part of favorites. These notes can then be viewed in a list in your [Favorites page](./my/favorites). Setting a note as favorite does not notify the author of the note, and your favorites are only visible to you. -ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。 +To register a note as part of your favorites, click the "Favorit" button in the menu of the respective note.To remove a note from your favorites, click the "Unfavorite" button in the same menu. diff --git a/src/docs/en-US/features/note.md b/src/docs/en-US/features/note.md index e0a7f11193..fbc47f1ac3 100644 --- a/src/docs/en-US/features/note.md +++ b/src/docs/en-US/features/note.md @@ -1,51 +1,54 @@ # Notes -ノートは、Misskeyに投稿される、文章、ファイル、アンケートなどを含むコンテンツで、Misskeyの中心的概念です。また、そのノートを作成する行為自体もノートと呼ばれます。 +Notes are a central concept within Misskey, and refer to content that may include text, images, surveys and more that has been posted to Misskey. In this context, "to note" is also used as a verb refering to the creation of a note. -ノートが作成されると、[タイムライン](./timeline)に追加され、自分の[フォロワー](./follow)やサーバーのユーザーが見れるようになります。 +By composing a note, it will be added to the [timeline](./timeline) and become visible by your followers and other users from your server. -ノートには、[リアクション](./reaction)を行うことができます。また、返信や引用もできます。 +On Misskey, it is also possible to add [Reactions](./reaction) to notes.In addition to that, you can reply to or quote notes. -ノートを[お気に入り](./favorite)登録することで、後で簡単に見返すことができます。 +By adding a note to your [Favorites](./favorite), you can easily look back at it at a later point in time. -## ノートを作成する -ノートを作成するには、画面上にある鉛筆マークのボタンを押して、作成フォームを開きます。作成フォームに内容を入力し、「ノート」ボタンを押すことでノートが作成されます。 ノートには、画像、動画など任意のファイルや、[アンケート](./poll)を添付することができます。また、本文中には[MFM](./mfm)が使用でき、[メンション](./mention)や[ハッシュタグ](./hashtag)を含めることもできます。 他にも、CWや公開範囲といった設定も行えます(詳細は後述)。 -<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div> -<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div> +## Composing notes +To compose a note, press the button with a pencil icon on the upper part of your screen to open the posting form.Enter the content you want to post in the form, and press the "Note" button to publish it. Notes can contain text as well as files such as images or videos and also [Surveys](./poll).In addition, by using [MFM](./mfm) within your text, you can additionally include [Mentions](./mention) and [Hashtags](./hashtag). There are also other settings such as CW or note visibility (explained later). +<div class="info">ℹ️ If you are on a computer and have an image saved in your clipboard, you can attach it to your note by using the usual paste shortcut within the text box.</div> +<div class="info">ℹ️You can also press <kbd class="key">Ctrl + Enter</kbd> within the text box to publish your note.</div> ## Renote -既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。 -<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div> +The act of quoting an existing note, sharing an existing note, or the note created as a result of these acts are all called Renote (or "renoting" as verb). Most of the time, this is used when you want to share a note you like to your own followers, or when you want a share a note that you posted in the past once more. While it is possible to renote the same note multiple times, please be aware that doing so may be seen as annoying by others. +<div class="warn">⚠️If you've set your note's visibility to Followers-only or Direct, then renoting it will not be possible</div> -Renoteを削除するには、Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 +To take back a renote, press the "..." next to the renote timestamp and select "Take back Renote". ## CW -Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。 +An abbreviation of "Content Warning", resulting in the content of a note being hidden unless explicitly requested to be shown by a viewing user.It is mainly used to hide the content of long notes or to prevent posting spoilers publicly. To enable CW for a note, press the "Hide content" button (eye icon) in the post form.By doing so a new text input area will appear, where you can write a summary of the content hidden by the CW. ## Visiblility -ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。 +It's possible to individually set where your note will be visible (Visibility) for each of your notes.By pressing the icon to the left of the "Note" button in the post form, you can choose from the visibility settings listed below. ### Public -全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。 -<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div> +Your note will be visible to all users and will show up on all timelines (home, local, social, global). +<div class="warn">⚠️ This visibility will be unavailable if your account is <a href="./silence">silenced</a>.</div> ### Home -全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。 +Your note will be visible to all users, but will not show up on the local, social or global timeline for non-followers. ### Followers -自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。 +Your note will only be visible to those that are following you.The note will show up on all timelines of your followers. ### Direct -指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。 +Your note will only be visible to individually specified users.The note will show up on all timelines of the specified users. -### 「ローカルのみ」オプション -このオプションを有効にすると、リモートにノートを連合しなくなります。 +### The "Local only" option +If you enable this option, your note won't be federated to remote instances. -### 公開範囲の比較 +### Visibility comparison <table> <tr><th></th><th>Public</th><th>Home</th><th>Followers</th><th>Direct</th></tr> - <tr><th>フォロワーのLTL/STL/GTL</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> - <tr><th>非フォロワーのLTL/STL/GTL</th><td>✔</td><td></td><td></td><td></td></tr> + <tr><th>LTL/STL/GTL of Followers</th><td>✔</td><td>✔</td><td>✔</td><td></td></tr> + <tr><th>LTL/STL/GTL of Others</th><td>✔</td><td></td><td></td><td></td></tr> </table> ## Pin to profile -ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 +By pinning a note to your profile it will be constantly displayed on your profile page. To pin a note, open the note menu and press "Pin to profile". It's also possible to pin multiple notes to your profile. + +## Watch +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/en-US/features/silence.md b/src/docs/en-US/features/silence.md index 4d533dc568..fb588247ae 100644 --- a/src/docs/en-US/features/silence.md +++ b/src/docs/en-US/features/silence.md @@ -1,6 +1,6 @@ # Silence -サイレンスは、アカウントに設定される状態のひとつです。 +"Silence" refers to one of the statuses an account may be in. -アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 +If an account is silenced, the visibility of their notes cannot be set to "Public" anymore. A silenced user will still be able to use the "Home", "Followers" and "Direct" visibility, so their posts will still be visible to their followers in addition to being able to directly visit their profile page, but their posts will not show up on the GTL (Federated timeline) or LTL (Local timeline) anymore. -アカウントのサイレンス状態は、サーバーのモデレーターによって有効化/無効化されます。 +Whether an account is silenced or not can be controlled by the moderators of a server. diff --git a/src/docs/en-US/features/widgets.md b/src/docs/en-US/features/widgets.md index 7c5cacb39a..ba301273c5 100644 --- a/src/docs/en-US/features/widgets.md +++ b/src/docs/en-US/features/widgets.md @@ -1,7 +1,7 @@ # Widgets -ウィジェットは、MisskeyのUI上に設置できる小型の情報表示、操作が行えるパーツです。 +Widgets are small information displays or operational parts that can be added to the Misskey UI. -ウィジェットを編集するには、ウィジェット編集モードに切り替えます。切り替え方法はUIによって異なります。 ウィジェット編集モードでは、ウィジェットの追加、削除、並び替え、およびそれぞれのウィジェットの設定を行えます。 +To edit which widgets are displayed, enter the Widget editing mode.Entering this mode can differ based on the used UI. In it you can add, delete, reorganize or change the configuration of individual widgets. -## 利用可能なウィジェット一覧 +## List of available widgets todo diff --git a/src/docs/en-US/general/apps.md b/src/docs/en-US/general/apps.md index 1f4c85fe8f..5be276ff35 100644 --- a/src/docs/en-US/general/apps.md +++ b/src/docs/en-US/general/apps.md @@ -1,6 +1,6 @@ -# サードパーティアプリのリスト -## クライアント +# List of third-party applications +## Clients todo -## 連携サービス +## Linked services todo diff --git a/src/docs/en-US/general/changelog.md b/src/docs/en-US/general/changelog.md new file mode 100644 index 0000000000..5a14f9d18e --- /dev/null +++ b/src/docs/en-US/general/changelog.md @@ -0,0 +1,5 @@ +# Changelog +<div class="info">ℹ️ This changelog reflects this server's latest version only.To read the changelog for the newest release of Misskey, please check out <a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>.</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/en-US/general/faq.md b/src/docs/en-US/general/faq.md index ecb664e32e..be4cb246f6 100644 --- a/src/docs/en-US/general/faq.md +++ b/src/docs/en-US/general/faq.md @@ -1,22 +1,22 @@ -# よくある質問 -ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 +# Frequently Asked Questions +This document will list answers to frequently asked questions regarding the usage of Misskey. Answers to frequently asked questions related to Misskey as a project can be found [here](./misskey). -### iOS/Androidのアプリはありますか? -公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 +### "Are there any apps for iOS / Android available?" +While no official Misskey app for either OS exists, there are several third-party applications. For details, please check [here](./apps). -ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 +However, functionality of third-party applications will inevitably lag behind the official Web client, so unless you really want to use a native application, we recommend the official Web client instead. As the Misskey Web client supports PWA, it is possible to make it act as if it was a native application instead. For details regarding this, please check [here](todo). -## 他のサーバーのユーザーをフォローするときは? -メニューから検索を選び、ユーザー名をホスト込みで入力します。例: `@syuilo@misskey.io` +## "What do I do when I want to follow users from other servers?" +Select the search bar from the menu and enter their username including their host.E.g. `@syuilo@misskey.io` -## Renoteを削除するには? -Renoteの時刻表示の隣にある「...」を押し、「Renote解除」を選択します。 Renoteについては[こちら](../features/note)をご確認ください。 +## "How do I take back a Renote?" +Press the three dots ("...") to the right of the renote timestamp and select "Take back Renote". To read more about Renotes, please check [here](../features/note). -## URLのプレビューを表示させたくない -MFMには、そのURLのプレビューを無効にする構文があります。詳細は[MFMチートシート](/mfm-cheat-sheet)をご確認ください。 +## "I don't want the preview of an URL to be displayed." +You can disable an URL from being previewed using MFM.For details, please check the [MFM Cheatsheet](/mfm-cheat-sheet). -## カスタム絵文字を追加したい -運営者のみがカスタム絵文字を追加、編集、削除できます。それらを希望する場合は運営者に依頼してください。 +## "I want to add custom emoji." +Only administrators can add, edit or delete custom emoji.If you'd like to do either of these things, please ask your instance administrator. -## Botを開発したい -Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。 +## "I want to develop a Bot." +Anyone can develop a Misskey bot using the Misskey API.Please see [here](../advanced/develop-bot). diff --git a/src/docs/en-US/general/glossary.md b/src/docs/en-US/general/glossary.md index 91d01e1c80..9f6dde06f8 100644 --- a/src/docs/en-US/general/glossary.md +++ b/src/docs/en-US/general/glossary.md @@ -1,83 +1,83 @@ -# 用語集 -Misskeyに関する用語集です。 +# Glossary +A glossary about terms related to Misskey. -## AcitivityPub -(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。 +## ActivityPub +The protocol (method) used for enabling the distributed nature of Misskey.By adhering to this protocol, communication with other servers that also follow it becomes possible, forming what is known as the Fediverse. ## AiScript -(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript) +A programming language available for use on Misskey.For details, see [here.](../advanced/aiscript) ## API -(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api) +An interface that can be used for interacting with Misskey through a program, available for each individiual instance.For details, see [here.](../advanced/api) ## Bot -(読み: ぼっと) プログラムによって動作しているアカウント。 +An account that is being controlled by a program. ## CW -(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。 +An abbreviation of "Content Warning".A feature to hide the content of a note unless explicitly requested to be shown by a user.Mainly used to hide the content of long notes or to prevent posting spoilers publicly. ## Fediverse -(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。 +A network of servers composed of various different platforms that communicate with each other, including Misskey. ## GTL -グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) +An abbreviation for "Global TimeLine".For details about timelines, please see [here](../features/timeline). ## HTL -ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) +An abbreviation for "Home TimeLine".For details about timelines, please see [here](../features/timeline) ## LTL -ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) +An abbreviation for "Local TimeLine".For details about timelines, please see [here](../features/timeline) ## MFM -(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm) +An abbreviation for "Misskey Flavored Markdown", a markdown language available for use on Misskey.For details, see [here.](../features/mfm) ## NSFW -(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。 +An abbreviation for "Not Safe For Work".A feature to tag an image as "NSFW" and hide it unless explicitly requested to be shown by a user. ## Renote -(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note) +The act of quoting an existing note, sharing an existing note, or the note created as a result of these acts.For details, see [here.](../features/note) ## STL -ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline) +An abbreviation for "Social TimeLine".For details about timelines, please see [here](../features/timeline) -## 藍 -(読み: あい) Misskeyの看板娘(公式キャラクター)です。 +## Ai +Ai is Misskey's official mascot. -## アクティブユーザー -インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。 +## Active users +Those users amongst all existing ones who are continually using their account. ## Instance todo -## コントロールパネル -インスタンスの設定画面のこと。 +## Control Panel +The settings screen of an instance. ## Server todo ## Silence -ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) +A state in which the visibility of the notes by said user cannot be set to "Public" anymore.Can be set for individual users by Moderators.For details, see [here.](../features/silence) ## Suspend -アカウントが使用不可に設定されている状態。 +A state which makes the account of a user unusable. ## Drive -Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive) +A feature allowing users to organize the files they have uploaded to Misskey.For details, see [here.](../features/drive) ## Notes -Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note) +Content which may include text, images, surveys and others that has been posted to Misskey.For details, see [here.](../features/note) -## ミスキスト -Misskeyを使う人のこと。 +## Misskist +Users of Misskey. ## Moderator -スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。 +Users with the authority to to manage the community of a server by deactivating spam accounts, deleting inappropriate posts etc. ## Remote -他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 +Used in context of servers separate from your own.Also used as prefix in other words like "Remote user".The opposite of "Local". ## Federation -サーバー上で作成された情報が他のサーバーに伝わること。 +The act of sharing information created one one's server with other servers. ## Local -自サーバーのことを指します。ローカルユーザー、ローカルタイムラインといったように接頭辞としても使われます。リモートの逆です。 +Used in context of your own server.Also used as prefix in other words like "Local users", "local timeline".The opposite of "Remote". diff --git a/src/docs/en-US/general/links.md b/src/docs/en-US/general/links.md index d6b16856fb..932db975b3 100644 --- a/src/docs/en-US/general/links.md +++ b/src/docs/en-US/general/links.md @@ -1,5 +1,12 @@ -# リンク集 +# A collection of links -## ライブラリ -- [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パーサー実装 +## Websites +- [Misskey Forum](https://forum.misskey.io/) - A forum used for questions surrounding Misskey +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## Accounts +- [@repo@misskey.io](https://misskey.io/@repo) - A bot that publishes posts about updates to the Misskey repository + +## Libraries +- [misskey-dev/misskey.js](https://github.com/misskey-dev/misskey.js) - A Misskey SDK for JavaScript +- [misskey-dev/mfm.js](https://github.com/misskey-dev/mfm.js) - A JavaScript implementation of an MFM Parser diff --git a/src/docs/en-US/general/misskey.md b/src/docs/en-US/general/misskey.md index 0e09e008fc..50b34a80b1 100644 --- a/src/docs/en-US/general/misskey.md +++ b/src/docs/en-US/general/misskey.md @@ -1,87 +1,86 @@ # About Misskey -Misskeyはオープンソースの分散型マイクロブログプラットフォームプロジェクトです。 開発は日本でsyuiloによって2014年から開始されました。 ドライブ、リアクションなどの豊富な機能や、高いカスタマイズ性を備えたUIを持つことが特徴です。 +Misskey is an open-source and distributed platform for microblogging. Development was started in 2014 by syuilo in Japan. It features an abundance of features such as Drive or Reactions as well as a very high UI customizability. -## 歴史 -開発当初は掲示板がメインのサービスでしたが、ユーザーが短文を投稿し、それを時系列で流れるタイムライン機能を追加したところ人気が高まり、徐々にそれがメインとして開発が進むようになりました。 当初は分散型ではありませんでしたが、2018年にAcitivityPubを実装し分散型になったことで、より多くの方に認知され利用されるサービスになり、現在に至ります。 -<div class="info">ℹ️ Misskeyという名前は、syuiloが当時聴いていたMay'nというアーティストの楽曲、Brain Diverの歌詞に由来します。</div> +## History +While Misskey started centered around Bulletin Boards as its main feature, the growth in popularity due to the addition of a timeline that let users post short messages and view them in chronological order lead to a gradual shift in the main focus of development towards this kind of functionality. Misskey was not always a decentralized service, but became decentralized through the adoption of ActivityPub in 2018. Since then, it has become a service that is acknowledged and used by many. +<div class="info">ℹ️ The name "Misskey" comes from a song called "Brain Diver" by a band that syuilo used to listen to at the time called May'n.</div> -誰でも開発に参加することができ、現在でも活発に開発が続いています。 +With anyone being able to join its development, Misskey is still continually being actively developed. -## 分散型とは何か? +## What does "Distributed" mean? +A <b>Distributed</b> service, also called a <b>Decentralized</b> service, refers to a service which features the division of a community into many servers that all mutually <b>communicate (federate)</b> with each other to share their contents, building a <b>network (Fediverse)</b>. Services for which only one server exists, or for which many independent server exist, are called centralized. Most services fall under the category of centralized, some examples for this are Twitter or Facebook. The advantage of distributed services is being able to select the administration or server theme that suits you freely.It's also possible for you to make your own server.Thanks to the federated nature, you will be able to access the same community, no matter which server you choose. -<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。 +## Always Open-Source +Misskey has always been, and will always be, open source.Open source means, simply speaking, <b>making the source code of software (a program) publicly available</b>.This also includes being able to adjust or redistribute the source code in its definition. The entirety of Misskey's source code is [being licensed](https://github.com/misskey-dev) under an open-source license called [AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE), which means anyone can freely inspect, use, adjust, change or redistribute as they see fit. Open source has many merits, including allowing anyone being able to make changes as they like, to make sure the code does not include any harmful components and being able to easily participate in its development. For realizing the distributed nature of Misskey, this concept of open source is indispensable. Using the same example as before, most profit-oriented services like Twitter, Facebook etc. are not open source. -## 常にオープンソース -Misskeyはこれまでもこれからも、オープンソースであり続けます。オープンソースとは、簡単に言うと<b>ソフトウェアのソースコード(プログラム)が公開されている</b>ことです。ソースコードの修正や再配布が可能であることを定義に含めることもあります。 Misskeyのすべてのソースコードは[AGPL](https://github.com/misskey-dev/misskey/blob/develop/LICENSE)というオープンソースライセンスの下に[公開](https://github.com/misskey-dev)されていて、誰でも自由に閲覧、使用、修正、改変、再配布をすることができます。 オープンソースは、自分で好きなように変えたり、有害な処理が含まれていないことを確認することができたり、誰でも開発に参加できるなどの、様々なメリットがあります。 上述の分散型を実現するためにも、オープンソースであるということは必要不可欠な要素です。 再び引き合いに出しますが、TwitterやFacebookなどの利益を得ているほとんどのサービスはオープンソースではありません。 +<div class="info">ℹ️ Technically speaking, Misskey's source code is being managed via Git, and its repository is being hosted at <a href="https://github.com/misskey-dev" target="_blank">GitHub.</a></div> -<div class="info">ℹ️ 技術的に言うと、MisskeyのソースコードはGitで管理されていて、リポジトリは<a href="https://github.com/misskey-dev" target="_blank">GitHub上でホスティングされています。</a></div> +## Joining development and supporting the project +If you like Misskey, please support the project.Supporting the project can be done in many ways, with some of them introduced below.Some of these do not require programming skills, so anyone can feel free to support Misskey their own way.We're always waiting for you. -## 開発に参加する、プロジェクトを支援する -Misskeyを気に入っていただけたら、ぜひプロジェクトを支援してください。プロジェクトに貢献するには、以下で紹介するようにいろいろな方法があります。方法によっては開発のスキルは不要なので、誰でも気軽に参加し貢献することができます。いつでもお待ちしています。 +### Adding features or fixing bugs +If you possess software engineering skills, you can contribute to the project through editing its source code. For guidelines regarding this, please see [here](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md). -### 機能を追加したり、バグを修正する -ソフトウェアエンジニアのスキルをお持ちの方であれば、ソースコードを編集する形でプロジェクトに貢献することができます。 貢献についてのガイドは[こちら](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)です。 +### Participating in discussions +You can contribute by sharing your opinion on new or existing features, as well as by reporting bugs. Such discussions can be held at [GitHub](https://github.com/misskey-dev) or the [Forums](https://forum.misskey.io/) etc. -### 議論に参加する -新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。 +### Translating text +Misskey is available in many languages (also called i18n, which is an abbreviation for Internationalization).While the original language is generally japanese, volunteers are translating Misskey into other languages. Helping out with this translation work is also a form of contributing. Misskey uses a service called [Crowdin to manage its translations.](https://crowdin.com/project/misskey) -### テキストを翻訳する -Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey) +### Sharing your impressions +Besides reporting bugs, please also feel free to share positive impressions such as which parts of Misskey you personally like, or things about Misskey that you find fun.As things like these serve as motivation for the developers, it also counts as indirect support for the project. -### 感想を投稿する -不具合報告等だけではなく、Misskeyの良い点、楽しい点といったポジティブな意見もぜひ共有してください。開発の励みになり、それは間接的ですがプロジェクトへの貢献です。 +### Increasing the number of Misskists +"Misskist" refers to the people using Misskey. By spreading the word about Misskey through introducing it to your acquaintances, the number of Misskists may increase, which serves as motivation for the developers. -### ミスキストを増やす -ミスキストとは、Misskeyを使用する人のことです。 知り合いに紹介するなどしてMisskeyを広めていただければ、ミスキストが増え開発のモチベーションが上がります。 +### Making donations +Misskey is not a business, and stays free to use by receiving its earnings through donations from everyone.(Depending on the instance, some revenue may be earned through showing advertisments, but these earnings go straight to the instance administrator and not to the developers of Misskey) As donations make it possible for the project to continue to be developed, they are another way of supporting Misskey. Donations are generally accepted via [Patreon](https://www.patreon.com/syuilo). By donating a certain amount of money, you can also have your username displayed on Misskey's [About page](/about-misskey). -### 寄付をする -Misskeyはビジネスではなく、利用は無料であるため、収益は皆様からの寄付のみです。(インスタンスによっては広告収入を得ているような場合もありますが、それは運営者の収入であり直接開発者への収入にはなりません) 寄付をしていただければ、今後も開発を続けることが可能になり、プロジェクトへの貢献になります。 寄付は基本的には[Patreon](https://www.patreon.com/syuilo)で受け付けています。 一定額寄付していただけると、Misskeyの[情報ページ](/about-misskey)に名前を記載することができます。 +In addition to this, server administrators are also generally speaking not earning revenue.As operating a server costs money, please also consider supporting your server's administrator. This does not have a direct relation to the development of Misskey, but the existence of servers is what makes up the project, meaning the continued existence of servers is just about as important as that of the project itself. -また、サーバーの運営者も、基本的には収益を得ていません。サーバーの運営にはコストがかかるので、運営者の支援をすることもご検討ください。 開発には直接関係しませんが、サーバーがあってこそのプロジェクトなので、運営が維持されるというのは開発と同じくらい重要なことです。 +## Credits +A list of Misskey's developers and donators can be seen [here](/about-misskey). -## クレジット -Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 - -## よくある質問 -### プロジェクトは何を目指していますか? -強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 +## Frequently Asked Questions +### What is this project aiming to achieve? +To put it bluntly, while this is a bit vague, Misskey is aiming to be a widely-used all-purpose platform. Unlike other platforms, Misskey is not grounded in a specific idea (for example, anti-centralization) or vision and being developed with that in mind, so it's a bit "aimless" in this respect. On the other hand though, this creates a flexibility due to not being bound by a specific direction to go towards. <!-- TODO: ここにロードマップへのリンク --> -### 企業によって開発されていますか? -いいえ。Misskeyの開発は個人で行われており、商業的でもないため、特定の企業の関りはありません。 開発メンバーも基本的にはボランティアです。 また、開発に対し企業のスポンサーがつくこともありますが、その場合でもやはり開発は個人のコミュニティが主体です。 +### Is Misskey being developed by a company? +No.Misskey is being developed by an individual person and not commercialized through connection with any particular company. Development members are generally volunteers. Additionally, while there are some corporate sponsors, development is still centered around the community. -### 誰が運営していますか? -Misskeyは分散型なため、各サーバーにそれぞれ異なった運営者がいます。従って、特定の個人や企業によって、Misskeyの全てが運営されているわけではありません。 また、開発チームが運営を行うわけでもないため、運営に関する連絡は、お使いのサーバーの運営者に行ってください。 サーバーの運営者は、[このページ](/about)で確認することができます。 あなたがサーバーを作成すれば、あなたが運営者になります。 +### Who is managing Misskey? +Due to the distributed nature of Misskey, each individual server has their own administration.Therefore, not all of Misskey is managed by one individual person or company. This means that, as the development team does not control individual servers, for management-related questions you should contact your server's administration instead. You can verify who is managing your individual server on [this page](/about). If you were to create a server, then you would also become its administrator. -### どのサーバーを選べばいいですか? -[サーバー一覧が公開されています。](https://join.misskey.page/ja-JP/instances) サーバーによってコミュニティのテーマ(特定のこと、ものが好き 等)が決められている場合があるので、自分に合ったテーマのサーバーがあれば、そこを選ぶと良いかもしれません。 他にも、サーバーの規模、ユーザー層、国および言語、運営者が信頼できるかどうか、などの観点があります。 なお、Misskey公式のサーバーというものはありません。自身で新しくサーバーを作成するという選択肢もあります。 +### Which server should I choose? +[You can find an (incomplete) list of servers here.](https://join.misskey.page/ja-JP/instances) Depending on the server, its community or central theme (for example, liking a show) may vary, so if there is a server that suits your interests, joining it would likely be a good choice. Besides that, server size, userbase, country or spoken language, reliance or trust in the administration team and many other things can also serve as criteria. There is however no single server that serves as the official server of Misskey.You also have the choice of creating a new server of your own. -基本的にどのサーバーを選んだとしても、他の全てのサーバーのユーザーと繋がることができます。 +Generally speaking, no matter which server you join, you will still be able to connect with users from all other servers. -### サーバーを建てるにはどうしたらいいですか? -Misskeyサーバーの作成に興味を持っていただきありがとうございます。 2021年現在、Misskeyのホスティングサービスは存在しないため、サーバーの作成にはある程度の知識が必要です。 サーバーの作成方法については[こちら](todo)をご覧ください。 +### How can I create my own server? +Thank you for having an interest in creating a Misskey server. In the current year of 2021 there is no specialized Misskey hosting service, so creating a new server requires a certain amount of knowledge. Please see [here](todo) for more information regarding this. -### どのような技術を使用していますか? -Misskeyは開発が進むにつれ使用する技術も大きく変わってきました。開発当初はMySQL + PHP + jQueryといった構成でしたが、現在は以下のようになっています。 -- サーバーサイド: Node.js -- データベース: PostgreSQL、Redis -- UIフレームワーク: Vue.js -- プログラミング言語: TypeScript +### What kind of technology does Misskey use? +As development on Misskey progressed, the technology it has used has changed greatly.In the beginning, it used a combination of MySQL + PHP + jQuery, but currently uses the following. +- Server-side: Node.js +- Database: PostgreSQL, Redis +- UI Framework: Vue.js +- Programming language: TypeScript -また、MFMやAiScriptなどの、Misskeyから派生して独自の技術も開発しています。 +In addition to this, from Misskey derived technology such as MFM or AiScript are also being used. -### Mastodonのフォークですか? -いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じAcitivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。 +### Is this a fork of Mastodon? +No.Misskey is a project completely different from Mastodon or other alike projects. It has been in development for a long time already.However, it only became a distributed network after the appearance of Mastodon. Besides both projects implementing the ActivityPub protocol, there is no relation between the two. -### iOS/Androidのアプリはありますか? -公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。 +### Are there any apps for iOS / Android available? +While no official Misskey app for either OS exists, there are several third-party applications. For details, please check [here](./apps). -ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。 +However, functionality of third-party applications will inevitably lag behind the official Web client, so unless you really want to use a native application, we recommend the official Web client instead. As the Misskey Web client supports PWA, it is possible to make it act as if it was a native application instead. For details regarding this, please check [here](todo). -### Misskeyのロゴ、アイコンはどこで入手できますか? -(準備中) +### Where can I download Misskey's logo or icon? +(Coming soon) -### 時折目にする猫耳の可愛い女の子は? -Misskeyの守り神、藍ちゃんです。アイチャンカワイイヤッター! -<div class="info">ℹ️ 藍ちゃんについては<a href="https://xn--931a.moe/" target="_blank">こちら</a>です。</div> +### Who's that cute cat-eared girl that you see sometimes? +It's Misskey's guardian deity, Ai.(They called Ai cute, yay!) +<div class="info">ℹ️ To read more about Ai, check <a href="https://xn--931a.moe/" target="_blank">here</a> (Japanese-only).</div> diff --git a/src/docs/en-US/general/report-issue.md b/src/docs/en-US/general/report-issue.md index 63527e32af..8df13aef76 100644 --- a/src/docs/en-US/general/report-issue.md +++ b/src/docs/en-US/general/report-issue.md @@ -1,8 +1,8 @@ -# 不具合の報告 -不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。 +# Reporting bugs +If you run into situations you believe to be a bug, please check th [Troubleshooting](./troubleshooting) first. In the case that this doesn't solve your issue, please post to the [Forums](https://forum.misskey.io/) including the below information. By doing so a solution may be found or your situation can be noted down as a bug, which means the development team can work on fixing it. -## 含める情報 -- Misskeyのバージョン([情報ページ](/about)で確認できます) -- お使いのブラウザの種類とバージョン -- お使いのOSの種類とバージョン -- 問題の再現手順 +## Information to include +- Misskey version (Can be seen on the [About page](/about)) +- Type and version of your used browser +- Type and version of your used operating system +- Steps to reproduce your problem diff --git a/src/docs/en-US/general/troubleshooting.md b/src/docs/en-US/general/troubleshooting.md index 8d1d8b7ace..e3dd5129e0 100644 --- a/src/docs/en-US/general/troubleshooting.md +++ b/src/docs/en-US/general/troubleshooting.md @@ -1,36 +1,40 @@ # Troubleshooting -<div class="info">ℹ️ <a href="./faq">よくある質問</a>も合わせてお役立てください。</div> +<div class="info">ℹ️ Please also use the <a href="./faq">Frequently asked questions</a> page.</div> -問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。 +If you run into a problem, please check this page first. In the case that you can't find your problem here, or the steps described here don't solve your issue, please contact your server's administrator or [Report it as a bug](./report-issue). -## クライアントが起動しない -ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。 +## The client does not start +In most of the cases, this is due your used browser's or operating system's version being outdated. Please try updating your browser or operating system to the latest version and then try again. -これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 +Although this does not happen frequently, if your client will still not start after this, it is possible for the cache to be at fault.In this case, please try clearing your cache and then try again. -## ページが読み込めない -クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。 +## Pages cannot be loaded +If your client does boot, but you get an error when trying to load a page, please check your network connection for errors.In addition, check that the server you are trying to access is not down. -これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。 +Although this does not happen frequently, cases where the cache is at fault can happen.In this case, please try clearing your cache and then try again. -まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。 +Any remaining problems are likely related to the server you are trying to access, so please contact its administrator. -## クライアントの動作が遅い -以下を試してみてください: +## The client is slow +Please try the following: -- クライアント設定で「UIのアニメーションを減らす」を有効にする -- クライアント設定で「モーダルにぼかし効果を使用」を無効にする -- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする -- お使いのデバイスのスペックを上げる +- Activate "Reduce UI animations" in the client settings +- Deactivate "Use blur effect for modals" in the client settings +- Activate hardware acceleration in your browser's settings +- Upgrade the specs of your used device -## 通知やアンテナ等の点滅が消えない -点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 +## Parts of the UI are weird (For example, the background is transparent) +Broken UI display may be caused by the theme cache system when the UI is changed as part of an update. Pressing "Clear cache" in the settings will fix this. +<div class="warn">⚠️ Specifically clear the "Client's" cache.Don't clear the "Browser's" cache.</div> -## Renoteができない -フォロワー限定のノートはRenoteすることはできません。 +## The blinking light of a notification or Antenna won't go away +A blinking light indicates unread content.In cases where this light won't go away, there is usually unread content that has been pushed away by new incoming content. If you believe to have read all content, but the light still won't go away (likely a bug), you can forcibly mark all content as read via the user settings. -## UI上で特定の要素が表示されない -広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。 +## The renote button is blocked out +Followers-only notes cannot be renoted. -## UI上で未翻訳の部分がある -ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。 +## Specific parts of the UI are not being displayed +Problems like these can arise if you are using an Adblocker.Please turn these off on Misskey. + +## Some parts of the UI are untranslated +In most cases, this is simply a matter of the translation not having been done yet instead of being a bug.Please wait until the translation of this area has been completed. You can alternatively also [participate in translation](./misskey) yourself. diff --git a/src/docs/eo-UY/features/note.md b/src/docs/eo-UY/features/note.md index 3355e8d4d0..e183909f80 100644 --- a/src/docs/eo-UY/features/note.md +++ b/src/docs/eo-UY/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## Alpingli sur la profilo ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## Observi +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/eo-UY/features/silence.md b/src/docs/eo-UY/features/silence.md index 7e26feab0d..24bc722a17 100644 --- a/src/docs/eo-UY/features/silence.md +++ b/src/docs/eo-UY/features/silence.md @@ -1,4 +1,4 @@ -# サイレンス +# Mutigi サイレンスは、アカウントに設定される状態のひとつです。 アカウントがサイレンス状態になると、ノートの公開範囲をパブリックにできなくなります。 ホーム、フォロワー、ダイレクトは選択可能なため、サイレンスを受けた場合でもフォロワーやあなたのユーザーページを直接訪れた場合は投稿を閲覧できますが、GTL(連合タイムライン)やLTL(ローカルタイムライン)には投稿が流れません。 diff --git a/src/docs/eo-UY/features/theme.md b/src/docs/eo-UY/features/theme.md index a406f3433c..0d1036ab5d 100644 --- a/src/docs/eo-UY/features/theme.md +++ b/src/docs/eo-UY/features/theme.md @@ -1,11 +1,11 @@ -# テーマ +# Koloraro テーマを設定して、Misskeyクライアントの見た目を変更できます。 -## テーマの設定 -設定 > テーマ +## Agordoj de koloraro +Agordoj > Koloraro -## テーマを作成する +## Krei koloraron テーマコードはJSON5で記述されたテーマオブジェクトです。 テーマは以下のようなオブジェクトです。 ``` js { diff --git a/src/docs/eo-UY/general/changelog.md b/src/docs/eo-UY/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/eo-UY/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/eo-UY/general/glossary.md b/src/docs/eo-UY/general/glossary.md index dabcca5030..e599989eff 100644 --- a/src/docs/eo-UY/general/glossary.md +++ b/src/docs/eo-UY/general/glossary.md @@ -55,7 +55,7 @@ todo ## Servilo todo -## サイレンス +## Mutigi ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence) ## Flostigi @@ -76,7 +76,7 @@ Misskeyを使う人のこと。 ## Transa 他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。 -## Fediverso +## Konfederacio サーバー上で作成された情報が他のサーバーに伝わること。 ## Loka diff --git a/src/docs/eo-UY/general/links.md b/src/docs/eo-UY/general/links.md index d6b16856fb..812f374398 100644 --- a/src/docs/eo-UY/general/links.md +++ b/src/docs/eo-UY/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## Kontoj +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/eo-UY/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/eo-UY/general/troubleshooting.md +++ b/src/docs/eo-UY/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/es-ES/features/note.md b/src/docs/es-ES/features/note.md index 70f4a0ddf5..857c160426 100644 --- a/src/docs/es-ES/features/note.md +++ b/src/docs/es-ES/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## Fijar ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## Ver +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/es-ES/general/changelog.md b/src/docs/es-ES/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/es-ES/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/es-ES/general/links.md b/src/docs/es-ES/general/links.md index d6b16856fb..5ce5e1ddbb 100644 --- a/src/docs/es-ES/general/links.md +++ b/src/docs/es-ES/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## アカウント +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/es-ES/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/es-ES/general/troubleshooting.md +++ b/src/docs/es-ES/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/fr-FR/features/note.md b/src/docs/fr-FR/features/note.md index a2c691c48e..f4cd98c0d7 100644 --- a/src/docs/fr-FR/features/note.md +++ b/src/docs/fr-FR/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## Épingler sur le profil ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## Surveiller +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/fr-FR/general/changelog.md b/src/docs/fr-FR/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/fr-FR/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/fr-FR/general/links.md b/src/docs/fr-FR/general/links.md index d6b16856fb..67adba2488 100644 --- a/src/docs/fr-FR/general/links.md +++ b/src/docs/fr-FR/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## Comptes +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/fr-FR/general/troubleshooting.md index 9f6abff12a..9d9361da7b 100644 --- a/src/docs/fr-FR/general/troubleshooting.md +++ b/src/docs/fr-FR/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/ht-HT/features/note.md b/src/docs/ht-HT/features/note.md index 62440b25f9..305ff626f0 100644 --- a/src/docs/ht-HT/features/note.md +++ b/src/docs/ht-HT/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## ピン留め ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## ウォッチ +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/ht-HT/general/changelog.md b/src/docs/ht-HT/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/ht-HT/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/ht-HT/general/links.md b/src/docs/ht-HT/general/links.md index d6b16856fb..5ce5e1ddbb 100644 --- a/src/docs/ht-HT/general/links.md +++ b/src/docs/ht-HT/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## アカウント +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/ht-HT/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/ht-HT/general/troubleshooting.md +++ b/src/docs/ht-HT/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/id-ID/features/note.md b/src/docs/id-ID/features/note.md index 55f6bad286..f921ffc20e 100644 --- a/src/docs/id-ID/features/note.md +++ b/src/docs/id-ID/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## Sematkan ke profil ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## Tonton +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/id-ID/general/changelog.md b/src/docs/id-ID/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/id-ID/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/id-ID/general/links.md b/src/docs/id-ID/general/links.md index d6b16856fb..39cab001d1 100644 --- a/src/docs/id-ID/general/links.md +++ b/src/docs/id-ID/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## Akun +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/id-ID/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/id-ID/general/troubleshooting.md +++ b/src/docs/id-ID/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/it-IT/features/note.md b/src/docs/it-IT/features/note.md index ad8ff3c45b..f65e33c764 100644 --- a/src/docs/it-IT/features/note.md +++ b/src/docs/it-IT/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## Fissa sul profilo ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## Osserva +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/it-IT/general/changelog.md b/src/docs/it-IT/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/it-IT/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/it-IT/general/links.md b/src/docs/it-IT/general/links.md index d6b16856fb..4493bc2d5e 100644 --- a/src/docs/it-IT/general/links.md +++ b/src/docs/it-IT/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## Account +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/it-IT/general/troubleshooting.md index f400783ac7..c472aeabae 100644 --- a/src/docs/it-IT/general/troubleshooting.md +++ b/src/docs/it-IT/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/ja-KS/features/note.md b/src/docs/ja-KS/features/note.md index 3e07ebcf4a..531bed4030 100644 --- a/src/docs/ja-KS/features/note.md +++ b/src/docs/ja-KS/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## ピン留めしとく ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## ウォッチ +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/ja-KS/general/changelog.md b/src/docs/ja-KS/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/ja-KS/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/ja-KS/general/links.md b/src/docs/ja-KS/general/links.md index d6b16856fb..5ce5e1ddbb 100644 --- a/src/docs/ja-KS/general/links.md +++ b/src/docs/ja-KS/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## アカウント +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/ja-KS/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/ja-KS/general/troubleshooting.md +++ b/src/docs/ja-KS/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/jbo-EN/features/note.md b/src/docs/jbo-EN/features/note.md index 62440b25f9..305ff626f0 100644 --- a/src/docs/jbo-EN/features/note.md +++ b/src/docs/jbo-EN/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## ピン留め ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## ウォッチ +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/jbo-EN/general/changelog.md b/src/docs/jbo-EN/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/jbo-EN/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/jbo-EN/general/links.md b/src/docs/jbo-EN/general/links.md index d6b16856fb..5ce5e1ddbb 100644 --- a/src/docs/jbo-EN/general/links.md +++ b/src/docs/jbo-EN/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## アカウント +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/jbo-EN/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/jbo-EN/general/troubleshooting.md +++ b/src/docs/jbo-EN/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/kab-KAB/features/note.md b/src/docs/kab-KAB/features/note.md index 70c1e2e214..4f28d063c0 100644 --- a/src/docs/kab-KAB/features/note.md +++ b/src/docs/kab-KAB/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## ピン留め ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## ウォッチ +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/kab-KAB/general/changelog.md b/src/docs/kab-KAB/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/kab-KAB/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/kab-KAB/general/links.md b/src/docs/kab-KAB/general/links.md index d6b16856fb..8c3cfc192b 100644 --- a/src/docs/kab-KAB/general/links.md +++ b/src/docs/kab-KAB/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## Imiḍan +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/kab-KAB/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/kab-KAB/general/troubleshooting.md +++ b/src/docs/kab-KAB/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/kn-IN/features/note.md b/src/docs/kn-IN/features/note.md index 3deb87fb0e..a6b813fda2 100644 --- a/src/docs/kn-IN/features/note.md +++ b/src/docs/kn-IN/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## ಪ್ರೊಫ಼ೈಲಿಗೆ ಅಂಟಿಸು ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## ウォッチ +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/kn-IN/general/changelog.md b/src/docs/kn-IN/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/kn-IN/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/kn-IN/general/links.md b/src/docs/kn-IN/general/links.md index d6b16856fb..5ce5e1ddbb 100644 --- a/src/docs/kn-IN/general/links.md +++ b/src/docs/kn-IN/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## アカウント +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/kn-IN/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/kn-IN/general/troubleshooting.md +++ b/src/docs/kn-IN/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/ko-KR/features/note.md b/src/docs/ko-KR/features/note.md index e426e7c003..974691c465 100644 --- a/src/docs/ko-KR/features/note.md +++ b/src/docs/ko-KR/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## 프로필에 고정 ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## 지켜보기 +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/ko-KR/general/changelog.md b/src/docs/ko-KR/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/ko-KR/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/ko-KR/general/links.md b/src/docs/ko-KR/general/links.md index d6b16856fb..0ae050b0ed 100644 --- a/src/docs/ko-KR/general/links.md +++ b/src/docs/ko-KR/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## 계정 +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/ko-KR/general/troubleshooting.md index d3c1c01957..1023a31f0c 100644 --- a/src/docs/ko-KR/general/troubleshooting.md +++ b/src/docs/ko-KR/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/nl-NL/features/note.md b/src/docs/nl-NL/features/note.md index 62440b25f9..305ff626f0 100644 --- a/src/docs/nl-NL/features/note.md +++ b/src/docs/nl-NL/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## ピン留め ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## ウォッチ +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/nl-NL/general/changelog.md b/src/docs/nl-NL/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/nl-NL/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/nl-NL/general/links.md b/src/docs/nl-NL/general/links.md index d6b16856fb..5ce5e1ddbb 100644 --- a/src/docs/nl-NL/general/links.md +++ b/src/docs/nl-NL/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## アカウント +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/nl-NL/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/nl-NL/general/troubleshooting.md +++ b/src/docs/nl-NL/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/no-NO/features/note.md b/src/docs/no-NO/features/note.md index 62440b25f9..305ff626f0 100644 --- a/src/docs/no-NO/features/note.md +++ b/src/docs/no-NO/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## ピン留め ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## ウォッチ +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/no-NO/general/changelog.md b/src/docs/no-NO/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/no-NO/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/no-NO/general/links.md b/src/docs/no-NO/general/links.md index d6b16856fb..5ce5e1ddbb 100644 --- a/src/docs/no-NO/general/links.md +++ b/src/docs/no-NO/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## アカウント +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/no-NO/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/no-NO/general/troubleshooting.md +++ b/src/docs/no-NO/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/pl-PL/features/note.md b/src/docs/pl-PL/features/note.md index dc5b0f1f21..6a9976fc1a 100644 --- a/src/docs/pl-PL/features/note.md +++ b/src/docs/pl-PL/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## Przypnij do profilu ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## Śledź +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/pl-PL/general/changelog.md b/src/docs/pl-PL/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/pl-PL/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/pl-PL/general/links.md b/src/docs/pl-PL/general/links.md index d6b16856fb..69e2242391 100644 --- a/src/docs/pl-PL/general/links.md +++ b/src/docs/pl-PL/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## Konta +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/pl-PL/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/pl-PL/general/troubleshooting.md +++ b/src/docs/pl-PL/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/pt-PT/features/note.md b/src/docs/pt-PT/features/note.md index 7ae3b5551f..aad940ab71 100644 --- a/src/docs/pt-PT/features/note.md +++ b/src/docs/pt-PT/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## ピン留め ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## ウォッチ +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/pt-PT/general/changelog.md b/src/docs/pt-PT/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/pt-PT/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/pt-PT/general/links.md b/src/docs/pt-PT/general/links.md index d6b16856fb..5ce5e1ddbb 100644 --- a/src/docs/pt-PT/general/links.md +++ b/src/docs/pt-PT/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## アカウント +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/pt-PT/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/pt-PT/general/troubleshooting.md +++ b/src/docs/pt-PT/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/ru-RU/features/note.md b/src/docs/ru-RU/features/note.md index 9fcc7eeb00..a57ef3a952 100644 --- a/src/docs/ru-RU/features/note.md +++ b/src/docs/ru-RU/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## Закрепить в профиле ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## Следить +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/ru-RU/general/changelog.md b/src/docs/ru-RU/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/ru-RU/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/ru-RU/general/links.md b/src/docs/ru-RU/general/links.md index d6b16856fb..c893801b49 100644 --- a/src/docs/ru-RU/general/links.md +++ b/src/docs/ru-RU/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## Учётные записи +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/ru-RU/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/ru-RU/general/troubleshooting.md +++ b/src/docs/ru-RU/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/th-TH/features/note.md b/src/docs/th-TH/features/note.md index 62440b25f9..305ff626f0 100644 --- a/src/docs/th-TH/features/note.md +++ b/src/docs/th-TH/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## ピン留め ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## ウォッチ +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/th-TH/general/changelog.md b/src/docs/th-TH/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/th-TH/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/th-TH/general/links.md b/src/docs/th-TH/general/links.md index d6b16856fb..5ce5e1ddbb 100644 --- a/src/docs/th-TH/general/links.md +++ b/src/docs/th-TH/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## アカウント +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/th-TH/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/th-TH/general/troubleshooting.md +++ b/src/docs/th-TH/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/ug-CN/features/note.md b/src/docs/ug-CN/features/note.md index 62440b25f9..305ff626f0 100644 --- a/src/docs/ug-CN/features/note.md +++ b/src/docs/ug-CN/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## ピン留め ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## ウォッチ +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/ug-CN/general/changelog.md b/src/docs/ug-CN/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/ug-CN/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/ug-CN/general/links.md b/src/docs/ug-CN/general/links.md index d6b16856fb..5ce5e1ddbb 100644 --- a/src/docs/ug-CN/general/links.md +++ b/src/docs/ug-CN/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## アカウント +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/ug-CN/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/ug-CN/general/troubleshooting.md +++ b/src/docs/ug-CN/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/uk-UA/features/note.md b/src/docs/uk-UA/features/note.md index 1ad874ca68..cac4e1cd42 100644 --- a/src/docs/uk-UA/features/note.md +++ b/src/docs/uk-UA/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## Закріпити ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## Стежити +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/uk-UA/general/changelog.md b/src/docs/uk-UA/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/uk-UA/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/uk-UA/general/links.md b/src/docs/uk-UA/general/links.md index d6b16856fb..5ce5e1ddbb 100644 --- a/src/docs/uk-UA/general/links.md +++ b/src/docs/uk-UA/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## アカウント +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/uk-UA/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/uk-UA/general/troubleshooting.md +++ b/src/docs/uk-UA/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/zh-CN/admin/disable-timelines.md b/src/docs/zh-CN/admin/disable-timelines.md index b081e35ab0..fb20e91a43 100644 --- a/src/docs/zh-CN/admin/disable-timelines.md +++ b/src/docs/zh-CN/admin/disable-timelines.md @@ -1,5 +1,5 @@ -# LTL/STL/GTLの無効化 -Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。 +# 禁用 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 index 317b4e0655..00d0b5e8c1 100644 --- a/src/docs/zh-CN/admin/faq.md +++ b/src/docs/zh-CN/admin/faq.md @@ -1,5 +1,5 @@ -# よくある質問 -ここでは、サーバー管理者向けのよくある質問を掲載しています。 +# 常见问题 +这里会列出对于服务器管理员的一些常见问题。 -## デフォルトテーマを設定したい -現在、デフォルトテーマ設定機能は実装されていません。 +## 希望设置默认主题 +目前尚未实现默认主题设置功能。 diff --git a/src/docs/zh-CN/advanced/aiscript.md b/src/docs/zh-CN/advanced/aiscript.md index 604d17daa8..5622a82320 100644 --- a/src/docs/zh-CN/advanced/aiscript.md +++ b/src/docs/zh-CN/advanced/aiscript.md @@ -1,7 +1,7 @@ # AiScript -AiScriptは、Misskeyで使用できるスクリプト言語です。 +AiScript是Misskey所使用的脚本语言。 -<div class="info">ℹ️ AiScript実装はMisskeyとは別リポジトリで、<a href="https://github.com/syuilo/aiscript" target="_blank">オープンソースで公開されています。</a></div> +<div class="info">AiScript 的实现独立于 Misskey 的存储库,并且是 <a href="https://github.com/syuilo/aiscript" target="_blank"> 开源的。 </a></div> -## 使い方 -AiScriptの構文や組み込み関数などのドキュメントは、[こちら](https://github.com/syuilo/aiscript/tree/master/docs)で公開されています。 +## 用法 +AiScript 语法和内置函数等文档会在 [ 这里 ](https://github.com/syuilo/aiscript/tree/master/docs) 发布。 diff --git a/src/docs/zh-CN/features/note.md b/src/docs/zh-CN/features/note.md index dbf223a4e3..9030cd384d 100644 --- a/src/docs/zh-CN/features/note.md +++ b/src/docs/zh-CN/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## 置顶 ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## 关注 +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/zh-CN/general/changelog.md b/src/docs/zh-CN/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/zh-CN/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/zh-CN/general/faq.md b/src/docs/zh-CN/general/faq.md index ecb664e32e..2d205d69cb 100644 --- a/src/docs/zh-CN/general/faq.md +++ b/src/docs/zh-CN/general/faq.md @@ -1,4 +1,4 @@ -# よくある質問 +# 常见问题 ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。 ### iOS/Androidのアプリはありますか? diff --git a/src/docs/zh-CN/general/links.md b/src/docs/zh-CN/general/links.md index d6b16856fb..3171cac1f8 100644 --- a/src/docs/zh-CN/general/links.md +++ b/src/docs/zh-CN/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## 账户 +- [@repo@misskey.io](https://misskey.io/@repo) - 发布Misskey的存储库更新的机器人 + ## ライブラリ - [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 index 5c3aa2280f..039900254a 100644 --- a/src/docs/zh-CN/general/misskey.md +++ b/src/docs/zh-CN/general/misskey.md @@ -43,7 +43,7 @@ Misskeyはビジネスではなく、利用は無料であるため、収益は ## クレジット Misskeyの開発者や、Misskeyに寄付をしてくださった方の一覧は[こちら](/about-misskey)で見ることができます。 -## よくある質問 +## 常见问题 ### プロジェクトは何を目指していますか? 強いて言うと、漠然的になりますが広く使われる汎用的なプラットフォームになることを目指しています。 Misskeyは他のプロジェクトとは違い、何らかの思想(例えば、反中央集権)やビジョンに基づいて開発が行われているわけではなく、その点ではフラットです。 それが逆に、特定の方向性に縛られないフレキシブルさを生み出すことに繋がっていると感じています。 <!-- TODO: ここにロードマップへのリンク --> diff --git a/src/docs/zh-CN/general/troubleshooting.md b/src/docs/zh-CN/general/troubleshooting.md index ebeacade2e..43ce835b1e 100644 --- a/src/docs/zh-CN/general/troubleshooting.md +++ b/src/docs/zh-CN/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 diff --git a/src/docs/zh-TW/features/note.md b/src/docs/zh-TW/features/note.md index 63dc9e5267..4d8a6de92f 100644 --- a/src/docs/zh-TW/features/note.md +++ b/src/docs/zh-TW/features/note.md @@ -49,3 +49,6 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに ## 置頂 ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。 + +## 關注 +ノートをウォッチすると、自分以外のノートへのリアクションや返信などの通知を受け取ることができます。 ノートのメニューを開き、「ウォッチ」を選択してウォッチできます。 diff --git a/src/docs/zh-TW/general/changelog.md b/src/docs/zh-TW/general/changelog.md new file mode 100644 index 0000000000..6766a63b20 --- /dev/null +++ b/src/docs/zh-TW/general/changelog.md @@ -0,0 +1,5 @@ +# 更新履歴 +<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div> + +<!-- For translators: Do not edit these comments. --> +<!--[CHANGELOG]--> diff --git a/src/docs/zh-TW/general/links.md b/src/docs/zh-TW/general/links.md index d6b16856fb..a3844d1db8 100644 --- a/src/docs/zh-TW/general/links.md +++ b/src/docs/zh-TW/general/links.md @@ -1,5 +1,12 @@ # リンク集 +## Webサイト +- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー +- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム + +## 帳戶 +- [@repo@misskey.io](https://misskey.io/@repo) - Misskeyのリポジトリの更新を投稿するbot + ## ライブラリ - [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/troubleshooting.md b/src/docs/zh-TW/general/troubleshooting.md index 4a35091299..f895b49847 100644 --- a/src/docs/zh-TW/general/troubleshooting.md +++ b/src/docs/zh-TW/general/troubleshooting.md @@ -23,6 +23,10 @@ - お使いのブラウザの設定でハードウェアアクセラレーションを有効にする - お使いのデバイスのスペックを上げる +## UIの一部の表示がおかしい(背景が透明になっている等) +アップデートによりUIの改修が行われたときに、テーマのキャッシュシステムの影響でそのような表示になることがあります。 クライアントの設定の「キャッシュをクリア」すると直ります。 +<div class="warn">⚠️ 「クライアントの」キャッシュクリアです。「ブラウザの」キャッシュクリアは行わないでください。</div> + ## 通知やアンテナ等の点滅が消えない 点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。 From c0ba71c368fe21fc38a3fa156587e0eaccd2e2b7 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Wed, 11 Aug 2021 22:36:51 +0900 Subject: [PATCH 39/40] 12.86.0 --- CHANGELOG.md | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d49d96055..7e530f9306 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## 12.86.0 (unreleased) +## 12.86.0 (2021/08/11) ### Improvements - ドキュメントの更新 diff --git a/package.json b/package.json index b4dfcfb6da..93517177cb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "misskey", "author": "syuilo <syuilotan@yahoo.co.jp>", - "version": "12.85.1", + "version": "12.86.0", "codename": "indigo", "repository": { "type": "git", From 9d138aa282eb1009f74930c3774355de485078c2 Mon Sep 17 00:00:00 2001 From: syuilo <Syuilotan@yahoo.co.jp> Date: Wed, 11 Aug 2021 22:40:58 +0900 Subject: [PATCH 40/40] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e530f9306..80f9f3b8a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,4 +9,4 @@ ### Bugfixes - ハッシュタグ入力が空のときに#が付くのを修正 -- フォロー通知のEメール通知を修正 +- フォローリクエストのEメール通知を修正