Merge branch 'develop' into more-share-page-querys
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
import * as fs from 'fs';
|
||||
import { fileURLToPath } from 'url';
|
||||
import { dirname } from 'path';
|
||||
import * as os from 'os';
|
||||
import * as cluster from 'cluster';
|
||||
import * as chalk from 'chalk';
|
||||
@@ -11,7 +14,12 @@ import { lessThan } from '@/prelude/array';
|
||||
import { program } from '../argv';
|
||||
import { showMachineInfo } from '@/misc/show-machine-info';
|
||||
import { initDb } from '../db/postgre';
|
||||
import * as meta from '../meta.json';
|
||||
|
||||
//const _filename = fileURLToPath(import.meta.url);
|
||||
const _filename = __filename;
|
||||
const _dirname = dirname(_filename);
|
||||
|
||||
const meta = JSON.parse(fs.readFileSync(`${_dirname}/../meta.json`, 'utf-8'));
|
||||
|
||||
const logger = new Logger('core', 'cyan');
|
||||
const bootLogger = logger.createSubLogger('boot', 'magenta', false);
|
||||
|
@@ -1,7 +1,8 @@
|
||||
import { del, get, set } from '@client/scripts/idb-proxy';
|
||||
import { reactive } from 'vue';
|
||||
import { apiUrl } from '@client/config';
|
||||
import { waiting } from '@client/os';
|
||||
import { unisonReload } from '@client/scripts/unison-reload';
|
||||
import { unisonReload, reloadChannel } from '@client/scripts/unison-reload';
|
||||
|
||||
// TODO: 他のタブと永続化されたstateを同期
|
||||
|
||||
@@ -10,6 +11,7 @@ type Account = {
|
||||
token: string;
|
||||
isModerator: boolean;
|
||||
isAdmin: boolean;
|
||||
isDeleted: boolean;
|
||||
};
|
||||
|
||||
const data = localStorage.getItem('account');
|
||||
@@ -17,22 +19,57 @@ const data = localStorage.getItem('account');
|
||||
// TODO: 外部からはreadonlyに
|
||||
export const $i = data ? reactive(JSON.parse(data) as Account) : null;
|
||||
|
||||
export function signout() {
|
||||
export async function signout() {
|
||||
waiting();
|
||||
localStorage.removeItem('account');
|
||||
|
||||
//#region Remove account
|
||||
const accounts = await getAccounts();
|
||||
accounts.splice(accounts.findIndex(x => x.id === $i.id), 1);
|
||||
|
||||
if (accounts.length > 0) await set('accounts', accounts);
|
||||
else await del('accounts');
|
||||
//#endregion
|
||||
|
||||
//#region Remove service worker registration
|
||||
try {
|
||||
if (navigator.serviceWorker.controller) {
|
||||
const registration = await navigator.serviceWorker.ready;
|
||||
const push = await registration.pushManager.getSubscription();
|
||||
if (push) {
|
||||
await fetch(`${apiUrl}/sw/unregister`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({
|
||||
i: $i.token,
|
||||
endpoint: push.endpoint,
|
||||
}),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (accounts.length === 0) {
|
||||
await navigator.serviceWorker.getRegistrations()
|
||||
.then(registrations => {
|
||||
return Promise.all(registrations.map(registration => registration.unregister()));
|
||||
});
|
||||
}
|
||||
} catch (e) {}
|
||||
//#endregion
|
||||
|
||||
document.cookie = `igi=; path=/`;
|
||||
location.href = '/';
|
||||
|
||||
if (accounts.length > 0) login(accounts[0].token);
|
||||
else unisonReload();
|
||||
}
|
||||
|
||||
export function getAccounts() {
|
||||
const accountsData = localStorage.getItem('accounts');
|
||||
const accounts: { id: Account['id'], token: Account['token'] }[] = accountsData ? JSON.parse(accountsData) : [];
|
||||
return accounts;
|
||||
export async function getAccounts(): Promise<{ id: Account['id'], token: Account['token'] }[]> {
|
||||
return (await get('accounts')) || [];
|
||||
}
|
||||
|
||||
export function addAccount(id: Account['id'], token: Account['token']) {
|
||||
const accounts = getAccounts();
|
||||
export async function addAccount(id: Account['id'], token: Account['token']) {
|
||||
const accounts = await getAccounts();
|
||||
if (!accounts.some(x => x.id === id)) {
|
||||
localStorage.setItem('accounts', JSON.stringify(accounts.concat([{ id, token }])));
|
||||
await set('accounts', accounts.concat([{ id, token }]));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +84,7 @@ function fetchAccount(token): Promise<Account> {
|
||||
})
|
||||
.then(res => {
|
||||
// When failed to authenticate user
|
||||
if (res.status >= 400 && res.status < 500) {
|
||||
if (res.status !== 200 && res.status < 500) {
|
||||
return signout();
|
||||
}
|
||||
|
||||
@@ -69,15 +106,22 @@ export function updateAccount(data) {
|
||||
}
|
||||
|
||||
export function refreshAccount() {
|
||||
fetchAccount($i.token).then(updateAccount);
|
||||
return fetchAccount($i.token).then(updateAccount);
|
||||
}
|
||||
|
||||
export async function login(token: Account['token']) {
|
||||
export async function login(token: Account['token'], redirect?: string) {
|
||||
waiting();
|
||||
if (_DEV_) console.log('logging as token ', token);
|
||||
const me = await fetchAccount(token);
|
||||
localStorage.setItem('account', JSON.stringify(me));
|
||||
addAccount(me.id, token);
|
||||
await addAccount(me.id, token);
|
||||
|
||||
if (redirect) {
|
||||
reloadChannel.postMessage('reload');
|
||||
location.href = redirect;
|
||||
return;
|
||||
}
|
||||
|
||||
unisonReload();
|
||||
}
|
||||
|
||||
|
@@ -118,6 +118,8 @@ export default defineComponent({
|
||||
|
||||
&:not(.noGap) {
|
||||
> .notes {
|
||||
background: var(--bg);
|
||||
|
||||
.qtqtichx {
|
||||
background: var(--panel);
|
||||
border-radius: var(--radius);
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<p class="mfcuwfyp" v-else-if="empty">{{ $ts.noNotifications }}</p>
|
||||
|
||||
<div v-else>
|
||||
<XList class="notifications" :items="items" v-slot="{ item: notification }" :no-gap="true">
|
||||
<XList class="elsfgstc" :items="items" v-slot="{ item: notification }" :no-gap="true">
|
||||
<XNote v-if="['reply', 'quote', 'mention'].includes(notification.type)" :note="notification.note" @update:note="noteUpdated(notification.note, $event)" :key="notification.id"/>
|
||||
<XNotification v-else :notification="notification" :with-time="true" :full="true" class="_panel notification" :key="notification.id"/>
|
||||
</XList>
|
||||
@@ -141,4 +141,8 @@ export default defineComponent({
|
||||
text-align: center;
|
||||
color: var(--fg);
|
||||
}
|
||||
|
||||
.elsfgstc {
|
||||
background: var(--panel);
|
||||
}
|
||||
</style>
|
||||
|
@@ -367,7 +367,12 @@ export default defineComponent({
|
||||
this.cw = init.cw;
|
||||
this.useCw = init.cw != null;
|
||||
if (init.poll) {
|
||||
this.poll = init.poll;
|
||||
this.poll = {
|
||||
choices: init.poll.choices.map(x => x.text),
|
||||
multiple: init.poll.multiple,
|
||||
expiresAt: init.poll.expiresAt,
|
||||
expiredAfter: init.poll.expiredAfter,
|
||||
};
|
||||
}
|
||||
this.visibility = init.visibility;
|
||||
this.localOnly = init.localOnly;
|
||||
|
@@ -111,7 +111,9 @@ export default defineComponent({
|
||||
|
||||
onLogin(res) {
|
||||
if (this.autoSet) {
|
||||
login(res.i);
|
||||
return login(res.i);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
},
|
||||
|
||||
@@ -144,7 +146,7 @@ export default defineComponent({
|
||||
});
|
||||
}).then(res => {
|
||||
this.$emit('login', res);
|
||||
this.onLogin(res);
|
||||
return this.onLogin(res);
|
||||
}).catch(err => {
|
||||
if (err === null) return;
|
||||
os.dialog({
|
||||
|
@@ -1,12 +1,12 @@
|
||||
<template>
|
||||
<form class="mk-signup" @submit.prevent="onSubmit" :autocomplete="Math.random()">
|
||||
<form class="qlvuhzng" @submit.prevent="onSubmit" :autocomplete="Math.random()">
|
||||
<template v-if="meta">
|
||||
<MkInput v-if="meta.disableRegistration" v-model="invitationCode" type="text" :autocomplete="Math.random()" spellcheck="false" required>
|
||||
<MkInput class="_inputNoTopMargin" v-if="meta.disableRegistration" v-model="invitationCode" type="text" :autocomplete="Math.random()" spellcheck="false" required>
|
||||
<template #label>{{ $ts.invitationCode }}</template>
|
||||
<template #prefix><i class="fas fa-key"></i></template>
|
||||
</MkInput>
|
||||
<MkInput v-model="username" type="text" pattern="^[a-zA-Z0-9_]{1,20}$" :autocomplete="Math.random()" spellcheck="false" required @update:modelValue="onChangeUsername" data-cy-signup-username>
|
||||
<template #label>{{ $ts.username }}</template>
|
||||
<MkInput class="_inputNoTopMargin" v-model="username" type="text" pattern="^[a-zA-Z0-9_]{1,20}$" :autocomplete="Math.random()" spellcheck="false" required @update:modelValue="onChangeUsername" data-cy-signup-username>
|
||||
<template #label>{{ $ts.username }} <div class="_button _help" v-tooltip:dialog="$ts.usernameInfo"><i class="far fa-question-circle"></i></div></template>
|
||||
<template #prefix>@</template>
|
||||
<template #suffix>@{{ host }}</template>
|
||||
<template #caption>
|
||||
@@ -178,14 +178,14 @@ export default defineComponent({
|
||||
'hcaptcha-response': this.hCaptchaResponse,
|
||||
'g-recaptcha-response': this.reCaptchaResponse,
|
||||
}).then(() => {
|
||||
os.api('signin', {
|
||||
return os.api('signin', {
|
||||
username: this.username,
|
||||
password: this.password
|
||||
}).then(res => {
|
||||
this.$emit('signup', res);
|
||||
|
||||
if (this.autoSet) {
|
||||
login(res.i);
|
||||
return login(res.i);
|
||||
}
|
||||
});
|
||||
}).catch(() => {
|
||||
@@ -204,7 +204,7 @@ export default defineComponent({
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.mk-signup {
|
||||
.qlvuhzng {
|
||||
.captcha {
|
||||
margin: 16px 0;
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import { Directive, ref } from 'vue';
|
||||
import { isDeviceTouch } from '@client/scripts/is-device-touch';
|
||||
import { popup } from '@client/os';
|
||||
import { popup, dialog } from '@client/os';
|
||||
|
||||
const start = isDeviceTouch ? 'touchstart' : 'mouseover';
|
||||
const end = isDeviceTouch ? 'touchend' : 'mouseleave';
|
||||
@@ -24,6 +24,18 @@ export default {
|
||||
}
|
||||
};
|
||||
|
||||
if (binding.arg === 'dialog') {
|
||||
el.addEventListener('click', (ev) => {
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
dialog({
|
||||
type: 'info',
|
||||
text: binding.value,
|
||||
});
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
const show = e => {
|
||||
if (!document.body.contains(el)) return;
|
||||
if (self._close) return;
|
||||
|
@@ -4,6 +4,15 @@
|
||||
|
||||
import '@client/style.scss';
|
||||
|
||||
//#region account indexedDB migration
|
||||
import { set } from '@client/scripts/idb-proxy';
|
||||
|
||||
if (localStorage.getItem('accounts') != null) {
|
||||
set('accounts', JSON.parse(localStorage.getItem('accounts')));
|
||||
localStorage.removeItem('accounts');
|
||||
}
|
||||
//#endregion
|
||||
|
||||
import * as Sentry from '@sentry/browser';
|
||||
import { Integrations } from '@sentry/tracing';
|
||||
import { computed, createApp, watch, markRaw } from 'vue';
|
||||
@@ -92,15 +101,12 @@ window.addEventListener('resize', () => {
|
||||
});
|
||||
//#endregion
|
||||
|
||||
// Get the <head> element
|
||||
const head = document.getElementsByTagName('head')[0];
|
||||
|
||||
// If mobile, insert the viewport meta tag
|
||||
if (isMobile || window.innerWidth <= 1024) {
|
||||
const viewport = document.getElementsByName('viewport').item(0);
|
||||
viewport.setAttribute('content',
|
||||
`${viewport.getAttribute('content')},minimum-scale=1,maximum-scale=1,user-scalable=no`);
|
||||
head.appendChild(viewport);
|
||||
document.head.appendChild(viewport);
|
||||
}
|
||||
|
||||
//#region Set lang attr
|
||||
@@ -301,6 +307,13 @@ for (const plugin of ColdDeviceStorage.get('plugins').filter(p => p.active)) {
|
||||
}
|
||||
|
||||
if ($i) {
|
||||
if ($i.isDeleted) {
|
||||
dialog({
|
||||
type: 'warning',
|
||||
text: i18n.locale.accountDeletionInProgress,
|
||||
});
|
||||
}
|
||||
|
||||
if ('Notification' in window) {
|
||||
// 許可を得ていなかったらリクエスト
|
||||
if (Notification.permission === 'default') {
|
||||
|
@@ -214,7 +214,11 @@ export function modalPageWindow(path: string) {
|
||||
}, {}, 'closed');
|
||||
}
|
||||
|
||||
export function dialog(props: Record<string, any>) {
|
||||
export function dialog(props: {
|
||||
type: 'error' | 'info' | 'success' | 'warning' | 'waiting';
|
||||
title?: string | null;
|
||||
text?: string | null;
|
||||
}) {
|
||||
return new Promise((resolve, reject) => {
|
||||
popup(import('@client/components/dialog.vue'), props, {
|
||||
done: result => {
|
||||
|
@@ -60,7 +60,7 @@ import FormBase from '@client/components/form/base.vue';
|
||||
import FormGroup from '@client/components/form/group.vue';
|
||||
import FormKeyValueView from '@client/components/form/key-value-view.vue';
|
||||
import MkLink from '@client/components/link.vue';
|
||||
import { physics } from '@client/scripts/physics.ts';
|
||||
import { physics } from '@client/scripts/physics';
|
||||
import * as symbols from '@client/symbols';
|
||||
|
||||
const patrons = [
|
||||
|
@@ -28,14 +28,14 @@
|
||||
<option value="-following">{{ $ts.following }} ({{ $ts.ascendingOrder }})</option>
|
||||
<option value="+followers">{{ $ts.followers }} ({{ $ts.descendingOrder }})</option>
|
||||
<option value="-followers">{{ $ts.followers }} ({{ $ts.ascendingOrder }})</option>
|
||||
<option value="+caughtAt">{{ $ts.caughtAt }} ({{ $ts.descendingOrder }})</option>
|
||||
<option value="-caughtAt">{{ $ts.caughtAt }} ({{ $ts.ascendingOrder }})</option>
|
||||
<option value="+lastCommunicatedAt">{{ $ts.lastCommunicatedAt }} ({{ $ts.descendingOrder }})</option>
|
||||
<option value="-lastCommunicatedAt">{{ $ts.lastCommunicatedAt }} ({{ $ts.ascendingOrder }})</option>
|
||||
<option value="+caughtAt">{{ $ts.registeredAt }} ({{ $ts.descendingOrder }})</option>
|
||||
<option value="-caughtAt">{{ $ts.registeredAt }} ({{ $ts.ascendingOrder }})</option>
|
||||
<option value="+lastCommunicatedAt">{{ $ts.lastCommunication }} ({{ $ts.descendingOrder }})</option>
|
||||
<option value="-lastCommunicatedAt">{{ $ts.lastCommunication }} ({{ $ts.ascendingOrder }})</option>
|
||||
<option value="+driveUsage">{{ $ts.driveUsage }} ({{ $ts.descendingOrder }})</option>
|
||||
<option value="-driveUsage">{{ $ts.driveUsage }} ({{ $ts.ascendingOrder }})</option>
|
||||
<option value="+driveFiles">{{ $ts.driveFiles }} ({{ $ts.descendingOrder }})</option>
|
||||
<option value="-driveFiles">{{ $ts.driveFiles }} ({{ $ts.ascendingOrder }})</option>
|
||||
<option value="+driveFiles">{{ $ts.driveFilesCount }} ({{ $ts.descendingOrder }})</option>
|
||||
<option value="-driveFiles">{{ $ts.driveFilesCount }} ({{ $ts.ascendingOrder }})</option>
|
||||
</MkSelect>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -12,6 +12,9 @@
|
||||
<template #prefix><i class="fas fa-key"></i></template>
|
||||
DeepL Auth Key
|
||||
</FormInput>
|
||||
<FormSwitch v-model:value="deeplIsPro">
|
||||
Pro account
|
||||
</FormSwitch>
|
||||
</FormGroup>
|
||||
<FormButton @click="save" primary><i class="fas fa-save"></i> {{ $ts.save }}</FormButton>
|
||||
</FormSuspense>
|
||||
@@ -50,6 +53,7 @@ export default defineComponent({
|
||||
},
|
||||
summalyProxy: '',
|
||||
deeplAuthKey: '',
|
||||
deeplIsPro: false,
|
||||
}
|
||||
},
|
||||
|
||||
@@ -62,11 +66,13 @@ export default defineComponent({
|
||||
const meta = await os.api('meta', { detail: true });
|
||||
this.summalyProxy = meta.summalyProxy;
|
||||
this.deeplAuthKey = meta.deeplAuthKey;
|
||||
this.deeplIsPro = meta.deeplIsPro;
|
||||
},
|
||||
save() {
|
||||
os.apiWithDialog('admin/update-meta', {
|
||||
summalyProxy: this.summalyProxy,
|
||||
deeplAuthKey: this.deeplAuthKey,
|
||||
deeplIsPro: this.deeplIsPro,
|
||||
}).then(() => {
|
||||
fetchInstance();
|
||||
});
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="">
|
||||
<XNotifications class="_content" @before="before" @after="after" page/>
|
||||
<div class="clupoqwt" v-size="{ min: [800] }">
|
||||
<XNotifications class="notifications" @before="before" @after="after" page/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -43,3 +43,17 @@ export default defineComponent({
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.clupoqwt {
|
||||
&.min-width_800px {
|
||||
background: var(--bg);
|
||||
padding: 32px 0;
|
||||
|
||||
> .notifications {
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@@ -48,10 +48,10 @@ export default defineComponent({
|
||||
title: this.$ts.accounts,
|
||||
icon: 'fas fa-users',
|
||||
},
|
||||
storedAccounts: getAccounts().filter(x => x.id !== this.$i.id),
|
||||
storedAccounts: getAccounts().then(accounts => accounts.filter(x => x.id !== this.$i.id)),
|
||||
accounts: null,
|
||||
init: () => os.api('users/show', {
|
||||
userIds: this.storedAccounts.map(x => x.id)
|
||||
init: async () => os.api('users/show', {
|
||||
userIds: (await this.storedAccounts).map(x => x.id)
|
||||
}).then(accounts => {
|
||||
this.accounts = accounts;
|
||||
}),
|
||||
@@ -104,8 +104,8 @@ export default defineComponent({
|
||||
}, 'closed');
|
||||
},
|
||||
|
||||
switchAccount(account: any) {
|
||||
const storedAccounts = getAccounts();
|
||||
async switchAccount(account: any) {
|
||||
const storedAccounts = await getAccounts();
|
||||
const token = storedAccounts.find(x => x.id === account.id).token;
|
||||
this.switchAccountWithToken(token);
|
||||
},
|
||||
|
67
src/client/pages/settings/delete-account.vue
Normal file
67
src/client/pages/settings/delete-account.vue
Normal file
@@ -0,0 +1,67 @@
|
||||
<template>
|
||||
<FormBase>
|
||||
<FormInfo warn>{{ $ts._accountDelete.mayTakeTime }}</FormInfo>
|
||||
<FormInfo>{{ $ts._accountDelete.sendEmail }}</FormInfo>
|
||||
<FormButton @click="deleteAccount" danger v-if="!$i.isDeleted">{{ $ts._accountDelete.requestAccountDelete }}</FormButton>
|
||||
<FormButton disabled v-else>{{ $ts._accountDelete.inProgress }}</FormButton>
|
||||
</FormBase>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineAsyncComponent, defineComponent } from 'vue';
|
||||
import FormInfo from '@client/components/form/info.vue';
|
||||
import FormBase from '@client/components/form/base.vue';
|
||||
import FormGroup from '@client/components/form/group.vue';
|
||||
import FormButton from '@client/components/form/button.vue';
|
||||
import * as os from '@client/os';
|
||||
import { debug } from '@client/config';
|
||||
import { signout } from '@client/account';
|
||||
import * as symbols from '@client/symbols';
|
||||
|
||||
export default defineComponent({
|
||||
components: {
|
||||
FormBase,
|
||||
FormButton,
|
||||
FormGroup,
|
||||
FormInfo,
|
||||
},
|
||||
|
||||
emits: ['info'],
|
||||
|
||||
data() {
|
||||
return {
|
||||
[symbols.PAGE_INFO]: {
|
||||
title: this.$ts._accountDelete.accountDelete,
|
||||
icon: 'fas fa-exclamation-triangle'
|
||||
},
|
||||
debug,
|
||||
}
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.$emit('info', this[symbols.PAGE_INFO]);
|
||||
},
|
||||
|
||||
methods: {
|
||||
async deleteAccount() {
|
||||
const { canceled, result: password } = await os.dialog({
|
||||
title: this.$ts.password,
|
||||
input: {
|
||||
type: 'password'
|
||||
}
|
||||
});
|
||||
if (canceled) return;
|
||||
|
||||
await os.apiWithDialog('i/delete-account', {
|
||||
password: password
|
||||
});
|
||||
|
||||
await os.dialog({
|
||||
title: this.$ts._accountDelete.started,
|
||||
});
|
||||
|
||||
signout();
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
@@ -45,6 +45,10 @@
|
||||
</FormSwitch>
|
||||
</FormGroup>
|
||||
|
||||
<FormGroup>
|
||||
<FormSwitch v-model:value="aiChanMode">{{ $ts.aiChanMode }}</FormSwitch>
|
||||
</FormGroup>
|
||||
|
||||
<FormRadios v-model="fontSize">
|
||||
<template #desc>{{ $ts.fontSize }}</template>
|
||||
<option value="small"><span style="font-size: 14px;">Aa</span></option>
|
||||
@@ -149,6 +153,7 @@ export default defineComponent({
|
||||
enableInfiniteScroll: defaultStore.makeGetterSetter('enableInfiniteScroll'),
|
||||
useReactionPickerForContextMenu: defaultStore.makeGetterSetter('useReactionPickerForContextMenu'),
|
||||
squareAvatars: defaultStore.makeGetterSetter('squareAvatars'),
|
||||
aiChanMode: defaultStore.makeGetterSetter('aiChanMode'),
|
||||
},
|
||||
|
||||
watch: {
|
||||
@@ -184,6 +189,10 @@ export default defineComponent({
|
||||
this.reloadAsk();
|
||||
},
|
||||
|
||||
aiChanMode() {
|
||||
this.reloadAsk();
|
||||
},
|
||||
|
||||
showGapBetweenNotesInTimeline() {
|
||||
this.reloadAsk();
|
||||
},
|
||||
|
@@ -132,6 +132,7 @@ export default defineComponent({
|
||||
case 'account-info': return defineAsyncComponent(() => import('./account-info.vue'));
|
||||
case 'update': return defineAsyncComponent(() => import('./update.vue'));
|
||||
case 'registry': return defineAsyncComponent(() => import('./registry.vue'));
|
||||
case 'delete-account': return defineAsyncComponent(() => import('./delete-account.vue'));
|
||||
case 'experimental-features': return defineAsyncComponent(() => import('./experimental-features.vue'));
|
||||
}
|
||||
if (page.value.startsWith('registry/keys/system/')) {
|
||||
|
@@ -26,7 +26,7 @@
|
||||
<FormLink to="/bios" behavior="browser"><template #icon><i class="fas fa-door-open"></i></template>BIOS</FormLink>
|
||||
<FormLink to="/cli" behavior="browser"><template #icon><i class="fas fa-door-open"></i></template>CLI</FormLink>
|
||||
|
||||
<FormButton @click="closeAccount" danger>{{ $ts.closeAccount }}</FormButton>
|
||||
<FormLink to="./delete-account"><template #icon><i class="fas fa-exclamation-triangle"></i></template>{{ $ts.closeAccount }}</FormLink>
|
||||
</FormBase>
|
||||
</template>
|
||||
|
||||
@@ -41,7 +41,6 @@ import FormButton from '@client/components/form/button.vue';
|
||||
import * as os from '@client/os';
|
||||
import { debug } from '@client/config';
|
||||
import { defaultStore } from '@client/store';
|
||||
import { signout } from '@client/account';
|
||||
import { unisonReload } from '@client/scripts/unison-reload';
|
||||
import * as symbols from '@client/symbols';
|
||||
|
||||
@@ -92,22 +91,6 @@ export default defineComponent({
|
||||
os.popup(import('@client/components/taskmanager.vue'), {
|
||||
}, {}, 'closed');
|
||||
},
|
||||
|
||||
closeAccount() {
|
||||
os.dialog({
|
||||
title: this.$ts.password,
|
||||
input: {
|
||||
type: 'password'
|
||||
}
|
||||
}).then(({ canceled, result: password }) => {
|
||||
if (canceled) return;
|
||||
os.api('i/delete-account', {
|
||||
password: password
|
||||
}).then(() => {
|
||||
signout();
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
@@ -28,6 +28,7 @@
|
||||
</FormSelect>
|
||||
<FormSwitch v-model:value="defaultNoteLocalOnly">{{ $ts._visibility.localOnly }}</FormSwitch>
|
||||
</FormGroup>
|
||||
<FormSwitch v-model:value="keepCw" @update:value="save()">{{ $ts.keepCw }}</FormSwitch>
|
||||
</FormBase>
|
||||
</template>
|
||||
|
||||
@@ -69,6 +70,7 @@ export default defineComponent({
|
||||
defaultNoteVisibility: defaultStore.makeGetterSetter('defaultNoteVisibility'),
|
||||
defaultNoteLocalOnly: defaultStore.makeGetterSetter('defaultNoteLocalOnly'),
|
||||
rememberNoteVisibility: defaultStore.makeGetterSetter('rememberNoteVisibility'),
|
||||
keepCw: defaultStore.makeGetterSetter('keepCw'),
|
||||
},
|
||||
|
||||
created() {
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="cmuxhskf" v-hotkey.global="keymap">
|
||||
<div class="cmuxhskf" v-hotkey.global="keymap" v-size="{ min: [800] }">
|
||||
<XTutorial v-if="$store.reactiveState.tutorial.value != -1" class="tutorial _block _isolated"/>
|
||||
<XPostForm v-if="$store.reactiveState.showFixedPostForm.value" class="post-form _block _isolated" fixed/>
|
||||
<div class="tabs">
|
||||
@@ -19,17 +19,19 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="new" v-if="queue > 0"><button class="_buttonPrimary" @click="top()">{{ $ts.newNoteRecived }}</button></div>
|
||||
<XTimeline ref="tl" class="tl"
|
||||
:key="src === 'list' ? `list:${list.id}` : src === 'antenna' ? `antenna:${antenna.id}` : src === 'channel' ? `channel:${channel.id}` : src"
|
||||
:src="src"
|
||||
:list="list ? list.id : null"
|
||||
:antenna="antenna ? antenna.id : null"
|
||||
:channel="channel ? channel.id : null"
|
||||
:sound="true"
|
||||
@before="before()"
|
||||
@after="after()"
|
||||
@queue="queueUpdated"
|
||||
/>
|
||||
<div class="tl">
|
||||
<XTimeline ref="tl" class="tl"
|
||||
:key="src === 'list' ? `list:${list.id}` : src === 'antenna' ? `antenna:${antenna.id}` : src === 'channel' ? `channel:${channel.id}` : src"
|
||||
:src="src"
|
||||
:list="list ? list.id : null"
|
||||
:antenna="antenna ? antenna.id : null"
|
||||
:channel="channel ? channel.id : null"
|
||||
:sound="true"
|
||||
@before="before()"
|
||||
@after="after()"
|
||||
@queue="queueUpdated"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -231,6 +233,7 @@ export default defineComponent({
|
||||
padding: 0 8px;
|
||||
white-space: nowrap;
|
||||
overflow: auto;
|
||||
border-bottom: solid 0.5px var(--divider);
|
||||
|
||||
// 影の都合上
|
||||
position: relative;
|
||||
@@ -287,8 +290,16 @@ export default defineComponent({
|
||||
}
|
||||
}
|
||||
|
||||
> .tl {
|
||||
border-top: solid 0.5px var(--divider);
|
||||
&.min-width_800px {
|
||||
> .tl {
|
||||
background: var(--bg);
|
||||
padding: 32px 0;
|
||||
|
||||
> .tl {
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@@ -53,7 +53,7 @@ export default defineComponent({
|
||||
username: this.username,
|
||||
password: this.password,
|
||||
}).then(res => {
|
||||
login(res.i);
|
||||
return login(res.token);
|
||||
}).catch(() => {
|
||||
this.submitting = false;
|
||||
|
||||
|
@@ -65,7 +65,7 @@ export class Autocomplete {
|
||||
*/
|
||||
private onInput() {
|
||||
const caretPos = this.textarea.selectionStart;
|
||||
const text = this.text.substr(0, caretPos).split('\n').pop();
|
||||
const text = this.text.substr(0, caretPos).split('\n').pop()!;
|
||||
|
||||
const mentionIndex = text.lastIndexOf('@');
|
||||
const hashtagIndex = text.lastIndexOf('#');
|
||||
@@ -83,7 +83,7 @@ export class Autocomplete {
|
||||
|
||||
const isMention = mentionIndex != -1;
|
||||
const isHashtag = hashtagIndex != -1;
|
||||
const isEmoji = emojiIndex != -1;
|
||||
const isEmoji = emojiIndex != -1 && text.split(/:[a-z0-9_+\-]+:/).pop()!.includes(':');
|
||||
|
||||
let opened = false;
|
||||
|
||||
|
7
src/client/scripts/get-account-from-id.ts
Normal file
7
src/client/scripts/get-account-from-id.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
import { get } from '@client/scripts/idb-proxy';
|
||||
|
||||
export async function getAccountFromId(id: string) {
|
||||
const accounts = await get('accounts') as { token: string; id: string; }[];
|
||||
if (!accounts) console.log('Accounts are not recorded');
|
||||
return accounts.find(e => e.id === id);
|
||||
}
|
38
src/client/scripts/idb-proxy.ts
Normal file
38
src/client/scripts/idb-proxy.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
// FirefoxのプライベートモードなどではindexedDBが使用不可能なので、
|
||||
// indexedDBが使えない環境ではlocalStorageを使う
|
||||
import {
|
||||
get as iget,
|
||||
set as iset,
|
||||
del as idel,
|
||||
createStore,
|
||||
} from 'idb-keyval';
|
||||
|
||||
const fallbackName = (key: string) => `idbfallback::${key}`;
|
||||
|
||||
let idbAvailable = typeof window !== 'undefined' ? !!window.indexedDB : true;
|
||||
|
||||
if (idbAvailable) {
|
||||
try {
|
||||
await createStore('keyval-store', 'keyval');
|
||||
} catch (e) {
|
||||
console.error('idb open error', e);
|
||||
idbAvailable = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!idbAvailable) console.error('indexedDB is unavailable. It will use localStorage.');
|
||||
|
||||
export async function get(key: string) {
|
||||
if (idbAvailable) return iget(key);
|
||||
return JSON.parse(localStorage.getItem(fallbackName(key)));
|
||||
}
|
||||
|
||||
export async function set(key: string, val: any) {
|
||||
if (idbAvailable) return iset(key, val);
|
||||
return localStorage.setItem(fallbackName(key), JSON.stringify(val));
|
||||
}
|
||||
|
||||
export async function del(key: string) {
|
||||
if (idbAvailable) return idel(key);
|
||||
return localStorage.removeItem(fallbackName(key));
|
||||
}
|
@@ -210,6 +210,10 @@ export const defaultStore = markRaw(new Storage('base', {
|
||||
where: 'device',
|
||||
default: ''
|
||||
},
|
||||
aiChanMode: {
|
||||
where: 'device',
|
||||
default: false
|
||||
},
|
||||
}));
|
||||
|
||||
// TODO: 他のタブと永続化されたstateを同期
|
||||
|
@@ -156,6 +156,7 @@ hr {
|
||||
|
||||
._button {
|
||||
appearance: none;
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
margin: 0; // for Safari
|
||||
background: none;
|
||||
@@ -201,6 +202,11 @@ hr {
|
||||
}
|
||||
}
|
||||
|
||||
._help {
|
||||
color: var(--accent);
|
||||
cursor: help
|
||||
}
|
||||
|
||||
._textButton {
|
||||
@extend ._button;
|
||||
color: var(--accent);
|
||||
|
@@ -21,7 +21,8 @@
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"@/*": ["../*"],
|
||||
"@client/*": ["./*"]
|
||||
"@client/*": ["./*"],
|
||||
"@lib/*": ["../../lib/*"],
|
||||
},
|
||||
"typeRoots": [
|
||||
"node_modules/@types",
|
||||
|
@@ -135,7 +135,7 @@ export default defineComponent({
|
||||
},
|
||||
|
||||
async openAccountMenu(ev) {
|
||||
const storedAccounts = getAccounts().filter(x => x.id !== this.$i.id);
|
||||
const storedAccounts = await getAccounts().then(accounts => accounts.filter(x => x.id !== this.$i.id));
|
||||
const accountsPromise = os.api('users/show', { userIds: storedAccounts.map(x => x.id) });
|
||||
|
||||
const accountItemPromises = storedAccounts.map(a => new Promise(res => {
|
||||
@@ -195,8 +195,8 @@ export default defineComponent({
|
||||
}, 'closed');
|
||||
},
|
||||
|
||||
switchAccount(account: any) {
|
||||
const storedAccounts = getAccounts();
|
||||
async switchAccount(account: any) {
|
||||
const storedAccounts = await getAccounts();
|
||||
const token = storedAccounts.find(x => x.id === account.id).token;
|
||||
this.switchAccountWithToken(token);
|
||||
},
|
||||
|
@@ -101,7 +101,7 @@ export default defineComponent({
|
||||
},
|
||||
|
||||
async openAccountMenu(ev) {
|
||||
const storedAccounts = getAccounts().filter(x => x.id !== this.$i.id);
|
||||
const storedAccounts = await getAccounts().then(accounts => accounts.filter(x => x.id !== this.$i.id));
|
||||
const accountsPromise = os.api('users/show', { userIds: storedAccounts.map(x => x.id) });
|
||||
|
||||
const accountItemPromises = storedAccounts.map(a => new Promise(res => {
|
||||
@@ -161,8 +161,8 @@ export default defineComponent({
|
||||
}, 'closed');
|
||||
},
|
||||
|
||||
switchAccount(account: any) {
|
||||
const storedAccounts = getAccounts();
|
||||
async switchAccount(account: any) {
|
||||
const storedAccounts = await getAccounts();
|
||||
const token = storedAccounts.find(x => x.id === account.id).token;
|
||||
this.switchAccountWithToken(token);
|
||||
},
|
||||
|
@@ -121,7 +121,7 @@ export default defineComponent({
|
||||
},
|
||||
|
||||
async openAccountMenu(ev) {
|
||||
const storedAccounts = getAccounts().filter(x => x.id !== this.$i.id);
|
||||
const storedAccounts = await getAccounts().then(accounts => accounts.filter(x => x.id !== this.$i.id));
|
||||
const accountsPromise = os.api('users/show', { userIds: storedAccounts.map(x => x.id) });
|
||||
|
||||
const accountItemPromises = storedAccounts.map(a => new Promise(res => {
|
||||
@@ -181,8 +181,8 @@ export default defineComponent({
|
||||
}, 'closed');
|
||||
},
|
||||
|
||||
switchAccount(account: any) {
|
||||
const storedAccounts = getAccounts();
|
||||
async switchAccount(account: any) {
|
||||
const storedAccounts = await getAccounts();
|
||||
const token = storedAccounts.find(x => x.id === account.id).token;
|
||||
this.switchAccountWithToken(token);
|
||||
},
|
||||
|
@@ -54,12 +54,14 @@
|
||||
<XWidgets v-if="widgetsShowing" class="tray"/>
|
||||
</transition>
|
||||
|
||||
<iframe v-if="$store.state.aiChanMode" class="ivnzpscs" ref="live2d" src="https://misskey-dev.github.io/mascot-web/?scale=2&y=1.4"></iframe>
|
||||
|
||||
<XCommon/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent, defineAsyncComponent } from 'vue';
|
||||
import { defineComponent, defineAsyncComponent, markRaw } from 'vue';
|
||||
import { instanceName } from '@client/config';
|
||||
import { StickySidebar } from '@client/scripts/sticky-sidebar';
|
||||
import XSidebar from './default.sidebar.vue';
|
||||
@@ -131,6 +133,19 @@ export default defineComponent({
|
||||
this.isMobile = (window.innerWidth <= MOBILE_THRESHOLD);
|
||||
this.isDesktop = (window.innerWidth >= DESKTOP_THRESHOLD);
|
||||
}, { passive: true });
|
||||
|
||||
if (this.$store.state.aiChanMode) {
|
||||
const iframeRect = this.$refs.live2d.getBoundingClientRect();
|
||||
window.addEventListener('mousemove', ev => {
|
||||
this.$refs.live2d.contentWindow.postMessage({
|
||||
type: 'moveCursor',
|
||||
body: {
|
||||
x: ev.clientX - iframeRect.left,
|
||||
y: ev.clientY - iframeRect.top,
|
||||
}
|
||||
}, '*');
|
||||
}, { passive: true });
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
@@ -201,6 +216,10 @@ export default defineComponent({
|
||||
}
|
||||
}], e);
|
||||
},
|
||||
|
||||
onAiClick(ev) {
|
||||
//if (this.live2d) this.live2d.click(ev);
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
@@ -458,5 +477,15 @@ export default defineComponent({
|
||||
overflow: auto;
|
||||
background: var(--bg);
|
||||
}
|
||||
|
||||
> .ivnzpscs {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
width: 300px;
|
||||
height: 600px;
|
||||
border: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
59
src/client/widgets/aichan.vue
Normal file
59
src/client/widgets/aichan.vue
Normal file
@@ -0,0 +1,59 @@
|
||||
<template>
|
||||
<MkContainer :naked="props.transparent" :show-header="false">
|
||||
<iframe class="dedjhjmo" ref="live2d" @click="touched" src="https://misskey-dev.github.io/mascot-web/?scale=1.5&y=1.1&eyeY=100"></iframe>
|
||||
</MkContainer>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent, markRaw } from 'vue';
|
||||
import define from './define';
|
||||
import MkContainer from '@client/components/ui/container.vue';
|
||||
import * as os from '@client/os';
|
||||
|
||||
const widget = define({
|
||||
name: 'ai',
|
||||
props: () => ({
|
||||
transparent: {
|
||||
type: 'boolean',
|
||||
default: false,
|
||||
},
|
||||
})
|
||||
});
|
||||
|
||||
export default defineComponent({
|
||||
extends: widget,
|
||||
components: {
|
||||
MkContainer,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
window.addEventListener('mousemove', ev => {
|
||||
const iframeRect = this.$refs.live2d.getBoundingClientRect();
|
||||
this.$refs.live2d.contentWindow.postMessage({
|
||||
type: 'moveCursor',
|
||||
body: {
|
||||
x: ev.clientX - iframeRect.left,
|
||||
y: ev.clientY - iframeRect.top,
|
||||
}
|
||||
}, '*');
|
||||
}, { passive: true });
|
||||
},
|
||||
methods: {
|
||||
touched() {
|
||||
//if (this.live2d) this.live2d.changeExpression('gurugurume');
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.dedjhjmo {
|
||||
width: 100%;
|
||||
height: 350px;
|
||||
border: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
</style>
|
@@ -19,6 +19,7 @@ export default function(app: App) {
|
||||
app.component('MkwJobQueue', defineAsyncComponent(() => import('./job-queue.vue')));
|
||||
app.component('MkwButton', defineAsyncComponent(() => import('./button.vue')));
|
||||
app.component('MkwAiscript', defineAsyncComponent(() => import('./aiscript.vue')));
|
||||
app.component('MkwAichan', defineAsyncComponent(() => import('./aichan.vue')));
|
||||
}
|
||||
|
||||
export const widgets = [
|
||||
@@ -40,4 +41,5 @@ export const widgets = [
|
||||
'jobQueue',
|
||||
'button',
|
||||
'aiscript',
|
||||
'aichan',
|
||||
];
|
||||
|
@@ -7,7 +7,6 @@ import { fileURLToPath } from 'url';
|
||||
import { dirname } from 'path';
|
||||
import * as yaml from 'js-yaml';
|
||||
import { Source, Mixin } from './types';
|
||||
import * as meta from '../meta.json';
|
||||
|
||||
//const _filename = fileURLToPath(import.meta.url);
|
||||
const _filename = __filename;
|
||||
@@ -26,6 +25,7 @@ const path = process.env.NODE_ENV === 'test'
|
||||
: `${dir}/default.yml`;
|
||||
|
||||
export default function load() {
|
||||
const meta = JSON.parse(fs.readFileSync(`${_dirname}/../meta.json`, 'utf-8'));
|
||||
const config = yaml.load(fs.readFileSync(path, 'utf-8')) as Source;
|
||||
|
||||
const mixin = {} as Mixin;
|
||||
|
@@ -37,6 +37,10 @@ export type Source = {
|
||||
proxySmtp?: string;
|
||||
proxyBypassHosts?: string[];
|
||||
|
||||
allowedPrivateNetworks?: string[];
|
||||
|
||||
maxFileSize?: number;
|
||||
|
||||
accesslog?: string;
|
||||
|
||||
clusterLimit?: number;
|
||||
|
41
src/docs/ar-SA/features/mute-and-block.md
Normal file
41
src/docs/ar-SA/features/mute-and-block.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# تم كتمها / تم حجبها
|
||||
好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。
|
||||
|
||||
<div class="info">ℹ️ ミュートとブロックは併用できます。</div>
|
||||
|
||||
<div class="warn">⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。</div>
|
||||
|
||||
設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。
|
||||
|
||||
## اكتم
|
||||
ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります:
|
||||
|
||||
- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote)
|
||||
- そのユーザーからの通知
|
||||
- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴
|
||||
- など
|
||||
|
||||
ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。
|
||||
|
||||
<div class="info">ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。</div>
|
||||
|
||||
## احجب
|
||||
ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。
|
||||
|
||||
- フォローする
|
||||
- ユーザーリストに追加する
|
||||
- 返信する、Renoteする
|
||||
- リアクションする、アンケートに投票する
|
||||
- メッセージを送信する
|
||||
- など
|
||||
|
||||
また、
|
||||
|
||||
- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。
|
||||
- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。
|
||||
|
||||
ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。
|
||||
|
||||
<div class="warn">⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。</div>
|
||||
|
||||
<div class="warn">⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。</div>
|
20
src/docs/ar-SA/features/word-mute.md
Normal file
20
src/docs/ar-SA/features/word-mute.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# ワードミュート
|
||||
ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。
|
||||
|
||||
ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。
|
||||
|
||||
## ソフトワードミュート
|
||||
ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。
|
||||
|
||||
ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。
|
||||
クリックすると元の通りに表示されます。
|
||||
|
||||
## ハードワードミュート
|
||||
ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。
|
||||
|
||||
つまり、ハードワードミュートには、以下のような特徴があります。
|
||||
|
||||
* 条件設定後、新しい投稿のみがミュートの対象になります。
|
||||
* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。
|
||||
* 「○○が何かを言いました」でタイムラインが埋まることがありません。
|
||||
* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。
|
@@ -1,6 +1,6 @@
|
||||
# サードパーティアプリのリスト
|
||||
## クライアント
|
||||
## العملاء
|
||||
todo
|
||||
|
||||
## 連携サービス
|
||||
## الخدمات المترابطة
|
||||
todo
|
||||
|
@@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります
|
||||
|
||||
## Botを開発したい
|
||||
Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。
|
||||
|
||||
## ノートの翻訳機能はどのサービスを使用していますか?
|
||||
[DeepL](https://www.deepl.com/)を使用しています。
|
||||
|
@@ -49,6 +49,9 @@ Misskeyに関する用語集です。
|
||||
## مثيل الخادم
|
||||
todo
|
||||
|
||||
## إيموجي مخصص
|
||||
サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。
|
||||
|
||||
## コントロールパネル
|
||||
インスタンスの設定画面のこと。
|
||||
|
||||
@@ -58,6 +61,9 @@ todo
|
||||
## اكتم
|
||||
ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence)
|
||||
|
||||
## قائمة الانتظار
|
||||
アクティビティ配送などを順番に行うためのシステム。
|
||||
|
||||
## علِق
|
||||
アカウントが使用不可に設定されている状態。
|
||||
|
||||
|
41
src/docs/cs-CZ/features/mute-and-block.md
Normal file
41
src/docs/cs-CZ/features/mute-and-block.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# ミュートとブロック
|
||||
好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。
|
||||
|
||||
<div class="info">ℹ️ ミュートとブロックは併用できます。</div>
|
||||
|
||||
<div class="warn">⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。</div>
|
||||
|
||||
設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。
|
||||
|
||||
## Ztlumit
|
||||
ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります:
|
||||
|
||||
- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote)
|
||||
- そのユーザーからの通知
|
||||
- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴
|
||||
- など
|
||||
|
||||
ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。
|
||||
|
||||
<div class="info">ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。</div>
|
||||
|
||||
## Zablokovat
|
||||
ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。
|
||||
|
||||
- フォローする
|
||||
- ユーザーリストに追加する
|
||||
- 返信する、Renoteする
|
||||
- リアクションする、アンケートに投票する
|
||||
- メッセージを送信する
|
||||
- など
|
||||
|
||||
また、
|
||||
|
||||
- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。
|
||||
- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。
|
||||
|
||||
ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。
|
||||
|
||||
<div class="warn">⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。</div>
|
||||
|
||||
<div class="warn">⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。</div>
|
20
src/docs/cs-CZ/features/word-mute.md
Normal file
20
src/docs/cs-CZ/features/word-mute.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# ワードミュート
|
||||
ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。
|
||||
|
||||
ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。
|
||||
|
||||
## ソフトワードミュート
|
||||
ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。
|
||||
|
||||
ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。
|
||||
クリックすると元の通りに表示されます。
|
||||
|
||||
## ハードワードミュート
|
||||
ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。
|
||||
|
||||
つまり、ハードワードミュートには、以下のような特徴があります。
|
||||
|
||||
* 条件設定後、新しい投稿のみがミュートの対象になります。
|
||||
* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。
|
||||
* 「○○が何かを言いました」でタイムラインが埋まることがありません。
|
||||
* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。
|
@@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります
|
||||
|
||||
## Botを開発したい
|
||||
Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。
|
||||
|
||||
## ノートの翻訳機能はどのサービスを使用していますか?
|
||||
[DeepL](https://www.deepl.com/)を使用しています。
|
||||
|
@@ -49,6 +49,9 @@ Misskeyに関する用語集です。
|
||||
## Instance
|
||||
todo
|
||||
|
||||
## Vlastní emoji
|
||||
サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。
|
||||
|
||||
## コントロールパネル
|
||||
インスタンスの設定画面のこと。
|
||||
|
||||
@@ -58,6 +61,9 @@ todo
|
||||
## サイレンス
|
||||
ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence)
|
||||
|
||||
## Fronta úloh
|
||||
アクティビティ配送などを順番に行うためのシステム。
|
||||
|
||||
## Zmrazit
|
||||
アカウントが使用不可に設定されている状態。
|
||||
|
||||
|
41
src/docs/da-DK/features/mute-and-block.md
Normal file
41
src/docs/da-DK/features/mute-and-block.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# ミュートとブロック
|
||||
好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。
|
||||
|
||||
<div class="info">ℹ️ ミュートとブロックは併用できます。</div>
|
||||
|
||||
<div class="warn">⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。</div>
|
||||
|
||||
設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。
|
||||
|
||||
## ミュート
|
||||
ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります:
|
||||
|
||||
- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote)
|
||||
- そのユーザーからの通知
|
||||
- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴
|
||||
- など
|
||||
|
||||
ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。
|
||||
|
||||
<div class="info">ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。</div>
|
||||
|
||||
## ブロック
|
||||
ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。
|
||||
|
||||
- フォローする
|
||||
- ユーザーリストに追加する
|
||||
- 返信する、Renoteする
|
||||
- リアクションする、アンケートに投票する
|
||||
- メッセージを送信する
|
||||
- など
|
||||
|
||||
また、
|
||||
|
||||
- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。
|
||||
- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。
|
||||
|
||||
ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。
|
||||
|
||||
<div class="warn">⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。</div>
|
||||
|
||||
<div class="warn">⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。</div>
|
20
src/docs/da-DK/features/word-mute.md
Normal file
20
src/docs/da-DK/features/word-mute.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# ワードミュート
|
||||
ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。
|
||||
|
||||
ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。
|
||||
|
||||
## ソフトワードミュート
|
||||
ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。
|
||||
|
||||
ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。
|
||||
クリックすると元の通りに表示されます。
|
||||
|
||||
## ハードワードミュート
|
||||
ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。
|
||||
|
||||
つまり、ハードワードミュートには、以下のような特徴があります。
|
||||
|
||||
* 条件設定後、新しい投稿のみがミュートの対象になります。
|
||||
* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。
|
||||
* 「○○が何かを言いました」でタイムラインが埋まることがありません。
|
||||
* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。
|
@@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります
|
||||
|
||||
## Botを開発したい
|
||||
Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。
|
||||
|
||||
## ノートの翻訳機能はどのサービスを使用していますか?
|
||||
[DeepL](https://www.deepl.com/)を使用しています。
|
||||
|
@@ -49,6 +49,9 @@ Misskeyに関する用語集です。
|
||||
## インスタンス
|
||||
todo
|
||||
|
||||
## カスタム絵文字
|
||||
サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。
|
||||
|
||||
## コントロールパネル
|
||||
インスタンスの設定画面のこと。
|
||||
|
||||
@@ -58,6 +61,9 @@ todo
|
||||
## サイレンス
|
||||
ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence)
|
||||
|
||||
## ジョブキュー
|
||||
アクティビティ配送などを順番に行うためのシステム。
|
||||
|
||||
## 凍結
|
||||
アカウントが使用不可に設定されている状態。
|
||||
|
||||
|
41
src/docs/de-DE/features/mute-and-block.md
Normal file
41
src/docs/de-DE/features/mute-and-block.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Stummschaltungen und Blockierungen
|
||||
好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。
|
||||
|
||||
<div class="info">ℹ️ ミュートとブロックは併用できます。</div>
|
||||
|
||||
<div class="warn">⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。</div>
|
||||
|
||||
設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。
|
||||
|
||||
## Stummschalten
|
||||
ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります:
|
||||
|
||||
- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote)
|
||||
- そのユーザーからの通知
|
||||
- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴
|
||||
- など
|
||||
|
||||
ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。
|
||||
|
||||
<div class="info">ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。</div>
|
||||
|
||||
## Blockieren
|
||||
ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。
|
||||
|
||||
- フォローする
|
||||
- ユーザーリストに追加する
|
||||
- 返信する、Renoteする
|
||||
- リアクションする、アンケートに投票する
|
||||
- メッセージを送信する
|
||||
- など
|
||||
|
||||
また、
|
||||
|
||||
- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。
|
||||
- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。
|
||||
|
||||
ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。
|
||||
|
||||
<div class="warn">⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。</div>
|
||||
|
||||
<div class="warn">⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。</div>
|
20
src/docs/de-DE/features/word-mute.md
Normal file
20
src/docs/de-DE/features/word-mute.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Wort-Stummschaltung
|
||||
ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。
|
||||
|
||||
ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。
|
||||
|
||||
## ソフトワードミュート
|
||||
ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。
|
||||
|
||||
ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。
|
||||
クリックすると元の通りに表示されます。
|
||||
|
||||
## ハードワードミュート
|
||||
ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。
|
||||
|
||||
つまり、ハードワードミュートには、以下のような特徴があります。
|
||||
|
||||
* 条件設定後、新しい投稿のみがミュートの対象になります。
|
||||
* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。
|
||||
* 「○○が何かを言いました」でタイムラインが埋まることがありません。
|
||||
* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。
|
@@ -1,4 +1,4 @@
|
||||
# サードパーティアプリのリスト
|
||||
# Liste von Drittanbieter-Apps
|
||||
## クライアント
|
||||
todo
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# 更新履歴
|
||||
# Änderungshistorie
|
||||
<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. -->
|
||||
|
@@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります
|
||||
|
||||
## Botを開発したい
|
||||
Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。
|
||||
|
||||
## ノートの翻訳機能はどのサービスを使用していますか?
|
||||
[DeepL](https://www.deepl.com/)を使用しています。
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# 用語集
|
||||
# Glossar
|
||||
Misskeyに関する用語集です。
|
||||
|
||||
## ActivityPub
|
||||
@@ -49,6 +49,9 @@ Misskeyに関する用語集です。
|
||||
## Instanz
|
||||
todo
|
||||
|
||||
## Benutzerdefinierte Emojis
|
||||
サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。
|
||||
|
||||
## コントロールパネル
|
||||
インスタンスの設定画面のこと。
|
||||
|
||||
@@ -58,6 +61,9 @@ todo
|
||||
## Instanzweit stummschalten
|
||||
ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence)
|
||||
|
||||
## Job-Warteschlange
|
||||
アクティビティ配送などを順番に行うためのシステム。
|
||||
|
||||
## Sperren
|
||||
アカウントが使用不可に設定されている状態。
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# リンク集
|
||||
# Links
|
||||
|
||||
## Webサイト
|
||||
- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# 不具合の報告
|
||||
# Fehler melden
|
||||
不具合と思われる状況に遭遇したときは、まず[トラブルシューティング](./troubleshooting)をご一読ください。 それでも問題が解決しないときは、以下の情報を含めて[フォーラム](https://forum.misskey.io/)に投稿してください。 投稿することで、解決策が見つかったり、不具合と判断されれば開発チームによって修正が行われます。
|
||||
|
||||
## 含める情報
|
||||
|
41
src/docs/en-US/features/mute-and-block.md
Normal file
41
src/docs/en-US/features/mute-and-block.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Mutes and Blocks
|
||||
好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。
|
||||
|
||||
<div class="info">ℹ️ ミュートとブロックは併用できます。</div>
|
||||
|
||||
<div class="warn">⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。</div>
|
||||
|
||||
設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。
|
||||
|
||||
## Mute
|
||||
ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります:
|
||||
|
||||
- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote)
|
||||
- そのユーザーからの通知
|
||||
- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴
|
||||
- など
|
||||
|
||||
ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。
|
||||
|
||||
<div class="info">ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。</div>
|
||||
|
||||
## Block
|
||||
ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。
|
||||
|
||||
- フォローする
|
||||
- ユーザーリストに追加する
|
||||
- 返信する、Renoteする
|
||||
- リアクションする、アンケートに投票する
|
||||
- メッセージを送信する
|
||||
- など
|
||||
|
||||
また、
|
||||
|
||||
- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。
|
||||
- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。
|
||||
|
||||
ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。
|
||||
|
||||
<div class="warn">⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。</div>
|
||||
|
||||
<div class="warn">⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。</div>
|
20
src/docs/en-US/features/word-mute.md
Normal file
20
src/docs/en-US/features/word-mute.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Word mute
|
||||
Through setting up word mutes, you can make notes satisfying set conditions not appear on your timeline anymore.
|
||||
|
||||
There are two types of word mutes: soft and hard.Below is an explanation of the setup process and effect of both.
|
||||
|
||||
## Soft word mute
|
||||
With soft mutes, the word mute is processed within the client (app) you are using.
|
||||
|
||||
When a note meets the set conditions, it will be hidden behind text stating "(username) said something".
|
||||
You can display the note as it was by clicking on this text.
|
||||
|
||||
## Hard word mute
|
||||
With hard mutes, the server judges whether the content of a new incoming note meets the set conditions similar to antennas, and will completely exclude it from your timeline if so.
|
||||
|
||||
To summarize, a hard word mute has the following features:
|
||||
|
||||
* Only new notes created after configuration will be affected by the mute.
|
||||
* If the conditions are changed, previously hard muted notes will still remain muted.
|
||||
* Timelines will not be filled with "(...) said something".
|
||||
* Hard mutes will function even for apps without functionality for soft mutes.
|
@@ -23,3 +23,6 @@ Only administrators can add, edit or delete custom emoji. If you'd like to do ei
|
||||
|
||||
## "I want to develop a Bot."
|
||||
It is possible to develop a Bot using the Misskey API. Please, [see here](../advanced/develop-bot).
|
||||
|
||||
## Which service does the note translation function use?
|
||||
[DeepL](https://www.deepl.com/) is being used for this.
|
||||
|
@@ -49,14 +49,20 @@ Those users amongst all existing ones who are continually using their account.
|
||||
## Instance
|
||||
todo
|
||||
|
||||
## Custom Emoji
|
||||
Emoji provided by your server.Emoji that are not specifically provided by your server but are available by default are called "Unicode Emoji".
|
||||
|
||||
## Control Panel
|
||||
The settings screen of an instance.
|
||||
todo
|
||||
|
||||
## Server
|
||||
todo
|
||||
|
||||
## 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)
|
||||
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 the discretion of Moderators.For details, see [here.](../features/silence)
|
||||
|
||||
## Job Queue
|
||||
A system used for sequentially broadcasting activities to other servers etc.
|
||||
|
||||
## Suspend
|
||||
A state which makes the account of a user unusable.
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# A collection of links
|
||||
# Links
|
||||
|
||||
## Websites
|
||||
- [Official Discord](https://discord.gg/Wp8gVStHW3) - The official Discord server for Misskey
|
||||
|
@@ -76,7 +76,7 @@ No.Misskey is a project completely different from Mastodon or other alike projec
|
||||
### 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).
|
||||
|
||||
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).
|
||||
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 also possible to make it act as if it was a native application instead. For details regarding this, please check [here](todo).
|
||||
|
||||
### Where can I download Misskey's logo or icon?
|
||||
(Coming soon)
|
||||
|
@@ -47,7 +47,7 @@ UUIDを生成する。以後これをセッションIDと呼びます。
|
||||
|
||||
レスポンスに含まれるプロパティ:
|
||||
* `token` ... ユーザーのアクセストークン
|
||||
* `user` ... ユーザーの情報
|
||||
* `user` ... Informoj de uzanto
|
||||
|
||||
[「APIの使い方」へ進む](#APIの使い方)
|
||||
|
||||
|
@@ -5,7 +5,7 @@ Misskey Webクライアントのプラグイン機能を使うと、クライア
|
||||
プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。 メタデータは次のプロパティを含むオブジェクトです。
|
||||
|
||||
### name
|
||||
プラグイン名
|
||||
Nomo de kromaĵo
|
||||
|
||||
### author
|
||||
プラグイン作者
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Botの作成
|
||||
# Evoluigi robotan uzanton
|
||||
[Misskey API](./api)を利用してBotの開発が可能です。 また、いくつかのBot実装が公開されているため、ぜひ参考にしてください。
|
||||
|
||||
- [syuilo/ai](https://github.com/syuilo/ai) ... Node.js上で動く、TypeScript製Bot実装
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Preferi
|
||||
# Preferataĵoj
|
||||
[ノート](./node)をお気に入りとして登録できる機能です。 お気に入り登録したノートは、[お気に入りページ](./my/favorites)で一覧することができます。 お気に入りに登録したことは相手に通知されず、お気に入りは自分しか見ることができません。
|
||||
|
||||
ノートをお気に入り登録するには、ノートメニューの「お気に入り」を押します。お気に入り解除するには、ノートメニューの「お気に入り解除」を押します。
|
||||
|
@@ -28,7 +28,7 @@
|
||||
<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">F</kbd>, <kbd class="key">B</kbd></td><td>Aldoni vian liston de preferaĵoj</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>
|
||||
@@ -42,7 +42,7 @@
|
||||
<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">Enter</kbd></td><td>Fari renoton</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>
|
||||
|
@@ -4,7 +4,7 @@ MFMは、Misskey Flavored Markdownの略で、Misskeyの様々な場所で使用
|
||||
## MFMが使用可能な場所の例
|
||||
- ノート本文
|
||||
- CW注釈
|
||||
- ユーザーの名前
|
||||
- Nomo de uzanto
|
||||
- ユーザーの自己紹介
|
||||
|
||||
## 開発者向け情報
|
||||
|
41
src/docs/eo-UY/features/mute-and-block.md
Normal file
41
src/docs/eo-UY/features/mute-and-block.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Silentigitoj kaj blokitoj
|
||||
好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。
|
||||
|
||||
<div class="info">ℹ️ ミュートとブロックは併用できます。</div>
|
||||
|
||||
<div class="warn">⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。</div>
|
||||
|
||||
設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。
|
||||
|
||||
## Silentigi
|
||||
ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります:
|
||||
|
||||
- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote)
|
||||
- そのユーザーからの通知
|
||||
- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴
|
||||
- など
|
||||
|
||||
ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。
|
||||
|
||||
<div class="info">ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。</div>
|
||||
|
||||
## Bloki
|
||||
ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。
|
||||
|
||||
- フォローする
|
||||
- ユーザーリストに追加する
|
||||
- 返信する、Renoteする
|
||||
- リアクションする、アンケートに投票する
|
||||
- メッセージを送信する
|
||||
- など
|
||||
|
||||
また、
|
||||
|
||||
- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。
|
||||
- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。
|
||||
|
||||
ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。
|
||||
|
||||
<div class="warn">⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。</div>
|
||||
|
||||
<div class="warn">⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。</div>
|
@@ -21,20 +21,20 @@ Renoteを削除するには、Renoteの時刻表示の隣にある「...」を
|
||||
## CW
|
||||
Contents Warningの略で、ノートの内容を、閲覧者の操作なしには表示しないようにできる機能です。主に長大な内容を隠すためや、ネタバレ防止などに使うことができます。 設定するには、フォームの「内容を隠す」ボタン(目のアイコン)を押します。すると新しい入力エリアが表れるので、そこに内容の要約を記入します。
|
||||
|
||||
## 公開範囲
|
||||
## Videbleco
|
||||
ノートごとに、そのノートが公開される範囲を設定することができます。フォームの「ノート」ボタンの左にあるアイコンを押すと公開範囲を以下から選択できます。
|
||||
|
||||
### パブリック
|
||||
### Publika
|
||||
全ての人に対してノートが公開されるほか、サーバーの全てのタイムライン(ホームタイムライン、ローカルタイムライン、ソーシャルタイムライン、グローバルタイムライン)にノートが流れます。
|
||||
<div class="warn">⚠️ アカウントが<a href="./silence">サイレンス</a>状態の時は、この公開範囲は使用できません。</div>
|
||||
|
||||
### Hejmo
|
||||
### Hejma
|
||||
全ての人に対してノートが公開されますが、フォロワー以外のローカルタイムライン、ソーシャルタイムライン、グローバルタイムラインにはノートは流れません。
|
||||
|
||||
### Sekvantoj
|
||||
自分のフォロワーに対してのみノートを公開します。フォロワーの全てのタイムラインに流れます。
|
||||
|
||||
### ダイレクト
|
||||
### Rekta
|
||||
指定したユーザーに対してのみノートを公開します。指定したユーザーの全てのタイムラインに流れます。
|
||||
|
||||
### 「ローカルのみ」オプション
|
||||
@@ -42,12 +42,12 @@ Contents Warningの略で、ノートの内容を、閲覧者の操作なしに
|
||||
|
||||
### 公開範囲の比較
|
||||
<table>
|
||||
<tr><th></th><th>パブリック</th><th>Hejmo</th><th>Sekvantoj</th><th>ダイレクト</th></tr>
|
||||
<tr><th></th><th>Publika</th><th>Hejma</th><th>Sekvantoj</th><th>Rekta</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
|
||||
## Alpingli al la profilo
|
||||
ノートをピン留めすると、ユーザーページに常にそのノートを表示しておくことができます。 ノートのメニューを開き、「ピン留め」を選択してピン留めできます。 複数のノートをピン留めできます。
|
||||
|
||||
## Observi
|
||||
|
@@ -1,7 +1,7 @@
|
||||
# Templinio
|
||||
タイムラインは、[ノート](./note)が時系列で表示される機能です。 タイムラインには以下で示す種類があり、種類によって表示されるノートも異なります。 なお、タイムラインの種類によってはサーバーにより無効になっている場合があります。
|
||||
|
||||
## Hejmo
|
||||
## Hejma
|
||||
自分のフォローしているユーザーの投稿が流れます。HTLと略されます。
|
||||
|
||||
## Loka
|
||||
@@ -16,16 +16,16 @@
|
||||
## 比較
|
||||
| ソース | | | Templinio | | |
|
||||
| ------------ | --------- | ----- | --------- | ------- | ------- |
|
||||
| Uzanto | 公開範囲 | Hejmo | Loka | Sociala | Malloka |
|
||||
| Uzantoj | Videbleco | Hejma | Loka | Sociala | Malloka |
|
||||
| ローカル (フォロー) | Publikigi | ✔ | ✔ | ✔ | ✔ |
|
||||
| | Hejmo | ✔ | | ✔ | |
|
||||
| | Hejma | ✔ | | ✔ | |
|
||||
| | Sekvantoj | ✔ | ✔ | ✔ | ✔ |
|
||||
| リモート (フォロー) | Publikigi | ✔ | | ✔ | ✔ |
|
||||
| | Hejmo | ✔ | | ✔ | |
|
||||
| | Hejma | ✔ | | ✔ | |
|
||||
| | Sekvantoj | ✔ | | ✔ | ✔ |
|
||||
| ローカル (未フォロー) | Publikigi | | ✔ | ✔ | ✔ |
|
||||
| | Hejmo | | | | |
|
||||
| | Hejma | | | | |
|
||||
| | Sekvantoj | | | | |
|
||||
| リモート (未フォロー) | Publikigi | | | | ✔ |
|
||||
| | Hejmo | | | | |
|
||||
| | Hejma | | | | |
|
||||
| | Sekvantoj | | | | |
|
||||
|
20
src/docs/eo-UY/features/word-mute.md
Normal file
20
src/docs/eo-UY/features/word-mute.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Silentigi specifajn vortojn
|
||||
ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。
|
||||
|
||||
ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。
|
||||
|
||||
## ソフトワードミュート
|
||||
ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。
|
||||
|
||||
ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。
|
||||
クリックすると元の通りに表示されます。
|
||||
|
||||
## ハードワードミュート
|
||||
ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。
|
||||
|
||||
つまり、ハードワードミュートには、以下のような特徴があります。
|
||||
|
||||
* 条件設定後、新しい投稿のみがミュートの対象になります。
|
||||
* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。
|
||||
* 「○○が何かを言いました」でタイムラインが埋まることがありません。
|
||||
* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。
|
@@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります
|
||||
|
||||
## Botを開発したい
|
||||
Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。
|
||||
|
||||
## ノートの翻訳機能はどのサービスを使用していますか?
|
||||
[DeepL](https://www.deepl.com/)を使用しています。
|
||||
|
@@ -16,7 +16,7 @@ Misskeyに関する用語集です。
|
||||
## CW
|
||||
(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。
|
||||
|
||||
## Fediverse
|
||||
## Fediverso
|
||||
(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。
|
||||
|
||||
## MTL
|
||||
@@ -46,37 +46,43 @@ Ai estas oficiala maskoto de Misskey.
|
||||
## Aktivaj Uzantoj:
|
||||
インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。
|
||||
|
||||
## Ekzemplo
|
||||
## Nodo
|
||||
todo
|
||||
|
||||
## Ŝaltpodio
|
||||
サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。
|
||||
|
||||
## コントロールパネル
|
||||
インスタンスの設定画面のこと。
|
||||
|
||||
## Servilo
|
||||
todo
|
||||
|
||||
## Mutigi
|
||||
A state in which the visibility of the notes by said user cannot be set to "Publika" anymore.Can be set for individual users by Moderators.Rigardu por sciu pli tie[.](../features/silence)
|
||||
ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence)
|
||||
|
||||
## Disko
|
||||
アクティビティ配送などを順番に行うためのシステム。
|
||||
|
||||
## Flostigi
|
||||
アカウントが使用不可に設定されている状態。
|
||||
|
||||
## Disko
|
||||
## Miskiisto
|
||||
Misskeyにアップロードしたファイルを管理する機能。詳細は[こちら。](../features/drive)
|
||||
|
||||
## Notoj
|
||||
Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note)
|
||||
|
||||
## Miskiisto
|
||||
Uzuloj de Misskey.
|
||||
Misskeyを使う人のこと。
|
||||
|
||||
## Moderigisto
|
||||
## Kontrolisto
|
||||
スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。
|
||||
|
||||
## Transa aŭ fora
|
||||
## Transa/fora
|
||||
他サーバーのことを指します。リモートユーザーといったように接頭辞としても使われます。ローカルの逆です。
|
||||
|
||||
## Kunfederaĵo
|
||||
## Kunfederado
|
||||
サーバー上で作成された情報が他のサーバーに伝わること。
|
||||
|
||||
## Loka
|
||||
|
@@ -1,7 +1,7 @@
|
||||
# リンク集
|
||||
|
||||
## Webサイト
|
||||
- [Official Discord](https://discord.gg/Wp8gVStHW3) - Misskey公式Discordサーバー
|
||||
- [Oficiala Discord](https://discord.gg/Wp8gVStHW3) - Servilo Discord'a oficiala de Misskey
|
||||
- [Misskey Forum](https://forum.misskey.io/) - Misskeyに関する話題を扱うフォーラム
|
||||
|
||||
## Kontoj
|
||||
|
@@ -12,7 +12,7 @@ Misskey estas malfermitkoda distribuita mikroblogo. Ĝia trajtoj estas diversaj
|
||||
|
||||
<b>分散(distributed)型</b>とは、<b>非中央集権(decentralized)</b>とも呼ばれ、コミュニティが多数のサーバーに分散して存在し、それらが相互に<b>通信(連合、federation)</b>することでコンテンツ共有<b>ネットワーク(Fediverse)</b>を形成していることが特徴のサービスです。 単一のサーバーしか存在しない、もしくは複数存在しても互いに独立している場合は中央集権なサービスと言われ、例えばTwitterやFacebookなどほとんどのサービスがそれに該当します。 分散型のメリットは、自分に合った運営者やテーマのサーバーを選択できることです。自分でサーバーを作成することもできます。連合するおかげで、どのサーバーを選んでも、同じコミュニティにアクセスできます。
|
||||
|
||||
## Ĉiam malfermitkode
|
||||
## Ĉiam malfermitkoda
|
||||
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>
|
||||
@@ -26,7 +26,7 @@ Misskeyを気に入っていただけたら、ぜひプロジェクトを支援
|
||||
### 議論に参加する
|
||||
新しい機能、または既存の機能について意見を述べたり、不具合を報告したりすることでも貢献できます。 そのようなディスカッションは[GitHub](https://github.com/misskey-dev)上か、[フォーラム](https://forum.misskey.io/)等で行われます。
|
||||
|
||||
### テキストを翻訳する
|
||||
### Traduki tekston
|
||||
Misskeyは様々な言語に対応しています(i18n -internationalizationの略- と呼ばれます)。元の言語は基本的に日本語ですが、有志によって他の言語へと翻訳されています。 その翻訳作業に加わっていただくことでもMisskeyに貢献できます。 Misskeyは[Crowdinというサービスを使用して翻訳の管理を行っています。](https://crowdin.com/project/misskey)
|
||||
|
||||
### 感想を投稿する
|
||||
|
41
src/docs/es-ES/features/mute-and-block.md
Normal file
41
src/docs/es-ES/features/mute-and-block.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Silenciar y bloquear
|
||||
好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。
|
||||
|
||||
<div class="info">ℹ️ ミュートとブロックは併用できます。</div>
|
||||
|
||||
<div class="warn">⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。</div>
|
||||
|
||||
設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。
|
||||
|
||||
## Silenciar
|
||||
ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります:
|
||||
|
||||
- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote)
|
||||
- そのユーザーからの通知
|
||||
- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴
|
||||
- など
|
||||
|
||||
ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。
|
||||
|
||||
<div class="info">ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。</div>
|
||||
|
||||
## Bloquear
|
||||
ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。
|
||||
|
||||
- フォローする
|
||||
- ユーザーリストに追加する
|
||||
- 返信する、Renoteする
|
||||
- リアクションする、アンケートに投票する
|
||||
- メッセージを送信する
|
||||
- など
|
||||
|
||||
また、
|
||||
|
||||
- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。
|
||||
- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。
|
||||
|
||||
ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。
|
||||
|
||||
<div class="warn">⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。</div>
|
||||
|
||||
<div class="warn">⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。</div>
|
20
src/docs/es-ES/features/word-mute.md
Normal file
20
src/docs/es-ES/features/word-mute.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Silenciar palabras
|
||||
ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。
|
||||
|
||||
ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。
|
||||
|
||||
## ソフトワードミュート
|
||||
ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。
|
||||
|
||||
ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。
|
||||
クリックすると元の通りに表示されます。
|
||||
|
||||
## ハードワードミュート
|
||||
ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。
|
||||
|
||||
つまり、ハードワードミュートには、以下のような特徴があります。
|
||||
|
||||
* 条件設定後、新しい投稿のみがミュートの対象になります。
|
||||
* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。
|
||||
* 「○○が何かを言いました」でタイムラインが埋まることがありません。
|
||||
* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。
|
@@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります
|
||||
|
||||
## Botを開発したい
|
||||
Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。
|
||||
|
||||
## ノートの翻訳機能はどのサービスを使用していますか?
|
||||
[DeepL](https://www.deepl.com/)を使用しています。
|
||||
|
@@ -49,6 +49,9 @@ Misskeyに関する用語集です。
|
||||
## Instancia
|
||||
todo
|
||||
|
||||
## Emojis personalizados
|
||||
サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。
|
||||
|
||||
## コントロールパネル
|
||||
インスタンスの設定画面のこと。
|
||||
|
||||
@@ -58,6 +61,9 @@ todo
|
||||
## Silenciar
|
||||
ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence)
|
||||
|
||||
## Cola de trabajos
|
||||
アクティビティ配送などを順番に行うためのシステム。
|
||||
|
||||
## Suspender
|
||||
アカウントが使用不可に設定されている状態。
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# Misskey API
|
||||
# API de Misskey
|
||||
|
||||
MisskeyAPIを使ってMisskeyクライアント、Misskey連携Webサービス、Bot等(以下「アプリケーション」と呼びます)を開発できます。 ストリーミングAPIもあるので、リアルタイム性のあるアプリケーションを作ることも可能です。
|
||||
|
||||
@@ -18,13 +18,13 @@ APIを使い始めるには、まずアクセストークンを取得する必
|
||||
### アプリケーション利用者にアクセストークンの発行をリクエストする
|
||||
アプリケーション利用者のアクセストークンを取得するには、以下の手順で発行をリクエストします。
|
||||
|
||||
#### Step 1
|
||||
#### Étape 1
|
||||
|
||||
UUIDを生成する。以後これをセッションIDと呼びます。
|
||||
|
||||
> このセッションIDは毎回生成し、使いまわさないようにしてください。
|
||||
|
||||
#### Step 2
|
||||
#### Étape 2
|
||||
|
||||
`{_URL_}/miauth/{session}`をユーザーのブラウザで表示させる。`{session}`の部分は、セッションIDに置き換えてください。
|
||||
> 例: `{_URL_}/miauth/c1f6d42b-468b-4fd2-8274-e58abdedef6f`
|
||||
@@ -42,7 +42,7 @@ UUIDを生成する。以後これをセッションIDと呼びます。
|
||||
* 要求する権限を`,`で区切って列挙します
|
||||
* どのような権限があるかは[APIリファレンス](/api-doc)で確認できます
|
||||
|
||||
#### Step 3
|
||||
#### Étape 3
|
||||
ユーザーが発行を許可した後、`{_URL_}/api/miauth/{session}/check`にPOSTリクエストすると、レスポンスとしてアクセストークンを含むJSONが返ります。
|
||||
|
||||
レスポンスに含まれるプロパティ:
|
||||
|
41
src/docs/fr-FR/features/mute-and-block.md
Normal file
41
src/docs/fr-FR/features/mute-and-block.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Masqué·e·s / Bloqué·e·s
|
||||
好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。
|
||||
|
||||
<div class="info">ℹ️ ミュートとブロックは併用できます。</div>
|
||||
|
||||
<div class="warn">⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。</div>
|
||||
|
||||
設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。
|
||||
|
||||
## Masquer
|
||||
ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります:
|
||||
|
||||
- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote)
|
||||
- そのユーザーからの通知
|
||||
- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴
|
||||
- など
|
||||
|
||||
ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。
|
||||
|
||||
<div class="info">ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。</div>
|
||||
|
||||
## Bloquer
|
||||
ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。
|
||||
|
||||
- フォローする
|
||||
- ユーザーリストに追加する
|
||||
- 返信する、Renoteする
|
||||
- リアクションする、アンケートに投票する
|
||||
- メッセージを送信する
|
||||
- など
|
||||
|
||||
また、
|
||||
|
||||
- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。
|
||||
- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。
|
||||
|
||||
ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。
|
||||
|
||||
<div class="warn">⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。</div>
|
||||
|
||||
<div class="warn">⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。</div>
|
@@ -12,7 +12,7 @@
|
||||
<div class="info">ℹ️ コンピューターのクリップボードに画像データがある状態で、フォーム内のテキストボックスにペーストするとその画像を添付することができます。</div>
|
||||
<div class="info">ℹ️ テキストボックス内で<kbd class="key">Ctrl + Enter</kbd>を押すことでも投稿できます。</div>
|
||||
|
||||
## Partager
|
||||
## Renoter
|
||||
既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノートをRenoteと呼びます。 自分がフォローしているユーザーの、気に入ったノートを自分のフォロワーに共有したい場合や、過去の自分のノートを再度共有したい場合に使います。 同じノートに対して無制限にRenoteを行うことができますが、あまり連続して使用すると迷惑になる場合もあるので、注意しましょう。
|
||||
<div class="warn">⚠️ 公開範囲がフォロワーやダイレクトのノートはRenoteできません</div>
|
||||
|
||||
|
20
src/docs/fr-FR/features/word-mute.md
Normal file
20
src/docs/fr-FR/features/word-mute.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Filtre de mots
|
||||
ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。
|
||||
|
||||
ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。
|
||||
|
||||
## ソフトワードミュート
|
||||
ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。
|
||||
|
||||
ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。
|
||||
クリックすると元の通りに表示されます。
|
||||
|
||||
## ハードワードミュート
|
||||
ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。
|
||||
|
||||
つまり、ハードワードミュートには、以下のような特徴があります。
|
||||
|
||||
* 条件設定後、新しい投稿のみがミュートの対象になります。
|
||||
* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。
|
||||
* 「○○が何かを言いました」でタイムラインが埋まることがありません。
|
||||
* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。
|
@@ -2,9 +2,9 @@
|
||||
Vous trouverez ici les questions les plus fréquentes sur l'utilisation de Misskey. Les questions fréquentes concernant Misskey en tant que projet sont publiées [sur cette page](./misskey).
|
||||
|
||||
## « Existe-t-il des appli pour Android / iOS ? »
|
||||
公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。
|
||||
Bien qu'il n'existe d'application Misskey officielle pour aucun OS, différentes applications développées par des tiers sont disponibles. [Voir ici](./apps) pour plus de détails.
|
||||
|
||||
ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。
|
||||
Cependant, à moins que vous ne soyez particulièrement déterminé·e à utiliser une application dédiée, l'utilisation du client Web officiel est vivement recommandée du fait que les applications développées par des tiers seront forcément en retard par rapport à celui-ci. Par ailleurs, étant donné que le client Web de Misskey est compatible avec une PWA, il peut adopter le comportement d'une application native. [Voir ici](todo) pour plus d'informations.
|
||||
|
||||
## « Ne peut-on pas utiliser un client Mastodon pour se connecter à Misskey ? »
|
||||
Étant donné que Misskey n'est pas compatible avec l'API Mastodon, sauf cas exceptionnels, il n'est pas possible d'utiliser un client Mastodon pour Misskey.
|
||||
@@ -23,3 +23,6 @@ Seul·e·s les administrateur·rice·s peuvent ajouter, éditer ou effacer des
|
||||
|
||||
## « Je veux créer un Bot. »
|
||||
Vous pouvez développer un Bot en utilisant l'API de Misskey. Plus d'informations sur [cette page](../advanced/develop-bot).
|
||||
|
||||
## « Quel est le service utilisé pour la fonctionnalité de traduction des notes ? »
|
||||
Il s'agit de [DeepL](https://www.deepl.com/).
|
||||
|
@@ -34,7 +34,7 @@ Misskeyに関する用語集です。
|
||||
## NSFW
|
||||
(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。
|
||||
|
||||
## Partager
|
||||
## Renoter
|
||||
(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note)
|
||||
|
||||
## STL
|
||||
@@ -49,6 +49,9 @@ Misskeyに関する用語集です。
|
||||
## Instance
|
||||
todo
|
||||
|
||||
## Émojis personnalisés
|
||||
サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。
|
||||
|
||||
## コントロールパネル
|
||||
インスタンスの設定画面のこと。
|
||||
|
||||
@@ -58,6 +61,9 @@ todo
|
||||
## Mettre en sourdine
|
||||
ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence)
|
||||
|
||||
## File d’attente
|
||||
アクティビティ配送などを順番に行うためのシステム。
|
||||
|
||||
## Suspendre
|
||||
アカウントが使用不可に設定されている状態。
|
||||
|
||||
|
@@ -75,9 +75,9 @@ Misskeyは開発が進むにつれ使用する技術も大きく変わってき
|
||||
いいえ。MisskeyはMastodonやその他のプロジェクトとは全く別のプロジェクトです。 開発に関しても、Misskeyの方が昔から開発されています。ただし、分散型になったのはMastodonの登場より後です。 同じActivityPubという分散のためのプロトコルを実装しているという点以外、両者に特に関りがあるわけでもありません。
|
||||
|
||||
### « Existe-t-il des appli pour Android / iOS ? »
|
||||
公式にはそういったOSのネイティブアプリを開発していませんが、サードパーティ製のアプリがいくつかあります。 詳しくは[こちら](./apps)をご覧ください。
|
||||
Bien qu'il n'existe d'application Misskey officielle pour aucun OS, différentes applications développées par des tiers sont disponibles. [Voir ici](./apps) pour plus de détails.
|
||||
|
||||
ただ、サードパーティ製アプリはどうしても機能への対応が遅れてしまうため、とくに拘りがなければ公式のWebクライアントの利用をおすすめします。 なお、MisskeyのWebクライアントはPWAに対応しているので、ネイティブアプリのように動作させることも可能です。 詳しくは[こちら](todo)をご覧ください。
|
||||
Cependant, à moins que vous ne soyez particulièrement déterminé·e à utiliser une application dédiée, l'utilisation du client Web officiel est vivement recommandée du fait que les applications développées par des tiers seront forcément en retard par rapport à celui-ci. Par ailleurs, étant donné que le client Web de Misskey est compatible avec une PWA, il peut adopter le comportement d'une application native. [Voir ici](todo) pour plus d'informations.
|
||||
|
||||
### Misskeyのロゴ、アイコンはどこで入手できますか?
|
||||
(準備中)
|
||||
|
@@ -1,26 +1,26 @@
|
||||
# Résolution des problèmes
|
||||
<div class="info">ℹ️ N'hésitez pas à consulter les <a href="./faq">Questions fréquentes</a> en complément de cette page.</div>
|
||||
|
||||
問題が発生したときは、まずこちらをご確認ください。 該当する項目が無い、もしくは手順を試しても効果がない場合は、サーバーの管理者に連絡するか[不具合を報告](./report-issue)してください。
|
||||
Lorsque vous rencontrez un problème, nous vous prions de lire cette page tout d'abord. Si toutefois aucun des paragraphes ci-dessous ne correspond à votre problème, ou bien si vous n'arrivez pas à le résoudre en suivant les instructions détaillées ici, nous vous invitons à contacter l'administrateur·rice de votre instance ou à [Signaler un bug](./report-issue).
|
||||
|
||||
## Le client ne démarre pas
|
||||
ほとんどの場合、お使いのブラウザまたはOSのバージョンが古いことが原因です。 ブラウザおよびOSのバージョンを最新のものに更新してから、再度試してみてください。
|
||||
Généralement, ce problème est dû au fait que vous utilisez une version trop ancienne de votre navigateur ou de votre système d'exploitation. Effectuez les mises à jour pour chacun d'eux vers leurs versions les plus récentes, puis essayez à nouveau.
|
||||
|
||||
これは稀ですが、それでも起動しない場合は、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。
|
||||
Cela arrive rarement, mais si votre client ne démarre toujours pas après cela, le problème vient du cache. Dans ce cas, videz le cache et essayez à nouveau.
|
||||
|
||||
## ページが読み込めない
|
||||
クライアントが起動するもののページが読み込めないというエラーが出る場合は、ネットワークに問題がないか確認してください。また、サーバーがダウンしていないか確認してください。
|
||||
## La page ne charge pas
|
||||
Si votre client démarre mais qu'un message d'erreur apparaît lors du chargement de la page, assurez-vous qu'il ne s'agit pas d'un problème de connexion au réseau. Assurez-vous également que votre serveur n'est pas temporairement inaccessible.
|
||||
|
||||
これは稀ですが、キャッシュが原因の場合があります。ブラウザのキャッシュをクリアして、再度試してみてください。
|
||||
Bien que cela arrive rarement, il se peut que le cache soit à l'origine du problème. Dans ce cas, videz le cache et essayez à nouveau.
|
||||
|
||||
まだ問題がある場合は、サーバーの問題と思われるのでサーバーの管理者に連絡してください。
|
||||
Si le problème persiste malgré tout, il est très probable qu'il s'agisse d'une panne côté serveur ; nous vous invitons donc à contacter l'administrateur·rice de votre instance.
|
||||
|
||||
## Le client est lent
|
||||
以下を試してみてください:
|
||||
Essayez les solutions proposées ci-dessous :
|
||||
|
||||
- クライアント設定で「UIのアニメーションを減らす」を有効にする
|
||||
- クライアント設定で「モーダルにぼかし効果を使用」を無効にする
|
||||
- お使いのブラウザの設定でハードウェアアクセラレーションを有効にする
|
||||
- activer l'option « Réduire les animations dans l'interface » dans les paramètres du client
|
||||
- désactiver l'option « Utiliser un effet de flou pour les modals » dans les paramètres du client
|
||||
- activer l'accélération matérielle dans les paramètres de votre navigateur
|
||||
- お使いのデバイスのスペックを上げる
|
||||
|
||||
## UIの一部の表示がおかしい(背景が透明になっている等)
|
||||
@@ -31,10 +31,10 @@
|
||||
点滅は、未読のコンテンツがあることを示しています。通常点滅が消えない場合は、コンテンツを遡ると未読なコンテンツが残っています。 すべて既読にしたと思われるのに、それでもなお点滅が続く場合(おそらく不具合と思われます)は設定から強制的にすべて既読扱いにすることができます。
|
||||
|
||||
## La fonction « Renoter » ne fonctionne pas
|
||||
フォロワー限定のノートはRenoteすることはできません。
|
||||
Les notes dont l'audience est limitée aux « Abonné·e·s uniquement » ne peuvent pas être renotées.
|
||||
|
||||
## Des éléments spécifiques de l'interface ne s'affichent pas
|
||||
広告ブロッカーを使用しているとそのような不具合が発生することがあります。Misskeyではオフにしてご利用ください。
|
||||
|
||||
## Certaines parties de l'interface ne sont pas traduites
|
||||
ほとんどの場合、単に翻訳が間に合っていないだけで、不具合ではありません。翻訳が終わるまでお待ちください。 [翻訳に参加](./misskey)していただくことも可能です。
|
||||
La plupart du temps, cela n'est pas un bug mais simplement un problème de traduction qui n'a pas encore été faite. Merci de patienter jusqu'à ce que la traduction de la portion en question soit achevée. Vous pouvez également [aider à traduire](./misskey) Misskey.
|
||||
|
41
src/docs/ht-HT/features/mute-and-block.md
Normal file
41
src/docs/ht-HT/features/mute-and-block.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# ミュートとブロック
|
||||
好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。
|
||||
|
||||
<div class="info">ℹ️ ミュートとブロックは併用できます。</div>
|
||||
|
||||
<div class="warn">⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。</div>
|
||||
|
||||
設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。
|
||||
|
||||
## ミュート
|
||||
ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります:
|
||||
|
||||
- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote)
|
||||
- そのユーザーからの通知
|
||||
- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴
|
||||
- など
|
||||
|
||||
ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。
|
||||
|
||||
<div class="info">ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。</div>
|
||||
|
||||
## ブロック
|
||||
ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。
|
||||
|
||||
- フォローする
|
||||
- ユーザーリストに追加する
|
||||
- 返信する、Renoteする
|
||||
- リアクションする、アンケートに投票する
|
||||
- メッセージを送信する
|
||||
- など
|
||||
|
||||
また、
|
||||
|
||||
- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。
|
||||
- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。
|
||||
|
||||
ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。
|
||||
|
||||
<div class="warn">⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。</div>
|
||||
|
||||
<div class="warn">⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。</div>
|
20
src/docs/ht-HT/features/word-mute.md
Normal file
20
src/docs/ht-HT/features/word-mute.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# ワードミュート
|
||||
ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。
|
||||
|
||||
ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。
|
||||
|
||||
## ソフトワードミュート
|
||||
ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。
|
||||
|
||||
ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。
|
||||
クリックすると元の通りに表示されます。
|
||||
|
||||
## ハードワードミュート
|
||||
ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。
|
||||
|
||||
つまり、ハードワードミュートには、以下のような特徴があります。
|
||||
|
||||
* 条件設定後、新しい投稿のみがミュートの対象になります。
|
||||
* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。
|
||||
* 「○○が何かを言いました」でタイムラインが埋まることがありません。
|
||||
* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。
|
@@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります
|
||||
|
||||
## Botを開発したい
|
||||
Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。
|
||||
|
||||
## ノートの翻訳機能はどのサービスを使用していますか?
|
||||
[DeepL](https://www.deepl.com/)を使用しています。
|
||||
|
@@ -49,6 +49,9 @@ Misskeyに関する用語集です。
|
||||
## インスタンス
|
||||
todo
|
||||
|
||||
## カスタム絵文字
|
||||
サーバーで用意された絵文字。カスタム絵文字ではない通常の絵文字は「Unicode絵文字」と区別して呼ばれる。
|
||||
|
||||
## コントロールパネル
|
||||
インスタンスの設定画面のこと。
|
||||
|
||||
@@ -58,6 +61,9 @@ todo
|
||||
## サイレンス
|
||||
ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence)
|
||||
|
||||
## ジョブキュー
|
||||
アクティビティ配送などを順番に行うためのシステム。
|
||||
|
||||
## 凍結
|
||||
アカウントが使用不可に設定されている状態。
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
# LTL/STL/GTLの無効化
|
||||
Misskeyでは、LTL/STL/GTLをそれぞれ無効化することができます。有効/無効を切り替えるには、インスタンスコントロールパネルで設定します。
|
||||
# Menonaktifkan LTL/STL/GTL
|
||||
Misskey memungkinkan untuk menonaktifkan LTL/STL/GTL secara satu persatu.Kamu dapat mengaktifkan atau menonaktifkan linimasa individual tersebut melalui panel kontrol instansi.
|
||||
|
||||
LTLやSTLは、そのインスタンス全員の投稿が見れるため、新規のユーザーにとってはユーザーを探す必要がなくなり、興味のあるユーザーを見つけやすいという利点があります。 しかし同時に、フォロー機能が活用されなくなったり、不適切な投稿が目につきやすくなったり、チャットのようになることで内輪感が生じて逆に新規ユーザーが参加しにくくなるといったデメリットも持ち合わせています。 サーバーによってメリット/デメリットどちらが優勢かは異なるので、オプションとして無効にできるようになっています。 もしデメリットの方が上回っていると感じたら、それらのタイムラインを無効化することも検討してください。
|
||||
|
||||
<div class="warn">⚠️ 無効化を行うと、ユーザーが困惑し、短期的に見て利用者が減る可能性があります。そのため、無効化の際は影響を慎重に検討し、事前に説明してフォローを整える期間を一定程度設けることを推奨します。</div>
|
||||
<div class="warn">Menonaktifkan linimasa dapat menyebabkan kebingungan dan memungkinkan untuk pengguna mengalami drop-in jangka pendek.Oleh karena itu, dimohon berhati-hati dengan efek dari menonaktifkan linimasa, dan jelaskan alasannya mengapa menonaktifkan tersebut dari awal, agar pengguna kamu dapat bersiap dengan mengikuti pengguna yang seringnya mereka berkomunikasi di LTL/STL.</div>
|
||||
|
||||
なお、管理者/モデレーターは、これらのタイムラインの無効化状態は適用されず、引き続き利用することが可能です。
|
||||
Sebagai tambahan, Administrator / Moderator akan tetap dapat melihat linimasa ini meskipun telah dinonaktifkan.
|
||||
|
@@ -1,5 +1,5 @@
|
||||
# よくある質問
|
||||
ここでは、サーバー管理者向けのよくある質問を掲載しています。
|
||||
# Pertanyaan Yang Sering Ditanyakan (FAQ)
|
||||
Dokumen ini ditujukan kepada administrator server dan memberikan daftar jawaban untuk pertanyaan yang sering ditanyakan.
|
||||
|
||||
## デフォルトテーマを設定したい
|
||||
現在、デフォルトテーマ設定機能は実装されていません。
|
||||
## "Aku ingin menyetel tema bawaan untuk instansi milikku"
|
||||
Untuk saat ini belum ada fitur yang membolehkan kamu untuk menyetel tema default instansi milikmu.
|
||||
|
41
src/docs/id-ID/features/mute-and-block.md
Normal file
41
src/docs/id-ID/features/mute-and-block.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Bisukan / Blokir
|
||||
好みではないユーザーがいる場合は、ミュートを行うことでそのユーザーが自分から見えないようにすることができます。 また、より強力な措置として、ブロックを行うことでそのユーザーから自分のコンテンツが見えないようになるほか、自分に対して関わることができないようにすることができます。 ミュートされていることは相手は分かりませんが、ブロックされていることは相手に分かります。どちらを選ぶかはご自身の判断で行ってください。
|
||||
|
||||
<div class="info">ℹ️ ミュートとブロックは併用できます。</div>
|
||||
|
||||
<div class="warn">⚠️ 利用規約に違反するような、迷惑なユーザーがいる場合は運営者に報告することも検討してください。</div>
|
||||
|
||||
設定>ミュートとブロック から、自分がミュートまたはブロックしているユーザー一覧を確認することができます。
|
||||
|
||||
## Bisukan
|
||||
ユーザーをミュートすると、そのユーザーに関する次のコンテンツがMisskeyに表示されなくなります:
|
||||
|
||||
- タイムラインや投稿の検索結果内の、そのユーザーの投稿(およびそれらの投稿に対する返信やRenote)
|
||||
- そのユーザーからの通知
|
||||
- メッセージ履歴一覧内の、そのユーザーとのメッセージ履歴
|
||||
- など
|
||||
|
||||
ユーザーをミュートするには、対象のユーザーのユーザーページのメニューを開き、「ミュート」ボタンを押します。
|
||||
|
||||
<div class="info">ℹ️ ミュートを行ったことは相手に通知されず、ミュートされていることを知ることもできません。</div>
|
||||
|
||||
## Blokir
|
||||
ユーザーをブロックすると、そのユーザーからあなたのコンテンツが見えないようになり、またあなたに対して以下のようなアクションをすることができなくなります。
|
||||
|
||||
- フォローする
|
||||
- ユーザーリストに追加する
|
||||
- 返信する、Renoteする
|
||||
- リアクションする、アンケートに投票する
|
||||
- メッセージを送信する
|
||||
- など
|
||||
|
||||
また、
|
||||
|
||||
- ブロックする際に既にそのユーザーからフォローされていた場合はフォローが解除されます。
|
||||
- ブロックする際に既にそのユーザーがあなたをユーザーリストに入れていた場合はそのリストからあなたが削除されます。
|
||||
|
||||
ユーザーをブロックするには、対象のユーザーのユーザーページのメニューを開き、「ブロック」ボタンを押します。
|
||||
|
||||
<div class="warn">⚠️ ブロックを行ったこと自体は相手に通知されませんが、フォローを行ったりなどの上記のアクションが行えなくなるので間接的にブロックされていることは分かります。</div>
|
||||
|
||||
<div class="warn">⚠️ 相手から自分のコンテンツが見えなくなりますが、相手がアカウントを切り替えたりログアウト状態になれば見ることができます。あくまで簡易的、補助的なものとしてお考えください。</div>
|
20
src/docs/id-ID/features/word-mute.md
Normal file
20
src/docs/id-ID/features/word-mute.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Bisukan kata
|
||||
ワードミュートの設定をすると、条件に合致したノートが表示されなくなります。
|
||||
|
||||
ワードミュートには、ソフトワードミュートとハードワードミュートの2種類があります。それぞれについて設定の方法と挙動を説明します。
|
||||
|
||||
## ソフトワードミュート
|
||||
ソフトワードミュートは、クライアント(アプリ)側でミュートを判断するワードミュートです。
|
||||
|
||||
ノートが設定した条件に合致すると、「(ユーザー名)が何かを言いました」という表示で隠れます。
|
||||
クリックすると元の通りに表示されます。
|
||||
|
||||
## ハードワードミュート
|
||||
ハードワードミュートは、アンテナのようにサーバーが新しいノートの本文に対して条件に合致するかどうか判断し、タイムラインから対象となったノートを除外します。
|
||||
|
||||
つまり、ハードワードミュートには、以下のような特徴があります。
|
||||
|
||||
* 条件設定後、新しい投稿のみがミュートの対象になります。
|
||||
* 条件を変更しても、過去にハードミュートされたノートはミュートされたままになります。
|
||||
* 「○○が何かを言いました」でタイムラインが埋まることがありません。
|
||||
* ソフトミュートに非対応のアプリでも、ハードミュートは適用されます。
|
@@ -1,5 +1,5 @@
|
||||
# 更新履歴
|
||||
<div class="info">ℹ️ このサーバーの更新履歴です。Misskeyの最新のリリースについては、<a href="https://github.com/misskey-dev/misskey/blob/master/CHANGELOG.md" target="_blank">GitHub</a>をご確認ください。</div>
|
||||
# Catatan Rilis
|
||||
<div class="info">ℹ️ Catatan rilis ini hanya berlaku pada versi terakhir dari server ini.Untuk membaca catatan rilis Misskey paling terbaru, mohon periksa ke <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]-->
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# よくある質問
|
||||
# Pertanyaan Yang Sering Ditanyakan (FAQ)
|
||||
ここでは利用上のよくある質問について掲載しています。 Misskeyのプロジェクト自体についてのよくある質問は[こちら](./misskey)に掲載されています。
|
||||
|
||||
## iOS/Androidのアプリはありますか?
|
||||
@@ -23,3 +23,6 @@ MFMには、そのURLのプレビューを無効にする構文があります
|
||||
|
||||
## Botを開発したい
|
||||
Misskey APIを利用してBotの開発が可能です。[こちら](../advanced/develop-bot)をご確認ください。
|
||||
|
||||
## ノートの翻訳機能はどのサービスを使用していますか?
|
||||
[DeepL](https://www.deepl.com/)を使用しています。
|
||||
|
@@ -1,35 +1,35 @@
|
||||
# 用語集
|
||||
Misskeyに関する用語集です。
|
||||
# Kosakata
|
||||
Kosakata yang terkait dengan Misskey.
|
||||
|
||||
## ActivityPub
|
||||
(読み: あくてぃびてぃぱぶ) 分散型を実現するために用いられるプロトコル(仕様)。このプロトコルに則ってサーバー同士通信を行うことで、連合が行われ、Fediverseを形成しています。
|
||||
Protokol yang digunakan untuk memungkinkan distribusi dari Misskey.Dengan mengikuti protokol ini, komunikasi dengan server lainnya yang juga mengikuti protokol ini menjadi mungkin, yang mana membentuk suatu semesta yang disebut sebagai Fediverse.
|
||||
|
||||
## AiScript
|
||||
(読み: あいすくりぷと) Misskey上で使用できるプログラミング言語です。詳細は[こちら。](../advanced/aiscript)
|
||||
Bahasa pemrograman yang tersedia untuk digunakan dalam Misskey.Untuk detilnya, [lihat disini.](../advanced/aiscript)
|
||||
|
||||
## API
|
||||
(読み: えーぴーあい) Misskeyのサーバーが公開している、プログラムからMisskeyを扱うためのインターフェース。詳細は[こちら。](../advanced/api)
|
||||
Antarmuka yang dapat digunakan untuk berinteraksi dengan Misskey melalui program, tersedia untuk setiap instansi individual.Untuk detilnya, [lihat disini.](../advanced/api)
|
||||
|
||||
## Bot
|
||||
(読み: ぼっと) プログラムによって動作しているアカウント。
|
||||
Sebuah akun yang dikendalikan oleh program.
|
||||
|
||||
## CW
|
||||
(読み: こんてんつわーにんぐ) Contents Warningの略。ノートの内容を、操作なしには表示しないようにできる機能。主に長大な内容を隠すためや、ネタバレ防止などに使われます。
|
||||
Singkatan dari "Content Warning".Sebuah fitur untuk menyembunyikan konten dari catatan kecuali diminta untuk diperlihatkan oleh pengguna.Utamanya digunakan untuk menyembunyikan konten catatan panjang atau untuk mencegah postingan spoiler secara publik.
|
||||
|
||||
## Fediverse
|
||||
(読み: ふぇでぃばーす) Misskeyを含む様々な分散型ソフトウェアのサーバーで構成されたネットワーク。
|
||||
Sebuah jaringan server yang terdiri dari berbagai platform berbeda yang saling berkomunikasi, termasuk Misskey.
|
||||
|
||||
## GTL
|
||||
グローバルタイムライン(Global TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline)
|
||||
Singkatan dari "Global TimeLine" (Linimasa Global).Untuk informasi lebih lanjut tentang linimasa, mohon [lihat disini](../features/timeline).
|
||||
|
||||
## HTL
|
||||
ホームタイムライン(Home TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline)
|
||||
Singkatan dari "Home TimeLine" (Linimasa Beranda).Untuk informasi lebih lanjut tentang linimasa, mohon [lihat disini](../features/timeline)
|
||||
|
||||
## LTL
|
||||
ローカルタイムライン(Local TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline)
|
||||
Singkatan dari "Local TimeLine" (Linimasa Lokal).Untuk informasi lebih lanjut tentang linimasa, mohon [lihat disini](../features/timeline)
|
||||
|
||||
## MFM
|
||||
(読み: えむえふえむ) Misskey Flavored Markdownの略で、Misskey上で使用できるマークアップ言語です。詳細は[こちら。](../features/mfm)
|
||||
Singkatan dari "Misskey Flavored Markdown", sebuah bahasa markdown yang tersedia untuk digunakan pada Misskey.Untuk detilnya, [lihat disini.](../features/mfm)
|
||||
|
||||
## NSFW
|
||||
(読み: のっとせーふふぉーわーく) Not Safe For Workの略。画像を「閲覧注意」扱いにし、操作なしには表示しないようにすることができる機能。
|
||||
@@ -38,18 +38,21 @@ Misskeyに関する用語集です。
|
||||
(読み: りのーと) 既にあるノートを引用、もしくはそのノートを新しいノートとして共有する行為、またそれによって作成されたノート。詳細は[こちら。](../features/note)
|
||||
|
||||
## STL
|
||||
ソーシャルタイムライン(Social TimeLine)の略。タイムラインの詳細は[こちら。](../features/timeline)
|
||||
Singkatan dari "Social TimeLine" (Linimasa Sosial).Untuk informasi lebih lanjut tentang linimasa, mohon [lihat disini](../features/timeline)
|
||||
|
||||
## 藍
|
||||
(読み: あい) Misskeyの看板娘(公式キャラクター)です。
|
||||
## Ai
|
||||
Ai adalah maskot resmi milik Misskey.
|
||||
|
||||
## アクティブユーザー
|
||||
インスタンスにアカウントを作っているユーザーのうち、現在も実際にサービスを利用しているユーザーのこと。
|
||||
## Pengguna Aktif
|
||||
Para pengguna di antara semua pengguna yang ada yang terus menggunakan akun mereka.
|
||||
|
||||
## Instansi
|
||||
todo
|
||||
|
||||
## コントロールパネル
|
||||
## Emoji kustom
|
||||
Emoji yang disediakan oleh server kamu.Emoji yang spesifik tidak disediakan oleh server kamu tetapi tersedia secara bawaan adalah "Unicode Emoji".
|
||||
|
||||
## Panel kontrol
|
||||
インスタンスの設定画面のこと。
|
||||
|
||||
## Server
|
||||
@@ -58,6 +61,9 @@ todo
|
||||
## Bungkam
|
||||
ノートをパブリックな公開範囲で投稿できなくされている状態。モデレーターの判断でユーザーごとに設定されます。詳細は[こちら。](../features/silence)
|
||||
|
||||
## Antrian kerja
|
||||
アクティビティ配送などを順番に行うためのシステム。
|
||||
|
||||
## Bekukan
|
||||
アカウントが使用不可に設定されている状態。
|
||||
|
||||
@@ -67,8 +73,8 @@ Misskeyにアップロードしたファイルを管理する機能。詳細は[
|
||||
## Catatan
|
||||
Misskeyに投稿される、文章、ファイル、アンケートなどを含めることができるコンテンツ。詳細は[こちら。](../features/note)
|
||||
|
||||
## ミスキスト
|
||||
Misskeyを使う人のこと。
|
||||
## Misskist
|
||||
Pengguna dari Misskey.
|
||||
|
||||
## Moderator
|
||||
スパムの凍結およびサイレンスや不適切な投稿の削除など、コミュニティ運営に関する権限を持つユーザー。
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user