This commit is contained in:
kakkokari-gtyih 2025-08-08 14:19:34 +09:00
parent e916f99eed
commit 199a68d82f
5 changed files with 12 additions and 6 deletions

4
locales/index.d.ts vendored
View File

@ -5517,6 +5517,10 @@ export interface Locale extends ILocale {
* 使 * 使
*/ */
"themeIsDefaultBecauseSafeMode": string; "themeIsDefaultBecauseSafeMode": string;
/**
* 使稿
*/
"youAreNotAllowedToCreateNote": string;
"_order": { "_order": {
/** /**
* *

View File

@ -1374,6 +1374,7 @@ safeModeEnabled: "セーフモードが有効です"
pluginsAreDisabledBecauseSafeMode: "セーフモードが有効なため、プラグインはすべて無効化されています。" pluginsAreDisabledBecauseSafeMode: "セーフモードが有効なため、プラグインはすべて無効化されています。"
customCssIsDisabledBecauseSafeMode: "セーフモードが有効なため、カスタムCSSは適用されていません。" customCssIsDisabledBecauseSafeMode: "セーフモードが有効なため、カスタムCSSは適用されていません。"
themeIsDefaultBecauseSafeMode: "セーフモードが有効な間はデフォルトのテーマが使用されます。セーフモードをオフにすると元に戻ります。" themeIsDefaultBecauseSafeMode: "セーフモードが有効な間はデフォルトのテーマが使用されます。セーフモードをオフにすると元に戻ります。"
youAreNotAllowedToCreateNote: "お使いのアカウントにはノートを投稿する権限がありません。"
_order: _order:
newest: "新しい順" newest: "新しい順"

View File

@ -61,7 +61,8 @@ SPDX-License-Identifier: AGPL-3.0-only
<button class="_buttonPrimary" style="padding: 4px; border-radius: 8px;" @click="addVisibleUser"><i class="ti ti-plus ti-fw"></i></button> <button class="_buttonPrimary" style="padding: 4px; border-radius: 8px;" @click="addVisibleUser"><i class="ti ti-plus ti-fw"></i></button>
</div> </div>
</div> </div>
<MkInfo v-if="hasNotSpecifiedMentions" warn :class="$style.hasNotSpecifiedMentions">{{ i18n.ts.notSpecifiedMentionWarning }} - <button class="_textButton" @click="addMissingMention()">{{ i18n.ts.add }}</button></MkInfo> <MkInfo v-if="!$i.policies.canNote" warn :class="$style.formWarn">{{ i18n.ts.youAreNotAllowedToCreateNote }}</MkInfo>
<MkInfo v-else-if="hasNotSpecifiedMentions" warn :class="$style.formWarn">{{ i18n.ts.notSpecifiedMentionWarning }} - <button class="_textButton" @click="addMissingMention()">{{ i18n.ts.add }}</button></MkInfo>
<div v-show="useCw" :class="$style.cwOuter"> <div v-show="useCw" :class="$style.cwOuter">
<input ref="cwInputEl" v-model="cw" :class="$style.cw" :placeholder="i18n.ts.annotation" @keydown="onKeydown" @keyup="onKeyup" @compositionend="onCompositionEnd"> <input ref="cwInputEl" v-model="cw" :class="$style.cw" :placeholder="i18n.ts.annotation" @keydown="onKeydown" @keyup="onKeyup" @compositionend="onCompositionEnd">
<div v-if="maxCwTextLength - cwTextLength < 20" :class="['_acrylic', $style.cwTextCount, { [$style.cwTextOver]: cwTextLength > maxCwTextLength }]">{{ maxCwTextLength - cwTextLength }}</div> <div v-if="maxCwTextLength - cwTextLength < 20" :class="['_acrylic', $style.cwTextCount, { [$style.cwTextOver]: cwTextLength > maxCwTextLength }]">{{ maxCwTextLength - cwTextLength }}</div>
@ -192,7 +193,7 @@ watch(showPreview, () => store.set('showPreview', showPreview.value));
const showAddMfmFunction = ref(prefer.s.enableQuickAddMfmFunction); const showAddMfmFunction = ref(prefer.s.enableQuickAddMfmFunction);
watch(showAddMfmFunction, () => prefer.commit('enableQuickAddMfmFunction', showAddMfmFunction.value)); watch(showAddMfmFunction, () => prefer.commit('enableQuickAddMfmFunction', showAddMfmFunction.value));
const cw = ref<string | null>(props.initialCw ?? null); const cw = ref<string | null>(props.initialCw ?? null);
const localOnly = ref($i.policies.canFederateNote ? props.initialLocalOnly ?? (prefer.s.rememberNoteVisibility ? store.s.localOnly : prefer.s.defaultNoteLocalOnly) : true); const localOnly = ref(props.initialLocalOnly ?? (prefer.s.rememberNoteVisibility ? store.s.localOnly : prefer.s.defaultNoteLocalOnly));
const visibility = ref(props.initialVisibility ?? (prefer.s.rememberNoteVisibility ? store.s.visibility : prefer.s.defaultNoteVisibility)); const visibility = ref(props.initialVisibility ?? (prefer.s.rememberNoteVisibility ? store.s.visibility : prefer.s.defaultNoteVisibility));
const visibleUsers = ref<Misskey.entities.UserDetailed[]>([]); const visibleUsers = ref<Misskey.entities.UserDetailed[]>([]);
if (props.initialVisibleUsers) { if (props.initialVisibleUsers) {
@ -283,7 +284,7 @@ const canPost = computed((): boolean => {
const isNotMock = !props.mock; const isNotMock = !props.mock;
const canNote = $i.policies.canNote; const canNote = $i.policies.canNote;
const canQuote = renoteTargetNote.value ? $i.policies.canQuote : true; const canQuote = renoteTargetNote.value ? $i.policies.renotePolicy === 'allow' : true;
const isNotPosting = !posting.value && !posted.value; const isNotPosting = !posting.value && !posted.value;
const isNotUploading = !uploader.uploading.value; const isNotUploading = !uploader.uploading.value;
@ -1522,7 +1523,7 @@ html[data-color-scheme=light] .preview {
background: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.1)); background: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.1));
} }
.hasNotSpecifiedMentions { .formWarn {
margin: 0 20px 16px 20px; margin: 0 20px 16px 20px;
} }

View File

@ -189,7 +189,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<template #label>{{ i18n.ts._role._options.renotePolicy }}</template> <template #label>{{ i18n.ts._role._options.renotePolicy }}</template>
<template #suffix> <template #suffix>
<span v-if="role.policies.renotePolicy.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span> <span v-if="role.policies.renotePolicy.useDefault" :class="$style.useDefaultLabel">{{ i18n.ts._role.useBaseValue }}</span>
<span v-else>{{ role.policies.renotePolicy.value ? i18n.ts.yes : i18n.ts.no }}</span> <span v-else>{{ role.policies.renotePolicy.value === 'allow' ? i18n.ts._role._options.renotePolicy_allow : role.policies.renotePolicy.value === 'renoteOnly' ? i18n.ts._role._options.renotePolicy_renoteOnly : i18n.ts._role._options.renotePolicy_disallow }}</span>
<span :class="$style.priorityIndicator"><i :class="getPriorityIcon(role.policies.renotePolicy)"></i></span> <span :class="$style.priorityIndicator"><i :class="getPriorityIcon(role.policies.renotePolicy)"></i></span>
</template> </template>
<div class="_gaps"> <div class="_gaps">

View File

@ -59,7 +59,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkFolder v-if="matchQuery([i18n.ts._role._options.renotePolicy, 'renotePolicy'])"> <MkFolder v-if="matchQuery([i18n.ts._role._options.renotePolicy, 'renotePolicy'])">
<template #label>{{ i18n.ts._role._options.renotePolicy }}</template> <template #label>{{ i18n.ts._role._options.renotePolicy }}</template>
<template #suffix>{{ policies.renotePolicy ? i18n.ts.yes : i18n.ts.no }}</template> <template #suffix>{{ policies.renotePolicy.value === 'allow' ? i18n.ts._role._options.renotePolicy_allow : policies.renotePolicy.value === 'renoteOnly' ? i18n.ts._role._options.renotePolicy_renoteOnly : i18n.ts._role._options.renotePolicy_disallow }}</template>
<MkSelect v-model="policies.renotePolicy"> <MkSelect v-model="policies.renotePolicy">
<template #label>{{ i18n.ts.enable }}</template> <template #label>{{ i18n.ts.enable }}</template>
<option value="allow">{{ i18n.ts._role._options.renotePolicy_allow }}</option> <option value="allow">{{ i18n.ts._role._options.renotePolicy_allow }}</option>