Merge branch 'misskey-dev:develop' into develop
This commit is contained in:
commit
12f91048df
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
## 2023.x.x (unreleased)
|
## 2023.11.1
|
||||||
|
|
||||||
### General
|
### General
|
||||||
- Feat: 管理者がコントロールパネルからメールアドレスの照会を行えるようになりました
|
- Feat: 管理者がコントロールパネルからメールアドレスの照会を行えるようになりました
|
||||||
|
@ -299,7 +299,7 @@ light: "淺色"
|
|||||||
dark: "深色"
|
dark: "深色"
|
||||||
lightThemes: "淺色主題"
|
lightThemes: "淺色主題"
|
||||||
darkThemes: "深色主題"
|
darkThemes: "深色主題"
|
||||||
syncDeviceDarkMode: "同步至此裝置的深色模式設定"
|
syncDeviceDarkMode: "與設備的深色模式同步"
|
||||||
drive: "雲端硬碟"
|
drive: "雲端硬碟"
|
||||||
fileName: "檔案名稱"
|
fileName: "檔案名稱"
|
||||||
selectFile: "選擇檔案"
|
selectFile: "選擇檔案"
|
||||||
@ -1819,6 +1819,14 @@ _ago:
|
|||||||
monthsAgo: "{n} 個月前"
|
monthsAgo: "{n} 個月前"
|
||||||
yearsAgo: "{n} 年前"
|
yearsAgo: "{n} 年前"
|
||||||
invalid: "無"
|
invalid: "無"
|
||||||
|
_timeIn:
|
||||||
|
seconds: "{n} 秒後"
|
||||||
|
minutes: "{n} 分後"
|
||||||
|
hours: "{n} 小時後"
|
||||||
|
days: "{n} 日後"
|
||||||
|
weeks: "{n} 週後"
|
||||||
|
months: "{n} 個月後"
|
||||||
|
years: "{n} 年後"
|
||||||
_time:
|
_time:
|
||||||
second: "秒"
|
second: "秒"
|
||||||
minute: "分鐘"
|
minute: "分鐘"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "misskey",
|
"name": "misskey",
|
||||||
"version": "2023.11.1-beta.2",
|
"version": "2023.11.1",
|
||||||
"codename": "nasubi",
|
"codename": "nasubi",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
@ -49,15 +49,14 @@ const relative = $computed<string>(() => {
|
|||||||
ago >= 3600 ? i18n.t('_ago.hoursAgo', { n: Math.round(ago / 3600).toString() }) :
|
ago >= 3600 ? i18n.t('_ago.hoursAgo', { n: Math.round(ago / 3600).toString() }) :
|
||||||
ago >= 60 ? i18n.t('_ago.minutesAgo', { n: (~~(ago / 60)).toString() }) :
|
ago >= 60 ? i18n.t('_ago.minutesAgo', { n: (~~(ago / 60)).toString() }) :
|
||||||
ago >= 10 ? i18n.t('_ago.secondsAgo', { n: (~~(ago % 60)).toString() }) :
|
ago >= 10 ? i18n.t('_ago.secondsAgo', { n: (~~(ago % 60)).toString() }) :
|
||||||
ago >= -1 ? i18n.ts._ago.justNow :
|
ago >= -3 ? i18n.ts._ago.justNow :
|
||||||
ago < -31536000 ? i18n.t('_timeIn.years', { n: Math.round(-ago / 31536000).toString() }) :
|
ago < -31536000 ? i18n.t('_timeIn.years', { n: Math.round(-ago / 31536000).toString() }) :
|
||||||
ago < -2592000 ? i18n.t('_timeIn.months', { n: Math.round(-ago / 2592000).toString() }) :
|
ago < -2592000 ? i18n.t('_timeIn.months', { n: Math.round(-ago / 2592000).toString() }) :
|
||||||
ago < -604800 ? i18n.t('_timeIn.weeks', { n: Math.round(-ago / 604800).toString() }) :
|
ago < -604800 ? i18n.t('_timeIn.weeks', { n: Math.round(-ago / 604800).toString() }) :
|
||||||
ago < -86400 ? i18n.t('_timeIn.days', { n: Math.round(-ago / 86400).toString() }) :
|
ago < -86400 ? i18n.t('_timeIn.days', { n: Math.round(-ago / 86400).toString() }) :
|
||||||
ago < -3600 ? i18n.t('_timeIn.hours', { n: Math.round(-ago / 3600).toString() }) :
|
ago < -3600 ? i18n.t('_timeIn.hours', { n: Math.round(-ago / 3600).toString() }) :
|
||||||
ago < -60 ? i18n.t('_timeIn.minutes', { n: (~~(-ago / 60)).toString() }) :
|
ago < -60 ? i18n.t('_timeIn.minutes', { n: (~~(-ago / 60)).toString() }) :
|
||||||
ago < -10 ? i18n.t('_timeIn.seconds', { n: (~~(-ago % 60)).toString() }) :
|
i18n.t('_timeIn.seconds', { n: (~~(-ago % 60)).toString() })
|
||||||
'?'
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -38,6 +38,7 @@ import { } from 'vue';
|
|||||||
import XHeader from './_header_.vue';
|
import XHeader from './_header_.vue';
|
||||||
import MkInput from '@/components/MkInput.vue';
|
import MkInput from '@/components/MkInput.vue';
|
||||||
import MkButton from '@/components/MkButton.vue';
|
import MkButton from '@/components/MkButton.vue';
|
||||||
|
import MkSwitch from '@/components/MkSwitch.vue';
|
||||||
import FormSuspense from '@/components/form/suspense.vue';
|
import FormSuspense from '@/components/form/suspense.vue';
|
||||||
import FormSection from '@/components/form/section.vue';
|
import FormSection from '@/components/form/section.vue';
|
||||||
import * as os from '@/os.js';
|
import * as os from '@/os.js';
|
||||||
|
@ -8,7 +8,7 @@ SPDX-License-Identifier: AGPL-3.0-only
|
|||||||
<FormSection first>
|
<FormSection first>
|
||||||
<template #label>{{ i18n.ts.notificationRecieveConfig }}</template>
|
<template #label>{{ i18n.ts.notificationRecieveConfig }}</template>
|
||||||
<div class="_gaps_s">
|
<div class="_gaps_s">
|
||||||
<MkFolder v-for="type in notificationTypes" :key="type">
|
<MkFolder v-for="type in notificationTypes.filter(x => !nonConfigurableNotificationTypes.includes(x))" :key="type">
|
||||||
<template #label>{{ i18n.t('_notification._types.' + type) }}</template>
|
<template #label>{{ i18n.t('_notification._types.' + type) }}</template>
|
||||||
<template #suffix>
|
<template #suffix>
|
||||||
{{
|
{{
|
||||||
@ -68,6 +68,8 @@ import { definePageMetadata } from '@/scripts/page-metadata.js';
|
|||||||
import MkPushNotificationAllowButton from '@/components/MkPushNotificationAllowButton.vue';
|
import MkPushNotificationAllowButton from '@/components/MkPushNotificationAllowButton.vue';
|
||||||
import { notificationTypes } from '@/const.js';
|
import { notificationTypes } from '@/const.js';
|
||||||
|
|
||||||
|
const nonConfigurableNotificationTypes = ['note'];
|
||||||
|
|
||||||
let allowButton = $shallowRef<InstanceType<typeof MkPushNotificationAllowButton>>();
|
let allowButton = $shallowRef<InstanceType<typeof MkPushNotificationAllowButton>>();
|
||||||
let pushRegistrationInServer = $computed(() => allowButton?.pushRegistrationInServer);
|
let pushRegistrationInServer = $computed(() => allowButton?.pushRegistrationInServer);
|
||||||
let sendReadMessage = $computed(() => pushRegistrationInServer?.sendReadMessage || false);
|
let sendReadMessage = $computed(() => pushRegistrationInServer?.sendReadMessage || false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user