From 00704bd88cfc191db457cc022057c0ab5ac0a919 Mon Sep 17 00:00:00 2001 From: solidsanek Date: Fri, 17 Feb 2023 13:56:01 +0100 Subject: [PATCH 01/25] Post: Add drafting feature --- .../post_status_form/post_status_form.js | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index b7c66fc7..2d42d8cc 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -54,6 +54,14 @@ const pxStringToNumber = (str) => { return Number(str.substring(0, str.length - 2)) } +const deleteDraft = (draftKey) => { + const draftData = JSON.parse(localStorage.getItem('drafts') || '{}'); + + delete draftData[draftKey]; + + localStorage.setItem('drafts', JSON.stringify(draftData)); +} + const PostStatusForm = { props: [ 'statusId', @@ -161,6 +169,34 @@ const PostStatusForm = { } } + let draftKey = 'status'; + if (this.replyTo) { + draftKey = 'reply:' + this.replyTo; + } else if (this.quoteId) { + draftKey = 'quote:' + this.quoteId; + } + + const draft = JSON.parse(localStorage.getItem('drafts') || '{}')[draftKey]; + + if (draft) { + statusParams = { + spoilerText: draft.data.spoilerText, + status: draft.data.status, + sensitiveIfSubject, + nsfw: draft.data.nsfw, + files: draft.data.files, + poll: draft.data.poll, + mediaDescriptions: draft.data.mediaDescriptions, + visibility: draft.data.visibility, + language: draft.data.language, + contentType: draft.data.contentType + } + + if (draft.data.poll) { + this.togglePollForm(); + } + } + return { dropFiles: [], uploadingFiles: false, @@ -280,6 +316,7 @@ const PostStatusForm = { statusChanged () { this.autoPreview() this.updateIdempotencyKey() + this.saveDraft() }, clearStatus () { const newStatus = this.newStatus @@ -401,8 +438,50 @@ const PostStatusForm = { }).finally(() => { this.previewLoading = false }) + + let draftKey = 'status'; + if (this.replyTo) { + draftKey = 'reply:' + this.replyTo; + } else if (this.quoteId) { + draftKey = 'quote:' + this.quoteId; + } + deleteDraft(draftKey) }, debouncePreviewStatus: debounce(function () { this.previewStatus() }, 500), + saveDraft() { + const draftData = JSON.parse(localStorage.getItem('drafts') || '{}'); + + let draftKey = 'status'; + if (this.replyTo) { + draftKey = 'reply:' + this.replyTo; + } else if (this.quoteId) { + draftKey = 'quote:' + this.quoteId; + } + + if (this.newStatus.status || this.newStatus.spoilerText || this.newStatus.files.length > 0 || this.newStatus.poll.length > 0) { + if(this.newStatus.status) { + console.log(this.newStatus.status) + } + if(this.newStatus.spoilerText) { + console.log(this.newStatus.spoilerText) + } + if(this.newStatus.files) { + console.log(this.newStatus.files) + } + if(this.newStatus.poll) { + console.log(this.newStatus.poll) + } + console.log('not empty?'); + draftData[draftKey] = { + updatedAt: new Date(), + data: this.newStatus, + }; + + localStorage.setItem('drafts', JSON.stringify(draftData)); + } else { + deleteDraft(draftKey); + } + }, autoPreview () { if (!this.preview) return this.previewLoading = true From 2c007f06e35ffee25d55b2cc0bbf84202c473dbc Mon Sep 17 00:00:00 2001 From: solidsanek Date: Sun, 19 Feb 2023 18:58:53 +0100 Subject: [PATCH 02/25] Post: remove debug logs --- .../post_status_form/post_status_form.js | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index 2d42d8cc..f7fef499 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -459,25 +459,13 @@ const PostStatusForm = { } if (this.newStatus.status || this.newStatus.spoilerText || this.newStatus.files.length > 0 || this.newStatus.poll.length > 0) { - if(this.newStatus.status) { - console.log(this.newStatus.status) - } - if(this.newStatus.spoilerText) { - console.log(this.newStatus.spoilerText) - } - if(this.newStatus.files) { - console.log(this.newStatus.files) - } - if(this.newStatus.poll) { - console.log(this.newStatus.poll) - } - console.log('not empty?'); - draftData[draftKey] = { + draftData[draftKey] = { updatedAt: new Date(), data: this.newStatus, }; localStorage.setItem('drafts', JSON.stringify(draftData)); + } else { deleteDraft(draftKey); } From 996ce3dde3496172ce507502753b168cda4e1994 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yh=C3=ABhtozr?= Date: Mon, 20 Feb 2023 23:18:04 +0900 Subject: [PATCH 03/25] support oblong reactions --- src/components/emoji_reactions/emoji_reactions.vue | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/emoji_reactions/emoji_reactions.vue b/src/components/emoji_reactions/emoji_reactions.vue index 3fe81f77..4eacaa75 100644 --- a/src/components/emoji_reactions/emoji_reactions.vue +++ b/src/components/emoji_reactions/emoji_reactions.vue @@ -18,7 +18,6 @@ :src="reaction.url" :title="reaction.name" class="reaction-emoji" - width="2.55em" height="2.55em" > {{ reaction.count }} @@ -50,6 +49,7 @@ display: flex; margin-top: 0.25em; flex-wrap: wrap; + container-type: inline-size; } .unicode-emoji { @@ -65,7 +65,8 @@ justify-content: center; box-sizing: border-box; .reaction-emoji { - width: 2.55em !important; + width: auto; + max-width: 100cqw; height: 2.55em !important; margin-right: 0.25em; } From 6d7761c7e537eb2c1dada0a7b5955d3a47076273 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yh=C3=ABhtozr?= Date: Mon, 20 Feb 2023 23:27:41 +0900 Subject: [PATCH 04/25] perhaps more graceful cqw --- src/components/emoji_reactions/emoji_reactions.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/emoji_reactions/emoji_reactions.vue b/src/components/emoji_reactions/emoji_reactions.vue index 4eacaa75..599611b2 100644 --- a/src/components/emoji_reactions/emoji_reactions.vue +++ b/src/components/emoji_reactions/emoji_reactions.vue @@ -66,7 +66,7 @@ box-sizing: border-box; .reaction-emoji { width: auto; - max-width: 100cqw; + max-width: 96cqw; height: 2.55em !important; margin-right: 0.25em; } From 626c8800382e93ba0672bdc13d4b597470cc41f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yh=C3=ABhtozr?= Date: Wed, 22 Feb 2023 10:20:25 +0900 Subject: [PATCH 05/25] oblong emoji in status --- src/components/rich_content/rich_content.scss | 1 - src/components/status_body/status_body.scss | 3 --- src/components/status_content/status_content.vue | 3 +-- 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/src/components/rich_content/rich_content.scss b/src/components/rich_content/rich_content.scss index db08ef1e..63df7d74 100644 --- a/src/components/rich_content/rich_content.scss +++ b/src/components/rich_content/rich_content.scss @@ -50,7 +50,6 @@ .emoji { display: inline-block; - width: var(--emoji-size, 32px); height: var(--emoji-size, 32px); } diff --git a/src/components/status_body/status_body.scss b/src/components/status_body/status_body.scss index 230a27ac..d618f65e 100644 --- a/src/components/status_body/status_body.scss +++ b/src/components/status_body/status_body.scss @@ -22,21 +22,18 @@ ._mfm_x2_ { .emoji { - width: 100px; height: 100px; } } ._mfm_x3_ { .emoji { - width: 150px; height: 150px; } } ._mfm_x4_ { .emoji { - width: 200px; height: 200px; } } diff --git a/src/components/status_content/status_content.vue b/src/components/status_content/status_content.vue index ab13141e..62acf5ac 100644 --- a/src/components/status_content/status_content.vue +++ b/src/components/status_content/status_content.vue @@ -71,7 +71,7 @@ img, video { &.emoji { - width: 50px; + max-width: 100%; height: 50px; } } @@ -89,7 +89,6 @@ animation: none !important; } .emoji { - width: 32px !important; height: 32px !important; } } From 999c38594ea2955c9e38fde32a60999b2e504088 Mon Sep 17 00:00:00 2001 From: flisk Date: Fri, 24 Feb 2023 00:23:53 +0100 Subject: [PATCH 06/25] fix realtime updates in 'following' replies filter i'm not sure how this code was supposed to work, but the way it was written would only add statuses to the timeline if they were in reply to someone the user is following and erroneously filter out posts that aren't replies. --- src/modules/api.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/modules/api.js b/src/modules/api.js index 8de1449b..352d7774 100644 --- a/src/modules/api.js +++ b/src/modules/api.js @@ -5,15 +5,25 @@ import { map } from 'lodash' const retryTimeout = (multiplier) => 1000 * multiplier const isVisible = (store, message, visibility) => { - if (visibility === 'all') { + if (visibility == 'all') { return true - } else if (visibility === 'following') { - return store.getters.relationship(message.in_reply_to_user_id).following - } else if (visibility === 'self') { + } + + if (visibility == 'following') { + if (message.in_reply_to_user_id === null) { + return true + } else { + return store.getters.relationship(message.in_reply_to_user_id).following + } + } + + if (visibility == 'self') { return message.in_reply_to_user_id === store.rootState.users.currentUser.id } + return false } + const api = { state: { retryMultiplier: 1, From 6fdef479d00e8b3c05bfc3918d5e7f74e5d23abc Mon Sep 17 00:00:00 2001 From: flisk Date: Fri, 10 Mar 2023 19:10:42 +0000 Subject: [PATCH 07/25] add recently used emojis panel to emoji picker (#283) ~~(not intended for merging yet, just submitting this for preliminary review and discussion)~~ this patch adds a tab with recently used emojis to the emoji picker: https://akko.lain.gay/notice/ASoGCtyoiXbYPJjqpk there's a couple of things i'm ~~still trying to work out~~ not totally happy with and i'd appreciate any feedback on them: * the recentEmojis getter is called very frequently and has to do a possibly somewhat expensive lookup of emoji objects by their `displayName` each time, which i'm not sure is ideal * ~~emoji reactions on posts added through the picker are picked up by the recentEmojis module, but clicks on existing emoji reactions are not, because `addReaction` in `react_button.js` only currently receives the replacement and not the full emoji object (if there even is one wherever that method is called from)~~ this works now and does the same stupid full search of all emojis by their name which i guess is less bad because this only happens when you hit a reaction emoji button that already existed Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma-fe/pulls/283 Co-authored-by: flisk Co-committed-by: flisk --- src/components/emoji_picker/emoji_picker.js | 11 ++++ .../emoji_reactions/emoji_reactions.js | 7 +++ src/i18n/en.json | 3 +- src/lib/persisted_state.js | 3 +- src/main.js | 7 ++- src/modules/recentEmojis.js | 50 +++++++++++++++++++ 6 files changed, 77 insertions(+), 4 deletions(-) create mode 100644 src/modules/recentEmojis.js diff --git a/src/components/emoji_picker/emoji_picker.js b/src/components/emoji_picker/emoji_picker.js index 76934e53..c0391f6c 100644 --- a/src/components/emoji_picker/emoji_picker.js +++ b/src/components/emoji_picker/emoji_picker.js @@ -51,6 +51,7 @@ const EmojiPicker = { onEmoji (emoji) { const value = emoji.imageUrl ? `:${emoji.displayText}:` : emoji.replacement this.$emit('emoji', { insertion: value, keepOpen: this.keepOpen }) + this.$store.commit('emojiUsed', emoji) }, onWheel (e) { e.preventDefault() @@ -96,6 +97,7 @@ const EmojiPicker = { ) }, emojis () { + const recentEmojis = this.$store.getters.recentEmojis const standardEmojis = this.$store.state.instance.emoji || [] const customEmojis = this.sortedEmoji const emojiPacks = [] @@ -108,6 +110,15 @@ const EmojiPicker = { }) }) return [ + { + id: 'recent', + text: this.$t('emoji.recent'), + first: { + imageUrl: '', + replacement: '🕒', + }, + emojis: this.filterByKeyword(recentEmojis) + }, { id: 'standard', text: this.$t('emoji.unicode'), diff --git a/src/components/emoji_reactions/emoji_reactions.js b/src/components/emoji_reactions/emoji_reactions.js index 06e21f6e..75ab252e 100644 --- a/src/components/emoji_reactions/emoji_reactions.js +++ b/src/components/emoji_reactions/emoji_reactions.js @@ -3,6 +3,11 @@ import UserListPopover from '../user_list_popover/user_list_popover.vue' const EMOJI_REACTION_COUNT_CUTOFF = 12 +const findEmojiByReplacement = (state, replacement) => { + const allEmojis = state.instance.emoji.concat(state.instance.customEmoji) + return allEmojis.find(emoji => emoji.replacement === replacement) +} + const EmojiReactions = { name: 'EmojiReactions', components: { @@ -54,6 +59,8 @@ const EmojiReactions = { }, reactWith (emoji) { this.$store.dispatch('reactWithEmoji', { id: this.status.id, emoji }) + const emojiObject = findEmojiByReplacement(this.$store.state, emoji) + this.$store.commit('emojiUsed', emojiObject) }, unreact (emoji) { this.$store.dispatch('unreactWithEmoji', { id: this.status.id, emoji }) diff --git a/src/i18n/en.json b/src/i18n/en.json index 46890345..92618047 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -86,7 +86,8 @@ "load_all_hint": "Loaded first {saneAmount} emoji, loading all emoji may cause performance issues.", "search_emoji": "Search for an emoji", "stickers": "Stickers", - "unicode": "Unicode emoji" + "unicode": "Unicode emoji", + "recent": "Recently used" }, "errors": { "storage_unavailable": "Pleroma could not access browser storage. Your login or your local settings won't be saved and you might encounter unexpected issues. Try enabling cookies." diff --git a/src/lib/persisted_state.js b/src/lib/persisted_state.js index 735a10de..a9a9d307 100644 --- a/src/lib/persisted_state.js +++ b/src/lib/persisted_state.js @@ -19,7 +19,8 @@ const saveImmedeatelyActions = [ 'setOption', 'setClientData', 'setToken', - 'clearToken' + 'clearToken', + 'emojiUsed', ] const defaultStorage = (() => { diff --git a/src/main.js b/src/main.js index 01a44c96..cad887e5 100644 --- a/src/main.js +++ b/src/main.js @@ -22,6 +22,7 @@ import announcementsModule from './modules/announcements.js' import editStatusModule from './modules/editStatus.js' import statusHistoryModule from './modules/statusHistory.js' import tagModule from './modules/tags.js' +import recentEmojisModule from './modules/recentEmojis.js' import { createI18n } from 'vue-i18n' @@ -47,7 +48,8 @@ const persistedStateOptions = { paths: [ 'config', 'users.lastLoginName', - 'oauth' + 'oauth', + 'recentEmojis.emojis', ] }; @@ -98,7 +100,8 @@ const persistedStateOptions = { announcements: announcementsModule, editStatus: editStatusModule, statusHistory: statusHistoryModule, - tags: tagModule + tags: tagModule, + recentEmojis: recentEmojisModule, }, plugins, strict: false // Socket modifies itself, let's ignore this for now. diff --git a/src/modules/recentEmojis.js b/src/modules/recentEmojis.js new file mode 100644 index 00000000..baab1c52 --- /dev/null +++ b/src/modules/recentEmojis.js @@ -0,0 +1,50 @@ +// each row is 7 emojis, 6 rows chosen arbitrarily. i don't think more than +// that are going to be useful. +const RECENT_MAX = 7 * 6 + +const defaultState = { + emojis: [], +} + +const recentEmojis = { + state: defaultState, + + mutations: { + emojiUsed ({ emojis }, emoji) { + if (emoji.displayText === undefined || emoji.displayText === null) { + console.error('emojiUsed was called with a bad emoji object: ', emoji) + return + } else if (emoji.displayText.includes('@')) { + console.error('emojiUsed was called with a remote emoji: ', emoji) + return + } + + const i = emojis.indexOf(emoji.displayText) + + if (i === -1) { + // not in `emojis` yet, insert and truncate if necessary + const newLength = emojis.unshift(emoji.displayText) + if (newLength > RECENT_MAX) { + emojis.pop() + } + } else if (i !== 0) { + // emoji is already in `emojis` but needs to be bumped to the top + emojis.splice(i, 1) + emojis.unshift(emoji.displayText) + } + }, + }, + + getters: { + recentEmojis: (state, getters, rootState) => state.emojis.reduce((objects, displayText) => { + const allEmojis = rootState.instance.emoji.concat(rootState.instance.customEmoji) + let emojiObject = allEmojis.find(emoji => emoji.displayText === displayText) + if (emojiObject !== undefined) { + objects.push(emojiObject) + } + return objects + }, []), + }, +} + +export default recentEmojis From 42ab3eada48caf7924f8d485ed55fe50e6bd7073 Mon Sep 17 00:00:00 2001 From: FloatingGhost Date: Wed, 15 Mar 2023 22:20:54 +0000 Subject: [PATCH 08/25] Remove links from navs if we can't see the timeline --- src/boot/after_store.js | 2 ++ src/components/desktop_nav/desktop_nav.js | 6 +++++- src/components/desktop_nav/desktop_nav.vue | 2 ++ src/components/extra_buttons/extra_buttons.js | 3 ++- src/components/nav_panel/nav_panel.js | 2 +- src/components/timeline_menu/timeline_menu_content.js | 3 ++- src/components/timeline_menu/timeline_menu_content.vue | 5 +++-- 7 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/boot/after_store.js b/src/boot/after_store.js index 36b087a5..bba3e597 100644 --- a/src/boot/after_store.js +++ b/src/boot/after_store.js @@ -322,6 +322,8 @@ const getNodeInfo = async ({ store }) => { : federation.enabled }) + store.dispatch('setInstanceOption', { name: 'publicTimelineVisibility', value: metadata.publicTimelineVisibility }) + const accountActivationRequired = metadata.accountActivationRequired store.dispatch('setInstanceOption', { name: 'accountActivationRequired', value: accountActivationRequired }) diff --git a/src/components/desktop_nav/desktop_nav.js b/src/components/desktop_nav/desktop_nav.js index f4900c38..4cf5a477 100644 --- a/src/components/desktop_nav/desktop_nav.js +++ b/src/components/desktop_nav/desktop_nav.js @@ -19,6 +19,7 @@ import { faInfoCircle, faUserTie } from '@fortawesome/free-solid-svg-icons' +import { mapState } from 'vuex' library.add( faSignInAlt, @@ -103,7 +104,10 @@ export default { }, showBubbleTimeline () { return this.$store.state.instance.localBubbleInstances.length > 0 - } + }, + ...mapState({ + publicTimelineVisibility: state => state.instance.publicTimelineVisibility, + }) }, methods: { scrollToTop () { diff --git a/src/components/desktop_nav/desktop_nav.vue b/src/components/desktop_nav/desktop_nav.vue index 92d3fa5b..a41e9972 100644 --- a/src/components/desktop_nav/desktop_nav.vue +++ b/src/components/desktop_nav/desktop_nav.vue @@ -46,6 +46,7 @@ state.users.currentUser, privateMode: state => state.instance.private, - federating: state => state.instance.federating + federating: state => state.instance.federating, }), ...mapGetters(['unreadAnnouncementCount']), followRequestCount () { diff --git a/src/components/timeline_menu/timeline_menu_content.js b/src/components/timeline_menu/timeline_menu_content.js index df15030b..ab277d74 100644 --- a/src/components/timeline_menu/timeline_menu_content.js +++ b/src/components/timeline_menu/timeline_menu_content.js @@ -24,7 +24,8 @@ const TimelineMenuContent = { currentUser: state => state.users.currentUser, privateMode: state => state.instance.private, federating: state => state.instance.federating, - showBubbleTimeline: state => (state.instance.localBubbleInstances.length > 0) + showBubbleTimeline: state => (state.instance.localBubbleInstances.length > 0), + publicTimelineVisibility: state => state.instance.publicTimelineVisibility, }) } } diff --git a/src/components/timeline_menu/timeline_menu_content.vue b/src/components/timeline_menu/timeline_menu_content.vue index 27aece22..70af126c 100644 --- a/src/components/timeline_menu/timeline_menu_content.vue +++ b/src/components/timeline_menu/timeline_menu_content.vue @@ -32,7 +32,7 @@ >{{ $t("nav.bubble_timeline") }} -
  • +
  • {{ $t("nav.public_tl") }}
  • -
  • +
  • {{ $t("nav.twkn") }} +
  • From 9f7f9e27985c6a51e3473c682d0766eb830fc302 Mon Sep 17 00:00:00 2001 From: FloatingGhost Date: Wed, 15 Mar 2023 23:00:31 +0000 Subject: [PATCH 09/25] Remove unused bits and bobs --- index.html | 2 -- src/boot/after_store.js | 3 --- src/modules/users.js | 3 ++- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/index.html b/index.html index fda91b0f..781b0ba3 100644 --- a/index.html +++ b/index.html @@ -4,8 +4,6 @@ Akkoma - - diff --git a/src/boot/after_store.js b/src/boot/after_store.js index bba3e597..b48bfb09 100644 --- a/src/boot/after_store.js +++ b/src/boot/after_store.js @@ -398,9 +398,6 @@ const afterStoreSetup = async ({ store, i18n }) => { ]) // Start fetching things that don't need to block the UI - store.dispatch('fetchMutes') - store.dispatch('startFetchingAnnouncements') - store.dispatch('startFetchingReports') getTOS({ store }) getStickers({ store }) diff --git a/src/modules/users.js b/src/modules/users.js index bc1943c8..209d9675 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -637,13 +637,14 @@ const users = { // Get user mutes store.dispatch('fetchMutes') - store.dispatch('setLayoutWidth', windowWidth()) store.dispatch('setLayoutHeight', windowHeight()) store.dispatch('getSupportedTranslationlanguages') store.dispatch('getSettingsProfile') store.dispatch('listSettingsProfiles') store.dispatch('startFetchingConfig') + store.dispatch('startFetchingAnnouncements') + store.dispatch('startFetchingReports') // Fetch our friends store.rootState.api.backendInteractor.fetchFriends({ id: user.id }) From 7361f4e77e1a3f9c863d00f8341c34a47c45cb50 Mon Sep 17 00:00:00 2001 From: FloatingGhost Date: Thu, 16 Mar 2023 16:41:37 +0000 Subject: [PATCH 10/25] Add checks for currentUser on sidebar --- src/components/timeline_menu/timeline_menu_content.vue | 4 ++-- src/components/timeline_menu_tabs/timeline_menu_tabs.js | 7 ++++++- src/components/timeline_menu_tabs/timeline_menu_tabs.vue | 2 ++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/components/timeline_menu/timeline_menu_content.vue b/src/components/timeline_menu/timeline_menu_content.vue index 70af126c..0144f2fd 100644 --- a/src/components/timeline_menu/timeline_menu_content.vue +++ b/src/components/timeline_menu/timeline_menu_content.vue @@ -32,7 +32,7 @@ >{{ $t("nav.bubble_timeline") }}
  • -
  • +
  • {{ $t("nav.public_tl") }}
  • -
  • +
  • state.users.currentUser, + publicTimelineVisibility: state => state.instance.publicTimelineVisibility, + }) }, methods: { timelineName () { diff --git a/src/components/timeline_menu_tabs/timeline_menu_tabs.vue b/src/components/timeline_menu_tabs/timeline_menu_tabs.vue index f017fa1f..e922ffcc 100644 --- a/src/components/timeline_menu_tabs/timeline_menu_tabs.vue +++ b/src/components/timeline_menu_tabs/timeline_menu_tabs.vue @@ -18,6 +18,7 @@ Date: Sat, 18 Mar 2023 20:01:05 +0000 Subject: [PATCH 11/25] add timeline visibility setting parsing --- src/boot/after_store.js | 1 + src/components/desktop_nav/desktop_nav.js | 1 + src/components/desktop_nav/desktop_nav.vue | 4 ++-- src/components/timeline_menu/timeline_menu_content.js | 1 + src/components/timeline_menu/timeline_menu_content.vue | 4 ++-- src/components/timeline_menu_tabs/timeline_menu_content.js | 5 ++++- src/components/timeline_menu_tabs/timeline_menu_content.vue | 4 ++-- src/components/timeline_menu_tabs/timeline_menu_tabs.js | 2 ++ src/components/timeline_menu_tabs/timeline_menu_tabs.vue | 4 ++-- 9 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/boot/after_store.js b/src/boot/after_store.js index b48bfb09..d45584c0 100644 --- a/src/boot/after_store.js +++ b/src/boot/after_store.js @@ -323,6 +323,7 @@ const getNodeInfo = async ({ store }) => { }) store.dispatch('setInstanceOption', { name: 'publicTimelineVisibility', value: metadata.publicTimelineVisibility }) + store.dispatch('setInstanceOption', { name: 'federatedTimelineAvailable', value: metadata.federatedTimelineAvailable }) const accountActivationRequired = metadata.accountActivationRequired store.dispatch('setInstanceOption', { name: 'accountActivationRequired', value: accountActivationRequired }) diff --git a/src/components/desktop_nav/desktop_nav.js b/src/components/desktop_nav/desktop_nav.js index 4cf5a477..1978ce8f 100644 --- a/src/components/desktop_nav/desktop_nav.js +++ b/src/components/desktop_nav/desktop_nav.js @@ -107,6 +107,7 @@ export default { }, ...mapState({ publicTimelineVisibility: state => state.instance.publicTimelineVisibility, + federatedTimelineAvailable: state => state.instance.federatedTimelineAvailable, }) }, methods: { diff --git a/src/components/desktop_nav/desktop_nav.vue b/src/components/desktop_nav/desktop_nav.vue index a41e9972..61fd838c 100644 --- a/src/components/desktop_nav/desktop_nav.vue +++ b/src/components/desktop_nav/desktop_nav.vue @@ -56,7 +56,7 @@ /> @@ -70,7 +70,7 @@ state.instance.federating, showBubbleTimeline: state => (state.instance.localBubbleInstances.length > 0), publicTimelineVisibility: state => state.instance.publicTimelineVisibility, + federatedTimelineAvailable: state => state.instance.federatedTimelineAvailable, }) } } diff --git a/src/components/timeline_menu/timeline_menu_content.vue b/src/components/timeline_menu/timeline_menu_content.vue index 0144f2fd..8f636a0e 100644 --- a/src/components/timeline_menu/timeline_menu_content.vue +++ b/src/components/timeline_menu/timeline_menu_content.vue @@ -16,7 +16,7 @@ >{{ $t("nav.home_timeline") }}
  • -
  • +
  • {{ $t("nav.public_tl") }}
  • -
  • +
  • state.users.currentUser, privateMode: state => state.instance.private, - federating: state => state.instance.federating + federating: state => state.instance.federating, + showBubbleTimeline: state => (state.instance.localBubbleInstances.length > 0), + publicTimelineVisibility: state => state.instance.publicTimelineVisibility, + federatedTimelineAvailable: state => state.instance.federatedTimelineAvailable, }) } } diff --git a/src/components/timeline_menu_tabs/timeline_menu_content.vue b/src/components/timeline_menu_tabs/timeline_menu_content.vue index 32548c49..bb54595d 100644 --- a/src/components/timeline_menu_tabs/timeline_menu_content.vue +++ b/src/components/timeline_menu_tabs/timeline_menu_content.vue @@ -16,7 +16,7 @@ >{{ $t("nav.home_timeline") }}
  • -
  • +
  • {{ $t("nav.public_tl") }}
  • -
  • +
  • state.users.currentUser, publicTimelineVisibility: state => state.instance.publicTimelineVisibility, + federatedTimelineAvailable: state => state.instance.federatedTimelineAvailable, + showBubbleTimeline: state => (state.instance.localBubbleInstances.length > 0), }) }, methods: { diff --git a/src/components/timeline_menu_tabs/timeline_menu_tabs.vue b/src/components/timeline_menu_tabs/timeline_menu_tabs.vue index e922ffcc..1f0d47ee 100644 --- a/src/components/timeline_menu_tabs/timeline_menu_tabs.vue +++ b/src/components/timeline_menu_tabs/timeline_menu_tabs.vue @@ -28,7 +28,7 @@ /> @@ -42,7 +42,7 @@ Date: Sat, 18 Mar 2023 20:22:47 +0000 Subject: [PATCH 12/25] simplify timeline vibility checks --- src/components/desktop_nav/desktop_nav.js | 10 ++++++-- src/components/desktop_nav/desktop_nav.vue | 6 ++--- .../timeline_menu/timeline_menu_content.js | 7 +++--- .../timeline_menu/timeline_menu_content.vue | 6 ++--- .../timeline_menu_content.js | 7 +++--- .../timeline_menu_content.vue | 6 ++--- .../timeline_menu_tabs/timeline_menu_tabs.js | 14 ++++++----- .../timeline_menu_tabs/timeline_menu_tabs.vue | 6 ++--- src/lib/timeline_visibility.js | 23 +++++++++++++++++++ 9 files changed, 59 insertions(+), 26 deletions(-) create mode 100644 src/lib/timeline_visibility.js diff --git a/src/components/desktop_nav/desktop_nav.js b/src/components/desktop_nav/desktop_nav.js index 1978ce8f..d7538f5b 100644 --- a/src/components/desktop_nav/desktop_nav.js +++ b/src/components/desktop_nav/desktop_nav.js @@ -1,6 +1,11 @@ import SearchBar from 'components/search_bar/search_bar.vue' import ConfirmModal from '../confirm_modal/confirm_modal.vue' import { library } from '@fortawesome/fontawesome-svg-core' +import { + publicTimelineVisible, + federatedTimelineVisible, + bubbleTimelineVisible, +} from '../../lib/timeline_visibility' import { faSignInAlt, faSignOutAlt, @@ -106,8 +111,9 @@ export default { return this.$store.state.instance.localBubbleInstances.length > 0 }, ...mapState({ - publicTimelineVisibility: state => state.instance.publicTimelineVisibility, - federatedTimelineAvailable: state => state.instance.federatedTimelineAvailable, + publicTimelineVisible, + federatedTimelineVisible, + bubbleTimelineVisible, }) }, methods: { diff --git a/src/components/desktop_nav/desktop_nav.vue b/src/components/desktop_nav/desktop_nav.vue index 61fd838c..f50d1b3e 100644 --- a/src/components/desktop_nav/desktop_nav.vue +++ b/src/components/desktop_nav/desktop_nav.vue @@ -46,7 +46,7 @@ @@ -70,7 +70,7 @@ state.users.currentUser, privateMode: state => state.instance.private, federating: state => state.instance.federating, - showBubbleTimeline: state => (state.instance.localBubbleInstances.length > 0), - publicTimelineVisibility: state => state.instance.publicTimelineVisibility, - federatedTimelineAvailable: state => state.instance.federatedTimelineAvailable, + publicTimelineVisible, + federatedTimelineVisible, + bubbleTimelineVisible, }) } } diff --git a/src/components/timeline_menu/timeline_menu_content.vue b/src/components/timeline_menu/timeline_menu_content.vue index 8f636a0e..bb170b82 100644 --- a/src/components/timeline_menu/timeline_menu_content.vue +++ b/src/components/timeline_menu/timeline_menu_content.vue @@ -16,7 +16,7 @@ >{{ $t("nav.home_timeline") }}
  • -
  • +
  • {{ $t("nav.bubble_timeline") }}
  • -
  • +
  • {{ $t("nav.public_tl") }}
  • -
  • +
  • state.users.currentUser, privateMode: state => state.instance.private, federating: state => state.instance.federating, - showBubbleTimeline: state => (state.instance.localBubbleInstances.length > 0), - publicTimelineVisibility: state => state.instance.publicTimelineVisibility, - federatedTimelineAvailable: state => state.instance.federatedTimelineAvailable, + publicTimelineVisible, + federatedTimelineVisible, + bubbleTimelineVisible, }) } } diff --git a/src/components/timeline_menu_tabs/timeline_menu_content.vue b/src/components/timeline_menu_tabs/timeline_menu_content.vue index bb54595d..28e58714 100644 --- a/src/components/timeline_menu_tabs/timeline_menu_content.vue +++ b/src/components/timeline_menu_tabs/timeline_menu_content.vue @@ -16,7 +16,7 @@ >{{ $t("nav.home_timeline") }}
  • -
  • +
  • {{ $t("nav.bubble_timeline") }}
  • -
  • +
  • {{ $t("nav.public_tl") }}
  • -
  • +
  • state.users.currentUser, - publicTimelineVisibility: state => state.instance.publicTimelineVisibility, - federatedTimelineAvailable: state => state.instance.federatedTimelineAvailable, - showBubbleTimeline: state => (state.instance.localBubbleInstances.length > 0), + publicTimelineVisible, + federatedTimelineVisible, + bubbleTimelineVisible, }) }, methods: { diff --git a/src/components/timeline_menu_tabs/timeline_menu_tabs.vue b/src/components/timeline_menu_tabs/timeline_menu_tabs.vue index 1f0d47ee..96340508 100644 --- a/src/components/timeline_menu_tabs/timeline_menu_tabs.vue +++ b/src/components/timeline_menu_tabs/timeline_menu_tabs.vue @@ -18,7 +18,7 @@ @@ -42,7 +42,7 @@ ( + state.instance.publicTimelineVisibility[timeline] ?? false +); + +const currentUser = (state) => state.users.currentUser; + +const currentUserOrTimelineVisibleUnauthenticated = (state, timeline) => ( + currentUser(state) || timelineVisibleUnauthenticated(state, timeline) +); + +const federatedTimelineAvailable = (state) => state.instance.federatedTimelineAvailable; + +export const federatedTimelineVisible = (state) => ( + federatedTimelineAvailable(state) && currentUserOrTimelineVisibleUnauthenticated(state, 'federated') +); + +export const publicTimelineVisible = (state) => ( + currentUserOrTimelineVisibleUnauthenticated(state, 'local') +); + +export const bubbleTimelineVisible = (state) => ( + state.instance.localBubbleInstances.length > 0 && currentUserOrTimelineVisibleUnauthenticated(state, 'bubble') +); From 47fc082fb96a187a40413f2dd9df5757abd6b566 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ng=C3=B4=20Ng=E1=BB=8Dc=20=C4=90=E1=BB=A9c=20Huy?= Date: Fri, 24 Mar 2023 20:44:29 +0700 Subject: [PATCH 13/25] Fix floating point error for poll expiry Previous code multiply with 0.001 before multiplication which leads to a floating point error. By changing it to division by 1000 after multiplication this is avoided. --- src/components/poll/poll_form.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/poll/poll_form.js b/src/components/poll/poll_form.js index e30645c3..89f01eb4 100644 --- a/src/components/poll/poll_form.js +++ b/src/components/poll/poll_form.js @@ -103,9 +103,9 @@ export default { convertExpiryFromUnit (unit, amount) { // Note: we want seconds and not milliseconds switch (unit) { - case 'minutes': return 0.001 * amount * DateUtils.MINUTE - case 'hours': return 0.001 * amount * DateUtils.HOUR - case 'days': return 0.001 * amount * DateUtils.DAY + case 'minutes': return amount * DateUtils.MINUTE / 1000 + case 'hours': return amount * DateUtils.HOUR / 1000 + case 'days': return amount * DateUtils.DAY / 1000 } }, expiryAmountChange () { From 14cedc5ed1f82f0b4b21b93c5a6e354f7295b125 Mon Sep 17 00:00:00 2001 From: FloatingGhost Date: Sat, 1 Apr 2023 07:55:47 +0100 Subject: [PATCH 14/25] don't crash if `class` isn't a list --- src/components/rich_content/rich_content.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/rich_content/rich_content.jsx b/src/components/rich_content/rich_content.jsx index c5fb1688..0da7f3de 100644 --- a/src/components/rich_content/rich_content.jsx +++ b/src/components/rich_content/rich_content.jsx @@ -188,7 +188,7 @@ export default { break } case 'span': - if (this.handleLinks && attrs['class'] && attrs['class'].includes('h-card')) { + if (this.handleLinks && attrs?.['class']?.includes?.('h-card')) { return ['', children.map(processItem), ''] } } From 97ff4a7241e8e27d56c640a0ab60edeca300bfb1 Mon Sep 17 00:00:00 2001 From: Weblate Date: Wed, 5 Apr 2023 18:57:45 +0000 Subject: [PATCH 15/25] Translated using Weblate (German) Currently translated at 99.5% (1036 of 1041 strings) Co-authored-by: Johann Co-authored-by: Weblate Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/de/ Translation: Pleroma fe/pleroma-fe --- src/i18n/de.json | 77 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/src/i18n/de.json b/src/i18n/de.json index 17ad220b..a4ec886c 100644 --- a/src/i18n/de.json +++ b/src/i18n/de.json @@ -252,6 +252,10 @@ "hint": "Anmelden um an der Diskussion teilzunehmen", "login": "Anmelden", "logout": "Abmelden", + "logout_confirm": "Willst du dich wirklich abmelden?", + "logout_confirm_accept_button": "Abmelden", + "logout_confirm_cancel_button": "Abbrechen", + "logout_confirm_title": "Abmelden", "password": "Passwort", "placeholder": "meinbenutzername", "recovery_code": "Wiederherstellungscode", @@ -264,6 +268,32 @@ "next": "Weiter", "previous": "Zurück" }, + "moderation": { + "moderation": "Moderation", + "reports": { + "add_note": "Notiz hinzufügen", + "close": "Schließen", + "delete_note": "Löschen", + "delete_note_accept": "Ja, löschen", + "delete_note_cancel": "Nein, behalten", + "delete_note_confirm": "Soll diese Notiz wirklich gelöscht werden?", + "delete_note_title": "Löschen bestätigen", + "no_content": "Keine Beschreibung angegeben", + "no_reports": "Keine Meldungen verfügbar", + "note_placeholder": "Hinterlasse eine Notiz", + "notes": "{ count } Notiz | { count } Notizen", + "reopen": "Wieder öffnen", + "report": "Meldung über", + "reports": "Meldungen", + "resolve": "Lösen", + "show_closed": "Geschlossene anzeigen", + "statuses": "{ count } Post| { count } Posts", + "tag_policy_notice": "Schalte die TagPolicy-MRF ein, um Post-Beschränkungen einzustellen", + "tags": "Post-Einschränkungen einstellen" + }, + "statuses": "Posts", + "users": "Benutzer" + }, "nav": { "about": "Über", "administration": "Administration", @@ -278,6 +308,7 @@ "interactions": "Interaktionen", "lists": "Listen", "mentions": "Erwähnungen", + "moderation": "Moderation", "preferences": "Voreinstellungen", "public_timeline_description": "Öffentliche Beiträge von dieser Instanz", "public_tl": "Öffentliche Zeitleiste", @@ -374,6 +405,8 @@ } }, "registration": { + "awaiting_email_confirmation": "Dein Account wurde registriert und eine E-Mail wurde an deine Adresse gesendet. Bitte lies die E-Mail, um die Registrierung abzuschließen.", + "awaiting_email_confirmation_title": "Warte auf E-Mail-Bestätigung", "bio": "Bio", "bio_placeholder": "z. B.\nHallo! Willkommen auf meinem Profil.\nIch mag Anime und Spiele. Hoffentlich können wir Freunde sein!", "captcha": "CAPTCHA", @@ -387,6 +420,8 @@ "reason_placeholder": "Diese Instanz bestätigt Registrierungen manuell. \nLass die Admins wissen warum du dich registrieren willst.", "register": "Registrierung", "registration": "Registrierung", + "request_sent": "Deine Bitte zur Registrierung wurde weitergeleitet. Du erhälst eine E-Mail, wenn deiner Registrierung zugestimmt wurde.", + "request_sent_title": "Bitte zur Registrierung gesendet", "token": "Einladungsschlüssel", "username_placeholder": "z. B. akko", "validations": { @@ -496,6 +531,8 @@ "enable_web_push_notifications": "Web-Pushbenachrichtigungen aktivieren", "enter_current_password_to_confirm": "Gib dein aktuelles Passwort ein, um deine Identität zu bestätigen", "expert_mode": "Erweiterte Einstellungen anzeigen", + "expire_posts_enabled": "Posts löschen, die älter als eine Anzahl an Tagen sind", + "expire_posts_input_placeholder": "Anzahl an Tagen", "export_theme": "Farbschema speichern", "file_export_import": { "backup_restore": "Einstellungen backuppen", @@ -688,6 +725,19 @@ "setting_changed": "Einstellungen weichen von den Standardeinstellungen ab", "setting_server_side": "Diese Einstellung hängt an deinem Profil und gilt für alle Sitzungen und Clients", "settings": "Einstellungen", + "settings_profile": "Einstellungs-Profile", + "settings_profile_creation": "Neues Profil erstellen", + "settings_profile_creation_new_name_label": "Name", + "settings_profile_creation_submit": "Erstellen", + "settings_profile_currently": "Benutze Profil {name} (version: {version})", + "settings_profile_delete": "Löschen", + "settings_profile_delete_confirm": "Dieses Profil wirklich löschen?", + "settings_profile_force_sync": "Synchronisieren", + "settings_profile_in_use": "In Benutzung", + "settings_profile_use": "Verwenden", + "settings_profiles_refresh": "Einstellungs-Profile neu laden", + "settings_profiles_show": "Alle Einstellungs-Profile anzeigen", + "settings_profiles_unshow": "Alle Einstellungs-Profile verbergen", "show_admin_badge": "Zeige Admin-Abzeichen auf meinem Profil", "show_moderator_badge": "Zeige Moderator-Abzeichen auf meinem Profil", "show_nav_shortcuts": "Zusätzliche Schnellnavigation im Top-Panel anzeigen", @@ -867,6 +917,7 @@ "useStreamingApi": "Empfange Posts und Benachrichtigungen in Echtzeit", "useStreamingApiWarning": "(Nicht empfohlen, experimentell, bekannt dafür, Posts zu überspringen)", "use_at_icon": "{'@'}-Symbol als Icon und nicht als Text anzeigen", + "use_blurhash": "Blurhash für NSFW-Vorschauen verwenden", "use_contain_fit": "Vorschaubilder nicht zuschneiden", "use_one_click_nsfw": "Heikle Anhänge mit nur einem Klick öffnen", "user_mutes": "User", @@ -887,6 +938,12 @@ "word_filter": "Wortfilter", "wordfilter": "Wortfilter" }, + "settings_profile": { + "creating": "Erstelle ein neues Einstellungs-Profil \"{profile}\"...", + "synchronization_error": "Konnte Einstellungen nicht synchronisieren: {err}", + "synchronized": "Einstellungen synchronisiert!", + "synchronizing": "Synchronisiere Einstellungs-Profil \"{profile}\"..." + }, "status": { "ancestor_follow": "Zeige {numReplies} andere Antwort unter dieser Nachricht | Zeige {numReplies} andere Antworten unter dieser Nachricht", "ancestor_follow_with_icon": "{icon} {text}", @@ -920,6 +977,11 @@ "pin": "An Profil anheften", "pinned": "Angeheftet", "plus_more": "+{number} mehr", + "redraft": "Löschen & neu erstellen", + "redraft_confirm": "Diesen Post wirklich löschen und neu erstellen? Interaktionen des ursprünglichen Posts werden nicht erhalten.", + "redraft_confirm_accept_button": "Ja, löschen und neu erstellen", + "redraft_confirm_cancel_button": "Nein, das Original behalten", + "redraft_confirm_title": "Löschen und neu erstellen bestätigen", "remove_attachment": "Anhang entfernen", "repeat_confirm": "Nachricht wirklich wiederholen?", "repeat_confirm_accept_button": "Ja, wiederholen", @@ -948,6 +1010,7 @@ "thread_show_full": "Zeige {numStatus} Antwort | Zeige {numStatus} Antworten", "thread_show_full_with_icon": "{icon} {text}", "translate": "Übersetzen", + "translated_from": "Übersetzt von {language}", "unbookmark": "Lesezeichen entfernen", "unmute_conversation": "Konversation nicht mehr stummstellen", "unpin": "Nicht mehr an Profil anheften", @@ -979,6 +1042,7 @@ "collapse": "Einklappen", "conversation": "Unterhaltung", "error": "Fehler beim Lesen der Timeline: {0}", + "follow_tag": "Hashtag folgen", "load_older": "Lade ältere Nachrichten", "no_more_statuses": "Keine weiteren Nachrichten", "no_retweet_hint": "Die Nachricht ist als nur-für-Follower oder Direktnachricht markiert und kann nicht wiederholt oder zitiert werden", @@ -988,8 +1052,12 @@ "show_new": "Zeige Neuere", "socket_broke": "Netzverbindung verloren: CloseEvent code {0}", "socket_reconnected": "Netzverbindung hergestellt", + "unfollow_tag": "Hashtag entfolgen", "up_to_date": "Aktuell" }, + "toast": { + "no_translation_target_set": "Keine Zielsprache für Übersetzungen eingestellt - das könnte schiefgehen. Bitte stell eine Zielsprache in deinen Einstellungen ein." + }, "tool_tip": { "accept_follow_request": "Folgeanfrage annehmen", "add_reaction": "Emoji-Reaktion hinzufügen", @@ -1049,6 +1117,7 @@ "block_confirm_title": "Benutzer blockieren", "block_progress": "Blocken…", "blocked": "Blockiert!", + "blocks_you": "Blockt dich!", "bot": "Bot", "deactivated": "Deaktiviert", "deny": "Ablehnen", @@ -1063,7 +1132,10 @@ "follow_cancel": "Anfrage ablehnen", "follow_progress": "Anfragen…", "follow_sent": "Anfrage gesendet!", + "follow_tag": "Hashtag folgen", "follow_unfollow": "Folgen beenden", + "followed_tags": "Gefolgte Hashtags", + "followed_users": "Gefolgte Benutzer", "followees": "Folgt", "followers": "Folgende", "following": "Folgst du!", @@ -1088,11 +1160,14 @@ "mute_domain": "Domain blockieren", "mute_progress": "Stummschalten erfolgt…", "muted": "Stummgeschaltet", + "not_following_any_hashtags": "Du folgst keinen Hashtags", "note": "Private Notiz", "per_day": "pro Tag", "remote_follow": "Folgen", + "remove_follower": "Nicht mehr folgen", "replies": "Mit Antworten", "report": "Melden", + "requested_by": "Möchte dir gern folgen", "show_repeats": "Geteilte Beiträge anzeigen", "statuses": "Nachrichten", "subscribe": "Folgen", @@ -1102,11 +1177,13 @@ "unfollow_confirm_accept_button": "Ja, nicht mehr folgen", "unfollow_confirm_cancel_button": "Nein, weiter folgen", "unfollow_confirm_title": "Benutzer nicht mehr folgen", + "unfollow_tag": "Hashtag nicht mehr folgen", "unmute": "Stummschalten aufheben", "unmute_progress": "Aufhebung erfolgt…", "unsubscribe": "Entfolgen" }, "user_profile": { + "field_validated": "Link verifiziert", "profile_does_not_exist": "Profil nicht vorhanden.", "profile_loading_error": "Beim Laden dieses Profils ist ein Fehler aufgetreten.", "timeline_title": "Beiträge" From ec9753758f16087d93f518a2125bd10d0cdfdd61 Mon Sep 17 00:00:00 2001 From: Weblate Date: Wed, 5 Apr 2023 18:57:45 +0000 Subject: [PATCH 16/25] Translated using Weblate (Spanish) Currently translated at 90.8% (938 of 1033 strings) Co-authored-by: Weblate Co-authored-by: taretka Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/es/ Translation: Pleroma fe/pleroma-fe --- src/i18n/es.json | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/i18n/es.json b/src/i18n/es.json index 28b8c675..dd910232 100644 --- a/src/i18n/es.json +++ b/src/i18n/es.json @@ -282,18 +282,18 @@ "delete_note_title": "Confirma la eliminación", "no_content": "Sin descripción dada", "no_reports": "No hay informes que mostrar", - "note_placeholder": "Dejar una nota...", + "note_placeholder": "Dejar una nota", "notes": "{ count } nota | { count } notas", "reopen": "Reabrir", "report": "Reportar", "reports": "Reportes", "resolve": "Resolver", "show_closed": "Mostrar cerrados", - "statuses": "{ count } estado | { count } estados", + "statuses": "{ count } publicación | { count } publicaciones", "tag_policy_notice": "Habilitar TagPolicy MRF para establecer restricciones de publicación", "tags": "Establecer restricciones de publicación" }, - "statuses": "Estados", + "statuses": "Publicaciones", "users": "Usuarios" }, "nav": { @@ -535,6 +535,8 @@ "enable_web_push_notifications": "Habilitar las notificiaciones en el navegador", "enter_current_password_to_confirm": "Introduce la contraseña actual para confirmar tu identidad", "expert_mode": "Mostrar avanzados", + "expire_posts_enabled": "Eliminar publicaciones después de una cantidad determinada de días", + "expire_posts_input_placeholder": "Número de días", "export_theme": "Exportar tema", "file_export_import": { "backup_restore": "Copia de seguridad de la configuración", @@ -696,6 +698,7 @@ "remove_alias": "Eliminar este alias", "remove_backup": "Eliminar", "render_mfm": "Renderizar Markdown de Misskey", + "render_mfm_on_hover": "Pausa las animaciones MFM hasta que se desplace el mensaje", "replies_in_timeline": "Réplicas en la línea temporal", "reply_visibility_all": "Mostrar todas las réplicas", "reply_visibility_following": "Solo mostrar réplicas para mí o usuarios a los que sigo", @@ -719,6 +722,7 @@ "security": "Seguridad", "security_tab": "Seguridad", "sensitive_by_default": "Identificar las publicaciones como sensibles de forma predeterminada", + "sensitive_if_subject": "Marcar automáticamente las imágenes como confidenciales si se especifica una advertencia de contenido", "set_new_avatar": "Cambiar avatar", "set_new_mascot": "Fijar nueva mascota", "set_new_profile_background": "Cambiar el fondo del perfil", @@ -736,10 +740,16 @@ "settings_profile_force_sync": "Sincronizar", "settings_profile_in_use": "En uso", "settings_profile_use": "Usar", + "settings_profiles_refresh": "Recargar perfiles de configuración", "settings_profiles_show": "Mostrar todos los perfiles de configuración", "settings_profiles_unshow": "Ocultar todos los perfiles de configuración", "show_admin_badge": "Mostrar la insignia de \"Administrador/a\" en mi perfil", "show_moderator_badge": "Mostrar la insignia de \"Moderador/a\" en mi perfil", + "show_nav_shortcuts": "Mostrar accesos directos de navegación adicionales en el panel superior", + "show_panel_nav_shortcuts": "Mostrar accesos directos de navegación de la línea de tiempo en la parte superior del panel", + "show_scrollbars": "Mostrar las barras de desplazamiento de la columna lateral", + "show_wider_shortcuts": "Mostrar una brecha más amplia entre los accesos directos del panel superior", + "show_yous": "Mostrar (Tú)s", "stop_gifs": "Iniciar GIFs al pasar el ratón", "streaming": "Habilitar la transmisión automática de nuevas publicaciones cuando se desplaza hacia la parte superior", "style": { @@ -888,9 +898,9 @@ "use_source": "Nueva versión" } }, - "subject_input_always_show": "Mostrar siempre el campo del tema", - "subject_line_behavior": "Copiar el tema en las respuestas", - "subject_line_email": "Como email: \"re: tema\"", + "subject_input_always_show": "Mostrar siempre el campo de advertencia de contenido", + "subject_line_behavior": "Copiar el campo de advertencia en las respuestas", + "subject_line_email": "Como email: \"re: advertencia\"", "subject_line_mastodon": "Como mastodon: copiar como es", "subject_line_noop": "No copiar", "text": "Texto", @@ -898,8 +908,13 @@ "theme_help": "Use códigos de color hexadecimales (#rrggbb) para personalizar su tema de colores.", "theme_help_v2_1": "También puede invalidar los colores y la opacidad de ciertos componentes si activa la casilla de verificación. Use el botón \"Borrar todo\" para deshacer los cambios.", "theme_help_v2_2": "Los iconos debajo de algunas publicaciones son indicadores de contraste de fondo/texto, desplace el ratón por encima para obtener información más detallada. Tenga en cuenta que cuando se utilizan indicadores de contraste de transparencia se muestra el peor caso posible.", + "third_column_mode": "Cuando haya suficiente espacio, muestre la tercera columna", + "third_column_mode_none": "No mostrar la tercera columna en absoluto", + "third_column_mode_notifications": "Columna de notificaciones", + "third_column_mode_postform": "Formulario principal de publicación y navegación", "token": "Token", "tooltipRadius": "Información/alertas", + "translation_language": "Idioma de traducción automática", "type_domains_to_mute": "Buscar dominios para silenciar", "upload_a_photo": "Subir una foto", "useStreamingApi": "Recibir publicaciones y notificaciones en tiempo real", From 8d3219a6d261220d05e3e58c4fa90fc8aae179f2 Mon Sep 17 00:00:00 2001 From: Weblate Date: Wed, 5 Apr 2023 18:57:45 +0000 Subject: [PATCH 17/25] Translated using Weblate (Indonesian) Currently translated at 65.4% (676 of 1033 strings) Translated using Weblate (Indonesian) Currently translated at 65.4% (676 of 1033 strings) Co-authored-by: Weblate Co-authored-by: t1 Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/id/ Translation: Pleroma fe/pleroma-fe --- src/i18n/id.json | 99 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 79 insertions(+), 20 deletions(-) diff --git a/src/i18n/id.json b/src/i18n/id.json index a1cfe7c1..71e4ef44 100644 --- a/src/i18n/id.json +++ b/src/i18n/id.json @@ -8,6 +8,7 @@ "reject": "Tolak" }, "mrf_policies": "Kebijakan MRF yang diaktifkan", + "mrf_policies_desc": "Kebijakan MRF memanipulasi federasi yang terjadi pada instansi ini. Kebijakan berikut adalah yang aktif:", "simple": { "accept": "Terima", "accept_desc": "Instansi ini hanya menerima pesan dari instansi-instansi berikut:", @@ -181,15 +182,44 @@ "lv": "Latvia", "nl": "Belanda", "pl": "Polandia", - "pt": "Portugal", + "pt": "Portugis", "ru": "Rusia", "sk": "Slovakia", "sv": "Swedia", "tr": "Turki", "translated_from": { - "ar": "Diterjemahkan dari @:languages.ar", - "bg": "Diterjemahkan dari @:languages.bg", - "en": "Diterjemahkan dari @:languages.en" + "ar": "Diterjemahkan dari bahasa @:languages.ar", + "az": "Diterjemahkan dari bahasa @:languages.az", + "bg": "Diterjemahkan dari bahasa @:languages.bg", + "cs": "Diterjemahkan dari bahasa @:languages.cs", + "da": "Diterjemahkan dari bahasa @:languages.da", + "de": "Diterjemahkan dari bahasa @:languages.de", + "el": "Diterjemahkan dari bahasa @:languages.el", + "en": "Diterjemahkan dari bahasa @:languages.en", + "eo": "Diterjemahkan dari bahasa @:languages.eo", + "es": "Diterjemahkan dari bahasa @:languages.es", + "fa": "Diterjemahkan dari bahasa @:languages.fa", + "fi": "Diterjemahkan dari bahasa @:languages.fi", + "fr": "Diterjemahkan dari bahasa @:languages.fr", + "ga": "Diterjemahkan dari bahasa @:languages.ga", + "he": "Diterjemahkan dari bahasa @:languages.he", + "hi": "Diterjemahkan dari bahasa @:languages.hi", + "hu": "Diterjemahkan dari bahasa @:languages.hu", + "id": "Diterjemahkan dari bahasa @:languages.id", + "it": "Diterjemahkan dari bahasa @:languages.it", + "ja": "Diterjemahkan dari bahasa @:languages.ja", + "ko": "Diterjemahkan dari bahasa @:languages.ko", + "lt": "Diterjemahkan dari bahasa @:languages.lt", + "lv": "Diterjemahkan dari bahasa @:languages.lv", + "nl": "Diterjemahkan dari bahasa @:languages.nl", + "pl": "Diterjemahkan dari bahasa @:languages.pl", + "pt": "Diterjemahkan dari bahasa @:languages.pt", + "ru": "Diterjemahkan dari bahasa @:languages.ru", + "sk": "Diterjemahkan dari bahasa @:languages.sk", + "sv": "Diterjemahkan dari bahasa @:languages.sv", + "tr": "Diterjemahkan dari bahasa @:languages.tr", + "uk": "Diterjemahkan dari bahasa @:languages.uk", + "zh": "Diterjemahkan dari bahasa @:languages.zh" }, "uk": "Ukraina", "zh": "Tionghoa" @@ -243,13 +273,17 @@ "delete_note_title": "Konfirmasi penghapusan", "no_content": "Tak diberikan keterangan", "no_reports": "Tak ada laporan", - "note_placeholder": "Tinggalkan catatan...", + "note_placeholder": "Tinggalkan catatan", + "notes": "{ count } catatan", "reopen": "Buka kembali", "reports": "Laporan", "resolve": "Selesaikan", - "show_closed": "Tampilkan yang telah ditutup" + "show_closed": "Tampilkan yang telah ditutup", + "statuses": "{ count } postingan", + "tag_policy_notice": "Aktifkan MRF TagPolicy untuk mengatur pembatasan postingan", + "tags": "Atur pembatasan postingan" }, - "statuses": "Status", + "statuses": "Postingan", "users": "Pengguna" }, "nav": { @@ -310,10 +344,11 @@ "expired": "Japat berakhir {0} yang lalu", "expires_in": "Japat berakhir dalam {0}", "expiry": "Usia japat", + "multiple_choices": "Lebih dari satu opsi dapat dipilih", "not_enough_options": "Terlalu sedikit opsi yang unik pada japat", "option": "Opsi", "people_voted_count": "{count} orang memilih | {count} orang memilih", - "single_choice": "", + "single_choice": "Hanya satu opsi dapat dipilih", "type": "Jenis japat", "vote": "Pilih", "votes": "suara", @@ -406,6 +441,7 @@ "account_backup_description": "Ini memungkinkan kamu untuk mengunduh arsip yang berisi informasi tentang akun dan postingan kamu, namun belum bisa diimpor ke akun Pleroma.", "account_privacy": "Privasi", "add_backup": "Buat cadangan baru", + "add_backup_error": "Gagal menambahkan cadangan baru: {error}", "added_backup": "Cadangan baru ditambahkan.", "allow_following_move": "Ikuti otomatis apabila akun yang diikuti pindah", "app_name": "Nama aplikasi", @@ -448,7 +484,11 @@ "confirm_dialogs_repeat": "Mengulangi postingan", "confirm_dialogs_unfollow": "Berhenti mengikuti seseorang", "confirm_new_password": "Konfirmasi kata sandi baru", - "conversation_display": "Gaya tampilan obrolan", + "conversation_display": "Gaya tampilan percakapan", + "conversation_display_tree": "Bercabang", + "conversation_other_replies_button_below": "Di bawah postingan", + "conversation_other_replies_button_inside": "Di postingan", + "current_avatar": "Avatarmu saat ini", "current_password": "Kata sandi saat ini", "data_import_export_tab": "Impor / ekspor data", "delete_account": "Hapus akun", @@ -462,6 +502,7 @@ "emoji_reactions_on_timeline": "Tampilkan reaksi emoji pada linimasa", "enable_web_push_notifications": "Aktifkan notifikasi push web", "enter_current_password_to_confirm": "Masukkan kata sandi kamu saat ini untuk mengonfirmasi identitas kamu", + "expert_mode": "Tampilkan pengaturan lanjutan", "expire_posts_enabled": "Hapus postingan setelah jumlah hari yang ditentukan", "expire_posts_input_placeholder": "Jumlah hari", "file_export_import": { @@ -469,17 +510,28 @@ "backup_settings": "Cadangkan pengaturan ke berkas", "backup_settings_theme": "Cadangkan pengaturan dan tema ke berkas", "errors": { - "file_slightly_new": "Versi minor berkas berbeda, beberapa pengaturan mungkin tidak termuat" - } + "file_slightly_new": "Versi minor berkas berbeda, beberapa pengaturan mungkin tidak termuat", + "file_too_new": "Versi major tidak kompatibel: {fileMajor}, PleromaFE ini (versi {feMajor}) terlalu lama untuk menanganinya", + "file_too_old": "Versi major tidak kompatibel: {fileMajor}, versi berkas terlalu lama dan tidak lagi didukung (min. versi {feMajor})", + "invalid_file": "Berkas yang dipilih bukan cadangan pengaturan Pleroma yang didukung. Tidak dibuat perubahan." + }, + "restore_settings": "Pulihkan pengaturan dari berkas" }, "filtering": "Penyaringan", + "filtering_explanation": "Semua postingan yang mengandung kata-kata ini akan dibisukan, satu kata per baris", "follow_import_error": "Terjadi kesalahan ketika mengimpor pengikut", "fun": "Seru", "general": "Umum", + "greentext": "Panah meme", + "hide_all_muted_posts": "Sembunyikan postingan yang dibisukan", + "hide_attachments_in_convo": "Sembunyikan lampiran pada percakapan", + "hide_attachments_in_tl": "Sembunyikan lampiran di linimasa", + "hide_bot_indication": "Sembunyikan tanda bot pada postingan", + "hide_filtered_statuses": "Sembunyikan semua postingan yang tersaring", "hide_followers_count_description": "Jangan tampilkan jumlah pengikut", - "hide_followers_description": "Jangan tampilkan siapa yang mengikuti saya", + "hide_followers_description": "Jangan tampilkan siapa yang mengikutiku", "hide_follows_count_description": "Jangan tampilkan jumlah mengikuti", - "hide_follows_description": "Jangan tampilkan siapa yang saya ikuti", + "hide_follows_description": "Jangan tampilkan siapa yang aku ikuti", "hide_muted_posts": "Sembunyikan postingan-postingan dari pengguna yang dibisukan", "hide_post_stats": "Sembunyikan statistik postingan (seperti jumlah favorit)", "hide_shoutbox": "Sembunyikan kotak suara instansi", @@ -493,9 +545,16 @@ "invalid_theme_imported": "Berkas yang dipilih bukan sebuah tema yang didukung Pleroma. Tidak ada perubahan yang dibuat pada tema kamu.", "limited_availability": "Tidak tersedia di browser kamu", "links": "Tautan", + "lock_account_description": "Batasi akunmu kepada pengikut yang sudah disetujui saja", "loop_video": "Ulang-ulang video", "loop_video_silent_only": "Ulang-ulang video tanpa suara (seperti \"gif\" Mastodon)", - "max_thumbnails": "Jumlah thumbnail maksimum per postingan", + "max_thumbnails": "Jumlah thumbnail maksimum per postingan (kosong = tidak terbatas)", + "mention_link_bolden_you": "Sorot sebutan kamu apabila kamu disebut", + "mention_link_display": "Tampilkan tautan sebutan", + "mention_link_display_full": "selalu sebagai nama lengkap (cth. {'@'}foo{'@'}example.org)", + "mention_link_display_full_for_remote": "sebagai nama lengkap hanya untuk pengguna di instansi lain (cth. {'@'}foo{'@'}example.org)", + "mention_link_display_short": "selalu sebagai nama pendek (cth. {'@'}foo)", + "mention_link_show_avatar": "Tampilkan avatar pengguna di samping tautan", "mfa": { "authentication_methods": "Metode otentikasi", "confirm_and_enable": "Konfirmasi & aktifkan OTP", @@ -541,9 +600,9 @@ }, "profile_tab": "Profil", "reply_visibility_all": "Tampilkan semua balasan", - "reply_visibility_following": "Hanya tampilkan balasan yang ditujukan kepada saya atau orang yang saya ikuti", - "reply_visibility_following_short": "Tampilkan balasan ke orang yang saya ikuti", - "reply_visibility_self": "Hanya tampilkan balasan yang ditujukan kepada saya", + "reply_visibility_following": "Hanya tampilkan balasan yang ditujukan kepadaku atau orang yang aku ikuti", + "reply_visibility_following_short": "Tampilkan balasan ke orang yang aku ikuti", + "reply_visibility_self": "Hanya tampilkan balasan yang ditujukan kepadaku", "save": "Simpan perubahan", "saving_err": "Terjadi kesalahan ketika menyimpan pengaturan", "saving_ok": "Pengaturan disimpan", @@ -554,8 +613,8 @@ "set_new_avatar": "Tetapkan avatar baru", "set_new_profile_background": "Tetapkan latar belakang profil baru", "settings": "Pengaturan", - "show_admin_badge": "Tampilkan lencana \"Admin\" di profil saya", - "show_moderator_badge": "Tampilkan lencana \"Moderator\" di profil saya", + "show_admin_badge": "Tampilkan lencana \"Admin\" di profilku", + "show_moderator_badge": "Tampilkan lencana \"Moderator\" di profilku", "style": { "advanced_colors": { "_tab_label": "Lanjutan", @@ -598,7 +657,7 @@ }, "preview": { "button": "Tombol", - "checkbox": "Saya telah membaca sekilas syarat dan ketentuan", + "checkbox": "Aku telah membaca sekilas syarat dan ketentuan", "error": "Contoh kesalahan", "faint_link": "manual berguna", "fine_print": "Baca {0} kami untuk belajar sesuatu yang tak ada gunanya!", From 1e1cab643c4805bab6de5e8a1905e26d577f7164 Mon Sep 17 00:00:00 2001 From: Weblate Date: Wed, 5 Apr 2023 18:57:45 +0000 Subject: [PATCH 18/25] Translated using Weblate (Dutch) Currently translated at 99.7% (1038 of 1041 strings) Co-authored-by: Fristi Co-authored-by: Weblate Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/nl/ Translation: Pleroma fe/pleroma-fe --- src/i18n/nl.json | 70 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/src/i18n/nl.json b/src/i18n/nl.json index ed6619a5..15d639c4 100644 --- a/src/i18n/nl.json +++ b/src/i18n/nl.json @@ -254,6 +254,10 @@ "hint": "Log in om deel te nemen aan de discussie", "login": "Inloggen", "logout": "Uitloggen", + "logout_confirm": "Weet je zeker dat je wilt uitloggen?", + "logout_confirm_accept_button": "Uitloggen", + "logout_confirm_cancel_button": "Annuleren", + "logout_confirm_title": "Uitloggen", "password": "Wachtwoord", "placeholder": "mijngebruikersnaam", "recovery_code": "Herstelcode", @@ -266,6 +270,30 @@ "next": "Volgende", "previous": "Vorige" }, + "moderation": { + "moderation": "Moderatie", + "reports": { + "add_note": "Notitie toevoegen", + "close": "Sluiten", + "delete_note": "Verwijderen", + "delete_note_accept": "Ja, verwijderen", + "delete_note_cancel": "Nee, behouden", + "delete_note_confirm": "Weet je zeker dat je deze notitie wilt verwijderen?", + "delete_note_title": "Verwijderen bevestigen", + "no_content": "Geen omschrijving beschikbaar", + "no_reports": "Geen rapporten beschikbaar", + "notes": "{ count } notitie | { count } notities", + "reopen": "Heropenen", + "reports": "Rapporten", + "resolve": "Oplossen", + "show_closed": "Afgesloten tonen", + "statuses": "{ count } bericht| { count } berichten", + "tag_policy_notice": "Activeer de TagPolicy MRF om bericht-beperkingen in te stellen", + "tags": "Bericht-beperkingen instellen" + }, + "statuses": "Berichten", + "users": "Gebruikers" + }, "nav": { "about": "Over ons", "administration": "Beheer", @@ -282,6 +310,7 @@ "interactions": "Interacties", "lists": "Lijsten", "mentions": "Vermeldingen", + "moderation": "Moderatie", "preferences": "Voorkeuren", "public_timeline_description": "Openbare berichten van deze instantie", "public_tl": "Openbare tijdlijn", @@ -378,6 +407,8 @@ } }, "registration": { + "awaiting_email_confirmation": "Je account is geregistreerd en een e-mail verzonden naar je e-mailadres ter bevestiging. Controleer je e-mail inbox om de registratie af te ronden.", + "awaiting_email_confirmation_title": "In afwachting van e-mail bevestiging", "bio": "Bio", "bio_placeholder": "Bijv.\nHallo! Welkom op mijn bio.\nIk vind anime en games leuk. Hopelijk kunnen we vrienden zijn!", "captcha": "CAPTCHA", @@ -391,6 +422,8 @@ "reason_placeholder": "Deze instantie keurt registraties handmatig goed.\nLaat de beheerder weten waarom je je wilt registreren.", "register": "Registreren", "registration": "Registratie", + "request_sent": "Je registratieverzoek zal worden beoordeeld. Indien je account wordt goed gekeurd, zul je een e-mail ontvangen.", + "request_sent_title": "Registratieverzoek verzonden", "token": "Uitnodigingstoken", "username_placeholder": "bijv. akko", "validations": { @@ -500,6 +533,8 @@ "enable_web_push_notifications": "Web push meldingen inschakelen", "enter_current_password_to_confirm": "Voer je huidige wachtwoord in om je identiteit te bevestigen", "expert_mode": "Geavanceerde opties tonen", + "expire_posts_enabled": "Berichten ouder dan een ingesteld aantal dagen verwijderen", + "expire_posts_input_placeholder": "Aantal dagen", "export_theme": "Preset opslaan", "file_export_import": { "backup_restore": "Instellingen back-up", @@ -693,6 +728,18 @@ "setting_changed": "Instelling verschilt van standaard waarde", "setting_server_side": "Deze instelling is gebonden aan je profiel en beïnvloed alle sessies en clients", "settings": "Instellingen", + "settings_profile": "Instellingsprofielen", + "settings_profile_creation": "Nieuw profiel aanmaken", + "settings_profile_creation_new_name_label": "Naam", + "settings_profile_creation_submit": "Aanmaken", + "settings_profile_delete": "Verwijderen", + "settings_profile_delete_confirm": "Weet je zeker dat je dit profiel wilt verwijderen?", + "settings_profile_force_sync": "Synchroniseren", + "settings_profile_in_use": "In gebruik", + "settings_profile_use": "Gebruiken", + "settings_profiles_refresh": "Instellingsprofielen verversen", + "settings_profiles_show": "Alle instellingsprofielen tonen", + "settings_profiles_unshow": "Alle instellingsprofielen verbergen", "show_admin_badge": "\"Beheerder\" badge in mijn profiel tonen", "show_moderator_badge": "\"Moderator\" badge in mijn profiel tonen", "show_nav_shortcuts": "Extra navigatie snelkoppelingen tonen in top paneel", @@ -872,6 +919,7 @@ "useStreamingApi": "Berichten en meldingen in real-time ontvangen", "useStreamingApiWarning": "Iets experimenteels met berichten streamen uwu miss kun je beter uit laten ofzo?", "use_at_icon": "{'@'} symbool als icoon tonen in plaats van tekst", + "use_blurhash": "Waas tonen over NSFW-miniaturen", "use_contain_fit": "Bijlage in miniaturen niet bijsnijden", "use_one_click_nsfw": "Gevoelige bijlagen met slechts één klik openen", "user_mutes": "Gebruikers", @@ -892,6 +940,12 @@ "word_filter": "Woord filter", "wordfilter": "Woordfilter" }, + "settings_profile": { + "creating": "Bezig met nieuw profiel \"{profile}\" aan te maken...", + "synchronization_error": "Instellingen konden niet gesynchroniseerd worden: {err}", + "synchronized": "Instellingen gesynchroniseerd!", + "synchronizing": "Bezig met profiel \"{profile}\" te synchroniseren..." + }, "status": { "ancestor_follow": "{numReplies} ander antwoord onder dit bericht tonen | {numReplies} andere antwoorden onder dit bericht tonen", "ancestor_follow_with_icon": "{icon} {text}", @@ -925,6 +979,11 @@ "pin": "Aan profiel vastmaken", "pinned": "Vastgezet", "plus_more": "+{number} meer", + "redraft": "Verwijderen & opnieuw opstellen", + "redraft_confirm": "Weet je zeker at je dit bericht wilt verwijderen en opnieuw opstellen? Interacties met het originele bericht zullen vervallen.", + "redraft_confirm_accept_button": "Ja, verwijderen en opnieuw opstellen", + "redraft_confirm_cancel_button": "Nee, origineel bericht behouden", + "redraft_confirm_title": "Verwijderen & opnieuw opstellen bevestigen", "remove_attachment": "Bijlage verwijderen", "repeat_confirm": "Weet je zeker dat je dit bericht wilt herhalen?", "repeat_confirm_accept_button": "Ja, herhalen", @@ -985,6 +1044,7 @@ "collapse": "Invouwen", "conversation": "Gesprek", "error": "Fout bij het ophalen van tijdlijn: {0}", + "follow_tag": "Hashtag volgen", "load_older": "Oudere berichten laden", "no_more_statuses": "Geen verdere berichten", "no_retweet_hint": "Bericht is gemarkeerd als enkel-volgers of privé en kan niet worden herhaald of geciteerd", @@ -994,6 +1054,7 @@ "show_new": "Nieuwe tonen", "socket_broke": "Realtime verbinding verloren: CloseEvent code {0}", "socket_reconnected": "Realtime verbinding opgezet", + "unfollow_tag": "Hashtag ontvolgen", "up_to_date": "Up-to-date" }, "toast": { @@ -1058,6 +1119,7 @@ "block_confirm_title": "Gebruiker blokkeren", "block_progress": "Blokkeren…", "blocked": "Geblokkeerd!", + "blocks_you": "Blokkeert jou!", "bot": "Bot", "deactivated": "Gedeactiveerd", "deny": "Weigeren", @@ -1072,7 +1134,10 @@ "follow_cancel": "Verzoek annuleren", "follow_progress": "Aanvragen…", "follow_sent": "Verzoek verzonden!", + "follow_tag": "Hashtag volgen", "follow_unfollow": "Ontvolgen", + "followed_tags": "Gevolgde hashtags", + "followed_users": "Gevolgde gebruikers", "followees": "Volgen", "followers": "Volgers", "following": "Gevolgd!", @@ -1097,11 +1162,14 @@ "mute_domain": "Domein blokkeren", "mute_progress": "Negeren…", "muted": "Genegeerd", + "not_following_any_hashtags": "Je volgt momenteel geen hashtags", "note": "Privé notitie", "per_day": "per dag", "remote_follow": "Van afstand volgen", + "remove_follower": "Volger verwijderen", "replies": "Met Antwoorden", "report": "Rapporteren", + "requested_by": "Heeft verzocht je te volgen", "show_repeats": "Herhalingen tonen", "statuses": "Berichten", "subscribe": "Abonneren", @@ -1111,11 +1179,13 @@ "unfollow_confirm_accept_button": "Ja, ontvolgen", "unfollow_confirm_cancel_button": "Nee, niet ontvolgen", "unfollow_confirm_title": "Gebruiker ontvolgen", + "unfollow_tag": "Hashtag ontvolgen", "unmute": "Negeren opheffen", "unmute_progress": "Negeren opheffen…", "unsubscribe": "Abonnement opzeggen" }, "user_profile": { + "field_validated": "Link geverifieerd", "profile_does_not_exist": "Sorry, dit profiel bestaat niet.", "profile_loading_error": "Sorry, er is een fout opgetreden bij het laden van dit profiel.", "timeline_title": "Gebruikerstijdlijn" From b00487e51f1a9cdc40fc71a259d3fb4b6c4c1e55 Mon Sep 17 00:00:00 2001 From: Weblate Date: Wed, 5 Apr 2023 18:57:45 +0000 Subject: [PATCH 19/25] Translated using Weblate (Japanese (ja_EASY)) Currently translated at 71.6% (747 of 1042 strings) Translated using Weblate (Japanese (ja_EASY)) Currently translated at 71.6% (747 of 1042 strings) Translated using Weblate (Japanese (ja_EASY)) Currently translated at 54.1% (564 of 1042 strings) Co-authored-by: Hikaru Shinagawa Co-authored-by: Weblate Co-authored-by: kazari <6c577a54-aac9-482a-955e-745c858445e3@simplelogin.com> Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/ja_EASY/ Translation: Pleroma fe/pleroma-fe --- src/i18n/ja_easy.json | 313 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 294 insertions(+), 19 deletions(-) diff --git a/src/i18n/ja_easy.json b/src/i18n/ja_easy.json index dfd6b2a0..ed300b4a 100644 --- a/src/i18n/ja_easy.json +++ b/src/i18n/ja_easy.json @@ -1,20 +1,29 @@ { "about": { + "bubble_instances": "ローカルバブルインスタンス", "mrf": { "federation": "フェデレーション", + "keyword": { + "keyword_policies": "キーワードポリシー", + "reject": "おことわり", + "replace": "おきかえ" + }, "mrf_policies": "ゆうこうなMRFポリシー", "mrf_policies_desc": "MRFポリシーは、このインスタンスのフェデレーションのふるまいを、いじります。これらのMRFポリシーがゆうこうになっています:", "simple": { "accept": "うけいれ", "accept_desc": "このインスンスは、これらのインスタンスからのメッセージのみをうけいれます:", "ftl_removal": "「つながっているすべてのネットワーク」タイムラインからのぞく", - "ftl_removal_desc": "このインスタンスは、つながっているすべてのネットワーク」タイムラインから、これらのインスタンスを、とりのぞきます:", + "ftl_removal_desc": "このインスタンスは、「つながっているすべてのネットワーク」タイムラインから、これらのインスタンスを、とりのぞきます:", + "instance": "インスタンス", "media_nsfw": "メディアをすべてセンシティブにする", "media_nsfw_desc": "このインスタンスは、これらのインスタンスからおくられてきたメディアを、すべて、センシティブにマークします:", "media_removal": "メディアをのぞく", "media_removal_desc": "このインスタンスは、これらのインスタンスからおくられてきたメディアを、とりのぞきます:", + "not_applicable": "なし", "quarantine": "けんえき", - "quarantine_desc": "このインスタンスは、これらのインスタンスに、パブリックなとうこうのみを、おくります:", + "quarantine_desc": "このインスタンスは、これらのインスタンスに、とうこうをおくりません:", + "reason": "りゆう", "reject": "おことわり", "reject_desc": "このインスタンスは、これらのインスタンスからのメッセージをうけいれません:", "simple_policies": "インスタンスのポリシー" @@ -22,6 +31,49 @@ }, "staff": "スタッフ" }, + "announcements": { + "all_day_prompt": "いちにちじゅう", + "cancel_edit_action": "キャンセル", + "close_error": "とじる", + "delete_action": "けす", + "edit_action": "へんしゅう", + "end_time_display": "{time} におわります", + "end_time_prompt": "おわるじかん: ", + "inactive_message": "このおしらせは、アクティブではありません", + "mark_as_read_action": "よんだ!", + "page_header": "おしらせ", + "post_action": "とうこう", + "post_error": "エラーになりました: {error}", + "post_form_header": "おしらせする", + "post_placeholder": "おしらせのほんぶん", + "published_time_display": "{time} に、おしらせされました", + "start_time_display": "{time} から、はじまります", + "start_time_prompt": "はじまるじかん: ", + "submit_edit_action": "そうしん", + "title": "おしらせ" + }, + "chats": { + "chats": "チャット", + "delete": "けす", + "delete_confirm": "ほんとうに、このメッセージを、けしてもいいですか?", + "empty_chat_list_placeholder": "チャットはありません。あたらしく、チャットをはじみてみましょう!", + "empty_message_error": "からっぽのメッセージは、おくれません", + "error_loading_chat": "チャットをよみこむことが、できなかったかもしれません。", + "error_sending_message": "メッセージをおくることが、できなかったかもしれません。", + "message_user": "{nickname} にメッセージ", + "more": "つづき", + "new": "あたらしいチャット", + "you": "あなた:" + }, + "display_date": { + "today": "きょう" + }, + "domain_mute_card": { + "mute": "ミュート", + "mute_progress": "ミュートしています…", + "unmute": "ミュートをやめる", + "unmute_progress": "ミュートをとりけしています…" + }, "emoji": { "add_emoji": "えもじをうちこむ", "custom": "カスタムえもじ", @@ -29,6 +81,7 @@ "keep_open": "ピッカーをあけたままにする", "load_all": "すべてのえもじをロード ({emojiAmount} こあります)", "load_all_hint": "はじめの {saneAmount} このえもじだけがロードされています。すべてのえもじをロードすると、パフォーマンスがわるくなるかもしれません。", + "recent": "さいきんつかった", "search_emoji": "えもじをさがす", "stickers": "ステッカー", "unicode": "ユニコードえもじ" @@ -42,8 +95,15 @@ "scope_options": "こうかいはんいせんたく", "text_limit": "もじのかず", "title": "ゆうこうなきのう", + "upload_limit": "ファイルのおおきさのじょうげん", "who_to_follow": "おすすめユーザー" }, + "file_type": { + "audio": "おんせい", + "file": "ファイル", + "image": "がぞう", + "video": "ビデオ" + }, "finder": { "error_fetching_user": "ユーザーけんさくがエラーになりました", "find_user": "ユーザーをさがす" @@ -51,12 +111,32 @@ "general": { "apply": "てきよう", "cancel": "キャンセル", + "close": "とじる", "confirm": "たしかめる", "disable": "なし", + "dismiss": "わすれる", "enable": "あり", + "error_retry": "もういちど、ためしてください", + "flash_content": "クリックすると、Ruffle をつかって、フラッシュさくひんをひょうじします。(うまくうごかないかもしれません)", + "flash_fail": "フラッシュさくひんのロードに、しっぱいしました。コンソールに、くわしいことがかかれています。", + "flash_security": "フラッシュさくひんは、あぶないことをしてくるかもしれないので、ちゅういしてください。", "generic_error": "エラーになりました", + "loading": "ロードしています…", "more": "つづき", "optional": "かかなくてもよい", + "peek": "かくす", + "retry": "もういちど、ためしてください", + "role": { + "admin": "アドミン", + "moderator": "モデレーター" + }, + "scope_in_timeline": { + "direct": "ダイレクト", + "local": "ローカル: このとうこうは、このインスタンスのユーザーだけが、みることができます", + "private": "フォロワーげんてい", + "public": "パブリック", + "unlisted": "アンリステッド" + }, "show_less": "たたむ", "show_more": "つづきをみる", "submit": "そうしん", @@ -76,7 +156,86 @@ "interactions": { "favs_repeats": "リピートとおきにいり", "follows": "あたらしいフォロー", - "load_older": "ふるいやりとりをみる" + "load_older": "ふるいやりとりをみる", + "moves": "ユーザーをひっこしする" + }, + "languages": { + "ar": "アラビアご", + "az": "アゼルバイジャンご", + "bg": "ブルガリアご", + "cs": "チェコご", + "da": "デンマークご", + "de": "ドイツご", + "el": "ギリシャご", + "en": "えいご", + "eo": "エスご", + "es": "スペインご", + "fa": "ペルシャご", + "fi": "フィンランドご", + "fr": "フランスご", + "ga": "アイルランドご", + "he": "ヘブライご", + "hi": "ヒンディーご", + "hu": "ハンガリーご", + "id": "インドネシアご", + "it": "イタリアご", + "ja": "にほんご", + "ko": "かんこくご", + "lt": "リトアニアご", + "lv": "ラトビアご", + "nl": "オランダご", + "pl": "ポーランドご", + "pt": "ポルトガルご", + "ru": "ロシアご", + "sk": "スロバキアご", + "sv": "スウェーデンご", + "tr": "トルコご", + "translated_from": { + "ar": "@:languages.ar から、ほんやくされました", + "az": "@:languages.az から、ほんやくされました", + "bg": "@:languages.bg から、ほんやくされました", + "cs": "@:languages.cs から、ほんやくされました", + "da": "@:languages.da から、ほんやくされました", + "de": "@:languages.de から、ほんやくされました", + "el": "@:languages.el から、ほんやくされました", + "en": "@:languages.en から、ほんやくされました", + "eo": "@:languages.eo から、ほんやくされました", + "es": "@:languages.es から、ほんやくされました", + "fa": "@:languages.fa から、ほんやくされました", + "fi": "@:languages.fi から、ほんやくされました", + "fr": "@:languages.fr から、ほんやくされました", + "ga": "@:languages.ga から、ほんやくされました", + "he": "@:languages.he から、ほんやくされました", + "hi": "@:languages.hi から、ほんやくされました", + "hu": "@:languages.hu から、ほんやくされました", + "id": "@:languages.id から、ほんやくされました", + "it": "@:languages.it から、ほんやくされました", + "ja": "@:languages.ja から、ほんやくされました", + "ko": "@:languages.ko から、ほんやくされました", + "lt": "@:languages.lt から、ほんやくされました", + "lv": "@:languages.lv から、ほんやくされました", + "nl": "@:languages.nl から、ほんやくされました", + "pl": "@:languages.pl から、ほんやくされました", + "pt": "@:languages.pt から、ほんやくされました", + "ru": "@:languages.ru から、ほんやくされました", + "sk": "@:languages.sk から、ほんやくされました", + "sv": "@:languages.sv から、ほんやくされました", + "tr": "@:languages.tr から、ほんやくされました", + "uk": "@:languages.uk から、ほんやくされました", + "zh": "@:languages.zh から、ほんやくされました" + }, + "uk": "ウクライナご", + "zh": "ちゅうごくご" + }, + "lists": { + "create": "つくる", + "delete": "けす", + "following_only": "フォローしているユーザーのみ", + "lists": "リスト", + "new": "リストをつくる", + "save": "セーブ", + "search": "ユーザーをさがす", + "title": "リストのなまえ" }, "login": { "authentication_code": "にんしょうコード", @@ -90,41 +249,90 @@ "hint": "はなしあいにくわわるには、ログインしてください", "login": "ログイン", "logout": "ログアウト", + "logout_confirm": "ほんとうに、ログアウトしてもいいですか?", + "logout_confirm_accept_button": "ログアウト", + "logout_confirm_cancel_button": "キャンセル", + "logout_confirm_title": "ログアウト", "password": "パスワード", - "placeholder": "れい: lain", + "placeholder": "ユーザーめい", "recovery_code": "リカバリーコード", "register": "はじめる", "username": "ユーザーめい" }, "media_modal": { + "counter": "{current} / {total}", + "hide": "とじる", "next": "つぎ", "previous": "まえ" }, + "moderation": { + "moderation": "モデレーション", + "reports": { + "add_note": "メモする", + "close": "とじる", + "delete_note": "けす", + "delete_note_accept": "けす", + "delete_note_cancel": "キャンセル", + "delete_note_confirm": "ほんとうに、このメモをけしてもいいですか?", + "delete_note_title": "かくにんしてください", + "no_content": "せつめいはありません", + "no_reports": "つうほうはありません", + "note_placeholder": "メモする", + "notes": "{ count }こ", + "reopen": "ひらきなおす", + "report": "つうほう:", + "reports": "つうほう", + "resolve": "かいけつ", + "show_closed": "かいけつしたつうほうをみる", + "statuses": "{ count } こ", + "tag_policy_notice": "とうこうをせいげんするには、TagPolicy MRF をゆうこうにしてください", + "tags": "とうこうをせいげんする" + }, + "statuses": "とうこう", + "users": "ユーザー" + }, "nav": { "about": "これはなに?", "administration": "アドミニストレーション", + "announcements": "おしらせ", "back": "もどる", + "bookmarks": "ブックマーク", + "bubble_timeline": "バブルタイムライン", + "bubble_timeline_description": "アドミンがおすすめするインスタンスからのとうこう", + "chats": "チャット", "dms": "ダイレクトメッセージ", "friend_requests": "フォローリクエスト", + "home_timeline": "ホームタイムライン", + "home_timeline_description": "フォローしているユーザーのとうこう", "interactions": "やりとり", + "lists": "リスト", "mentions": "メンション", + "moderation": "モデレーション", "preferences": "せってい", + "public_timeline_description": "このインスタンスからの、パブリックなとうこう", "public_tl": "パブリックタイムライン", "search": "さがす", "timeline": "タイムライン", + "timelines": "タイムライン", "twkn": "つながっているすべてのネットワーク", + "twkn_timeline_description": "つながっているすべてのネットワークからのとうこう", "user_search": "ユーザーをさがす", "who_to_follow": "おすすめユーザー" }, "notifications": { - "broken_favorite": "ステータスがみつかりません。さがしています…", - "favorited_you": "あなたのステータスがおきにいりされました", + "broken_favorite": "とうこうがみつかりません。さがしています…", + "error": "つうちのしゅとくがエラーになりました: {0}", + "favorited_you": "あなたのとうこうが、おきにいりされました", + "follow_request": "フォローリクエストされました", "followed_you": "フォローされました", "load_older": "ふるいつうちをみる", + "migrated_to": "インスタンスをひっこしました", "no_more_notifications": "つうちはありません", "notifications": "つうち", + "poll_ended": "いれふだがおわりました", + "reacted_with": "{0} でリアクションされました", "read": "よんだ!", - "repeated_you": "あなたのステータスがリピートされました" + "repeated_you": "あなたのとうこうが、リピートされました" }, "password_reset": { "check_email": "パスワードをリセットするためのリンクがかかれたメールが、とどいているかどうか、みてください。", @@ -147,49 +355,72 @@ "multiple_choices": "いくつでもえらべる", "not_enough_options": "ユニークなオプションが、たりません", "option": "オプション", + "people_voted_count": "{count} にんが、ふだをいれています", "single_choice": "ひとつえらぶ", "type": "いれふだのかた", "vote": "ふだをいれる", - "votes": "いれふだ" + "votes": "いれふだ", + "votes_count": "{count} ふだ" }, "post_status": { - "account_not_locked_warning": "あなたのアカウントは {0} ではありません。あなたをフォローすれば、だれでも、フォロワーげんていのステータスをよむことができます。", + "account_not_locked_warning": "あなたのアカウントは {0} ではありません。あなたをフォローすれば、だれでも、フォロワーげんていのとうこうをよむことができます。", "account_not_locked_warning_link": "ロックされたアカウント", "attachments_sensitive": "ファイルをNSFWにする", "content_type": { "text/bbcode": "BBCode", "text/html": "HTML", "text/markdown": "Markdown", - "text/plain": "プレーンテキスト" + "text/plain": "プレーンテキスト", + "text/x.misskeymarkdown": "MFM" }, - "content_warning": "せつめい (かかなくてもよい)", + "content_warning": "ちゅういがき (かかなくてもよい)", "default": "はねだくうこうに、つきました。", "direct_warning_to_all": "このとうこうは、メンションされたすべてのユーザーが、みることができます。", "direct_warning_to_first_only": "このとうこうは、メッセージのはじめでメンションされたユーザーだけが、みることができます。", + "edit_remote_warning": "へんしゅうしたとうこうは、ほかのインスタンスに、はんえいされないことがあります!", + "edit_status": "へんしゅう", + "edit_unsupported_warning": "いれふだとメンションは、へんしゅうでかえることができません。", + "empty_status_error": "からっぽのとうこうは、おくることができません", + "media_description": "メディアのせつめい", + "media_description_error": "メディアのアップデートにしっぱいしました。もういちど、ためしてください", + "media_not_sensitive_warning": "ちゅういがきがついていますが、NSFWはついていません!", "new_status": "とうこうする", + "post": "とうこう", "posting": "とうこう", + "preview": "プレビュー", + "preview_empty": "からっぽです", "scope": { "direct": "ダイレクト: メンションされたユーザーのみにとどきます", + "local": "ローカル: パブリックタイムラインにとどきますが、ほかのインスタンスにはとどきません", "private": "フォロワーげんてい: フォロワーのみにとどきます", "public": "パブリック: パブリックタイムラインにとどきます", "unlisted": "アンリステッド: パブリックタイムラインにとどきません" }, "scope_notice": { + "local": "このとうこうは、このインスタンスのユーザーだけが、みることができます", "private": "このとうこうは、あなたのフォロワーだけが、みることができます", "public": "このとうこうは、だれでもみることができます", "unlisted": "このとうこうは、パブリックタイムラインと、つながっているすべてのネットワークでは、みることができません" } }, "registration": { + "awaiting_email_confirmation": "あなたのメールアドレスに、メールをおくりました。メールをかくにんして、とうろくをかんりょうさせてください。", + "awaiting_email_confirmation_title": "メールをかくにんするのをまっています", "bio": "プロフィール", "bio_placeholder": "れい:\nごきげんよう。わたしはれいん。\nわたしはアニメのおんなのこで、にほんのベッドタウンにすんでいます。ワイヤードで、わたしにあったことが、あるかもしれませんね。", "captcha": "CAPTCHA", "email": "Eメール", + "email_language": "サーバーからのメールは、どのことばで、かいてほしいですか?", "fullname": "スクリーンネーム", "fullname_placeholder": "れい: いわくら れいん", "new_captcha": "もじがよめないときは、がぞうをクリックすると、あたらしいがぞうになります", "password_confirm": "パスワードのかくにん", + "reason": "とうろくしたいりゆう", + "reason_placeholder": "このインスタンスは、しゅどうで、とうろくをうけつけています。\nとうろくしたいりゆうを、アドミニストレーターにおしえてください。", + "register": "はじめる", "registration": "はじめる", + "request_sent": "とうろくリクエストをおくりました。とうろくがうけいれられると、メールがとどきます。", + "request_sent_title": "とうろくリクエストをおくりました", "token": "しょうたいトークン", "username_placeholder": "れい: lain", "validations": { @@ -217,6 +448,20 @@ "select_all": "すべてえらぶ" }, "settings": { + "accent": "アクセント", + "account_alias": "アカウントのエイリアス", + "account_alias_table_head": "エイリアス", + "account_backup": "アカウントのバックアップ", + "account_backup_description": "あなたのアカウントのじょうほうと、とうこうの、アーカイブをダウンロードできます。しかし、いまのところは、バックアップを Pleromaのアカウントにインポートすることはできません。", + "account_backup_table_head": "バックアップ", + "account_privacy": "プライバシー", + "add_alias_error": "エイリアスのついかがエラーになりました: {error}", + "add_backup": "あたらしいバックアップをつくる", + "add_backup_error": "バックアップのついかがエラーになりました: {error}", + "added_alias": "エイリアスをついかしました。", + "added_backup": "バックアップをつくりました。", + "allow_following_move": "フォローしているアカウントがひっこしたときに、じどうでフォローしてもよい", + "always_show_post_button": "みぎしたのとうこうボタンをいつでもひょうじする", "app_name": "アプリのなまえ", "attachmentRadius": "ファイル", "attachments": "ファイル", @@ -226,6 +471,7 @@ "avatarRadius": "アバター", "avatar_size_instruction": "アバターのおおきさは、150×150ピクセルか、それよりもおおきくするといいです。", "background": "バックグラウンド", + "backup_not_ready": "このバックアップは、まだ、かんせいしていません。", "bio": "プロフィール", "block_export": "ブロックのエクスポート", "block_export_button": "ブロックをCSVファイルにエクスポート", @@ -233,6 +479,7 @@ "block_import_error": "ブロックのインポートがエラーになりました", "blocks_imported": "ブロックをインポートしました! じっさいにブロックするまでには、もうしばらくかかります。", "blocks_tab": "ブロック", + "bot": "これは bot アカウントです", "btnRadius": "ボタン", "cBlue": "リプライとフォロー", "cGreen": "リピート", @@ -244,11 +491,29 @@ "change_password_error": "パスワードをかえることが、できなかったかもしれません。", "changed_email": "メールアドレスをかえることができました!", "changed_password": "パスワードが、かわりました!", + "chatMessageRadius": "チャットメッセージ", "checkboxRadius": "チェックボックス", - "collapse_subject": "せつめいのあるとうこうをたたむ", + "collapse_subject": "ちゅういがきのあるとうこうをたたむ", + "columns": "カラム", "composing": "とうこう", + "confirm_dialogs": "いつ、かくにんがめんをひょうじしますか:", + "confirm_dialogs_approve_follow": "フォローリクエストをうけいれるとき", + "confirm_dialogs_block": "だれかをブロックするとき", + "confirm_dialogs_delete": "とうこうをけすとき", + "confirm_dialogs_deny_follow": "フォローリクエストをおことわりするとき", + "confirm_dialogs_mute": "だれかをミュートするとき", + "confirm_dialogs_repeat": "とうこうをリピートするとき", + "confirm_dialogs_unfollow": "だれかのフォローをやめるとき", "confirm_new_password": "あたらしいパスワードのかくにん", + "confirmation_dialogs": "かくにんがめんのせってい", + "conversation_display": "スレッドのみため", + "conversation_display_linear": "リニア", + "conversation_display_tree": "ツリー", + "conversation_other_replies_button": "「ほかのへんしん」ボタンをひょうじするばしょ", + "conversation_other_replies_button_below": "とうこうのした", + "conversation_other_replies_button_inside": "とうこうのうちがわ", "current_avatar": "いまのアバター", + "current_mascot": "いまのマスコット", "current_password": "いまのパスワード", "data_import_export_tab": "インポートとエクスポート", "default_vis": "デフォルトのこうかいはんい", @@ -256,9 +521,15 @@ "delete_account_description": "あなたのアカウントとメッセージが、きえます。", "delete_account_error": "アカウントをけすことが、できなかったかもしれません。インスタンスのアドミニストレーターに、おといあわせください。", "delete_account_instructions": "ほんとうにアカウントをけしてもいいなら、パスワードをかいてください。", + "disable_sticky_headers": "カラムヘッダーを、がめんのいちばんうえにくっつけない", "discoverable": "けんさくなどのサービスで、このアカウントをみつけてもよい", + "domain_mutes": "ドメイン", + "download_backup": "ダウンロード", + "email_language": "メールのことば", + "emoji_reactions_on_timeline": "えもじのリアクションをタイムラインにひょうじする", "enable_web_push_notifications": "ウェブプッシュつうちをゆるす", "enter_current_password_to_confirm": "あなたのアイデンティティをたしかめるため、あなたのいまのパスワードをかいてください", + "expert_mode": "こまかいせっていをひょうじ", "export_theme": "セーブ", "filtering": "フィルタリング", "filtering_explanation": "これらのことばをふくむすべてのものがミュートされます。1ぎょうに1つのことばをかいてください", @@ -329,6 +600,7 @@ "no_rich_text_description": "リッチテキストをつかわない", "notification_blocks": "ブロックしているユーザーからのつうちは、すべてとまります。", "notification_mutes": "あるユーザーからのつうちをとめるには、ミュートしてください。", + "notification_setting_hide_if_cw": "ちゅういがきがあるとうこうのないようを、つうちからみえないようにする", "notification_visibility": "ひょうじするつうち", "notification_visibility_follows": "フォロー", "notification_visibility_likes": "おきにいり", @@ -361,6 +633,7 @@ "search_user_to_mute": "ミュートしたいひとを、ここでけんさくできます", "security": "セキュリティ", "security_tab": "セキュリティ", + "sensitive_if_subject": "ちゅういがきを、つけたときに、がぞうをじどうてきにNSFWにする", "set_new_avatar": "あたらしいアバターをせっていする", "set_new_profile_background": "あたらしいプロフィールのバックグラウンドをせっていする", "set_new_profile_banner": "あたらしいプロフィールバナーを設定する", @@ -478,8 +751,8 @@ "save_load_hint": "「のこす」オプションをONにすると、テーマをえらんだときとロードしたとき、いまのせっていをのこします。また、テーマをエクスポートするとき、これらのオプションをストアします。すべてのチェックボックスをOFFにすると、テーマをエクスポートしたとき、すべてのせっていをセーブします。" } }, - "subject_input_always_show": "サブジェクトフィールドをいつでもひょうじする", - "subject_line_behavior": "リプライするときサブジェクトをコピーする", + "subject_input_always_show": "ちゅういがきフィールドをいつでもひょうじする", + "subject_line_behavior": "リプライするとき、ちゅういがきをコピーする", "subject_line_email": "メールふう: \"re: サブジェクト\"", "subject_line_mastodon": "マストドンふう: そのままコピー", "subject_line_noop": "コピーしない", @@ -506,8 +779,8 @@ } }, "status": { - "delete": "ステータスをけす", - "delete_confirm": "ほんとうに、このステータスを、けしてもいいですか?", + "delete": "とうこうをけす", + "delete_confirm": "ほんとうに、このとうこうを、けしてもいいですか?", "favorites": "おきにいり", "mute_conversation": "スレッドをミュートする", "pin": "プロフィールにピンどめする", @@ -515,6 +788,8 @@ "repeats": "リピート", "replies_list": "へんしん:", "reply_to": "へんしん:", + "translate": "ほんやく", + "translated_from": "{language} から、ほんやくされました", "unmute_conversation": "スレッドをミュートするのをやめる", "unpin": "プロフィールにピンどめするのをやめる" }, @@ -543,7 +818,7 @@ "timeline": { "collapse": "たたむ", "conversation": "スレッド", - "load_older": "ふるいステータス", + "load_older": "ふるいとうこう", "no_more_statuses": "これでおわりです", "no_retweet_hint": "とうこうを「フォロワーのみ」または「ダイレクト」にすると、リピートできなくなります", "no_statuses": "ありません", @@ -617,7 +892,7 @@ "remote_follow": "リモートフォロー", "report": "つうほう", "show_repeats": "リピートをみる", - "statuses": "ステータス", + "statuses": "とうこう", "subscribe": "サブスクライブ", "unblock": "ブロックをやめる", "unblock_progress": "ブロックをとりけしています…", @@ -643,4 +918,4 @@ "more": "くわしく", "who_to_follow": "おすすめユーザー" } -} \ No newline at end of file +} From 33c4459744a214a0dc0b7d4f93d7da4e49c0b5f5 Mon Sep 17 00:00:00 2001 From: Weblate Date: Wed, 5 Apr 2023 18:57:45 +0000 Subject: [PATCH 20/25] Translated using Weblate (French) Currently translated at 98.5% (1027 of 1042 strings) Translated using Weblate (French) Currently translated at 98.3% (1024 of 1041 strings) Translated using Weblate (French) Currently translated at 96.9% (1002 of 1033 strings) Co-authored-by: Thomate Co-authored-by: Weblate Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/fr/ Translation: Pleroma fe/pleroma-fe --- src/i18n/fr.json | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/i18n/fr.json b/src/i18n/fr.json index 47570d6f..9bc07077 100644 --- a/src/i18n/fr.json +++ b/src/i18n/fr.json @@ -84,6 +84,7 @@ "keep_open": "Garder ouvert", "load_all": "Charger tout les {emojiAmount} émojis", "load_all_hint": "{saneAmount} émojis chargé, charger tout les émojis peuvent causer des problèmes de performances.", + "recent": "Utilisé récemment", "search_emoji": "Rechercher un émoji", "stickers": "Stickers", "unicode": "émoji unicode" @@ -254,6 +255,10 @@ "hint": "Connectez-vous pour rejoindre la discussion", "login": "Connexion", "logout": "Déconnexion", + "logout_confirm": "Voulez-vous vraiment vous déconnecter ?", + "logout_confirm_accept_button": "Déconnexion", + "logout_confirm_cancel_button": "Annuler", + "logout_confirm_title": "Déconnexion", "password": "Mot de passe", "placeholder": "mon nom d'utilisateur", "recovery_code": "Code de récupération", @@ -266,6 +271,32 @@ "next": "Suivant", "previous": "Précédent" }, + "moderation": { + "moderation": "Modération", + "reports": { + "add_note": "Ajouter une note", + "close": "Fermer", + "delete_note": "Supprimer", + "delete_note_accept": "Oui, supprimer", + "delete_note_cancel": "Non, abandonner", + "delete_note_confirm": "Voulez-vous vraiment supprimer cette note ?", + "delete_note_title": "Confirmer la suppression", + "no_content": "Description vide", + "no_reports": "Aucun rapport", + "note_placeholder": "Laisser une note", + "notes": "{ count } note | { count } notes", + "reopen": "Rouvrir", + "report": "Signaler", + "reports": "Rapports", + "resolve": "Résoudre", + "show_closed": "Afficher les rapports classés", + "statuses": "{ count } statut| { count } statuts", + "tag_policy_notice": "Activer la politique MRF pour établir les restrictions de publication", + "tags": "Établir les restrictions de publication" + }, + "statuses": "Statuts", + "users": "Utilisateurs" + }, "nav": { "about": "À propos", "administration": "Administration", @@ -282,6 +313,7 @@ "interactions": "Interactions", "lists": "Listes", "mentions": "Mentions", + "moderation": "Moderation", "preferences": "Préférences", "public_timeline_description": "Tous les statuts publics de cette instance", "public_tl": "Flux publique", @@ -378,6 +410,8 @@ } }, "registration": { + "awaiting_email_confirmation": "Votre compte a été enregistré et un courriel envoyé à votre adresse. Veuillez consulter votre boîte mail pour terminer la registration.", + "awaiting_email_confirmation_title": "En attente de confirmation par courriel", "bio": "Biographie", "bio_placeholder": "ex :\nSalut, je me présente ici !\nJ’adore les animés et les jeux vidéos. J’espère qu'on peut être amis⋅ies !", "captcha": "CAPTCHA", From 2acf1e5c59f99b591e5985b5a33275edf14db49c Mon Sep 17 00:00:00 2001 From: Weblate Date: Wed, 5 Apr 2023 18:57:45 +0000 Subject: [PATCH 21/25] Translated using Weblate (Ukrainian) Currently translated at 87.2% (908 of 1041 strings) Co-authored-by: Denys Nykula Co-authored-by: Weblate Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/uk/ Translation: Pleroma fe/pleroma-fe --- src/i18n/uk.json | 647 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 440 insertions(+), 207 deletions(-) diff --git a/src/i18n/uk.json b/src/i18n/uk.json index 3a6c58c7..25f4cd3b 100644 --- a/src/i18n/uk.json +++ b/src/i18n/uk.json @@ -1,40 +1,65 @@ { "about": { + "bubble_instances": "Місцева бульбашка", + "bubble_instances_description": "Сервери, позначені адміністрацією як товариські", "mrf": { "federation": "Федерація", "keyword": { - "ftl_removal": "Прибрати з федеративної стрічки", + "ftl_removal": "Вилучення зі стрічки «Уся відома мережа»", "is_replaced_by": "→", "keyword_policies": "Політика щодо ключових слів", "reject": "Відхилити", "replace": "Замінити" }, - "mrf_policies": "Активувати правила MRF (модуль переписування повідомлень)", - "mrf_policies_desc": "Правила MRF розповсюджуються на даний інстанс. Наступні правила активні:", + "mrf_policies": "Чинні правила федерування", + "mrf_policies_desc": "Сервер федерується відповідно до своєї політики. Діють такі правила:", "simple": { "accept": "Прийняти", - "accept_desc": "Поточний інстанс приймає повідомлення тільки з перелічених інстансів:", - "ftl_removal": "Видалення зі стрічки Федеративної мережі", - "ftl_removal_desc": "Цей інстанс видаляє перелічені інстанси з Федеративної стрічки:", - "media_nsfw": "Примусове визначення медіа як дратівливого", - "media_nsfw_desc": "Даний інстанс примусово позначає медіа в наступних інстансах як дратівливий:", + "accept_desc": "Сервер приймає повідомлення лише з таких серверів:", + "ftl_removal": "Вилучення зі стрічки відомої мережі", + "ftl_removal_desc": "Сервер вилучає зі стрічки «Уся відома мережа» такі сервери:", + "instance": "Сервер", + "media_nsfw": "Усі медіа дражливі", + "media_nsfw_desc": "Сервер примусово позначає дражливими медіа з таких серверів:", "media_removal": "Видалення медіа", - "media_removal_desc": "Поточний інстанс видаляє медіа з дописів на перелічених інстансах:", + "media_removal_desc": "Сервер вилучає медіа в дописах із таких серверів:", "quarantine": "Карантин", - "quarantine_desc": "Поточний інстанс надсилатиме тільки публічні дописи наступним інстансам:", + "quarantine_desc": "Сервер не надсилатиме дописів таким серверам:", + "reason": "Підстава", "reject": "Відхилити", - "reject_desc": "Поточний інстанс не прийматиме повідомлення з перелічених інстансів:", - "simple_policies": "Правила поточного інстансу" + "reject_desc": "Сервер не прийматиме повідомлень із таких серверів:", + "simple_policies": "Відносно цілих серверів" } }, "staff": "Адміністрація" }, + "announcements": { + "all_day_prompt": "Триває весь день", + "cancel_edit_action": "Скасувати", + "close_error": "Закрити", + "delete_action": "Видалити", + "edit_action": "Редагувати", + "end_time_display": "Закінчується {time}", + "end_time_prompt": "Закінчується: ", + "inactive_message": "Це оголошення вимкнено", + "mark_as_read_action": "Прочитано", + "page_header": "Оголошення", + "post_action": "Розмістити", + "post_error": "Помилка: {error}", + "post_form_header": "Розмістити оголошення", + "post_placeholder": "Вміст оголошення", + "published_time_display": "Оприлюднено {time}", + "start_time_display": "Починається {time}", + "start_time_prompt": "Починається: ", + "submit_edit_action": "Надіслати", + "title": "Оголошення" + }, "chats": { "chats": "Чати", "delete": "Видалити", "delete_confirm": "Ви дійсно хочете видалити це повідомлення?", "empty_chat_list_placeholder": "У вас ще немає чатів. Почніть новий чат!", - "empty_message_error": "Не вдається опублікувати порожнє повідомлення", + "empty_message_error": "У повідомленні мусить щось бути", "error_loading_chat": "Під час завантаження чату сталася помилка.", "error_sending_message": "Під час надсилання повідомлення сталася помилка.", "message_user": "Повідомлення для {nickname}", @@ -52,15 +77,15 @@ "unmute_progress": "Вмикаю…" }, "emoji": { - "add_emoji": "Додати емодзі", - "custom": "Користувацькі емодзі", - "emoji": "Емодзі", + "add_emoji": "Додати емоджі", + "custom": "Користувацькі емоджі", + "emoji": "Емоджі", "keep_open": "Тримати панель відкритою", - "load_all": "Всі {emojiAmount} эмодзі завантажуються", - "load_all_hint": "Завантажені перші {saneAmount} емодзі, завантаження всіх емодзі може призвести до проблем з продуктивністю.", - "search_emoji": "Пошук емодзі", - "stickers": "Стікери", - "unicode": "Стандартні емодзі" + "load_all": "Всі {emojiAmount} емоджі завантажуються", + "load_all_hint": "Завантажено {saneAmount} емоджі, більша кількість може спричинити гальмування.", + "search_emoji": "Пошук емоджі", + "stickers": "Наліпки", + "unicode": "Стандартні емоджі" }, "errors": { "storage_unavailable": "Pleroma не змогла отримати доступ до сховища браузеру. Ваша сесія та налаштування не будуть збережені, це може спричинити непередбачувані проблеми. Спробуйте увімкнути cookie." @@ -70,12 +95,12 @@ "processing": "Опрацьовую, скоро ви зможете завантажити файл" }, "features_panel": { - "media_proxy": "Посередник медіа-даних", - "scope_options": "Параметри обсягу", + "media_proxy": "Кеш зовнішніх медіа", + "scope_options": "Рівні приватності", "text_limit": "Ліміт символів", "title": "Особливості", - "upload_limit": "Обмеження завантажень", - "who_to_follow": "Кого відстежувати" + "upload_limit": "Обмеження вивантажень", + "who_to_follow": "На кого підписатись" }, "file_type": { "audio": "Аудіо", @@ -84,8 +109,8 @@ "video": "Відео" }, "finder": { - "error_fetching_user": "Користувача не знайдено", - "find_user": "Знайти користувача" + "error_fetching_user": "Помилка завантаження користувач_ки", + "find_user": "Знайти користувач_ку" }, "general": { "apply": "Застосувати", @@ -106,8 +131,15 @@ "peek": "Глянути", "retry": "Спробуйте ще раз", "role": { - "admin": "Адміністратор", - "moderator": "Модератор" + "admin": "Адмініструє", + "moderator": "Модерує" + }, + "scope_in_timeline": { + "direct": "Особисто", + "local": "Місцево — допис видно тільки на вашому сервері", + "private": "Приватно", + "public": "Загальнодоступно", + "unlisted": "Непублічно" }, "show_less": "Показати менше", "show_more": "Показати більше", @@ -126,10 +158,23 @@ "success": "Імпортовано успішно." }, "interactions": { - "favs_repeats": "Поширення та вподобайки", - "follows": "Нові підписки", + "favs_repeats": "Поширення й уподобання", + "follows": "Нові підписни_ці", "load_older": "Завантажити давніші взаємодії", - "moves": "Міграції користувачів" + "moves": "Переїзди користувач_ок" + }, + "languages": { + "en": "англійська", + "uk": "українська" + }, + "lists": { + "create": "Створити", + "delete": "Видалити список", + "following_only": "Лише за ким ви стежите", + "lists": "Списки", + "new": "Новий список", + "search": "Знайти користувач_ок", + "title": "Назва списку" }, "login": { "authentication_code": "Код автентифікації", @@ -143,64 +188,102 @@ "hint": "Увійдіть, щоб доєднатися до дискусії", "login": "Увійти", "logout": "Вийти", + "logout_confirm": "Точно завершити сеанс?", + "logout_confirm_accept_button": "Так, вийти", + "logout_confirm_cancel_button": "Скасувати", + "logout_confirm_title": "Вихід", "password": "Пароль", - "placeholder": "напр. stepan", + "placeholder": "як-от lesia", "recovery_code": "Код відновлення", "register": "Зареєструватись", - "username": "Ім'я користувача" + "username": "Логін" }, "media_modal": { + "hide": "Закрити медіаперегляд", "next": "Наступна", "previous": "Попередня" }, + "moderation": { + "moderation": "Модерування", + "reports": { + "add_note": "Додати нотатку", + "close": "Закрити", + "delete_note": "Видалити", + "delete_note_accept": "Так, справді видалити", + "delete_note_cancel": "Ні, лишити", + "delete_note_confirm": "Точно видалити цю нотатку?", + "delete_note_title": "Підтвердьте видалення", + "no_content": "Опису не надано", + "no_reports": "Скарг немає", + "note_placeholder": "Залишити нотатку", + "notes": "Нотаток: { count } | Нотаток: { count }", + "reopen": "В роботі", + "report": "Скарга про", + "reports": "Скарги", + "resolve": "Вирішено", + "show_closed": "Показати закриті", + "statuses": "Дописів: { count } | Дописів: { count }" + }, + "statuses": "Дописи", + "users": "Користувач_ки" + }, "nav": { - "about": "Інформація", + "about": "Про нас", "administration": "Адміністрування", + "announcements": "Оголошення", "back": "Назад", "bookmarks": "Закладки", + "bubble_timeline": "Стрічка бульбашки", + "bubble_timeline_description": "Дописи з серверів, рекомендованих адміністрацією", "chats": "Чати", - "dms": "Приватні повідомлення", + "dms": "Особисті повідомлення", "friend_requests": "Запити послідовників", "home_timeline": "Домашня стрічка", + "home_timeline_description": "Дописи від тих, на кого ви підписані", "interactions": "Взаємодії", + "lists": "Списки", "mentions": "Згадування", + "moderation": "Модерування", "preferences": "Налаштування", - "public_tl": "Публічна стрічка", + "public_timeline_description": "Загальнодоступні дописи всіх на цьому сервері", + "public_tl": "Спільна стрічка", "search": "Пошук", "timeline": "Домашня стрічка", "timelines": "Стрічки", "twkn": "Уся відома мережа", - "user_search": "Пошук користувача", + "twkn_timeline_description": "Дописи з усієї мережі", + "user_search": "Пошук користувач_ок", "who_to_follow": "Кого відстежувати" }, "notifications": { "broken_favorite": "Невідомий допис, шукаю його…", "error": "Помилка при оновленні сповіщень: {0}", - "favorited_you": "вподобав(-ла) ваш допис", - "follow_request": "хоче підписатись на вас", - "followed_you": "підписався(-лась) на вас", + "favorited_you": "вподобує", + "follow_request": "хоче підписатись", + "followed_you": "підписується", "load_older": "Завантажити давніші сповіщення", - "migrated_to": "мігрував на", + "migrated_to": "переїжджає до", "no_more_notifications": "Немає більше сповіщень", "notifications": "Сповіщення", - "reacted_with": "додав реакцію: {0}", + "poll_ended": "голосування завершено", + "reacted_with": "реагує: {0}", "read": "Прочитано!", - "repeated_you": "поширив(-ла) ваш допис" + "repeated_you": "поширює ваш допис" }, "password_reset": { "check_email": "Перевірте електронну пошту на наявність посилання для скидання пароля.", "forgot_password": "Забули пароль?", - "instruction": "Введіть свою адресу електронної пошти або ім’я користувача. Ми надішлемо вам посилання для скидання пароля.", - "password_reset": "Відновити пароль", - "password_reset_disabled": "Скидання пароля вимкнено. Зверніться до адміністратора інстансу.", + "instruction": "Введіть адресу е-пошти чи логін. Надішлемо посилання скидання пароля.", + "password_reset": "Скинути пароль", + "password_reset_disabled": "Скидання пароля вимкнено. Зверніться до адміністрації сервера.", "password_reset_required": "Для входу потрібно скинути пароль.", - "password_reset_required_but_mailer_is_disabled": "Ви повинні скинути свій пароль, але скидання пароля вимкнено. Зверніться до адміністратора інстансу.", - "placeholder": "Ваша електронна адреса або ім'я користувача", + "password_reset_required_but_mailer_is_disabled": "Ви повинні скинути пароль, але скидання пароля вимкнено. Зверніться до адміністрації сервера.", + "placeholder": "Е-пошта чи логін", "return_home": "Повернутися на головну сторінку", "too_many_requests": "Ви досягли ліміту спроб, спробуйте ще раз пізніше." }, "polls": { - "add_option": "Додати опцію", + "add_option": "Додати варіант", "add_poll": "Додати опитування", "expired": "Опитування закінчилось {0} тому", "expires_in": "Опитування закінчується через {0}", @@ -208,62 +291,70 @@ "multiple_choices": "Декілька варіантів", "not_enough_options": "Замало унікальних варіантів в опитуванні", "option": "Відповідь", - "people_voted_count": "{count} особа проголосувала | {count} осіб проголосувало", + "people_voted_count": "Осіб: {count} | Осіб: {count}", "single_choice": "Один варіант", "type": "Тип опитування", "vote": "Проголосувати", "votes": "голосів", - "votes_count": "{count} голос | {count} голосів" + "votes_count": "Голосів: {count} | Голосів: {count}" }, "post_status": { - "account_not_locked_warning": "Ваша обліковка не {0}. Будь-хто може відстежувати вас для перегляду дописів тільки для підписників.", - "account_not_locked_warning_link": "замкнена", - "attachments_sensitive": "Позначити вкладення як чутливі", + "account_not_locked_warning": "Вашу обліковку не {0}. Будь-хто може підписатись на вас і читати приватні дописи.", + "account_not_locked_warning_link": "замкнено", + "attachments_sensitive": "Позначити вкладення дражливими", "content_type": { "text/bbcode": "BBCode", "text/html": "HTML", "text/markdown": "Markdown", - "text/plain": "Текстові дані" + "text/plain": "Текст", + "text/x.misskeymarkdown": "MFM" }, - "content_warning": "Тема (необов'язково)", + "content_warning": "Засторога (якщо вміст дражливий)", "default": "Що нового?", - "direct_warning_to_all": "Цей допис побачать всі згадані користувачі.", - "direct_warning_to_first_only": "Цей допис побачать лише користувачі, що були згадані на початку повідомлення.", - "empty_status_error": "Не можу опублікувати пустий статус без вкладень", + "direct_warning_to_all": "Допис побачать усі згадані користувач_ки.", + "direct_warning_to_first_only": "Допис побачать лише користувач_ки, згадані на початку повідомлення.", + "edit_remote_warning": "Деякі сервери можуть не показувати змін допису!", + "edit_status": "Редагувати допис", + "edit_unsupported_warning": "Зміни не впливають на голосування й згадки.", + "empty_status_error": "Допис мусить містити текст чи вкладення", "media_description": "Опис медіа", "media_description_error": "Не вдалось оновити медіа, спробуйте ще раз", - "new_status": "Створити допис", - "post": "Опублікувати", + "media_not_sensitive_warning": "Ви вказали засторогу, але не позначили вкладення дражливими!", + "new_status": "Новий допис", + "post": "Розмістити", "posting": "Відправляється", "preview": "Попередній перегляд", - "preview_empty": "Пустий", + "preview_empty": "Порожньо", "scope": { - "direct": "Приватний - цей допис побачать лише згадані користувачі", - "private": "Для читачів - цей допис побачать лише ваші читачі", - "public": "Публічний - цей допис побачать усі", - "unlisted": "Непублічний - цей допис буде відсутній у публічних стрічках" + "direct": "Особисто: допис побачать лише згадані користувач_ки", + "local": "Місцево: допис не федеруватиметься", + "private": "Приватно: допис побачать лише ваші підписни_ці", + "public": "Загальнодоступно: допис потрапить у спільні стрічки", + "unlisted": "Приховано: допис буде відсутній у спільних стрічках" }, "scope_notice": { - "private": "Цей допис побачать лише ваші підписники", - "public": "Цей допис бачитимуть усі", - "unlisted": "Цей допис не буде видно в публічній стрічці та усій відомій мережі" + "local": "Допису не буде видно на інших серверах", + "private": "Допис побачать лише ваші підписни_ці", + "public": "Допис бачитимуть усі", + "unlisted": "Допису не буде видно в спільній стрічці та «усій відомій мережі»" } }, "registration": { - "bio": "Про себе", - "bio_placeholder": "напр.\nНаш народ завжди прагне волі для себе і бажає її для інших народів. Він боровся і бореться за правду і справедливість. Ми хочемо жити у згоді і взаємному шануванні з усіми народами доброї волі. Такі самі права визнаємо за іншими народами, за які боремося для себе.", + "bio": "Опис", + "bio_placeholder": "як-от:\nВолинянка. Подорожую.\nДемократична соціалістка. Пишу драматичні поеми. Жити хочу! Геть, думи сумні!", "captcha": "CAPTCHA", - "email": "Ел. пошта", - "fullname": "Відображене ім'я", - "fullname_placeholder": "напр. Степан Бандера", + "email": "Е-пошта", + "email_language": "Якою мовою отримувати листи з сервера?", + "fullname": "Ім'я", + "fullname_placeholder": "як-от Лариса Косач", "new_captcha": "Натисніть на зображення, щоб оновити код, якщо він нерозбірливий", "password_confirm": "Підтвердження паролю", - "reason": "Причина реєстрації", - "reason_placeholder": "Цей інстанс обробляє запити на реєстрацію вручну.\nРозкажіть адміністрації чому ви хочете зареєструватися.", + "reason": "Навіщо реєструєтесь", + "reason_placeholder": "Запити на реєстрацію підтверджуються вручну.\nРозкажіть адміністрації, чому хочете зареєструватися.", "register": "Зареєструватися", "registration": "Реєстрація", "token": "Ключ запрошення", - "username_placeholder": "напр. stepan", + "username_placeholder": "як-от lesia", "validations": { "email_required": "не може бути порожнім", "fullname_required": "не може бути порожнім", @@ -275,7 +366,7 @@ }, "remote_user_resolver": { "error": "Не знайдено.", - "remote_user_resolver": "Пошукова система для віддалених користувачів", + "remote_user_resolver": "Система виявлення віддалених користувач_ок", "searching_for": "Шукаю" }, "search": { @@ -290,30 +381,43 @@ }, "settings": { "accent": "Акцент", + "account_alias": "Інші обліковки", + "account_alias_table_head": "Нова обліковка", + "account_backup": "Резервне копіювання обліковки", + "account_backup_description": "Можете завантажити архів даних і дописів своєї обліковки. Але імпортувати їх на іншу обліковку поки неможливо.", + "account_backup_table_head": "Резервна копія", + "account_privacy": "Приватність", + "add_alias_error": "Помилка додання нової обліковки: {error}", + "add_backup": "Створити резервну копію", + "add_backup_error": "Помилка резервного копіювання: {error}", + "added_alias": "Нову обліковку додано.", + "added_backup": "Резервну копію створено.", "allow_following_move": "Дозволити автостеження при переміщенні на інший інстанс", + "always_show_post_button": "Завжди показувати кнопку «Новий допис»", "app_name": "Назва програми", "attachmentRadius": "Вкладення", "attachments": "Вкладення", "autohide_floating_post_button": "Автоматично ховати кнопку \"Новий допис\" (в мобільній версії)", "avatar": "Аватар", - "avatarAltRadius": "Аватарки у сповіщеннях", - "avatarRadius": "Аватарки", + "avatarAltRadius": "Аватари у сповіщеннях", + "avatarRadius": "Аватари", "avatar_size_instruction": "Рекомендований мінімальний розмір для зображень аватара становить 150x150 пікселів.", "background": "Обкладинка", - "bio": "Про Вас", + "backup_not_ready": "Резервна копія ще не готова.", + "bio": "Опис", "block_export": "Експорт блокувань", "block_export_button": "Експорт блокувань у файл CSV", "block_import": "Імпорт блокувань", "block_import_error": "Помилка імпортування блокувань", "blocks_imported": "Блокування імпортовані! Їх обробка триватиме певний час.", "blocks_tab": "Блокування", - "bot": "Це обліковий запис бота", + "bot": "Це обліковка бота", "btnRadius": "Кнопки", - "cBlue": "Блакитний (Відповісти, читати)", - "cGreen": "Зелений (Поширити)", - "cOrange": "Жовтогарячий (Вподобайки)", - "cRed": "Червоний (Скасувати)", - "change_email": "Змінити email", + "cBlue": "Блакитний (відповісти, підписатись)", + "cGreen": "Зелений (поширити)", + "cOrange": "Жовтогарячий (уподобати)", + "cRed": "Червоний (скасувати)", + "change_email": "Змінити е-пошту", "change_email_error": "Сталася помилка під час зміни email.", "change_password": "Змінити пароль", "change_password_error": "Не вдалося змінити пароль.", @@ -321,26 +425,45 @@ "changed_password": "Пароль успішно змінено!", "chatMessageRadius": "Повідомлення в бесіді", "checkboxRadius": "Прапорці", - "collapse_subject": "Згорнути дописи з темами", + "collapse_subject": "Згортати дописи з засторогами", + "columns": "Панелі", "composing": "Складання відповіді", - "confirm_new_password": "Підтвердіть новий пароль", + "confirm_dialogs": "Перепитувати, чи:", + "confirm_dialogs_approve_follow": "Дозволяти підписатись", + "confirm_dialogs_block": "Блокувати когось", + "confirm_dialogs_delete": "Видаляти допис", + "confirm_dialogs_deny_follow": "Не дозволяти підписатись", + "confirm_dialogs_mute": "Глушити когось", + "confirm_dialogs_repeat": "Поширювати допис", + "confirm_dialogs_unfollow": "Відписуватись", + "confirm_new_password": "Підтвердьте новий пароль", + "confirmation_dialogs": "Підтвердження", + "conversation_display": "Стиль показу розмови", + "conversation_display_linear": "Колонка", + "conversation_display_tree": "Дерево", "current_password": "Поточний пароль", "data_import_export_tab": "Імпорт/експорт даних", - "default_vis": "Обсяг видимості за замовчуванням", - "delete_account": "Видалити обліковий запис", - "delete_account_description": "Остаточно видалити ваш обліковий запис та усі ваші повідомлення.", + "default_vis": "Типовий рівень приватності", + "delete_account": "Видалити обліковку", + "delete_account_description": "Назовсім видалити всі дані й вимкнути обліковку.", "delete_account_error": "Під час видалення вашого облікового запису виникла проблема. Якщо це трапляється постійно, будь ласка, зверніться до адміністратора вашого сервера.", "delete_account_instructions": "Введіть ваш пароль в поле нижче, аби підтвердити видалення облікового запису.", - "discoverable": "Дозволити виявлення цього облікового запису в результатах пошуку та інших службах", + "disable_sticky_headers": "Не закріплювати заголовки панелей", + "discoverable": "Дозволяти пошуковим та іншим службам показувати вашу обліковку", "domain_mutes": "Домени", + "download_backup": "Завантажити", + "email_language": "Мова пошти від сервера", "emoji_reactions_on_timeline": "Показувати реакції емоджі на стрічці", - "enable_web_push_notifications": "Увімкнути web push-сповіщення", + "enable_web_push_notifications": "Увімкнути push-сповіщення браузера", "enter_current_password_to_confirm": "Введіть свій поточний пароль", - "export_theme": "Зберегти переднабір", + "expert_mode": "Більше опцій", + "expire_posts_enabled": "Видаляти дописи за кілька днів", + "expire_posts_input_placeholder": "Скільки днів", + "export_theme": "Завантажити", "file_export_import": { "backup_restore": "Резервне копіювання налаштувань", - "backup_settings": "Резервне копіювання налаштувань у файл", - "backup_settings_theme": "Резервне копіювання налаштувань та теми у файл", + "backup_settings": "Завантажити файл налаштувань", + "backup_settings_theme": "Завантажити налаштування й тему", "errors": { "file_slightly_new": "Другорядна версія файлу відрізняється, деякі налаштування можуть бути не прийняті", "file_too_new": "Несумісна основна версія: {fileMajor}, ця версія PleromaFE ({feMajor}) занадто стара для його обробки", @@ -349,48 +472,66 @@ }, "restore_settings": "Відновити налаштування з файлу" }, - "filtering": "Фільтрування", - "filtering_explanation": "Усі статуси з цими словами будуть приховані, один на рядок", + "filtering": "Фільтр", + "filtering_explanation": "Усі дописи з цими словами буде сховано. Пишіть кожне слово з нового рядка", "follow_export": "Експортувати відстежуваних", "follow_export_button": "Експортувати відстежуваних до csv файлу", "follow_import": "Імпортувати відстежуваних", "follow_import_error": "Помилка імпортування відстежуваних", "follows_imported": "Відстежуваних імпортовано! Їхня обробка потребує часу.", "foreground": "Передній план", - "fun": "Розваги", + "fun": "Іграшки", "general": "Загальні", - "greentext": "Мемний текст", + "greentext": "Грінтекст", "hide_all_muted_posts": "Приховати приглушені повідомлення", "hide_attachments_in_convo": "Приховувати вкладення у розмовах", "hide_attachments_in_tl": "Приховувати вкладення у стрічці", - "hide_filtered_statuses": "Сховати відфільтровані статуси", - "hide_followers_count_description": "Не показувати кількість моїх підписників", - "hide_followers_description": "Не показувати хто підписаний на мене", - "hide_follows_count_description": "Не показувати кількість підписників", - "hide_follows_description": "Не показувати на кого я підписаний", + "hide_bot_indication": "Не показувати, що допис від бота", + "hide_favorites_description": "Сховати історію вподобань (лише сповіщати автор_ок дописів)", + "hide_filtered_statuses": "Сховати відфільтровані дописи", + "hide_followers_count_description": "Сховати кількість підписни_ць", + "hide_followers_description": "Сховати перелік підписни_ць", + "hide_follows_count_description": "Сховати кількість підписок", + "hide_follows_description": "Сховати перелік підписок", "hide_isp": "Сховати панель з особливостями сервера", + "hide_list_aliases_error_action": "Закрити", "hide_media_previews": "Приховати попередній перегляд медіа", - "hide_muted_posts": "Приховати повідомлення приглушених користувачів", - "hide_post_stats": "Приховувати статистику дописів (напр. кількість вподобаних)", - "hide_shoutbox": "Приховати оголошення інстансу", - "hide_user_stats": "Приховувати статистику користувачів (напр. кількість відстежувачів)", - "hide_wallpaper": "Сховати шпалери екземпляру", + "hide_muted_posts": "Ховати повідомлення приглушених користувач_ок", + "hide_muted_threads": "Ховати заглушені гілки", + "hide_post_stats": "Ховати статистику дописів (скільки вподобань тощо)", + "hide_shoutbox": "Приховати оголошення сервера", + "hide_site_favicon": "Вилучити значок сервера з шапки", + "hide_site_name": "Вилучити назву сервера з шапки", + "hide_threads_with_blocked_users": "Ховати гілки зі згадками заблокованих користувач_ок", + "hide_user_stats": "Ховати користувацьку статистику (скільки підписок тощо)", + "hide_wallpaper": "Сховати шпалери сервера", + "hide_wordfiltered_statuses": "Ховати дописи зі словами з фільтру", "import_blocks_from_a_csv_file": "Імпортувати заблокованих з csv файлу", "import_followers_from_a_csv_file": "Імпортувати відстежуваних з csv файлу", "import_mutes_from_a_csv_file": "Імпорт заглушених з csv файлу", - "import_theme": "Завантажити переднабір", + "import_theme": "Вивантажити", "inputRadius": "Поля вводу", - "instance_default": "(за замовчуванням: {value})", - "instance_default_simple": "(за замовчуванням)", + "instance_default": "(усталено: {value})", + "instance_default_simple": "(усталено)", "interface": "Оболонка", "interfaceLanguage": "Мова оболонки", "invalid_theme_imported": "Вибраний файл не є темою Pleroma. У вашу тему не внесено жодних змін.", "limited_availability": "Недоступно у вашому браузері", "links": "Посилання", - "lock_account_description": "Обмежте свій обліковий запис лише схваленими читачами", + "list_aliases_error": "Помилка завантаження нових обліковок: {error}", + "list_backups_error": "Помилка завантаження переліку копій: {error}", + "lock_account_description": "Показувати лише схваленим підписни_цям", "loop_video": "Зациклити відео", "loop_video_silent_only": "Зациклити відео без звуку (напр. Mastodon \"gifs\")", "max_thumbnails": "Максимальна кількість мініатюр на повідомлення", + "mention_link_display": "Показувати згадування", + "mention_link_display_full": "завжди повністю (як-от {'@'}lesia{'@'}example.org)", + "mention_link_display_full_for_remote": "повністю, якщо це інший сервер (як-от {'@'}lesia{'@'}example.org)", + "mention_link_display_short": "завжди коротко (як-от {'@'}lesia)", + "mention_link_fade_domain": "Неяскраві домени (як-от {'@'}example.org у {'@'}lesia{'@'}example.org)", + "mention_link_show_avatar": "Аватар поруч із посиланням", + "mention_link_show_tooltip": "Повне віддалене ім'я при наведенні", + "mention_links": "Посилання згадок", "mfa": { "authentication_methods": "Методи автентифікації", "confirm_and_enable": "Підтвердити та увімкнути OTP", @@ -412,8 +553,12 @@ "waiting_a_recovery_codes": "Отримую резервні коди…", "warning_of_generate_new_codes": "Після отримання нових резервних кодів, старі перестануть працювати." }, - "minimal_scopes_mode": "Мінімізувати набір варіантів осягу для допису", + "minimal_scopes_mode": "Менше рівнів приватності", "more_settings": "Більше налаштувань", + "move_account": "Переїхати", + "move_account_error": "Помилка переїзду обліковки: {error}", + "move_account_notes": "Щоб переїхати з цієї обліковки на іншу, вкажіть у її налаштуваннях цю облікову як нову.", + "mute_bot_posts": "Сховати дописи ботів", "mute_export": "Експорт ігнорувань", "mute_export_button": "Експорт заглушених у csv файл", "mute_import": "Імпорт ігнорувань", @@ -423,77 +568,104 @@ "mutes_tab": "Заглушені", "name": "Ім'я", "name_bio": "Особисті дані", - "new_email": "Нова ел. пошта", + "new_alias_target": "Вкажіть нову обліковку (як-от {example})", + "new_email": "Нова е-пошта", "new_password": "Новий пароль", "no_blocks": "Блокування відсутні", "no_mutes": "Заглушені відсутні", "no_rich_text_description": "Видалення всього форматування тексту з усіх дописів", "notification_blocks": "Блокування користувача зупиняє всі сповіщення від нього, а також скасовує його відстеження.", "notification_mutes": "Щоб перестати отримувати сповіщення від певного користувача, заглушіть його.", - "notification_setting_block_from_strangers": "Блокувати сповіщення від користувачів за якими ви не слідкуєте", + "notification_setting_block_from_strangers": "Блокувати сповіщення від тих, на кого ви не підписані", "notification_setting_filters": "Фільтри", "notification_setting_hide_notification_contents": "Ховати відправника та вміст push-сповіщень", "notification_setting_privacy": "Приватність", - "notification_visibility": "Отримувати сповіщення про наступні події", + "notification_visibility": "Сповіщати про такі події", "notification_visibility_emoji_reactions": "Реакції", - "notification_visibility_follows": "Нові підписки", - "notification_visibility_likes": "Вподобайки", + "notification_visibility_follows": "Підписни_ці", + "notification_visibility_likes": "Вподобане", "notification_visibility_mentions": "Згадування", - "notification_visibility_moves": "Міграція користувача", - "notification_visibility_repeats": "Поширення допису", + "notification_visibility_moves": "Переїзди користувач_ок", + "notification_visibility_polls": "Результати голосувань", + "notification_visibility_repeats": "Поширення", "notifications": "Сповіщення", - "nsfw_clickthrough": "Увімкнути приховування NSFW медіа", - "oauth_tokens": "OAuth ключі", + "nsfw_clickthrough": "Ховати дражливі медіа", + "oauth_tokens": "OAuth-ключі", "pad_emoji": "Автоматично додавати простір з обидвох сторін емоджі", "panelRadius": "Панелі", "pause_on_unfocused": "Призупинити трансляцію, коли вкладка неактивна", "play_videos_in_modal": "Відтворювати відео у спливаючій рамці", - "post_status_content_type": "Тип вмісту допису", + "post_look_feel": "Вигляд дописів", + "post_status_content_type": "Типова розмітка тексту", + "posts": "Дописи", "preload_images": "Передзавантажувати світлини", - "presets": "Переднабір", + "presets": "Зразки", "profile_background": "Обкладинка профілю", "profile_banner": "Банер профілю", "profile_fields": { "add_field": "Додати поле", "label": "Метадані профілю", "name": "Назва", - "value": "Зміст" + "value": "Вміст" }, "profile_tab": "Профіль", "radii_help": "Радіус заокруглення кутів інтерфейсу (в пікселях)", "refresh_token": "Оновити ключ", + "remove_alias": "Вилучити нову обліковку", + "remove_backup": "Вилучити", + "render_mfm": "Показувати розмітку Misskey", + "render_mfm_on_hover": "Анімувати MFM лише при наведенні", "replies_in_timeline": "Відповіді в стрічці", - "reply_visibility_all": "Показати всі відповіді", - "reply_visibility_following": "Показувати відповіді адресовані лише мені або користувачам, яких я читаю", - "reply_visibility_following_short": "Показувати відповіді тим, на кого я підписаний", - "reply_visibility_self": "Показувати лише адресовані мені відповіді", - "reply_visibility_self_short": "Показувати відповіді лише мені", + "reply_visibility_all": "Усі відповіді", + "reply_visibility_following": "Лише відповіді вам чи тим, на кого ви підписані", + "reply_visibility_following_short": "Відповіді тим, на кого ви підписані", + "reply_visibility_self": "Лише відповіді вам", + "reply_visibility_self_short": "Лише вам", "reset_avatar": "Скинути аватар", "reset_avatar_confirm": "Ви дійсно хочете скинути аватар?", "reset_background_confirm": "Ви дійсно хочете скинути обкладинку?", "reset_banner_confirm": "Ви дійсно хочете скинути банер?", "reset_profile_background": "Скинути обкладинку профілю", - "reset_profile_banner": "Скинули банер профілю", + "reset_profile_banner": "Скинути банер профілю", "revoke_token": "Відкликати", "right_sidebar": "Показувати бокову панель справа", "save": "Зберегти зміни", "saving_err": "Помилка при збереженні налаштувань", "saving_ok": "Налаштування збережені", - "scope_copy": "Копіювати осяг при відповіді (завжди ввімкнено для особистих повідомлень)", + "scope_copy": "Відповідати на тому ж рівні приватності (завжди ввімкнено для особистих повідомлень)", "search_user_to_block": "Шукайте кого ви хочете заблокувати", "search_user_to_mute": "Шукайте кого ви хочете заглушити", "security": "Безпека", "security_tab": "Безпека", - "sensitive_by_default": "Визначати допис як дратівливий за замовчуванням", + "sensitive_by_default": "Одразу позначати дописи дражливими", + "sensitive_if_subject": "Позначати зображення дражливими, якщо вказано застереження", "set_new_avatar": "Встановити новий аватар", "set_new_profile_background": "Встановити нову обкладинку профілю", "set_new_profile_banner": "Встановити новий банер", "setting_changed": "Конфігурація відрізняється від типової", + "setting_server_side": "Параметр зберігається на сервері, тому впливає на всі ваші пристрої та програми", "settings": "Налаштування", - "show_admin_badge": "Показувати значок адміністратора в моєму профілі", - "show_moderator_badge": "Показувати значок модератора в моєму профілі", - "stop_gifs": "Відтворювати GIF анімації тільки при наведенні", - "streaming": "Ввімкнути автоматичне завантаження нових повідомлень при прокручуванні вгору", + "settings_profile": "Профілі налаштувань", + "settings_profile_creation": "Створити профіль", + "settings_profile_creation_new_name_label": "Назва", + "settings_profile_creation_submit": "Створити", + "settings_profile_currently": "Зараз «{name}» (версія {version})", + "settings_profile_delete": "Видалити", + "settings_profile_delete_confirm": "Точно видалити налаштування?", + "settings_profile_force_sync": "Синхронізувати", + "settings_profile_in_use": "Зараз", + "settings_profile_use": "Застосувати", + "settings_profiles_refresh": "Оновити профілі налаштувань", + "settings_profiles_show": "Показати всі профілі налаштувань", + "settings_profiles_unshow": "Сховати всі профілі налаштувань", + "show_admin_badge": "Зазначати, що я адмініструю", + "show_moderator_badge": "Зазначати, що я модерую", + "show_nav_shortcuts": "Більше ярликів у шапці", + "show_panel_nav_shortcuts": "Ярлики стрічок у заголовку панелі", + "show_scrollbars": "Смуги прокрутки в бокових панелях", + "show_wider_shortcuts": "Більша відстань між ярликами в заголовку", + "stop_gifs": "Анімувати GIF лише при наведенні", + "streaming": "Автоматично показувати нові дописи вгорі стрічки", "style": { "advanced_colors": { "_tab_label": "Додатково", @@ -503,10 +675,10 @@ "alert_warning": "Попередження", "badge": "Тло значків", "badge_notification": "Сповіщення", - "borders": "Кордони", + "borders": "Рамки", "buttons": "Кнопки", "chat": { - "border": "Кайма", + "border": "Рамка", "incoming": "Вхідні повідомлення", "outgoing": "Вихідні повідомлення" }, @@ -517,14 +689,14 @@ "inputs": "Поля входу", "panel_header": "Заголовок панелі", "poll": "Діаграма опитування", - "popover": "Підказки, меню, поповери", - "post": "Дописи/Дані користувачів", + "popover": "Підказки, меню, спливні вікна", + "post": "Дописи й описи", "pressed": "Натиснуто", "selectedMenu": "Вибраний пункт меню", "selectedPost": "Вибраний допис", "tabs": "Вкладки", "toggled": "Переключено", - "top_bar": "Верхня панель", + "top_bar": "Шапка", "underlay": "Тло", "wallpaper": "Шпалери" }, @@ -535,20 +707,20 @@ "18pt": "для великого (18pt+) тексту", "text": "для тексту" }, - "hint": "Рівень контрасту: {ratio}, {level} {context}", + "hint": "Контраст {ratio} {level} {context}", "level": { - "aa": "відповідає вимогам рівня АА (мінімальний)", - "aaa": "відповідає вимогам рівня ААA (рекомендований)", - "bad": "Не відповідає жодним вимогам щодо доступності" + "aa": "відповідає рівню AA (мінімальному)", + "aaa": "відповідає рівню AAA (рекомендованому)", + "bad": "не відповідає жодним вимогам доступності" } }, "opacity": "Прозорість" }, "common_colors": { "_tab_label": "Загальні", - "foreground_hint": "Перегляньте вкладку \"Додатково\" для більшого контролю", + "foreground_hint": "Більше — на вкладці «Додатково»", "main": "Загальні кольори", - "rgbo": "Піктограми, акценти, значки" + "rgbo": "Значки, акценти, ролі" }, "fonts": { "_tab_label": "Шрифти", @@ -566,13 +738,13 @@ }, "preview": { "button": "Кнопка", - "checkbox": "Я переглянув умови використання", - "content": "Зміст", + "checkbox": "Погоджуюся з умовами використання", + "content": "Вміст", "error": "Приклад помилки", "faint_link": "корисний підручник", "fine_print": "Прочитайте наш {0} аби нічого нового не дізнатись!", "header": "Попередній перегляд", - "header_faint": "Це нормально", + "header_faint": "Все гаразд", "input": "Що нового?", "link": "невеличке посилання", "mono": "змісту", @@ -586,8 +758,8 @@ "blur": "Розмиття", "component": "Компонент", "components": { - "avatar": "Аватар користувача (профіль)", - "avatarStatus": "Аватар користувача (в стрічці)", + "avatar": "Аватар (у профілі)", + "avatarStatus": "Аватар (у стрічці)", "button": "Кнопка", "buttonHover": "Кнопка (при наведенні)", "buttonPressed": "Кнопка (натиснута)", @@ -635,30 +807,37 @@ "keep_shadows": "Залишити тіні", "load_theme": "Завантажити тему", "reset": "Скинути", - "save_load_hint": "Параметри \"Зберегти\" зберігають поточні параметри під час вибору або завантаження тем, вони також зберігають зазначені параметри під час експорту теми. Коли всі прапорці знято, експортування теми збереже все.", + "save_load_hint": "Опції «Залишити» зберігають частини поточної теми, коли обираєте іншу чи вивантажуєте свій файл, а також коли завантажуєте тему. Коли всі пташки знято, завантаження теми зберігає все.", "use_snapshot": "Стара версія", "use_source": "Нова версія" } }, - "subject_input_always_show": "Завжди показувати поле для вводу теми", - "subject_line_behavior": "Вигляд теми при відповіді", - "subject_line_email": "Як в email: \"re: тема\"", - "subject_line_mastodon": "Як в mastodon: просто скопіювати", - "subject_line_noop": "Не копіювати", + "subject_input_always_show": "Завжди показувати поле застороги", + "subject_line_behavior": "Копіювати засторогу при відповіді", + "subject_line_email": "як у пошті: «re: тема»", + "subject_line_mastodon": "як у mastodon: без змін", + "subject_line_noop": "не копіювати", "text": "Текст", "theme": "Тема", - "theme_help": "Використовувати шістнадцяткові коди кольору (#rrggbb) щоб редагувати тему.", - "theme_help_v2_1": "Ви також можете замінити кольори та видимість окремих компонентів, перемикаючи прапорці, використовуйте \"Очистити все\", щоб видалити всі заміни.", - "theme_help_v2_2": "Піктограми під деякими записами є показниками контрасту між фоном та текстом. Коли ви наведете на них курсор, ви отримаєте детальну інформацію. Пам'ятайте, якщо ви використовуєте прозорість, індикатори показують найгірший варіант.", + "theme_help": "Замініть кольори теми своїми в форматі (#rrggbb).", + "theme_help_v2_1": "Деякі кольори й прозорості розраховуються автоматично. Позначайте їх пташками, щоб замінити їх вручну. Кнопка «Очистити все» видаляє всі такі заміни.", + "theme_help_v2_2": "Значки під кольорами показують, наскільки добре видно текст на тлі. При наведенні побачите деталі. Якщо використовуєте прозорість, буде оцінено найгірший варіант.", + "third_column_mode": "Третя панель, якщо достатньо місця", + "third_column_mode_none": "Відсутня", + "third_column_mode_notifications": "Сповіщення", + "third_column_mode_postform": "Новий допис і меню", "token": "Ключ", "tooltipRadius": "Підказки/попередження", "type_domains_to_mute": "Пошук доменів для заглушення", - "upload_a_photo": "Завантажити фото", - "useStreamingApi": "Отримувати повідомлення та сповіщення в режимі реального часу", + "upload_a_photo": "Вивантажити фото", + "useStreamingApi": "Отримувати дописи та сповіщення наживо", "useStreamingApiWarning": "(Не рекомендується, експериментально, повідомлення можуть зникати)", + "use_at_icon": "Значок {'@'} замість символа", "use_contain_fit": "Не обрізати краї мініатюр", "use_one_click_nsfw": "Відкривати NSFW вкладення одним кліком миші", - "user_mutes": "Користувачі", + "user_mutes": "Користувач_ки", + "user_profile_default_tab": "Типова вкладка профілів", + "user_profiles": "Користувацькі профілі", "user_settings": "Користувацькі налаштування", "valid_until": "Діє до", "values": { @@ -671,34 +850,58 @@ "title": "Версія" }, "virtual_scrolling": "Оптимізувати оновлення стрічки", - "word_filter": "Фільтр слів" + "word_filter": "Фільтр слів", + "wordfilter": "Фільтр слів" }, "status": { "bookmark": "Додати до закладок", "copy_link": "Скопіювати посилання на допис", "delete": "Видалити допис", - "delete_confirm": "Ви дійсно хочете видалити цей допис?", + "delete_confirm": "Точно видалити допис?", + "delete_confirm_accept_button": "Так, видалити", + "delete_confirm_cancel_button": "Ні, лишити", + "delete_confirm_title": "Підтвердьте видалення", + "edit": "Редагувати", + "edit_history": "Історія змін", + "edit_history_modal_title": "Змін: {historyCount} | Змін: {historyCount}", + "edited_at": "Змінено {time}", "expand": "Розгорнути", "external_source": "Зовнішнє джерело", "favorites": "Вподобане", "hide_content": "Сховати вміст", "hide_full_subject": "Сховати всю тему", "mute_conversation": "Заглушити розмову", - "nsfw": "Дратівливий вміст", + "nsfw": "Дражливий вміст", + "open_gallery": "Відкрити галерею", "pin": "Закріпити в профілі", "pinned": "Закріплено", + "plus_more": "ще {number}", + "redraft": "Видалити й переписати", + "redraft_confirm": "Точно видалити й переписати допис? Відповіді, поширення, реакції тощо зникнуть.", + "redraft_confirm_accept_button": "Так, видалити й переписати", + "redraft_confirm_cancel_button": "Ні, лишити оригінал", + "redraft_confirm_title": "Підтвердьте видалення й переписання", + "remove_attachment": "Видалити долучення", "repeats": "Поширення", "replies_list": "Відповіді:", "reply_to": "Відповідь", + "show_all_attachments": "Показати всі вкладення", + "show_attachment_description": "Переглянути опис (натисніть саме вкладення, якщо опис не вміщається)", + "show_attachment_in_modal": "Показати вкладення у вікні", "show_content": "Показати вміст", - "show_full_subject": "Показати всю тему", + "show_full_subject": "Показати всю засторогу", "status_deleted": "Цей допис був видалений", "status_unavailable": "Допис недоступний", - "thread_muted": "Нитка заглушена", + "thread_hide": "Сховати гілку", + "thread_muted": "Гілку приглушено", "thread_muted_and_words": ", має слова:", + "thread_show": "Показати гілку", + "translate": "Перекласти", + "translated_from": "В оригіналі: {language}", "unbookmark": "Видалити із закладок", "unmute_conversation": "Припинити глушити розмову", - "unpin": "Відкріпити від профілю" + "unpin": "Відкріпити від профілю", + "you": "(ви)" }, "time": { "in_future": "через {0}", @@ -728,32 +931,33 @@ "error": "Помилка завантаження стрічки: {0}", "load_older": "Завантажити давніші дописи", "no_more_statuses": "Більше немає дописів", - "no_retweet_hint": "Запис, позначено як \"тільки для підписників\" або \"особисте\" і тому не може бути поширений", - "no_statuses": "Ніяких статусів", + "no_retweet_hint": "Допис приватний чи особистий, тож його не можна поширити чи цитувати", + "no_statuses": "Дописів нема", "reload": "Оновити", - "repeated": "поширив(-ла)", + "repeated": "поширює", "show_new": "Показати нові", "socket_broke": "Втрачено з'єднання у реальному часі: код {0}", "socket_reconnected": "Встановлено з'єднання у реальному часі", "up_to_date": "Оновлено" }, "tool_tip": { - "accept_follow_request": "Прийняти запит на підписку", + "accept_follow_request": "Дозволити підписатись", "add_reaction": "Додати реакцію", "bookmark": "Додати до закладок", "favorite": "Подобається", - "media_upload": "Завантажити медіа", - "reject_follow_request": "Відхилити запит на підписку", + "media_upload": "Вивантажити медіа", + "quote": "Цитувати", + "reject_follow_request": "Не дозволити підписатись", "repeat": "Поширити", "reply": "Відповісти", "user_settings": "Налаштування користувача" }, "upload": { "error": { - "base": "Збій при завантаженні.", + "base": "Збій при вивантаженні.", "default": "Спробуйте ще раз пізніше", "file_too_big": "Файл завеликий [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", - "message": "Помилка завантаження: {0}" + "message": "Помилка вивантаження: {0}" }, "file_size_units": { "B": "Б", @@ -765,39 +969,54 @@ }, "user_card": { "admin_menu": { - "activate_account": "Активувати обліковий запис", - "deactivate_account": "Деактивувати обліковий запис", - "delete_account": "Видалити обліковий запис", - "delete_user": "Видалити обліковий запис", - "disable_any_subscription": "Взагалі заборонити підписку на користувача", - "disable_remote_subscription": "Заборонити підписуватись на користувачів з віддалених інстансів", - "force_nsfw": "Позначити всі дописи як NSFW", + "activate_account": "Увімкнути обліковку", + "deactivate_account": "Вимкнути обліковку", + "delete_account": "Видалити обліковку", + "delete_user": "Видалити користувач_ку", + "delete_user_data_and_deactivate_confirmation": "Це назовсім видалить дані обліковки й вимкне її. Точно продовжити?", + "disable_any_subscription": "Заборонити підписуватись будь-кому", + "disable_remote_subscription": "Заборонити підписуватись користувач_кам з інших серверів", + "force_nsfw": "Позначити всі дописи дражливими", "force_unlisted": "Не показувати дописи в стрічці", "grant_admin": "Надати права адміністратора", "grant_moderator": "Надати права модератора", - "moderation": "Модерація", + "moderation": "Модерування", "quarantine": "Не розповсюджувати дописи на інших інстансах", "revoke_admin": "Позбавити прав адміністратора", "revoke_moderator": "Позбавити прав модератора", - "sandbox": "Показувати дописи лише підписникам", + "sandbox": "Показувати дописи лише підписни_цям", "strip_media": "Вилучити медіа з дописів користувача" }, - "approve": "Схвалити", + "approve": "Дозволити", + "approve_confirm": "Точно дозволити користувач_ці на вас підписатись?", + "approve_confirm_accept_button": "Так, дозволити", + "approve_confirm_cancel_button": "Ні, скасувати", + "approve_confirm_title": "Дозвіл підписатись", "block": "Заблокувати", + "block_confirm": "Точно заблокувати {user}?", + "block_confirm_accept_button": "Так, заблокувати", + "block_confirm_cancel_button": "Ні, не блокувати", + "block_confirm_title": "Блокування", "block_progress": "Блокуємо…", - "blocked": "Заблоковано!", + "blocked": "Ви блокуєте!", + "blocks_you": "Блокує вас!", "bot": "Бот", + "deactivated": "Вимкнено", "deny": "Відмовити", + "deny_confirm": "Точно відхилити запит на підписку?", + "deny_confirm_accept_button": "Так, відхилити", + "deny_confirm_cancel_button": "Ні, скасувати", "edit_profile": "Редагувати профіль", "favorites": "Вподобання", "follow": "Підписатись", + "follow_cancel": "Скасувати запит", "follow_progress": "Запитую…", "follow_sent": "Запит відправлено!", "follow_unfollow": "Відписатись", - "followees": "Підписаний(-а)", - "followers": "Підписники", - "following": "Підписаний!", - "follows_you": "Підписаний на вас!", + "followees": "Підписки", + "followers": "Підписни_ці", + "following": "Ви підписані!", + "follows_you": "Підписни_ця!", "hidden": "Приховано", "hide_repeats": "Приховати поширення", "highlight": { @@ -806,34 +1025,48 @@ "solid": "Суцільний фон", "striped": "Смугастий фон" }, - "its_you": "Це ти!", + "its_you": "Це ви!", "media": "Медіа", "mention": "Згадати", "message": "Повідомлення", - "mute": "Заглушити", + "mute": "Приглушити", + "mute_confirm": "Точно приглушити {user}?", + "mute_confirm_accept_button": "Так, приглушити", + "mute_confirm_cancel_button": "Ні, не приглушувати", + "mute_confirm_title": "Приглушення", + "mute_domain": "Заблокувати домен", "mute_progress": "Глушимо…", - "muted": "Заглушений", + "muted": "Заглушено", + "note": "Приватна нотатка", "per_day": "на день", "remote_follow": "Підписатись", + "remove_follower": "Вилучити з підписни_ць", + "replies": "З відповідями", "report": "Поскаржитись", + "requested_by": "Запитує дозвіл підписатись", "show_repeats": "Показати поширення", "statuses": "Дописи", "subscribe": "Підписатись", "unblock": "Розблокувати", "unblock_progress": "Розблоковуємо…", + "unfollow_confirm": "Точно відписатись від {user}?", + "unfollow_confirm_accept_button": "Так, відписатись", + "unfollow_confirm_cancel_button": "Ні, не відписуватись", + "unfollow_confirm_title": "Відписка", "unmute": "Зняти глушення", "unmute_progress": "Знімаємо глушення…", "unsubscribe": "Відписатись" }, "user_profile": { - "profile_does_not_exist": "Вибачте, цей профіль більше не існує.", - "profile_loading_error": "Вибачте, під час завантаження цього профілю виникла помилка.", - "timeline_title": "Стрічка користувача" + "field_validated": "Посилання підтверджено", + "profile_does_not_exist": "На жаль, профіль більше не існує.", + "profile_loading_error": "На жаль, не вдалося завантажити профіль.", + "timeline_title": "Стрічка користувач_ки" }, "user_reporting": { - "add_comment_description": "Скарга буде надіслана модераторам вашого інстансу. Нижче Ви можете додати пояснення чому ви вирішили поскаржитись на цей обліковий запис:", + "add_comment_description": "Скаргу буде надіслано модератор_кам вашого сервера. Можете додати пояснення, чому ви скаржитесь на цю обліковку:", "additional_comments": "Додаткове пояснення", - "forward_description": "Цей обліковий запис належить іншому інстансу. Відправити їм копію скарги?", + "forward_description": "Це обліковка з іншого сервера. Надіслати його адміністрації копію скарги?", "forward_to": "Переслати до {0}", "generic_error": "Виникла помилка під час обробки вашого запиту.", "submit": "Відправити", @@ -843,4 +1076,4 @@ "more": "Більше", "who_to_follow": "На кого підписатися" } -} \ No newline at end of file +} From 459c73ec027352db48aa4af212a6bf34341827b9 Mon Sep 17 00:00:00 2001 From: Weblate Date: Wed, 5 Apr 2023 18:57:45 +0000 Subject: [PATCH 22/25] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (1041 of 1041 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 99.9% (1040 of 1041 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 99.9% (1040 of 1041 strings) Translated using Weblate (Chinese (Simplified)) Currently translated at 99.9% (1039 of 1040 strings) Co-authored-by: Poesty Li Co-authored-by: SevicheCC Co-authored-by: Weblate Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/zh_Hans/ Translation: Pleroma fe/pleroma-fe --- src/i18n/zh.json | 758 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 560 insertions(+), 198 deletions(-) diff --git a/src/i18n/zh.json b/src/i18n/zh.json index 570c79c3..8107d76a 100644 --- a/src/i18n/zh.json +++ b/src/i18n/zh.json @@ -1,5 +1,7 @@ { "about": { + "bubble_instances": "本地局域实例", + "bubble_instances_description": "管理员所选的代表此实例局域的实例", "mrf": { "federation": "联邦互通", "keyword": { @@ -10,30 +12,54 @@ "replace": "替换" }, "mrf_policies": "已启用的 MRF 策略", - "mrf_policies_desc": "MRF 策略会影响本实例的互通行为。以下策略已启用:", + "mrf_policies_desc": "MRF 策略会影响此实例的互通行为。以下策略已启用:", "simple": { "accept": "接受", - "accept_desc": "本实例只接收来自下列实例的消息:", + "accept_desc": "此实例仅接收来自下列实例的消息:", "ftl_removal": "从“已知网络”时间线上移除", - "ftl_removal_desc": "该实例在从“已知网络”时间线上移除了下列实例:", + "ftl_removal_desc": "此实例从“已知网络”时间线上移除了下列实例:", + "instance": "实例", "media_nsfw": "强制设置媒体为敏感内容", - "media_nsfw_desc": "本实例将来自以下实例的媒体内容强制设置为敏感内容:", + "media_nsfw_desc": "此实例将来自以下实例的帖文中的媒体强制设置为敏感内容:", "media_removal": "移除媒体", - "media_removal_desc": "本实例移除来自以下实例的媒体内容:", + "media_removal_desc": "此实例移除来自以下实例的帖文中的媒体:", + "not_applicable": "无", "quarantine": "隔离", - "quarantine_desc": "本实例向以下实例仅发送公开的帖子:", + "quarantine_desc": "此实例不会向下列实例发布帖文:", + "reason": "理由", "reject": "拒绝", - "reject_desc": "本实例不会接收来自下列实例的消息:", + "reject_desc": "此实例不会接收来自下列实例的消息:", "simple_policies": "对于特定实例的策略" } }, "staff": "管理人员" }, + "announcements": { + "all_day_prompt": "这是一个全天事件", + "cancel_edit_action": "取消", + "close_error": "关闭", + "delete_action": "删除", + "edit_action": "编辑", + "end_time_display": "结束于 {time}", + "end_time_prompt": "结束时间: ", + "inactive_message": "此公告未处于活跃状态", + "mark_as_read_action": "标为已读", + "page_header": "公告", + "post_action": "发布", + "post_error": "错误:{error}", + "post_form_header": "发布公告", + "post_placeholder": "公告内容", + "published_time_display": "发表于 {time}", + "start_time_display": "开始于 {time}", + "start_time_prompt": "开始时间: ", + "submit_edit_action": "提交", + "title": "公告" + }, "chats": { "chats": "聊天", "delete": "删除", - "delete_confirm": "您确实要删除此消息吗?", - "empty_chat_list_placeholder": "您还没有任何聊天记录。开始聊天吧!", + "delete_confirm": "你确定要删除此消息吗?", + "empty_chat_list_placeholder": "你还没有任何聊天记录。开始聊天吧!", "empty_message_error": "无法发布空消息", "error_loading_chat": "加载聊天时出了点问题。", "error_sending_message": "发送消息时出了点问题。", @@ -46,28 +72,28 @@ "today": "今天" }, "domain_mute_card": { - "mute": "隐藏", - "mute_progress": "隐藏中…", - "unmute": "取消隐藏", - "unmute_progress": "正在取消隐藏…" + "mute": "静音", + "mute_progress": "静音中…", + "unmute": "取消静音", + "unmute_progress": "取消静音中…" }, "emoji": { "add_emoji": "插入表情符号", "custom": "自定义表情符号", "emoji": "表情符号", "keep_open": "选择器保持打开", - "load_all": "加载所有表情符号(共 {emojiAmount} 个)", - "load_all_hint": "最先加载的 {saneAmount} 表情符号,加载全部表情符号可能会带来性能问题。", + "load_all": "加载全部 {emojiAmount} 个表情符号中", + "load_all_hint": "已加载前 {saneAmount} 个表情符号,加载全部表情符号可能会带来性能问题。", "search_emoji": "搜索表情符号", "stickers": "贴纸", "unicode": "Unicode 表情符号" }, "errors": { - "storage_unavailable": "Pleroma 无法访问浏览器储存。您的登陆以及本地设置将不会被保存,您也可能遇到未知问题。请尝试启用 cookies。" + "storage_unavailable": "Pleroma 无法访问浏览器储存。你的登录以及本地设置将不会被保存并且你也可能遇到未知问题。请尝试启用 cookies。" }, "exporter": { "export": "导出", - "processing": "正在处理,稍后会提示您下载文件" + "processing": "处理中,稍后会提示你下载文件" }, "features_panel": { "media_proxy": "媒体代理", @@ -84,7 +110,7 @@ "video": "视频" }, "finder": { - "error_fetching_user": "获取用户时发生错误", + "error_fetching_user": "获取用户时出错", "find_user": "寻找用户" }, "general": { @@ -98,7 +124,7 @@ "error_retry": "请重试", "flash_content": "点击以使用 Ruffle 显示 Flash 内容(实验性,可能无效)。", "flash_fail": "Flash 内容加载失败,请在控制台查看详情。", - "flash_security": "注意这可能有潜在的危险,因为 Flash 内容仍然是任意的代码。", + "flash_security": "注意这可能有潜在的危险因为 Flash 内容仍然是任意的代码。", "generic_error": "发生了一个错误", "loading": "载入中…", "more": "更多", @@ -109,8 +135,15 @@ "admin": "管理员", "moderator": "监察员" }, - "show_less": "收起", - "show_more": "展开", + "scope_in_timeline": { + "direct": "私信", + "local": "本地 - 仅你所在的实例能看到此帖文", + "private": "仅关注者", + "public": "公开", + "unlisted": "不公开" + }, + "show_less": "显示更少", + "show_more": "显示更多", "submit": "提交", "verify": "验证" }, @@ -131,6 +164,84 @@ "load_older": "加载更早的互动", "moves": "用户迁移" }, + "languages": { + "ar": "阿拉伯文", + "az": "阿塞拜疆语", + "bg": "保加利亚语", + "cs": "捷克语", + "da": "丹麦语", + "de": "德语", + "el": "希腊语", + "en": "英语", + "eo": "世界语", + "es": "西班牙语", + "fa": "波斯语", + "fi": "芬兰语", + "fr": "法语", + "ga": "爱尔兰语", + "he": "希伯莱", + "hi": "印地语", + "hu": "匈牙利语", + "id": "印度尼西亚语", + "it": "意大利语", + "ja": "日文", + "ko": "韩文", + "lt": "立陶宛语", + "lv": "拉脱维亚语", + "nl": "荷兰语", + "pl": "波兰语", + "pt": "葡萄牙语", + "ru": "俄语", + "sk": "斯洛伐克语", + "sv": "瑞典语", + "tr": "土耳其语", + "translated_from": { + "ar": "翻译自 @:languages.ar", + "az": "翻译自 @:languages.az", + "bg": "翻译自 @:languages.bg", + "cs": "翻译自 @:languages.cs", + "da": "翻译自 @:languages.da", + "de": "翻译自 @:languages.de", + "el": "翻译自 @:languages.el", + "en": "翻译自 @:languages.en", + "eo": "翻译自 @:languages.eo", + "es": "翻译自 @:languages.es", + "fa": "翻译自 @:languages.fa", + "fi": "翻译自 @:languages.fi", + "fr": "翻译自 @:languages.fr", + "ga": "翻译自 @:languages.ga", + "he": "翻译自 @:languages.he", + "hi": "翻译自 @:languages.hi", + "hu": "翻译自 @:languages.hu", + "id": "翻译自 @:languages.id", + "it": "翻译自 @:languages.it", + "ja": "翻译自 @:languages.ja", + "ko": "翻译自 @:languages.ko", + "lt": "翻译自 @:languages.lt", + "lv": "翻译自 @:languages.lv", + "nl": "翻译自 @:languages.nl", + "pl": "翻译自 @:languages.pl", + "pt": "翻译自 @:languages.pt", + "ru": "翻译自 @:languages.ru", + "sk": "翻译自 @:languages.sk", + "sv": "翻译自 @:languages.sv", + "tr": "翻译自 @:languages.tr", + "uk": "翻译自 @:languages.uk", + "zh": "翻译自 @:languages.zh" + }, + "uk": "乌克兰语", + "zh": "中文" + }, + "lists": { + "create": "创建", + "delete": "删除列表", + "following_only": "限制于正在关注", + "lists": "列表", + "new": "新的列表", + "save": "保存更改", + "search": "搜索用户", + "title": "列表标题" + }, "login": { "authentication_code": "验证码", "description": "用 OAuth 登录", @@ -143,127 +254,180 @@ "hint": "登录后加入讨论", "login": "登录", "logout": "登出", + "logout_confirm": "你确定要登出吗?", + "logout_confirm_accept_button": "登出", + "logout_confirm_cancel_button": "取消", + "logout_confirm_title": "登出", "password": "密码", - "placeholder": "例如:lain", + "placeholder": "我的用户名", "recovery_code": "恢复码", "register": "注册", "username": "用户名" }, "media_modal": { + "counter": "{current} / {total}", + "hide": "关闭媒体查看器", "next": "往后", "previous": "往前" }, + "moderation": { + "moderation": "仲裁", + "reports": { + "add_note": "添加备注", + "close": "关闭", + "delete_note": "删除", + "delete_note_accept": "是,删除它", + "delete_note_cancel": "否,保留它", + "delete_note_confirm": "你确定要删除此备注吗?", + "delete_note_title": "确认删除", + "no_content": "未给出描述", + "no_reports": "无举报可显示", + "note_placeholder": "留下备注", + "notes": "{ count } 条备注", + "reopen": "重新处理", + "report": "举报于", + "reports": "举报", + "resolve": "解决", + "show_closed": "显示已关闭", + "statuses": "{ count } 条帖文", + "tag_policy_notice": "启用 TagPolicy MRF 来设置帖文限制", + "tags": "设置帖文限制" + }, + "statuses": "帖文", + "users": "用户" + }, "nav": { "about": "关于", "administration": "管理员", + "announcements": "公告", "back": "后退", "bookmarks": "书签", + "bubble_timeline": "局域时间线", + "bubble_timeline_description": "来自你所在实例相近实例的帖文,由管理员推荐", "chats": "聊天", "dms": "私信", "friend_requests": "关注请求", "home_timeline": "主页时间线", + "home_timeline_description": "来自你所关注的人的帖文", "interactions": "互动", + "lists": "列表", "mentions": "提及", + "moderation": "仲裁", "preferences": "偏好设置", + "public_timeline_description": "来自此实例的公开帖文", "public_tl": "公共时间线", "search": "搜索", "timeline": "时间线", "timelines": "时间线", "twkn": "已知网络", + "twkn_timeline_description": "来自整个网络的帖文", "user_search": "用户搜索", "who_to_follow": "推荐关注" }, "notifications": { - "broken_favorite": "未知的状态,正在搜索中…", + "broken_favorite": "未知帖文,搜索中…", "error": "取得通知时发生错误:{0}", - "favorited_you": "喜欢了你的状态", + "favorited_you": "喜欢了你的帖文", "follow_request": "想要关注你", "followed_you": "关注了你", "load_older": "加载更早的通知", - "migrated_to": "迁移到了", - "no_more_notifications": "没有更多的通知", + "migrated_to": "已迁移到", + "no_more_notifications": "没有更多通知", "notifications": "通知", + "poll_ended": "投票已结束", "reacted_with": "作出了 {0} 的反应", "read": "已阅!", - "repeated_you": "转发了你的状态" + "repeated_you": "转发了你的帖文" }, "password_reset": { - "check_email": "检查您的邮箱,会有一个链接用于重置密码。", - "forgot_password": "忘记密码了?", - "instruction": "输入您的电邮地址或者用户名,我们将发送一个链接到您的邮箱,用于重置密码。", - "password_reset": "重置密码", - "password_reset_disabled": "密码重置已被禁用。请联系您的实例管理员。", - "password_reset_required": "您必须重置密码才能登陆。", - "password_reset_required_but_mailer_is_disabled": "您必须重置密码,但是密码重置被禁用了。请联系您所在实例的管理员。", - "placeholder": "您的电邮地址或者用户名", - "return_home": "回到首页", - "too_many_requests": "您达到了尝试次数的上限,请稍后再试。" + "check_email": "检查你的邮箱以获取重置密码的链接。", + "forgot_password": "忘记密码?", + "instruction": "输入你的邮箱地址或者用户名,我们将向你发送一个链接以用于重置你的密码。", + "password_reset": "密码重置", + "password_reset_disabled": "密码重置已被禁用。请联系你所在实例的管理员。", + "password_reset_required": "你必须重置密码才能登录。", + "password_reset_required_but_mailer_is_disabled": "你必须重置密码,但是密码重置已被禁用。请联系你所在实例的管理员。", + "placeholder": "你的邮箱或用户名", + "return_home": "回到主页", + "too_many_requests": "你已达到尝试次数的上限,请稍后再试。" }, "polls": { "add_option": "增加选项", "add_poll": "增加投票", - "expired": "投票 {0} 前已结束", + "expired": "投票已于 {0} 前结束", "expires_in": "投票于 {0} 后结束", "expiry": "投票期限", "multiple_choices": "多选", "not_enough_options": "投票的选项太少", "option": "选项", - "people_voted_count": "{count} 人已投票 | {count} 人已投票", + "people_voted_count": "{count} 人已投票", "single_choice": "单选", "type": "投票类型", "vote": "投票", "votes": "投票", - "votes_count": "{count} 票 | {count} 票" + "votes_count": "{count} 票" }, "post_status": { - "account_not_locked_warning": "你的帐号没有 {0}。任何人都可以关注你并浏览你的上锁内容。", - "account_not_locked_warning_link": "上锁", + "account_not_locked_warning": "你的账号没有 {0}。任何人都可以关注你并浏览你的仅限关注者的帖文。", + "account_not_locked_warning_link": "锁定", "attachments_sensitive": "标记附件为敏感内容", "content_type": { "text/bbcode": "BBCode", "text/html": "HTML", "text/markdown": "Markdown", - "text/plain": "纯文本" + "text/plain": "纯文本", + "text/x.misskeymarkdown": "MFM" }, - "content_warning": "主题(可选)", - "default": "刚刚抵达上海。", - "direct_warning_to_all": "本条内容只有被提及的用户能够看到。", - "direct_warning_to_first_only": "本条内容只有被在消息开始处提及的用户能够看到。", - "empty_status_error": "不能发布没有内容、没有附件的发文", + "content_warning": "内容警告(可选)", + "default": "刚刚抵达露娜诺娃魔法学校", + "direct_warning_to_all": "此帖文将对所有被提及的用户可见。", + "direct_warning_to_first_only": "此帖文将仅对在消息开始处提及的用户可见。", + "edit_remote_warning": "在某些实例上对帖文所做的更改可能不可见!", + "edit_status": "编辑状态", + "edit_unsupported_warning": "投票和提及不会因编辑而更改。", + "empty_status_error": "不能发布没有内容或附件的帖文", "media_description": "媒体描述", "media_description_error": "更新媒体失败,请重试", - "new_status": "发布新状态", - "post": "发送", - "posting": "发送中", + "media_not_sensitive_warning": "你有一个内容警告,但附件没有被标记为敏感内容!", + "new_status": "发布新帖文", + "post": "发布", + "posting": "发布中", "preview": "预览", "preview_empty": "空的", "scope": { - "direct": "私信 - 只发送给被提及的用户", - "private": "仅关注者 - 只有关注了你的人能看到", - "public": "公共 - 发送到公共时间轴", - "unlisted": "不公开 - 不会发送到公共时间轴" + "direct": "私信 - 仅向被提及的用户发布", + "local": "本地 - 不会向其它实例发布此帖文", + "private": "仅关注者 - 仅向你的关注者发布", + "public": "公共 - 发布到公共时间轴", + "unlisted": "不公开 - 不会发布到公共时间轴" }, "scope_notice": { - "private": "关注你的人才能看到本条内容", - "public": "本条内容可以被所有人看到", - "unlisted": "本条内容既不在公共时间线,也不会在所有已知网络上可见" + "local": "此帖文在其它实例中不可见", + "private": "此帖文仅对你的关注者可见", + "public": "此帖文对所有人可见", + "unlisted": "此帖文在公共时间线和所有已知网络上均不可见" } }, "registration": { + "awaiting_email_confirmation": "你的账号已被注册,一封电子邮件已发到你的地址。请检查电子邮件以完成注册。", + "awaiting_email_confirmation_title": "等待确认邮箱中", "bio": "简介", - "bio_placeholder": "例如:\n你好,我是玲音。\n我是一个住在日本郊区的动画少女。你可能在 Wired 见过我。", + "bio_placeholder": "例如\n嗨!欢迎来到我的简介。\n我喜欢看动画片和玩游戏。我希望我们能成为朋友!", "captcha": "CAPTCHA", - "email": "电子邮箱", + "email": "邮箱", + "email_language": "你想从服务器收到什么语言的邮件?", "fullname": "显示名称", - "fullname_placeholder": "例如:岩仓玲音", + "fullname_placeholder": "例如:亚可·卡嘉莉", "new_captcha": "点击图片获取新的验证码", "password_confirm": "确认密码", "reason": "注册理由", - "reason_placeholder": "此实例的注册需要手动批准。\n请让管理员知道您为什么想要注册。", + "reason_placeholder": "此实例的注册需要手动批准。\n请让管理员知道你为什么想要注册。", "register": "注册", "registration": "注册", + "request_sent": "你的注册请求已被送去审核。当你的账号被批准时,你会收到一封电子邮件。", + "request_sent_title": "注册请求已发送", "token": "邀请码", - "username_placeholder": "例如:lain", + "username_placeholder": "例如:akko", "validations": { "email_required": "不能留空", "fullname_required": "不能留空", @@ -282,24 +446,37 @@ "hashtags": "话题标签", "no_results": "没有搜索结果", "people": "人", - "people_talking": "{count} 人正在讨论", - "person_talking": "{count} 人正在讨论" + "people_talking": "{count} 人讨论中", + "person_talking": "{count} 人讨论中" }, "selectable_list": { "select_all": "选择全部" }, "settings": { "accent": "强调色", - "allow_following_move": "正在关注的账号迁移时自动重新关注", + "account_alias": "账号别名", + "account_alias_table_head": "别名", + "account_backup": "账号备份", + "account_backup_description": "这个允许你下载一份账号信息和文章的存档,但是现在还不能导入到 Pleroma 账号里。", + "account_backup_table_head": "备份", + "account_privacy": "隐私", + "add_alias_error": "添加别名时出错:{error}", + "add_backup": "创建一个新备份", + "add_backup_error": "添加新备份时出错:{error}", + "added_alias": "别名已添加。", + "added_backup": "已创建一个新备份。", + "allow_following_move": "当正在关注的账号迁移时允许自动关注", + "always_show_post_button": "始终显示浮动的“发布新帖文”按钮", "app_name": "App 名称", "attachmentRadius": "附件", "attachments": "附件", - "autohide_floating_post_button": "自动隐藏新帖子的按钮(移动设备)", + "autohide_floating_post_button": "自动隐藏“发布新帖文”的按钮(移动设备)", "avatar": "头像", "avatarAltRadius": "头像(通知)", "avatarRadius": "头像", "avatar_size_instruction": "推荐的头像图片最小尺寸为 150x150 像素。", "background": "背景", + "backup_not_ready": "备份还没准备好。", "bio": "简介", "block_export": "屏蔽名单导出", "block_export_button": "导出你的屏蔽名单到一个 csv 文件", @@ -313,30 +490,53 @@ "cGreen": "绿色(转发)", "cOrange": "橙色(喜欢)", "cRed": "红色(取消)", - "change_email": "修改电子邮箱", - "change_email_error": "修改您的电子邮箱时发生错误。", - "change_password": "修改密码", - "change_password_error": "修改密码的时候出了点问题。", - "changed_email": "邮箱修改成功!", - "changed_password": "成功修改了密码!", + "change_email": "更改邮箱", + "change_email_error": "更改你的邮箱时发生错误。", + "change_password": "更改密码", + "change_password_error": "更改密码的时候出了点问题。", + "changed_email": "邮箱已成功更改!", + "changed_password": "密码已成功更改!", "chatMessageRadius": "聊天消息", "checkboxRadius": "复选框", - "collapse_subject": "折叠带主题的内容", + "collapse_subject": "折叠带内容警告的帖文", + "columns": "分栏", "composing": "写作", + "confirm_dialogs": "需要确认当:", + "confirm_dialogs_approve_follow": "接受关注请求", + "confirm_dialogs_block": "屏蔽某人", + "confirm_dialogs_delete": "删除帖文", + "confirm_dialogs_deny_follow": "拒绝关注请求", + "confirm_dialogs_mute": "静音某人", + "confirm_dialogs_repeat": "转发帖文", + "confirm_dialogs_unfollow": "取消关注某人", "confirm_new_password": "确认新密码", + "confirmation_dialogs": "确认选项", + "conversation_display": "对话显示样式", + "conversation_display_linear": "线性样式", + "conversation_display_tree": "树状样式", + "conversation_other_replies_button": "显示 “其它回复” 按钮", + "conversation_other_replies_button_below": "在帖文下方", + "conversation_other_replies_button_inside": "在帖文中", "current_avatar": "当前头像", + "current_mascot": "你当前的吉祥物", "current_password": "当前密码", "data_import_export_tab": "数据导入/导出", "default_vis": "默认可见范围", - "delete_account": "删除账户", - "delete_account_description": "永久删除你的帐号和所有数据。", - "delete_account_error": "删除账户时发生错误,如果一直删除不了,请联系实例管理员。", - "delete_account_instructions": "在下面输入您的密码来确认删除账户。", + "delete_account": "删除账号", + "delete_account_description": "永久删除你的账号和所有数据。", + "delete_account_error": "删除账号时发生错误,如果一直删除不了,请联系实例管理员。", + "delete_account_instructions": "在下面输入你的密码来确认删除账号。", + "disable_sticky_headers": "不要把分栏的顶栏固定在屏幕的顶部", "discoverable": "允许通过搜索检索等服务找到此账号", "domain_mutes": "域名", + "download_backup": "下载", + "email_language": "从服务器收邮件的语言", "emoji_reactions_on_timeline": "在时间线上显示表情符号互动", "enable_web_push_notifications": "启用 web 推送通知", - "enter_current_password_to_confirm": "输入您当前的密码来确认您的身份", + "enter_current_password_to_confirm": "输入你当前的密码来确认你的身份", + "expert_mode": "显示高级", + "expire_posts_enabled": "在设定的天数后删除帖文", + "expire_posts_input_placeholder": "天数", "export_theme": "导出预置主题", "file_export_import": { "backup_restore": "设置备份", @@ -351,7 +551,7 @@ "restore_settings": "从文件恢复设置" }, "filtering": "过滤器", - "filtering_explanation": "所有包含以下词汇的内容都会被隐藏,一行一个", + "filtering_explanation": "所有包含以下词汇的帖文都会被静音,一行一个", "follow_export": "导出关注", "follow_export_button": "将关注导出成 csv 文件", "follow_import": "导入关注", @@ -361,79 +561,108 @@ "fun": "趣味", "general": "通用", "greentext": "Meme 箭头", - "hide_all_muted_posts": "不显示已隐藏的发文", + "hide_all_muted_posts": "隐藏已静音的帖文", "hide_attachments_in_convo": "在对话中隐藏附件", "hide_attachments_in_tl": "在时间线上隐藏附件", - "hide_filtered_statuses": "隐藏过滤的状态", + "hide_bot_indication": "隐藏帖文中的机器人提示", + "hide_favorites_description": "不显示我的喜欢列表(人们仍然会收到通知)", + "hide_filtered_statuses": "隐藏过滤的帖文", "hide_followers_count_description": "不显示关注者数量", "hide_followers_description": "不要显示关注我的人", "hide_follows_count_description": "不显示关注数", "hide_follows_description": "不要显示我所关注的人", "hide_isp": "隐藏实例独有的面板", + "hide_list_aliases_error_action": "关闭", "hide_media_previews": "隐藏媒体预览", - "hide_muted_posts": "不显示被隐藏的用户的帖子", - "hide_post_stats": "隐藏帖子的统计数据(例如:喜欢的次数)", + "hide_muted_posts": "隐藏已静音用户的帖文", + "hide_muted_threads": "隐藏已静音的同主题帖文", + "hide_post_stats": "隐藏帖文的统计数据(例如:喜欢的次数)", "hide_shoutbox": "隐藏实例留言板", + "hide_site_favicon": "隐藏顶部面板中的实例图标", + "hide_site_name": "隐藏顶部面板中的实例名称", + "hide_threads_with_blocked_users": "隐藏提及被屏蔽用户的同主题帖文", "hide_user_stats": "隐藏用户的统计数据(例如:关注者的数量)", "hide_wallpaper": "隐藏实例壁纸", + "hide_wordfiltered_statuses": "隐藏经过词语过滤的帖文", "import_blocks_from_a_csv_file": "从 csv 文件中导入拉黑名单", - "import_followers_from_a_csv_file": "从 csv 文件中导入关注", - "import_mutes_from_a_csv_file": "从 csv 文件导入隐藏名单", + "import_followers_from_a_csv_file": "从 csv 文件中导入关注名单", + "import_mutes_from_a_csv_file": "从 csv 文件中导入静音名单", "import_theme": "导入预置主题", "inputRadius": "输入框", "instance_default": "(默认:{value})", "instance_default_simple": "(默认)", "interface": "界面", "interfaceLanguage": "界面语言", - "invalid_theme_imported": "您所选择的主题文件不被 Pleroma 支持,因此主题未被修改。", - "limited_availability": "在您的浏览器中无法使用", + "invalid_theme_imported": "你所选择的主题文件不被 Pleroma 支持,因此主题未被修改。", + "limited_availability": "在你的浏览器中无法使用", "links": "链接", - "lock_account_description": "您需要手动审核关注请求", + "list_aliases_error": "获取别名时出错:{error}", + "list_backups_error": "获取备份列表出错:{error}", + "lock_account_description": "限制你的账号以手动审核关注者", "loop_video": "循环视频", - "loop_video_silent_only": "只循环没有声音的视频(例如:Mastodon 里的“GIF”)", - "max_thumbnails": "每个帖子最多能显示的缩略图数量", + "loop_video_silent_only": "仅循环没有声音的视频(例如:Mastodon 里的“GIF”)", + "mascot": "Mastodon FE 吉祥物", + "max_depth_in_thread": "默认显示同主题帖文中的最大层数", + "max_thumbnails": "每个帖文最多能显示的缩略图数量", + "mention_link_bolden_you": "当你被提及时突出显示提及你", + "mention_link_display": "显示提及链接", + "mention_link_display_full": "始终以全名的形式出现(例如:{'@'}foo{'@'}example.org)", + "mention_link_display_full_for_remote": "仅远程实例用户以全名的形式出现(例如:{'@'}foo{'@'}example.org)", + "mention_link_display_short": "始终以简称的形式出现(例如:{'@'}foo)", + "mention_link_fade_domain": "淡化域名(例如:{'@'}example.org 中的 {'@'}foo{'@'}example.org)", + "mention_link_show_avatar": "在链接旁边显示用户头像", + "mention_link_show_tooltip": "显示远程实例用户完整的用户名作为提示信息", + "mention_links": "提及链接", "mfa": { "authentication_methods": "身份验证方法", "confirm_and_enable": "确认并启用 OTP", "generate_new_recovery_codes": "生成新的恢复码", "otp": "OTP", "recovery_codes": "恢复码。", - "recovery_codes_warning": "抄写这些号码,或者将其保存在安全的地方。这些号码不会再次显示。如果您无法访问您的 2FA app,也丢失了您的恢复码,您就再也无法登录您的账号了。", + "recovery_codes_warning": "抄写这些号码,或者将其保存在安全的地方。这些号码不会再次显示。如果你无法访问你的 2FA app,也丢失了你的恢复码,你就再也无法登录你的账号了。", "scan": { - "desc": "使用您的双因素验证 app,扫描这个二维码,或者输入这些文字密钥:", + "desc": "使用你的双因素验证 app,扫描这个二维码,或者输入这些文字密钥:", "secret_code": "密钥", "title": "扫一下" }, "setup_otp": "设置 OTP", "title": "双因素验证", "verify": { - "desc": "要启用双因素验证,请输入您的双因素验证 app 里的数字:" + "desc": "要启用双因素验证,请输入你的双因素验证 app 里的数字:" }, "wait_pre_setup_otp": "预设 OTP", - "waiting_a_recovery_codes": "正在接收备份码…", - "warning_of_generate_new_codes": "当您生成新的恢复码时,您旧的恢复码将会失效。" + "waiting_a_recovery_codes": "接收备份码中…", + "warning_of_generate_new_codes": "当你生成新的恢复码时,你旧的恢复码将会失效。" }, - "minimal_scopes_mode": "使发文可见范围的选项最少化", + "minimal_scopes_mode": "使发布可见范围的选项最少化", "more_settings": "更多设置", - "mute_export": "隐藏名单导出", - "mute_export_button": "导出你的隐藏名单到一个 csv 文件", - "mute_import": "隐藏名单导入", - "mute_import_error": "导入隐藏名单出错", - "mutes_and_blocks": "隐藏与屏蔽", - "mutes_imported": "隐藏名单导入成功!处理它们将需要一段时间。", - "mutes_tab": "隐藏", + "move_account": "移动账号", + "move_account_error": "移动账号时出错:{error}", + "move_account_notes": "如果你想把账号迁移到别的地方,你必须前去你的目标账号然后添加一个指向此处的别名。", + "move_account_target": "目标账号(例如 {example})", + "moved_account": "账号已迁移。", + "mute_bot_posts": "静音机器人的帖文", + "mute_export": "静音名单导出", + "mute_export_button": "导出你的静音名单到一个 csv 文件", + "mute_import": "静音名单导入", + "mute_import_error": "导入静音名单出错", + "mutes_and_blocks": "静音与屏蔽", + "mutes_imported": "静音名单导入成功!处理它们将需要一段时间。", + "mutes_tab": "静音", "name": "名字", "name_bio": "名字及简介", + "new_alias_target": "添加一个新别名(例如 {example})", "new_email": "新邮箱", "new_password": "新密码", "no_blocks": "没有屏蔽", - "no_mutes": "没有隐藏", + "no_mutes": "没有静音", "no_rich_text_description": "不显示富文本格式", "notification_blocks": "屏蔽一个用户会停止接收来自该用户的所有通知,并且会取消对该用户的关注。", - "notification_mutes": "要停止收到某个指定的用户的通知,请使用隐藏功能。", + "notification_mutes": "要停止收到某个指定的用户的通知,请使用静音功能。", "notification_setting_block_from_strangers": "屏蔽来自你没有关注的用户的通知", "notification_setting_filters": "过滤器", - "notification_setting_hide_notification_contents": "隐藏推送通知中的发送者与内容信息", + "notification_setting_hide_if_cw": "隐藏推送通知的内容如果包含内容警告", + "notification_setting_hide_notification_contents": "隐藏推送通知的发送者和内容", "notification_setting_privacy": "隐私", "notification_visibility": "要显示的通知类型", "notification_visibility_emoji_reactions": "互动", @@ -441,15 +670,18 @@ "notification_visibility_likes": "喜欢", "notification_visibility_mentions": "提及", "notification_visibility_moves": "用户迁移", + "notification_visibility_polls": "你所投的投票的结束于", "notification_visibility_repeats": "转发", "notifications": "通知", - "nsfw_clickthrough": "将不和谐附件和链接预览隐藏,点击才会显示", + "nsfw_clickthrough": "隐藏敏感/NSFW的媒体", "oauth_tokens": "OAuth令牌", "pad_emoji": "从表情符号选择器插入表情符号时,在表情两侧插入空格", "panelRadius": "面板", "pause_on_unfocused": "在离开页面时暂停时间线推送", "play_videos_in_modal": "在弹出框内播放视频", - "post_status_content_type": "发文状态内容类型", + "post_look_feel": "文章的样子跟感受", + "post_status_content_type": "默认发布的内容类型", + "posts": "帖文", "preload_images": "预载图片", "presets": "预置", "profile_background": "个人背景图", @@ -463,16 +695,20 @@ "profile_tab": "个人资料", "radii_help": "设置界面边缘的圆角 (单位:像素)", "refresh_token": "刷新令牌", + "remove_alias": "移除此别名", + "remove_backup": "移除", + "render_mfm": "渲染 Misskey Markdown", + "render_mfm_on_hover": "暂停 MFM 动画直到悬停于帖文上", "replies_in_timeline": "时间线中的回复", "reply_visibility_all": "显示所有回复", - "reply_visibility_following": "只显示发送给我的回复/发送给我关注的用户的回复", + "reply_visibility_following": "仅显示发送给我或我关注的用户的回复", "reply_visibility_following_short": "显示对我关注的人的回复", - "reply_visibility_self": "只显示发送给我的回复", - "reply_visibility_self_short": "只显示对我本人的回复", + "reply_visibility_self": "仅显示发送给我的回复", + "reply_visibility_self_short": "仅显示对我本人的回复", "reset_avatar": "重置头像", - "reset_avatar_confirm": "您确定要重置头像吗?", - "reset_background_confirm": "您确定要重置背景图吗?", - "reset_banner_confirm": "您确定要重置横幅图片吗?", + "reset_avatar_confirm": "你确定要重置头像吗?", + "reset_background_confirm": "你确定要重置背景图吗?", + "reset_banner_confirm": "你确定要重置横幅图片吗?", "reset_profile_background": "重置个人背景图", "reset_profile_banner": "重置横幅图片", "revoke_token": "撤消", @@ -482,19 +718,40 @@ "saving_ok": "设置已保存", "scope_copy": "回复时复制可见范围(私信中永远会复制)", "search_user_to_block": "搜索你想屏蔽的用户", - "search_user_to_mute": "搜索你想要隐藏的用户", + "search_user_to_mute": "搜索你想静音的用户", "security": "安全", "security_tab": "安全", - "sensitive_by_default": "默认标记发文为敏感内容", + "sensitive_by_default": "默认标记帖文为敏感内容", + "sensitive_if_subject": "自动将图像标记为敏感内容如果内容警告已指定", "set_new_avatar": "设置新头像", + "set_new_mascot": "设置新吉祥物", "set_new_profile_background": "设置新的个人资料背景", "set_new_profile_banner": "设置新的横幅图片", "setting_changed": "与默认设置不同", + "setting_server_side": "这个设置是捆绑到你的个人资料的,能影响所有会话和客户端", "settings": "设置", + "settings_profile": "设置配置文件", + "settings_profile_creation": "创建新的配置文件", + "settings_profile_creation_new_name_label": "名字", + "settings_profile_creation_submit": "创建", + "settings_profile_currently": "目前使用 {name}(版本:{version})", + "settings_profile_delete": "删除", + "settings_profile_delete_confirm": "你确定要删除此配置文件吗?", + "settings_profile_force_sync": "同步", + "settings_profile_in_use": "使用中", + "settings_profile_use": "使用", + "settings_profiles_refresh": "重新加载设置配置文件", + "settings_profiles_show": "显示所有设置配置文件", + "settings_profiles_unshow": "隐藏所有设置配置文件", "show_admin_badge": "在我的个人资料中显示“管理员”徽章", "show_moderator_badge": "在我的个人资料中显示“监察员”徽章", + "show_nav_shortcuts": "在顶部面板中显示额外的导航快捷键", + "show_panel_nav_shortcuts": "在面板顶部显示时间线导航快捷键", + "show_scrollbars": "显示侧栏的滚动条", + "show_wider_shortcuts": "在顶部面板快捷键之间显示更宽的间隙", + "show_yous": "显示 (You)s", "stop_gifs": "鼠标悬停时播放GIF", - "streaming": "滚动到顶部时自动推送新内容", + "streaming": "滚动到顶部时自动显示新帖文", "style": { "advanced_colors": { "_tab_label": "高级", @@ -519,10 +776,10 @@ "panel_header": "面板标题", "poll": "投票统计图", "popover": "提示框,菜单,弹出框", - "post": "发布内容/用户简介", + "post": "发布帖文/用户简介", "pressed": "压下的", "selectedMenu": "选中的菜单项", - "selectedPost": "选中的发布内容", + "selectedPost": "选中的帖文", "tabs": "标签页", "toggled": "按下的", "top_bar": "顶栏", @@ -543,7 +800,7 @@ "bad": "不符合任何辅助功能指南" } }, - "opacity": "透明度" + "opacity": "不透明度" }, "common_colors": { "_tab_label": "常规", @@ -557,26 +814,26 @@ "input": "输入框", "interface": "界面", "post": "发帖文字", - "postCode": "帖子中使用等间距文字(富文本)" + "postCode": "帖文中使用等间距文字(富文本)" }, - "custom": "自选", + "custom": "自定义", "family": "字体名称", - "help": "为用户界面的元素选择字体。若选择 “自选”,您必须输入与系统显示完全一致的字体名称。", - "size": "大小 (in px)", + "help": "为用户界面的元素选择字体。若选择 “自定义”,你必须输入与系统显示完全一致的字体名称。", + "size": "大小 (单位:px)", "weight": "字重 (粗体)" }, "preview": { "button": "按钮", - "checkbox": "我已经浏览了条款及细则", + "checkbox": "我已浏览条款及细则", "content": "内容", "error": "错误示例", "faint_link": "帮助手册", "fine_print": "阅读我们的 {0} ,然而什么也学不到!", "header": "预览", "header_faint": "这很正常", - "input": "刚刚抵达上海。", - "link": "一个棒棒的小小链接", - "mono": "monospace 内容", + "input": "刚刚抵达露娜诺娃魔法学校", + "link": "一个棒棒的小链接", + "mono": "内容", "text": "有堆 {0} 和 {1}" }, "radii": { @@ -588,7 +845,7 @@ "component": "组件", "components": { "avatar": "用户头像(在个人资料栏)", - "avatarStatus": "用户头像(在帖子显示栏)", + "avatarStatus": "用户头像(在帖文显示栏)", "button": "按钮", "buttonHover": "按钮(悬停)", "buttonPressed": "按钮(压下)", @@ -606,7 +863,7 @@ "inset_classic": "内阴影会使用 {0}", "spread_zero": "阴影的扩散 > 0 会同设置成零一样" }, - "hintV3": "对于阴影,您还可以使用 {0} 表示法来使用其它颜色插槽。", + "hintV3": "对于阴影,你还可以使用 {0} 表示法来使用其它颜色插槽。", "inset": "内阴影", "override": "覆盖", "shadow_id": "阴影 #{value}", @@ -614,24 +871,24 @@ }, "switcher": { "clear_all": "清除全部", - "clear_opacity": "清除透明度", + "clear_opacity": "清除不透明度", "help": { - "fe_downgraded": "PleromaFE 的版本回滚了。", - "fe_upgraded": "PleromaFE 的主题引擎随着版本更新升级了。", - "future_version_imported": "您导入的文件来自更高版本的 FE。", - "migration_napshot_gone": "不知出于何种原因,主题快照缺失了,一些地方可能与您印象中的不符。", - "migration_snapshot_ok": "为保万无一失,加载了主题快照。您可以试着加载主题数据。", - "older_version_imported": "您导入的文件来自旧版本的 FE。", + "fe_downgraded": "PleromaFE 的版本已回滚。", + "fe_upgraded": "PleromaFE 的主题引擎已在版本更新后升级。", + "future_version_imported": "你所导入的文件配置于更高版本的 FE。", + "migration_napshot_gone": "不知出于何种原因,主题快照缺失了,一些地方可能看起来与你记忆中的不太一样。", + "migration_snapshot_ok": "为保万无一失,主题快照已加载。你可以试着加载主题数据。", + "older_version_imported": "你所导入的文件配置于旧版 FE。", "snapshot_missing": "在文件中没有主题快照,所以网站外观可能会与原来预想的不同。", - "snapshot_present": "主题快照已加载,因此所有的值均被覆盖。您可以改为加载主题的实际数据。", - "snapshot_source_mismatch": "版本冲突:很有可能是 FE 版本回滚后再次升级了,如果您使用旧版本的 FE 更改了主题那么您可能需要使用旧版本,否则请使用新版本。", - "upgraded_from_v2": "PleromaFE 已升级,主题会与您记忆中的不太一样。", - "v2_imported": "您导入的文件是旧版 FE 的。我们尽可能保持兼容性,但还是可能出现不一致的情况。" + "snapshot_present": "主题快照已加载,因此所有的值均被覆盖。你可以改为加载主题的实际数据。", + "snapshot_source_mismatch": "版本冲突:很有可能是 FE 版本回滚后再次升级了,如果你使用旧版本的 FE 更改了主题那么你可能需要使用旧版本,否则请使用新版本。", + "upgraded_from_v2": "PleromaFE 已升级,主题可能看起来与你记忆中的不太一样。", + "v2_imported": "你所导入的文件配置于旧版 FE。我们尽可能提高兼容性,但还是可能出现不一致的情况。" }, "keep_as_is": "保持原状", "keep_color": "保留颜色", "keep_fonts": "保留字体", - "keep_opacity": "保留透明度", + "keep_opacity": "保留不透明度", "keep_roundness": "保留圆角", "keep_shadows": "保留阴影", "load_theme": "加载主题", @@ -641,27 +898,38 @@ "use_source": "新版本" } }, - "subject_input_always_show": "总是显示主题框", - "subject_line_behavior": "回复时复制主题", - "subject_line_email": "类似电子邮件: \"re: 主题\"", + "subject_input_always_show": "始终显示内容警告字段", + "subject_line_behavior": "回复时复制内容警告", + "subject_line_email": "类似电子邮件:\"re: 警告\"", "subject_line_mastodon": "类似 mastodon: 与原主题相同", "subject_line_noop": "不要复制", "text": "文本", "theme": "主题", "theme_help": "使用十六进制代码(#rrggbb)来设置主题颜色。", - "theme_help_v2_1": "您也可以通过选中复选框来覆盖某些组件的颜色和透明度。使用“清除所有”按钮来清除所有覆盖设置。", - "theme_help_v2_2": "某些条目下的图标是背景或文本对比指示器,鼠标悬停可以获取详细信息。请记住,使用透明度来显示最差的情况。", + "theme_help_v2_1": "你也可以通过选中复选框来覆盖某些组件的颜色和不透明度。使用“清除所有”按钮来清除所有覆盖设置。", + "theme_help_v2_2": "某些条目下的图标是背景或文本对比度指示器,悬停在上方以获取详细信息。请记住,当使用透明度对比指标时,显示的是最坏的情况。", + "third_column_mode": "当有足够的空间时,显示第三栏包含", + "third_column_mode_none": "完全不显示第三栏", + "third_column_mode_notifications": "通知栏", + "third_column_mode_postform": "主要的发布窗口和导航", "token": "令牌", "tooltipRadius": "提醒", - "type_domains_to_mute": "搜索需要隐藏的域名", + "translation_language": "自动翻译语言", + "tree_advanced": "显示额外的按钮来打开和关闭同主题帖文中的回复链", + "tree_fade_ancestors": "在当前帖子中以淡色文本显示其原型帖子", + "type_domains_to_mute": "搜索需要静音的域名", "upload_a_photo": "上传照片", - "useStreamingApi": "实时接收帖子和通知", - "useStreamingApiWarning": "(不推荐使用,试验性,已知会跳过一些帖子)", + "useStreamingApi": "实时接收帖文和通知", + "useStreamingApiWarning": "(不推荐使用,试验性,已知会跳过一些帖文)", + "use_at_icon": "将 {'@'} 符号显示为图标而不是文本", + "use_blurhash": "对NSFW的缩略图使用模糊处理", "use_contain_fit": "生成缩略图时不要裁剪附件", "use_one_click_nsfw": "点击一次以打开工作场所不适宜(NSFW)的附件", "user_mutes": "用户", + "user_profile_default_tab": "用户资料中的默认标签页", + "user_profiles": "用户资料", "user_settings": "用户设置", - "valid_until": "有效期至", + "valid_until": "有效期到", "values": { "false": "否", "true": "是" @@ -672,39 +940,91 @@ "title": "版本" }, "virtual_scrolling": "优化时间线渲染", - "word_filter": "词语过滤" + "word_filter": "词语过滤", + "wordfilter": "词语过滤器" + }, + "settings_profile": { + "creating": "创建新的设置配置文件 \"{profile}\" 中...", + "synchronization_error": "无法同步设置:{err}", + "synchronized": "设置已同步!", + "synchronizing": "同步新的设置配置文件 \"{profile}\" 中..." }, "status": { + "ancestor_follow": "查看此帖文下其它 {numReplies} 条回复", + "ancestor_follow_with_icon": "{icon} {text}", + "attachment_stop_flash": "停止 Flash 播放器", "bookmark": "书签", - "copy_link": "复制状态链接", - "delete": "删除状态", - "delete_confirm": "你真的想要删除这条状态吗?", + "collapse_attachments": "折起附件", + "copy_link": "复制帖文链接", + "delete": "删除帖文", + "delete_confirm": "你真的想要删除此帖文吗?", + "delete_confirm_accept_button": "是,删除它", + "delete_confirm_cancel_button": "否,保留它", + "delete_confirm_title": "确认删除", + "edit": "编辑", + "edit_history": "编辑历史", + "edit_history_modal_title": "已编辑 {historyCount} 次", + "edited_at": "编辑于 {time}", "expand": "展开", "external_source": "外部来源", "favorites": "喜欢", + "hide_attachment": "隐藏附件", "hide_content": "隐藏内容", - "hide_full_subject": "隐藏此部分标题", - "mute_conversation": "隐藏对话", + "hide_full_subject": "隐藏全部内容警告", + "many_attachments": "帖文有 {number} 个附件", + "mentions": "提及", + "move_down": "把附件右移", + "move_up": "把附件左移", + "mute_conversation": "静音对话", "nsfw": "NSFW", + "open_gallery": "打开图库", + "override_translation_source_language": "覆盖源语言", "pin": "在个人资料置顶", "pinned": "置顶", + "plus_more": "还有 {number} 个", + "redraft": "删除并改写", + "redraft_confirm": "你确定要删除并改写此帖文吗?与原帖文的互动将不会被保留。", + "redraft_confirm_accept_button": "是,删除并改写", + "redraft_confirm_cancel_button": "否,保持原样", + "redraft_confirm_title": "确认删除并改写", + "remove_attachment": "移除附件", + "repeat_confirm": "你确定要转发此帖文吗?", + "repeat_confirm_accept_button": "是,转发它", + "repeat_confirm_cancel_button": "否,不要转发", + "repeat_confirm_title": "确认转发", "repeats": "转发", "replies_list": "回复:", + "replies_list_with_others": "查看 {numReplies} 条更多回复", "reply_to": "回复", + "show_all_attachments": "显示所有附件", + "show_all_conversation": "显示完整对话(其它 {numStatus} 条帖文)", + "show_all_conversation_with_icon": "{icon} {text}", + "show_attachment_description": "预览描述(打开附件能看完整描述)", + "show_attachment_in_modal": "在窗口中显示附件", "show_content": "显示内容", - "show_full_subject": "显示全部标题", - "status_deleted": "该状态已被删除", - "status_unavailable": "状态不可取得", - "thread_muted": "此系列消息已被隐藏", + "show_full_subject": "显示全部内容警告", + "show_only_conversation_under_this": "仅显示此帖文的回复", + "status_deleted": "此帖文已被删除", + "status_unavailable": "帖文不可用", + "thread_follow": "查看 {numStatus} 条更多回复", + "thread_follow_with_icon": "{icon} {text}", + "thread_hide": "隐藏此同主题帖文", + "thread_muted": "同主题帖文已被静音", "thread_muted_and_words": ",含有过滤词:", + "thread_show": "显示这个同主题帖文", + "thread_show_full": "显示 {numStatus} 条回复 | 显示全部 {numStatus} 条回复", + "thread_show_full_with_icon": "{icon} {text}", + "translate": "翻译", + "translated_from": "翻译自 {language}", "unbookmark": "取消书签", - "unmute_conversation": "对话取消隐藏", - "unpin": "取消在个人资料置顶" + "unmute_conversation": "对话取消静音", + "unpin": "取消在个人资料置顶", + "you": "(你)" }, "time": { - "in_future": "还有 {0}", + "in_future": "{0} 之后", "in_past": "{0} 之前", - "now": "刚刚", + "now": "刚才", "now_short": "刚刚", "unit": { "days": "{0} 天", @@ -726,24 +1046,30 @@ "timeline": { "collapse": "折叠", "conversation": "对话", - "error": "取得时间轴时发生错误:{0}", - "load_older": "加载更早的状态", - "no_more_statuses": "没有更多的状态", - "no_retweet_hint": "这条内容仅关注者可见,或者是私信,因此不能转发", - "no_statuses": "没有状态更新", + "error": "获取时间线时发生错误:{0}", + "follow_tag": "关注话题标签", + "load_older": "加载更早的帖文", + "no_more_statuses": "没有更多的帖文", + "no_retweet_hint": "帖文仅关注者可见,或者是私信,因此不能转发或引用", + "no_statuses": "没有帖文更新", "reload": "重新载入", - "repeated": "转发了", - "show_new": "显示新内容", + "repeated": "已转发", + "show_new": "显示新帖文", "socket_broke": "丢失实时连接:CloseEvent code {0}", "socket_reconnected": "已建立实时连接", + "unfollow_tag": "取消关注话题标签", "up_to_date": "已是最新" }, + "toast": { + "no_translation_target_set": "没有设置翻译目标语言 - 这可能会失败。请在你的设置中设置目标语言。" + }, "tool_tip": { "accept_follow_request": "接受关注请求", "add_reaction": "添加互动", "bookmark": "书签", "favorite": "喜欢", "media_upload": "上传媒体", + "quote": "引用", "reject_follow_request": "拒绝关注请求", "repeat": "转发", "reply": "回复", @@ -751,8 +1077,8 @@ }, "upload": { "error": { - "base": "上传不成功。", - "default": "迟些再试", + "base": "上传失败。", + "default": "稍后再试", "file_too_big": "文件太大了 [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", "message": "上传错误:{0}" }, @@ -770,31 +1096,51 @@ "deactivate_account": "关闭账号", "delete_account": "删除账号", "delete_user": "删除用户", + "delete_user_data_and_deactivate_confirmation": "这将永久删除该账号的数据并停用该账号。你完全确定吗?", "disable_any_subscription": "完全禁止关注用户", "disable_remote_subscription": "禁止从远程实例关注用户", - "force_nsfw": "标记所有的帖子都是 - 工作场合不适", - "force_unlisted": "强制帖子为不公开", - "grant_admin": "赋予管理权限", + "force_nsfw": "标记所有帖文为NSFW", + "force_unlisted": "强制帖文设为不公开", + "grant_admin": "赋予管理员权限", "grant_moderator": "赋予监察员权限", "moderation": "仲裁", - "quarantine": "从联合实例中禁止用户帖子", + "quarantine": "禁止用户贴文发送至其它实例", "revoke_admin": "撤销管理权限", "revoke_moderator": "撤销监察员权限", - "sandbox": "强制帖子为只有关注者可看", - "strip_media": "从帖子里删除媒体文件" + "sandbox": "强制帖文设为仅关注者", + "strip_media": "从帖文里删除媒体文件" }, - "approve": "核准", + "approve": "批准", + "approve_confirm": "你确定要让此用户关注你吗?", + "approve_confirm_accept_button": "是,接受", + "approve_confirm_cancel_button": "否,取消", + "approve_confirm_title": "通过关注请求", "block": "屏蔽", - "block_progress": "正在屏蔽…", + "block_confirm": "你确定要屏蔽 {user} 吗?", + "block_confirm_accept_button": "是,屏蔽", + "block_confirm_cancel_button": "否,不要屏蔽", + "block_confirm_title": "屏蔽用户", + "block_progress": "屏蔽中…", "blocked": "已屏蔽!", + "blocks_you": "屏蔽了你!", "bot": "机器人", + "deactivated": "已停用", "deny": "拒绝", + "deny_confirm": "你确定要拒绝此用户的关注请求吗?", + "deny_confirm_accept_button": "是,拒绝", + "deny_confirm_cancel_button": "否,取消", + "deny_confirm_title": "拒绝关注请求", + "domain_muted": "取消屏蔽域名", "edit_profile": "编辑个人资料", "favorites": "喜欢", "follow": "关注", + "follow_cancel": "取消请求", "follow_progress": "请求中…", "follow_sent": "请求已发送!", + "follow_tag": "关注话题标签", "follow_unfollow": "取消关注", + "followed_tags": "已关注话题标签", + "followed_users": "已关注用户", "followees": "正在关注", "followers": "关注者", "following": "正在关注!", @@ -811,37 +1157,53 @@ "media": "媒体", "mention": "提及", "message": "消息", - "mute": "隐藏", - "mute_progress": "隐藏中…", - "muted": "已隐藏", + "mute": "静音", + "mute_confirm": "你确定要静音 {user} 吗?", + "mute_confirm_accept_button": "是,静音", + "mute_confirm_cancel_button": "否,不要静音", + "mute_confirm_title": "静音用户", + "mute_domain": "屏蔽域名", + "mute_progress": "静音中…", + "muted": "已静音", + "not_following_any_hashtags": "你没有关注任何话题标签", + "note": "私有备注", "per_day": "每天", "remote_follow": "跨站关注", - "report": "报告", + "remove_follower": "移除关注者", + "replies": "和回复", + "report": "举报", + "requested_by": "已请求关注你", "show_repeats": "显示转发", - "statuses": "状态", + "statuses": "帖文", "subscribe": "订阅", "unblock": "取消屏蔽", - "unblock_progress": "正在取消屏蔽…", - "unmute": "取消隐藏", - "unmute_progress": "取消隐藏中…", + "unblock_progress": "取消屏蔽中…", + "unfollow_confirm": "你确定要取消关注 {user} 吗?", + "unfollow_confirm_accept_button": "是,取消关注", + "unfollow_confirm_cancel_button": "否,不要取消关注", + "unfollow_confirm_title": "取消关注用户", + "unfollow_tag": "取消关注话题标签", + "unmute": "取消静音", + "unmute_progress": "取消静音中…", "unsubscribe": "退订" }, "user_profile": { + "field_validated": "链接已验证", "profile_does_not_exist": "抱歉,此个人资料不存在。", "profile_loading_error": "抱歉,载入个人资料时出错。", "timeline_title": "用户时间线" }, "user_reporting": { - "add_comment_description": "此报告会发送给您的实例监察员。您可以在下面提供更多详细信息解释报告的缘由:", - "additional_comments": "其它信息", - "forward_description": "这个账号来自另一个服务器。是否同时发送一份报告副本到那里?", - "forward_to": "转发 {0}", - "generic_error": "当处理您的请求时,发生了一个错误。", + "add_comment_description": "此举报会发送给你所在实例的监察员。你可以在下面提供更多详细信息解释举报的缘由:", + "additional_comments": "补充意见", + "forward_description": "此账号来自另一个服务器。是否也发送一份举报的副本到那里?", + "forward_to": "转发到 {0}", + "generic_error": "当处理你的请求时,发生了一个错误。", "submit": "提交", - "title": "报告 {0}" + "title": "举报 {0} 中" }, "who_to_follow": { "more": "更多", "who_to_follow": "推荐关注" } -} \ No newline at end of file +} From f1bf22436d87dbdc2ca643f9d63f9bc186916613 Mon Sep 17 00:00:00 2001 From: Weblate Date: Wed, 5 Apr 2023 18:57:45 +0000 Subject: [PATCH 23/25] Translated using Weblate (Portuguese) Currently translated at 62.8% (655 of 1042 strings) Co-authored-by: cel <8cbv6di5@duck.com> Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/pt/ Translation: Pleroma fe/pleroma-fe --- src/i18n/pt.json | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/i18n/pt.json b/src/i18n/pt.json index 5e38c0a5..5e04c73c 100644 --- a/src/i18n/pt.json +++ b/src/i18n/pt.json @@ -16,12 +16,15 @@ "accept_desc": "Este domínio aceita apenas mensagens dos seguintes domínios:", "ftl_removal": "Remoção da cronologia da \"Rede conhecida por todos\"", "ftl_removal_desc": "Este domínio remove os seguintes domínios da cronologia \"Rede conhecida por todos\":", + "instance": "Domínio", "media_nsfw": "Forçar definição de multimédia como Sensível", "media_nsfw_desc": "Este domínio força a multimédia a ser marcada como sensível nos seguintes domínios:", "media_removal": "Remoção de multimédia", "media_removal_desc": "Este domínio remove multimédia das publicações dos seguintes domínios:", + "not_applicable": "N/A", "quarantine": "Quarentena", "quarantine_desc": "Este domínio apenas irá publicar nos seguintes domínios:", + "reason": "Razão", "reject": "Rejeitar", "reject_desc": "Este domínio não aceitará mensagens dos seguintes domínios:", "simple_policies": "Políticas especificas do domínio" @@ -29,6 +32,26 @@ }, "staff": "Staff" }, + "announcements": { + "all_day_prompt": "Este evento dura o dia inteiro", + "cancel_edit_action": "Cancelar", + "close_error": "Fechar", + "delete_action": "Apagar", + "edit_action": "Editar", + "end_time_display": "Termina às {time}", + "inactive_message": "Este anúncio está inativo", + "mark_as_read_action": "Marcar como lido", + "page_header": "Anúncios", + "post_action": "Publicar", + "post_error": "Erro: {error}", + "post_form_header": "Publicar anúncio", + "post_placeholder": "Conteúdo do anúncio", + "published_time_display": "Publicado às {time}", + "start_time_display": "Começa às {time}", + "start_time_prompt": "Hora de início: ", + "submit_edit_action": "Enviar", + "title": "Anúncio" + }, "chats": { "chats": "Chats", "delete": "Apagar", @@ -58,6 +81,7 @@ "keep_open": "Manter o seletor aberto", "load_all": "A carregar todos os {emojiAmount} emojis", "load_all_hint": "Carregado o primeiro emoji {saneAmount}, carregar todos os emojis pode causar problemas de desempenho.", + "recent": "Usado recentemente", "search_emoji": "Pesquisar por um emoji", "stickers": "Autocolantes", "unicode": "Emoji Unicode" @@ -801,4 +825,4 @@ "more": "Mais", "who_to_follow": "Quem seguir" } -} \ No newline at end of file +} From db33fe8ee252cc3944b7d4bb5527d8464cc19f81 Mon Sep 17 00:00:00 2001 From: solidsanek Date: Sun, 9 Apr 2023 11:02:13 +0200 Subject: [PATCH 24/25] Drafts: Fix drafts erasing edits and redrafts --- .../post_status_form/post_status_form.js | 48 ++++++++++--------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index f7fef499..5647a9eb 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -169,31 +169,33 @@ const PostStatusForm = { } } - let draftKey = 'status'; - if (this.replyTo) { - draftKey = 'reply:' + this.replyTo; - } else if (this.quoteId) { - draftKey = 'quote:' + this.quoteId; - } - - const draft = JSON.parse(localStorage.getItem('drafts') || '{}')[draftKey]; - - if (draft) { - statusParams = { - spoilerText: draft.data.spoilerText, - status: draft.data.status, - sensitiveIfSubject, - nsfw: draft.data.nsfw, - files: draft.data.files, - poll: draft.data.poll, - mediaDescriptions: draft.data.mediaDescriptions, - visibility: draft.data.visibility, - language: draft.data.language, - contentType: draft.data.contentType + if (!this.statusId) { + let draftKey = 'status'; + if (this.replyTo) { + draftKey = 'reply:' + this.replyTo; + } else if (this.quoteId) { + draftKey = 'quote:' + this.quoteId; } - if (draft.data.poll) { - this.togglePollForm(); + const draft = JSON.parse(localStorage.getItem('drafts') || '{}')[draftKey]; + + if (draft) { + statusParams = { + spoilerText: draft.data.spoilerText, + status: draft.data.status, + sensitiveIfSubject, + nsfw: draft.data.nsfw, + files: draft.data.files, + poll: draft.data.poll, + mediaDescriptions: draft.data.mediaDescriptions, + visibility: draft.data.visibility, + language: draft.data.language, + contentType: draft.data.contentType + } + + if (draft.data.poll) { + this.togglePollForm(); + } } } From c540764408ade606c69c4f2d07f68320c0d62c43 Mon Sep 17 00:00:00 2001 From: FloatingGhost Date: Fri, 14 Apr 2023 17:43:05 +0100 Subject: [PATCH 25/25] ensure we only fetch reports when we're an admin Ref #288 --- src/modules/users.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/modules/users.js b/src/modules/users.js index 209d9675..9d81f9bc 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -644,7 +644,9 @@ const users = { store.dispatch('listSettingsProfiles') store.dispatch('startFetchingConfig') store.dispatch('startFetchingAnnouncements') - store.dispatch('startFetchingReports') + if (user.role === 'admin' || user.role === 'moderator') { + store.dispatch('startFetchingReports') + } // Fetch our friends store.rootState.api.backendInteractor.fetchFriends({ id: user.id })