diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index ed0da44d6..91edb82e0 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -1187,7 +1187,6 @@ admin/views/index.vue: users: "ユーザー" federation: "連合" announcements: "お知らせ" - hashtags: "ハッシュタグ" abuse: "スパム報告" queue: "ジョブキュー" logs: "ログ" @@ -1230,6 +1229,8 @@ admin/views/instance.vue: maintainer-config: "管理者情報" maintainer-name: "管理者名" maintainer-email: "管理者の連絡先" + advanced-config: "その他の設定" + note-and-tl: "投稿とタイムライン" drive-config: "ドライブの設定" cache-remote-files: "リモートのファイルをキャッシュする" cache-remote-files-desc: "この設定を無効にすると、リモートファイルをキャッシュせず直リンクするようになります。そのためサーバーのストレージを節約できますが、プライバシー設定で直リンクを無効にしているユーザーにはファイルが見えなくなったり、サムネイルが生成されないので通信量が増加します。通常はこの設定をオンにしておくことをおすすめします。" @@ -1241,6 +1242,9 @@ admin/views/instance.vue: enable-recaptcha: "reCAPTCHAを有効にする" recaptcha-site-key: "reCAPTCHA site key" recaptcha-secret-key: "reCAPTCHA secret key" + hidden-tags: "非表示ハッシュタグ" + hidden-tags-info: "集計から除外するハッシュタグを改行で区切って記述します。" + external-service-integration-config: "外部サービス連携" twitter-integration-config: "Twitter連携の設定" twitter-integration-info: "コールバックURLは {url} に設定します。" enable-twitter-integration: "Twitter連携を有効にする" diff --git a/src/client/app/admin/views/hashtags.vue b/src/client/app/admin/views/hashtags.vue deleted file mode 100644 index e1cc4b494..000000000 --- a/src/client/app/admin/views/hashtags.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/src/client/app/admin/views/index.vue b/src/client/app/admin/views/index.vue index 4bce197ed..43e47038f 100644 --- a/src/client/app/admin/views/index.vue +++ b/src/client/app/admin/views/index.vue @@ -28,7 +28,6 @@
  • {{ $t('federation') }}
  • {{ $t('emoji') }}
  • {{ $t('announcements') }}
  • -
  • {{ $t('hashtags') }}
  • {{ $t('abuse') }}
  • @@ -48,7 +47,6 @@
    -
    @@ -68,7 +66,6 @@ import XLogs from "./logs.vue"; import XModerators from "./moderators.vue"; import XEmoji from "./emoji.vue"; import XAnnouncements from "./announcements.vue"; -import XHashtags from "./hashtags.vue"; import XUsers from "./users.vue"; import XDrive from "./drive.vue"; import XAbuse from "./abuse.vue"; @@ -91,7 +88,6 @@ export default Vue.extend({ XModerators, XEmoji, XAnnouncements, - XHashtags, XUsers, XDrive, XAbuse, diff --git a/src/client/app/admin/views/instance.vue b/src/client/app/admin/views/instance.vue index 5cdd22296..be9e56131 100644 --- a/src/client/app/admin/views/instance.vue +++ b/src/client/app/admin/views/instance.vue @@ -2,7 +2,7 @@
    -
    +
    {{ $t('host') }} {{ $t('instance-name') }} {{ $t('instance-description') }} @@ -11,49 +11,63 @@ {{ $t('banner-url') }} {{ $t('error-image-url') }} {{ $t('tos-url') }} - {{ $t('repository-url') }} - {{ $t('feedback-url') }} {{ $t('languages') }} +
    + {{ $t('advanced-config') }} + {{ $t('repository-url') }} + {{ $t('feedback-url') }} +
    {{ $t('maintainer-config') }}
    {{ $t('maintainer-name') }} {{ $t('maintainer-email') }}
    +
    + {{ $t('disable-registration') }} + {{ $t('invite') }} +
    +
    + {{ $t('save') }} +
    + + + +
    {{ $t('max-note-text-length') }}
    - {{ $t('disable-registration') }} {{ $t('disable-local-timeline') }} {{ $t('disable-global-timeline') }} {{ $t('disabling-timelines-info') }} +
    +
    {{ $t('enable-emoji-reaction') }} {{ $t('use-star-for-reaction-fallback') }}
    -
    -
    {{ $t('drive-config') }}
    +
    + {{ $t('save') }} +
    + + + + +
    {{ $t('cache-remote-files') }} +
    +
    {{ $t('local-drive-capacity-mb') }} {{ $t('remote-drive-capacity-mb') }}
    -
    -
    {{ $t('recaptcha-config') }}
    - {{ $t('enable-recaptcha') }} - {{ $t('recaptcha-info') }} - - {{ $t('recaptcha-site-key') }} - {{ $t('recaptcha-secret-key') }} - -
    -
    {{ $t('proxy-account-config') }}
    - {{ $t('proxy-account-info') }} - {{ $t('proxy-account-username') }} - {{ $t('proxy-account-warn') }} + {{ $t('save') }}
    +
    + + +
    -
    {{ $t('email-config') }}
    {{ $t('enable-email') }} {{ $t('email') }} @@ -63,12 +77,30 @@ {{ $t('smtp-auth') }} {{ $t('smtp-user') }} - {{ $t('smtp-pass') }} + {{ $t('smtp-pass') }} {{ $t('smtp-secure') }}
    -
    {{ $t('serviceworker-config') }}
    + {{ $t('save') }} +
    +
    + + + +
    + {{ $t('proxy-account-info') }} + {{ $t('proxy-account-username') }} + {{ $t('proxy-account-warn') }} +
    +
    + {{ $t('save') }} +
    +
    + + + +
    {{ $t('enable-serviceworker') }} {{ $t('vapid-info') }}
    npm i web-push -g
    web-push generate-vapid-keys
    @@ -77,11 +109,22 @@
    -
    summaly Proxy
    - URL + {{ $t('save') }} +
    +
    + + + +
    + {{ $t('enable-recaptcha') }} + {{ $t('recaptcha-info') }} + + {{ $t('recaptcha-site-key') }} + {{ $t('recaptcha-secret-key') }} +
    - {{ $t('save') }} + {{ $t('save') }}
    @@ -91,56 +134,67 @@ - {{ $t('save') }} + {{ $t('save') }}
    - -
    - {{ $t('invite') }} -

    Code: {{ inviteCode }}

    -
    -
    - - - +
    +
    {{ $t('twitter-integration-config') }}
    {{ $t('enable-twitter-integration') }} {{ $t('twitter-integration-consumer-key') }} {{ $t('twitter-integration-consumer-secret') }} {{ $t('twitter-integration-info', { url: `${url}/api/tw/cb` }) }} - {{ $t('save') }}
    -
    - - -
    +
    {{ $t('github-integration-config') }}
    {{ $t('enable-github-integration') }} {{ $t('github-integration-client-id') }} {{ $t('github-integration-client-secret') }} {{ $t('github-integration-info', { url: `${url}/api/gh/cb` }) }} - {{ $t('save') }}
    -
    - - -
    +
    {{ $t('discord-integration-config') }}
    {{ $t('enable-discord-integration') }} {{ $t('discord-integration-client-id') }} {{ $t('discord-integration-client-secret') }} {{ $t('discord-integration-info', { url: `${url}/api/dc/cb` }) }} - {{ $t('save') }} +
    +
    + {{ $t('save') }}
    + +
    + {{ $t('advanced-config') }} + + + +
    + + + + {{ $t('save') }} +
    +
    + + + +
    + URL +
    +
    + {{ $t('save') }} +
    +
    +
    @@ -149,8 +203,8 @@ import Vue from 'vue'; import i18n from '../../i18n'; import { url, host } from '../../config'; import { toUnicode } from 'punycode'; -import { faHeadset, faShieldAlt, faGhost, faUserPlus, faBolt, faThumbtack } from '@fortawesome/free-solid-svg-icons'; -import { faEnvelope as farEnvelope } from '@fortawesome/free-regular-svg-icons'; +import { faHeadset, faShieldAlt, faGhost, faUserPlus, faBolt, faThumbtack, faPencilAlt, faHashtag } from '@fortawesome/free-solid-svg-icons'; +import { faEnvelope as farEnvelope, faSave } from '@fortawesome/free-regular-svg-icons'; export default Vue.extend({ i18n: i18n('admin/views/instance.vue'), @@ -193,7 +247,6 @@ export default Vue.extend({ discordClientId: null, discordClientSecret: null, proxyAccount: null, - inviteCode: null, summalyProxy: null, enableEmail: false, email: null, @@ -207,7 +260,8 @@ export default Vue.extend({ swPublicKey: null, swPrivateKey: null, pinnedUsers: '', - faHeadset, faShieldAlt, faGhost, faUserPlus, farEnvelope, faBolt, faThumbtack + hiddenTags: '', + faHeadset, faShieldAlt, faGhost, faUserPlus, farEnvelope, faBolt, faThumbtack, faPencilAlt, faSave, faHashtag }; }, @@ -260,13 +314,17 @@ export default Vue.extend({ this.swPublicKey = meta.swPublickey; this.swPrivateKey = meta.swPrivateKey; this.pinnedUsers = meta.pinnedUsers.join('\n'); + this.hiddenTags = meta.hiddenTags.join('\n'); }); }, methods: { invite() { this.$root.api('admin/invite').then(x => { - this.inviteCode = x.code; + this.$root.dialog({ + type: 'info', + text: x.code + }); }).catch(e => { this.$root.dialog({ type: 'error', @@ -322,7 +380,8 @@ export default Vue.extend({ enableServiceWorker: this.enableServiceWorker, swPublicKey: this.swPublicKey, swPrivateKey: this.swPrivateKey, - pinnedUsers: this.pinnedUsers.split('\n') + pinnedUsers: this.pinnedUsers.split('\n'), + hiddenTags: this.hiddenTags.split('\n'), }).then(() => { this.$root.dialog({ type: 'success',