From 835eaf33b194b25c41ed24815e6e5cd5eb4570cd Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Wed, 13 Jan 2021 21:28:34 +0200 Subject: [PATCH 01/76] fix local dev websockets --- CHANGELOG.md | 1 + config/index.js | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7164eb26..0c8d4c19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Fixed - Follows/Followers tabs on user profiles now display the content properly. - Handle punycode in screen names +- Fixed local dev mode having non-functional websockets in some cases ## [2.2.2] - 2020-12-22 ### Added diff --git a/config/index.js b/config/index.js index ccec4196..7cb87c3b 100644 --- a/config/index.js +++ b/config/index.js @@ -3,6 +3,11 @@ const path = require('path') let settings = {} try { settings = require('./local.json') + if (settings.target && settings.target.endsWith('/')) { + // replacing trailing slash since it can conflict with some apis + // and that's how actual BE reports its url + settings.target = settings.target.replace(/\/$/, '') + } console.log('Using local dev server settings (/config/local.json):') console.log(JSON.stringify(settings, null, 2)) } catch (e) { From adc3b17fe0ba149386d83ee85f908578609bd676 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Wed, 13 Jan 2021 21:29:12 +0200 Subject: [PATCH 02/76] add success global notice style/level --- src/App.scss | 9 ++++++ .../global_notice_list/global_notice_list.vue | 8 ++++++ src/services/theme_data/pleromafe.js | 28 +++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/src/App.scss b/src/App.scss index 2a1d7b1b..a3b1c87a 100644 --- a/src/App.scss +++ b/src/App.scss @@ -698,6 +698,15 @@ nav { color: var(--alertWarningPanelText, $fallback--text); } } + + &.success { + background-color: var(--alertSuccess, $fallback--alertWarning); + color: var(--alertSuccessText, $fallback--text); + + .panel-heading & { + color: var(--alertSuccessPanelText, $fallback--text); + } + } } .faint { diff --git a/src/components/global_notice_list/global_notice_list.vue b/src/components/global_notice_list/global_notice_list.vue index 049e23db..a45f4586 100644 --- a/src/components/global_notice_list/global_notice_list.vue +++ b/src/components/global_notice_list/global_notice_list.vue @@ -71,6 +71,14 @@ } } + .global-success { + background-color: var(--alertPopupSuccess, $fallback--cGreen); + color: var(--alertPopupSuccessText, $fallback--text); + .svg-inline--fa { + color: var(--alertPopupSuccessText, $fallback--text); + } + } + .global-info { background-color: var(--alertPopupNeutral, $fallback--fg); color: var(--alertPopupNeutralText, $fallback--text); diff --git a/src/services/theme_data/pleromafe.js b/src/services/theme_data/pleromafe.js index bec1eebd..14aac975 100644 --- a/src/services/theme_data/pleromafe.js +++ b/src/services/theme_data/pleromafe.js @@ -616,6 +616,23 @@ export const SLOT_INHERITANCE = { textColor: true }, + alertSuccess: { + depends: ['cGreen'], + opacity: 'alert' + }, + alertSuccessText: { + depends: ['text'], + layer: 'alert', + variant: 'alertSuccess', + textColor: true + }, + alertSuccessPanelText: { + depends: ['panelText'], + layer: 'alertPanel', + variant: 'alertSuccess', + textColor: true + }, + alertNeutral: { depends: ['text'], opacity: 'alert' @@ -656,6 +673,17 @@ export const SLOT_INHERITANCE = { textColor: true }, + alertPopupSuccess: { + depends: ['alertSuccess'], + opacity: 'alertPopup' + }, + alertPopupSuccessText: { + depends: ['alertSuccessText'], + layer: 'popover', + variant: 'alertPopupSuccess', + textColor: true + }, + alertPopupNeutral: { depends: ['alertNeutral'], opacity: 'alertPopup' From 64fa662644dd385dd746f2b309eef6287f5eae04 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Wed, 13 Jan 2021 21:31:57 +0200 Subject: [PATCH 03/76] added notices for ws events --- CHANGELOG.md | 1 + src/i18n/en.json | 5 ++++- src/modules/api.js | 23 +++++++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c8d4c19..6160c5f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Follows/Followers tabs on user profiles now display the content properly. - Handle punycode in screen names - Fixed local dev mode having non-functional websockets in some cases +- Show notices for websocket events (errors, abnormal closures, reconnections) ## [2.2.2] - 2020-12-22 ### Added diff --git a/src/i18n/en.json b/src/i18n/en.json index 26dd6144..5d613ea9 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -646,7 +646,10 @@ "reload": "Reload", "up_to_date": "Up-to-date", "no_more_statuses": "No more statuses", - "no_statuses": "No statuses" + "no_statuses": "No statuses", + "socket_reconnected": "Realtime connection established", + "socket_broke": "Realtime connection lost: CloseEvent code {0}", + "socket_closed": "No realtime connection, updates can arrive with a delaye until connection is re-established" }, "status": { "favorites": "Favorites", diff --git a/src/modules/api.js b/src/modules/api.js index 08485a30..01c65e49 100644 --- a/src/modules/api.js +++ b/src/modules/api.js @@ -91,12 +91,29 @@ const api = { } ) state.mastoUserSocket.addEventListener('open', () => { + // Do not show notification when we just opened up the page + if (state.mastoUserSocketStatus !== null) { + dispatch('pushGlobalNotice', { + level: 'success', + messageKey: 'timeline.socket_reconnected', + timeout: 5000 + }) + } commit('setMastoUserSocketStatus', WSConnectionStatus.JOINED) }) state.mastoUserSocket.addEventListener('error', ({ detail: error }) => { console.error('Error in MastoAPI websocket:', error) commit('setMastoUserSocketStatus', WSConnectionStatus.ERROR) dispatch('clearOpenedChats') + /* Since data in WS event for error is useless it's better to show + * generic warning instead of in "close" which actually has some + * useful data + */ + dispatch('pushGlobalNotice', { + level: 'error', + messageKey: 'timeline.socket_closed', + timeout: 5000 + }) }) state.mastoUserSocket.addEventListener('close', ({ detail: closeEvent }) => { const ignoreCodes = new Set([ @@ -112,6 +129,12 @@ const api = { dispatch('startFetchingNotifications') dispatch('startFetchingChats') dispatch('restartMastoUserSocket') + dispatch('pushGlobalNotice', { + level: 'error', + messageKey: 'timeline.socket_broke', + messageArgs: [code], + timeout: 5000 + }) } commit('setMastoUserSocketStatus', WSConnectionStatus.CLOSED) dispatch('clearOpenedChats') From 48bef143d86b02d7feeeac3e1faa0e5e00e09ea6 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Wed, 13 Jan 2021 21:33:20 +0200 Subject: [PATCH 04/76] fix not being able to re-enable sockets until page refresh --- CHANGELOG.md | 1 + src/modules/api.js | 11 ++++++++++- src/services/api/api.service.js | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6160c5f4..0b9c7f68 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Handle punycode in screen names - Fixed local dev mode having non-functional websockets in some cases - Show notices for websocket events (errors, abnormal closures, reconnections) +- Fix not being able to re-enable websocket until page refresh ## [2.2.2] - 2020-12-22 ### Added diff --git a/src/modules/api.js b/src/modules/api.js index 01c65e49..2be0f236 100644 --- a/src/modules/api.js +++ b/src/modules/api.js @@ -40,7 +40,16 @@ const api = { // Global MastoAPI socket control, in future should disable ALL sockets/(re)start relevant sockets enableMastoSockets (store) { const { state, dispatch } = store - if (state.mastoUserSocket) return + // Do not initialize unless nonexistent or closed + if ( + state.mastoUserSocket && + ![ + WebSocket.CLOSED, + WebSocket.CLOSING + ].includes(state.mastoUserSocket.getState()) + ) { + return + } return dispatch('startMastoUserSocket') }, disableMastoSockets (store) { diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js index f4483149..d3d5c68d 100644 --- a/src/services/api/api.service.js +++ b/src/services/api/api.service.js @@ -1152,6 +1152,7 @@ export const ProcessedWS = ({ // 1000 = Normal Closure eventTarget.close = () => { socket.close(1000, 'Shutting down socket') } + eventTarget.getState = () => socket.readyState return eventTarget } From 9a8bc245a6f76f1a41da9d05408dadc36625ffe9 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Wed, 13 Jan 2021 22:17:10 +0200 Subject: [PATCH 05/76] fixed few-posts TLs when streaming is enabled --- CHANGELOG.md | 1 + src/components/notifications/notifications.js | 5 ----- src/modules/api.js | 13 +++++++++++++ src/modules/users.js | 2 ++ .../backend_interactor_service.js | 12 ++++++++++-- .../notifications_fetcher.service.js | 6 ++++-- .../timeline_fetcher/timeline_fetcher.service.js | 9 +++++++-- 7 files changed, 37 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b9c7f68..4d0ca7d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Fixed local dev mode having non-functional websockets in some cases - Show notices for websocket events (errors, abnormal closures, reconnections) - Fix not being able to re-enable websocket until page refresh +- Fix annoying issue where timeline might have few posts when streaming is enabled ## [2.2.2] - 2020-12-22 ### Added diff --git a/src/components/notifications/notifications.js b/src/components/notifications/notifications.js index 49258563..d6bd6375 100644 --- a/src/components/notifications/notifications.js +++ b/src/components/notifications/notifications.js @@ -35,11 +35,6 @@ const Notifications = { seenToDisplayCount: DEFAULT_SEEN_TO_DISPLAY_COUNT } }, - created () { - const store = this.$store - const credentials = store.state.users.currentUser.credentials - notificationsFetcher.fetchAndUpdate({ store, credentials }) - }, computed: { mainClass () { return this.minimalMode ? '' : 'panel panel-default' diff --git a/src/modules/api.js b/src/modules/api.js index 2be0f236..b482637d 100644 --- a/src/modules/api.js +++ b/src/modules/api.js @@ -188,6 +188,13 @@ const api = { if (!fetcher) return store.commit('removeFetcher', { fetcherName: timeline, fetcher }) }, + fetchTimeline (store, timeline, { ...rest }) { + store.state.backendInteractor.fetchTimeline({ + store, + timeline, + ...rest + }) + }, // Notifications startFetchingNotifications (store) { @@ -200,6 +207,12 @@ const api = { if (!fetcher) return store.commit('removeFetcher', { fetcherName: 'notifications', fetcher }) }, + fetchNotifications (store, { ...rest }) { + store.state.backendInteractor.fetchNotifications({ + store, + ...rest + }) + }, // Follow requests startFetchingFollowRequests (store) { diff --git a/src/modules/users.js b/src/modules/users.js index 655db4c7..ac52be1f 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -547,6 +547,8 @@ const users = { } if (store.getters.mergedConfig.useStreamingApi) { + store.dispatch('fetchTimeline', 'friends', { since: null }) + store.dispatch('fetchNotifications', { since: null }) store.dispatch('enableMastoSockets').catch((error) => { console.error('Failed initializing MastoAPI Streaming socket', error) startPolling() diff --git a/src/services/backend_interactor_service/backend_interactor_service.js b/src/services/backend_interactor_service/backend_interactor_service.js index 45e6bd0e..4a40f5b5 100644 --- a/src/services/backend_interactor_service/backend_interactor_service.js +++ b/src/services/backend_interactor_service/backend_interactor_service.js @@ -1,17 +1,25 @@ import apiService, { getMastodonSocketURI, ProcessedWS } from '../api/api.service.js' -import timelineFetcherService from '../timeline_fetcher/timeline_fetcher.service.js' +import timelineFetcher from '../timeline_fetcher/timeline_fetcher.service.js' import notificationsFetcher from '../notifications_fetcher/notifications_fetcher.service.js' import followRequestFetcher from '../../services/follow_request_fetcher/follow_request_fetcher.service' const backendInteractorService = credentials => ({ startFetchingTimeline ({ timeline, store, userId = false, tag }) { - return timelineFetcherService.startFetching({ timeline, store, credentials, userId, tag }) + return timelineFetcher.startFetching({ timeline, store, credentials, userId, tag }) + }, + + fetchTimeline (args) { + return timelineFetcher.fetchAndUpdate({ ...args, credentials }) }, startFetchingNotifications ({ store }) { return notificationsFetcher.startFetching({ store, credentials }) }, + fetchNotifications (args) { + return notificationsFetcher.fetchAndUpdate({ ...args, credentials }) + }, + startFetchingFollowRequests ({ store }) { return followRequestFetcher.startFetching({ store, credentials }) }, diff --git a/src/services/notifications_fetcher/notifications_fetcher.service.js b/src/services/notifications_fetcher/notifications_fetcher.service.js index beeb167c..f83f871e 100644 --- a/src/services/notifications_fetcher/notifications_fetcher.service.js +++ b/src/services/notifications_fetcher/notifications_fetcher.service.js @@ -5,7 +5,7 @@ const update = ({ store, notifications, older }) => { store.dispatch('addNewNotifications', { notifications, older }) } -const fetchAndUpdate = ({ store, credentials, older = false }) => { +const fetchAndUpdate = ({ store, credentials, older = false, since }) => { const args = { credentials } const { getters } = store const rootState = store.rootState || store.state @@ -22,8 +22,10 @@ const fetchAndUpdate = ({ store, credentials, older = false }) => { return fetchNotifications({ store, args, older }) } else { // fetch new notifications - if (timelineData.maxId !== Number.POSITIVE_INFINITY) { + if (since === undefined && timelineData.maxId !== Number.POSITIVE_INFINITY) { args['since'] = timelineData.maxId + } else if (since !== null) { + args['since'] = since } const result = fetchNotifications({ store, args, older }) diff --git a/src/services/timeline_fetcher/timeline_fetcher.service.js b/src/services/timeline_fetcher/timeline_fetcher.service.js index 921df3ed..46bba41a 100644 --- a/src/services/timeline_fetcher/timeline_fetcher.service.js +++ b/src/services/timeline_fetcher/timeline_fetcher.service.js @@ -23,7 +23,8 @@ const fetchAndUpdate = ({ showImmediately = false, userId = false, tag = false, - until + until, + since }) => { const args = { timeline, credentials } const rootState = store.rootState || store.state @@ -35,7 +36,11 @@ const fetchAndUpdate = ({ if (older) { args['until'] = until || timelineData.minId } else { - args['since'] = timelineData.maxId + if (since === undefined) { + args['since'] = timelineData.maxId + } else if (since !== null) { + args['since'] = since + } } args['userId'] = userId From 98cb9abac773e8fbce94eafea1025919b6f26360 Mon Sep 17 00:00:00 2001 From: Shpuld Shpuldson Date: Mon, 22 Feb 2021 16:24:04 +0200 Subject: [PATCH 06/76] Add timeline menu toggle to nav panel --- CHANGELOG.md | 2 + src/components/nav_panel/nav_panel.js | 36 ++++++---- src/components/nav_panel/nav_panel.vue | 70 +++++++++++++++---- src/components/timeline_menu/timeline_menu.js | 31 ++------ .../timeline_menu/timeline_menu.vue | 48 +------------ .../timeline_menu/timeline_menu_content.js | 29 ++++++++ .../timeline_menu/timeline_menu_content.vue | 66 +++++++++++++++++ src/i18n/en.json | 1 + 8 files changed, 183 insertions(+), 100 deletions(-) create mode 100644 src/components/timeline_menu/timeline_menu_content.js create mode 100644 src/components/timeline_menu/timeline_menu_content.vue diff --git a/CHANGELOG.md b/CHANGELOG.md index cf4be7da..15e63d00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Changed - Display 'people voted' instead of 'votes' for multi-choice polls +- Changed the "Timelines" link in side panel to toggle show all timeline options inside the panel +- Renamed "Timeline" to "Home Timeline" to be more clear ## [2.2.3] - 2021-01-18 ### Added diff --git a/src/components/nav_panel/nav_panel.js b/src/components/nav_panel/nav_panel.js index 81d49cc2..37bcb409 100644 --- a/src/components/nav_panel/nav_panel.js +++ b/src/components/nav_panel/nav_panel.js @@ -1,4 +1,4 @@ -import { timelineNames } from '../timeline_menu/timeline_menu.js' +import TimelineMenuContent from '../timeline_menu/timeline_menu_content.vue' import { mapState, mapGetters } from 'vuex' import { library } from '@fortawesome/fontawesome-svg-core' @@ -7,10 +7,12 @@ import { faGlobe, faBookmark, faEnvelope, - faHome, + faChevronDown, + faChevronUp, faComments, faBell, - faInfoCircle + faInfoCircle, + faStream } from '@fortawesome/free-solid-svg-icons' library.add( @@ -18,10 +20,12 @@ library.add( faGlobe, faBookmark, faEnvelope, - faHome, + faChevronDown, + faChevronUp, faComments, faBell, - faInfoCircle + faInfoCircle, + faStream ) const NavPanel = { @@ -30,16 +34,20 @@ const NavPanel = { this.$store.dispatch('startFetchingFollowRequests') } }, + components: { + TimelineMenuContent + }, + data () { + return { + showTimelines: false + } + }, + methods: { + toggleTimelines () { + this.showTimelines = !this.showTimelines + } + }, computed: { - onTimelineRoute () { - return !!timelineNames()[this.$route.name] - }, - timelinesRoute () { - if (this.$store.state.interface.lastTimeline) { - return this.$store.state.interface.lastTimeline - } - return this.currentUser ? 'friends' : 'public-timeline' - }, ...mapState({ currentUser: state => state.users.currentUser, followRequestCount: state => state.api.followRequests.length, diff --git a/src/components/nav_panel/nav_panel.vue b/src/components/nav_panel/nav_panel.vue index 0c83d0fe..7ae7b1d6 100644 --- a/src/components/nav_panel/nav_panel.vue +++ b/src/components/nav_panel/nav_panel.vue @@ -3,19 +3,33 @@
  • - {{ $t("nav.timelines") }} - + + +
    + +
  • - +
  • - +
  • - +
  • - + i18n key mapping, exported and not in the computed // because nav panel benefits from the same information. export const timelineNames = () => { return { - 'friends': 'nav.timeline', + 'friends': 'nav.home_timeline', 'bookmarks': 'nav.bookmarks', 'dms': 'nav.dms', 'public-timeline': 'nav.public_tl', @@ -33,7 +21,8 @@ export const timelineNames = () => { const TimelineMenu = { components: { - Popover + Popover, + TimelineMenuContent }, data () { return { @@ -41,9 +30,6 @@ const TimelineMenu = { } }, created () { - if (this.currentUser && this.currentUser.locked) { - this.$store.dispatch('startFetchingFollowRequests') - } if (timelineNames()[this.$route.name]) { this.$store.dispatch('setLastTimeline', this.$route.name) } @@ -75,13 +61,6 @@ const TimelineMenu = { const i18nkey = timelineNames()[this.$route.name] return i18nkey ? this.$t(i18nkey) : route } - }, - computed: { - ...mapState({ - currentUser: state => state.users.currentUser, - privateMode: state => state.instance.private, - federating: state => state.instance.federating - }) } } diff --git a/src/components/timeline_menu/timeline_menu.vue b/src/components/timeline_menu/timeline_menu.vue index 3c86842b..22dc3432 100644 --- a/src/components/timeline_menu/timeline_menu.vue +++ b/src/components/timeline_menu/timeline_menu.vue @@ -13,53 +13,7 @@ slot="content" class="timeline-menu-popover panel panel-default" > -
      -
    • - - {{ $t("nav.timeline") }} - -
    • -
    • - - {{ $t("nav.bookmarks") }} - -
    • -
    • - - {{ $t("nav.dms") }} - -
    • -
    • - - {{ $t("nav.public_tl") }} - -
    • -
    • - - {{ $t("nav.twkn") }} - -
    • -
    +
state.users.currentUser, + privateMode: state => state.instance.private, + federating: state => state.instance.federating + }) + } +} + +export default TimelineMenuContent diff --git a/src/components/timeline_menu/timeline_menu_content.vue b/src/components/timeline_menu/timeline_menu_content.vue new file mode 100644 index 00000000..bed1b679 --- /dev/null +++ b/src/components/timeline_menu/timeline_menu_content.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/i18n/en.json b/src/i18n/en.json index 4cc2af0e..45280eff 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -124,6 +124,7 @@ "dms": "Direct Messages", "public_tl": "Public Timeline", "timeline": "Timeline", + "home_timeline": "Home Timeline", "twkn": "Known Network", "bookmarks": "Bookmarks", "user_search": "User Search", From 92a9ce67c595bf54a95cca917ba07772bec0f041 Mon Sep 17 00:00:00 2001 From: Shpuld Shpludson Date: Sat, 27 Feb 2021 18:23:11 +0000 Subject: [PATCH 07/76] Update CHANGELOG.md --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a599ddb..a294c106 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,7 +17,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Added - Added reason field for registration when approval is required ->>>>>>> develop ## [2.2.3] - 2021-01-18 ### Added From f6af4c43f656d1990da00bc773c15ebbbc57e71d Mon Sep 17 00:00:00 2001 From: Shpuld Shpuldson Date: Mon, 1 Mar 2021 16:21:35 +0200 Subject: [PATCH 08/76] add quick filters for notifications2 --- .../notifications/notification_filters.vue | 121 ++++++++++++++++++ src/components/notifications/notifications.js | 8 +- .../notifications/notifications.vue | 1 + .../timeline/timeline_quick_settings.js | 4 +- .../timeline/timeline_quick_settings.vue | 8 +- src/modules/config.js | 2 +- 6 files changed, 130 insertions(+), 14 deletions(-) create mode 100644 src/components/notifications/notification_filters.vue diff --git a/src/components/notifications/notification_filters.vue b/src/components/notifications/notification_filters.vue new file mode 100644 index 00000000..95b2513b --- /dev/null +++ b/src/components/notifications/notification_filters.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/components/notifications/notifications.js b/src/components/notifications/notifications.js index 49258563..a9bf2931 100644 --- a/src/components/notifications/notifications.js +++ b/src/components/notifications/notifications.js @@ -1,5 +1,6 @@ import { mapGetters } from 'vuex' import Notification from '../notification/notification.vue' +import NotificationFilters from './notification_filters.vue' import notificationsFetcher from '../../services/notifications_fetcher/notifications_fetcher.service.js' import { notificationsFromStore, @@ -17,6 +18,10 @@ library.add( const DEFAULT_SEEN_TO_DISPLAY_COUNT = 30 const Notifications = { + components: { + Notification, + NotificationFilters + }, props: { // Disables display of panel header noHeading: Boolean, @@ -70,9 +75,6 @@ const Notifications = { }, ...mapGetters(['unreadChatCount']) }, - components: { - Notification - }, watch: { unseenCountTitle (count) { if (count > 0) { diff --git a/src/components/notifications/notifications.vue b/src/components/notifications/notifications.vue index 725d1ad4..12097b85 100644 --- a/src/components/notifications/notifications.vue +++ b/src/components/notifications/notifications.vue @@ -22,6 +22,7 @@ > {{ $t('notifications.read') }} +
diff --git a/src/services/export_import/export_import.js b/src/services/export_import/export_import.js new file mode 100644 index 00000000..0bf9eadc --- /dev/null +++ b/src/services/export_import/export_import.js @@ -0,0 +1,57 @@ +export const newExporter = ({ + filename = 'data', + getExportedObject +}) => ({ + exportData () { + const stringified = JSON.stringify(getExportedObject(), null, 2) // Pretty-print and indent with 2 spaces + + // Create an invisible link with a data url and simulate a click + const e = document.createElement('a') + e.setAttribute('download', `${filename}.json`) + e.setAttribute('href', 'data:application/json;base64,' + window.btoa(stringified)) + e.style.display = 'none' + + document.body.appendChild(e) + e.click() + document.body.removeChild(e) + } +}) + +export const newImporter = ({ + onImport, + onImportFailure, + validator = () => true +}) => ({ + importData () { + const filePicker = document.createElement('input') + filePicker.setAttribute('type', 'file') + filePicker.setAttribute('accept', '.json') + console.log(1) + + filePicker.addEventListener('change', event => { + if (event.target.files[0]) { + // eslint-disable-next-line no-undef + const reader = new FileReader() + reader.onload = ({ target }) => { + try { + const parsed = JSON.parse(target.result) + const validationResult = validator(parsed) + if (validationResult === true) { + onImport(parsed) + } else { + onImportFailure({ validationResult }) + } + } catch (error) { + onImportFailure({ error }) + } + } + console.log(2) + reader.readAsText(event.target.files[0]) + } + }) + + document.body.appendChild(filePicker) + filePicker.click() + document.body.removeChild(filePicker) + } +}) From dda95543e82ff21ca03c96f3366735a9ec43c0e6 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Mon, 8 Mar 2021 19:53:30 +0200 Subject: [PATCH 14/76] implemented import/export for themes --- .../settings_modal/settings_modal.js | 80 +++++++++++++++++++ .../settings_modal/settings_modal.vue | 70 +++++++++++++++- src/i18n/en.json | 5 ++ src/modules/config.js | 5 ++ 4 files changed, 158 insertions(+), 2 deletions(-) diff --git a/src/components/settings_modal/settings_modal.js b/src/components/settings_modal/settings_modal.js index f0d49c91..7f6ccccb 100644 --- a/src/components/settings_modal/settings_modal.js +++ b/src/components/settings_modal/settings_modal.js @@ -2,10 +2,52 @@ import Modal from 'src/components/modal/modal.vue' import PanelLoading from 'src/components/panel_loading/panel_loading.vue' import AsyncComponentError from 'src/components/async_component_error/async_component_error.vue' import getResettableAsyncComponent from 'src/services/resettable_async_component.js' +import Popover from '../popover/popover.vue' +import { library } from '@fortawesome/fontawesome-svg-core' +import { cloneDeep } from 'lodash' +import { + newImporter, + newExporter +} from 'src/services/export_import/export_import.js' +import { + faTimes, + faFileUpload, + faFileDownload, + faChevronDown +} from '@fortawesome/free-solid-svg-icons' +import { + faWindowMinimize +} from '@fortawesome/free-regular-svg-icons' + +library.add( + faTimes, + faWindowMinimize, + faFileUpload, + faFileDownload, + faChevronDown +) const SettingsModal = { + data () { + return { + dataImporter: newImporter({ + validator: this.importValidator, + onImport: this.onImport, + onImportFailure: this.onImportFailure + }), + dataThemeExporter: newExporter({ + filename: 'pleromafe_settings.full', + getExportedObject: () => this.generateExport(true) + }), + dataExporter: newExporter({ + filename: 'pleromafe_settings', + getExportedObject: () => this.generateExport() + }) + } + }, components: { Modal, + Popover, SettingsModalContent: getResettableAsyncComponent( () => import('./settings_modal_content.vue'), { @@ -21,6 +63,44 @@ const SettingsModal = { }, peekModal () { this.$store.dispatch('togglePeekSettingsModal') + }, + importValidator (data) { + return data._pleroma_settings_version[0] === 1 + }, + onImportFailure () { + this.$store.dispatch('pushGlobalNotice', { messageKey: 'settings.invalid_settings_imported', level: 'error' }) + }, + onImport (data) { + this.$store.dispatch('loadSettings', data) + }, + restore () { + console.log(this.dataImporter) + this.dataImporter.importData() + }, + backup () { + this.dataExporter.exportData() + }, + backupWithTheme () { + this.dataThemeExporter.exportData() + }, + generateExport (theme = false) { + const { config } = this.$store.state + let sample = config + if (!theme) { + const ignoreList = new Set([ + 'customTheme', + 'customThemeSource', + 'colors' + ]) + sample = Object.fromEntries( + Object + .entries(sample) + .filter(([key]) => !ignoreList.has(key)) + ) + } + const clone = cloneDeep(sample) + clone._pleroma_settings_version = [1, 0] + return clone } }, computed: { diff --git a/src/components/settings_modal/settings_modal.vue b/src/components/settings_modal/settings_modal.vue index 552ca41f..a142bcd1 100644 --- a/src/components/settings_modal/settings_modal.vue +++ b/src/components/settings_modal/settings_modal.vue @@ -32,19 +32,85 @@
+
diff --git a/src/i18n/en.json b/src/i18n/en.json index 2aefebc9..049d3d11 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -357,6 +357,7 @@ "interface": "Interface", "interfaceLanguage": "Interface language", "invalid_theme_imported": "The selected file is not a supported Pleroma theme. No changes to your theme were made.", + "invalid_settings_imported": "The selected file is not a supported Pleroma settings backup. No changes were made.", "limited_availability": "Unavailable in your browser", "links": "Links", "lock_account_description": "Restrict your account to approved followers only", @@ -364,6 +365,10 @@ "loop_video_silent_only": "Loop only videos without sound (i.e. Mastodon's \"gifs\")", "mutes_tab": "Mutes", "play_videos_in_modal": "Play videos in a popup frame", + "backup_restore": "Settings backup", + "backup_settings": "Backup settings to file", + "backup_settings_theme": "Backup settings and theme to file", + "restore_settings": "Restore settings from file", "profile_fields": { "label": "Profile metadata", "add_field": "Add Field", diff --git a/src/modules/config.js b/src/modules/config.js index eca58c12..ec3b4c43 100644 --- a/src/modules/config.js +++ b/src/modules/config.js @@ -110,6 +110,11 @@ const config = { } }, actions: { + loadSettings ({ dispatch }, data) { + Object.keys(this.state.config).forEach( + name => dispatch('setOption', { name, value: data[name] }) + ) + }, setHighlight ({ commit, dispatch }, { user, color, type }) { commit('setHighlight', { user, color, type }) }, From 395e12cbc6e22459508023daabba87b62a65050e Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Mon, 8 Mar 2021 21:00:43 +0200 Subject: [PATCH 15/76] better error/warnings --- .../settings_modal/settings_modal.js | 54 +++++++++++++++++-- .../settings_modal/settings_modal.vue | 8 +-- src/i18n/en.json | 17 ++++-- 3 files changed, 66 insertions(+), 13 deletions(-) diff --git a/src/components/settings_modal/settings_modal.js b/src/components/settings_modal/settings_modal.js index 7f6ccccb..f88184ca 100644 --- a/src/components/settings_modal/settings_modal.js +++ b/src/components/settings_modal/settings_modal.js @@ -19,6 +19,9 @@ import { faWindowMinimize } from '@fortawesome/free-regular-svg-icons' +const PLEROMAFE_SETTINGS_MAJOR_VERSION = 1 +const PLEROMAFE_SETTINGS_MINOR_VERSION = 0 + library.add( faTimes, faWindowMinimize, @@ -65,12 +68,52 @@ const SettingsModal = { this.$store.dispatch('togglePeekSettingsModal') }, importValidator (data) { - return data._pleroma_settings_version[0] === 1 + if (!Array.isArray(data._pleroma_settings_version)) { + return { + messageKey: 'settings.file_import_export.invalid_file' + } + } + + const [major, minor] = data._pleroma_settings_version + + if (major > PLEROMAFE_SETTINGS_MAJOR_VERSION) { + return { + messageKey: 'settings.file_export_import.errors.file_too_new', + messageArgs: { + fileMajor: major, + feMajor: PLEROMAFE_SETTINGS_MAJOR_VERSION + } + } + } + + if (major < PLEROMAFE_SETTINGS_MAJOR_VERSION) { + return { + messageKey: 'settings.file_export_import.errors.file_too_old', + messageArgs: { + fileMajor: major, + feMajor: PLEROMAFE_SETTINGS_MAJOR_VERSION + } + } + } + + if (minor > PLEROMAFE_SETTINGS_MINOR_VERSION) { + this.$store.dispatch('pushGlobalNotice', { + level: 'warning', + messageKey: 'settings.file_export_import.errors.file_slightly_new', + }) + } + + return true }, - onImportFailure () { - this.$store.dispatch('pushGlobalNotice', { messageKey: 'settings.invalid_settings_imported', level: 'error' }) + onImportFailure (result) { + if (result.error) { + this.$store.dispatch('pushGlobalNotice', { messageKey: 'settings.invalid_settings_imported', level: 'error' }) + } else { + this.$store.dispatch('pushGlobalNotice', { ...result.validationResult, level: 'error' }) + } }, onImport (data) { + if (data) this.$store.dispatch('loadSettings', data) }, restore () { @@ -99,7 +142,10 @@ const SettingsModal = { ) } const clone = cloneDeep(sample) - clone._pleroma_settings_version = [1, 0] + clone._pleroma_settings_version = [ + PLEROMAFE_SETTINGS_MAJOR_VERSION, + PLEROMAFE_SETTINGS_MINOR_VERSION + ] return clone } }, diff --git a/src/components/settings_modal/settings_modal.vue b/src/components/settings_modal/settings_modal.vue index a142bcd1..c37608e2 100644 --- a/src/components/settings_modal/settings_modal.vue +++ b/src/components/settings_modal/settings_modal.vue @@ -67,7 +67,7 @@ class="btn button-default" :title="$t('general.close')" > - {{ $t("settings.backup_restore") }} + {{ $t("settings.file_export_import.backup_restore") }} @@ -85,7 +85,7 @@ {{ $t("settings.backup_settings") }} + />{{ $t("settings.file_export_import.backup_settings") }}
diff --git a/src/i18n/en.json b/src/i18n/en.json index 049d3d11..1c7fe943 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -357,7 +357,6 @@ "interface": "Interface", "interfaceLanguage": "Interface language", "invalid_theme_imported": "The selected file is not a supported Pleroma theme. No changes to your theme were made.", - "invalid_settings_imported": "The selected file is not a supported Pleroma settings backup. No changes were made.", "limited_availability": "Unavailable in your browser", "links": "Links", "lock_account_description": "Restrict your account to approved followers only", @@ -365,10 +364,18 @@ "loop_video_silent_only": "Loop only videos without sound (i.e. Mastodon's \"gifs\")", "mutes_tab": "Mutes", "play_videos_in_modal": "Play videos in a popup frame", - "backup_restore": "Settings backup", - "backup_settings": "Backup settings to file", - "backup_settings_theme": "Backup settings and theme to file", - "restore_settings": "Restore settings from file", + "file_export_import": { + "backup_restore": "Settings backup", + "backup_settings": "Backup settings to file", + "backup_settings_theme": "Backup settings and theme to file", + "restore_settings": "Restore settings from file", + "errors": { + "invalid_file": "The selected file is not a supported Pleroma settings backup. No changes were made.", + "file_too_new": "Incompatile major version: {fileMajor}, this PleromaFE (settings ver {feMajor}) is too old to handle it", + "file_too_old": "Incompatile major version: {fileMajor}, file version is too old and not supported (min. set. ver. {feMajor})", + "file_slightly_new": "File minor version is different, some settings might not load" + } + }, "profile_fields": { "label": "Profile metadata", "add_field": "Add Field", From 914b4eb5938f00284afff3c210dcafa94e48f510 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Mon, 8 Mar 2021 21:03:55 +0200 Subject: [PATCH 16/76] lint --- src/components/settings_modal/settings_modal.js | 5 ++--- src/components/settings_modal/settings_modal.vue | 8 ++++---- .../settings_modal/tabs/theme_tab/theme_tab.vue | 10 ++++++++-- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/components/settings_modal/settings_modal.js b/src/components/settings_modal/settings_modal.js index f88184ca..7010e4aa 100644 --- a/src/components/settings_modal/settings_modal.js +++ b/src/components/settings_modal/settings_modal.js @@ -99,7 +99,7 @@ const SettingsModal = { if (minor > PLEROMAFE_SETTINGS_MINOR_VERSION) { this.$store.dispatch('pushGlobalNotice', { level: 'warning', - messageKey: 'settings.file_export_import.errors.file_slightly_new', + messageKey: 'settings.file_export_import.errors.file_slightly_new' }) } @@ -113,8 +113,7 @@ const SettingsModal = { } }, onImport (data) { - if (data) - this.$store.dispatch('loadSettings', data) + if (data) { this.$store.dispatch('loadSettings', data) } }, restore () { console.log(this.dataImporter) diff --git a/src/components/settings_modal/settings_modal.vue b/src/components/settings_modal/settings_modal.vue index c37608e2..c7da5433 100644 --- a/src/components/settings_modal/settings_modal.vue +++ b/src/components/settings_modal/settings_modal.vue @@ -31,8 +31,8 @@ - From fada49768dcd12faae4f7a188bdd36ea60f8b0a8 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Mon, 8 Mar 2021 21:14:03 +0200 Subject: [PATCH 17/76] extra protection to not write what we don't know --- src/modules/config.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/modules/config.js b/src/modules/config.js index ec3b4c43..352adf20 100644 --- a/src/modules/config.js +++ b/src/modules/config.js @@ -111,7 +111,16 @@ const config = { }, actions: { loadSettings ({ dispatch }, data) { - Object.keys(this.state.config).forEach( + const knownKeys = new Set(Object.keys(this.state.config)) + const presentKeys = new Set(Object.keys(data)) + const intersection = new Set() + for (let elem of presentKeys) { + if (knownKeys.has(elem)) { + intersection.add(elem) + } + } + + Object.keys(intersection).forEach( name => dispatch('setOption', { name, value: data[name] }) ) }, From 3d95ea6acbd47cabee519b2450647512ac2d5b46 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Mon, 8 Mar 2021 21:56:20 +0200 Subject: [PATCH 18/76] cleanup + fix --- src/components/settings_modal/settings_modal.js | 1 - src/modules/config.js | 4 ++-- src/services/export_import/export_import.js | 2 -- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/components/settings_modal/settings_modal.js b/src/components/settings_modal/settings_modal.js index 7010e4aa..04043483 100644 --- a/src/components/settings_modal/settings_modal.js +++ b/src/components/settings_modal/settings_modal.js @@ -116,7 +116,6 @@ const SettingsModal = { if (data) { this.$store.dispatch('loadSettings', data) } }, restore () { - console.log(this.dataImporter) this.dataImporter.importData() }, backup () { diff --git a/src/modules/config.js b/src/modules/config.js index 352adf20..b0fc98f5 100644 --- a/src/modules/config.js +++ b/src/modules/config.js @@ -111,7 +111,7 @@ const config = { }, actions: { loadSettings ({ dispatch }, data) { - const knownKeys = new Set(Object.keys(this.state.config)) + const knownKeys = new Set(Object.keys(defaultState)) const presentKeys = new Set(Object.keys(data)) const intersection = new Set() for (let elem of presentKeys) { @@ -120,7 +120,7 @@ const config = { } } - Object.keys(intersection).forEach( + intersection.forEach( name => dispatch('setOption', { name, value: data[name] }) ) }, diff --git a/src/services/export_import/export_import.js b/src/services/export_import/export_import.js index 0bf9eadc..ac67cf9c 100644 --- a/src/services/export_import/export_import.js +++ b/src/services/export_import/export_import.js @@ -26,7 +26,6 @@ export const newImporter = ({ const filePicker = document.createElement('input') filePicker.setAttribute('type', 'file') filePicker.setAttribute('accept', '.json') - console.log(1) filePicker.addEventListener('change', event => { if (event.target.files[0]) { @@ -45,7 +44,6 @@ export const newImporter = ({ onImportFailure({ error }) } } - console.log(2) reader.readAsText(event.target.files[0]) } }) From 90afcd3420a911856bde794f2b4dc1380a1a0751 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Mon, 8 Mar 2021 22:24:39 +0200 Subject: [PATCH 19/76] WIP some work on making errors less spammy --- src/i18n/en.json | 3 +- src/modules/api.js | 44 +++++++++++-------- .../notifications_fetcher.service.js | 14 +++--- .../timeline_fetcher.service.js | 14 +++--- 4 files changed, 43 insertions(+), 32 deletions(-) diff --git a/src/i18n/en.json b/src/i18n/en.json index 217ac7c8..635bfd56 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -664,8 +664,7 @@ "no_more_statuses": "No more statuses", "no_statuses": "No statuses", "socket_reconnected": "Realtime connection established", - "socket_broke": "Realtime connection lost: CloseEvent code {0}", - "socket_closed": "No realtime connection, updates can arrive with a delaye until connection is re-established" + "socket_broke": "Realtime connection lost: CloseEvent code {0}" }, "status": { "favorites": "Favorites", diff --git a/src/modules/api.js b/src/modules/api.js index b482637d..e392d5b0 100644 --- a/src/modules/api.js +++ b/src/modules/api.js @@ -5,6 +5,8 @@ import { Socket } from 'phoenix' const api = { state: { + connectionBroken: false, + retryMultiplier: 1, backendInteractor: backendInteractorService(), fetchers: {}, socket: null, @@ -34,12 +36,18 @@ const api = { }, setMastoUserSocketStatus (state, value) { state.mastoUserSocketStatus = value + }, + recoverConnection (state) { + state.connectionBroken = false + }, + breakConnection (state) { + state.connectionBroken = true } }, actions: { // Global MastoAPI socket control, in future should disable ALL sockets/(re)start relevant sockets enableMastoSockets (store) { - const { state, dispatch } = store + const { state, dispatch, commit } = store // Do not initialize unless nonexistent or closed if ( state.mastoUserSocket && @@ -50,11 +58,13 @@ const api = { ) { return } + commit('recoverConnection') return dispatch('startMastoUserSocket') }, disableMastoSockets (store) { - const { state, dispatch } = store + const { state, dispatch, commit } = store if (!state.mastoUserSocket) return + commit('recoverConnection') return dispatch('stopMastoUserSocket') }, @@ -102,6 +112,7 @@ const api = { state.mastoUserSocket.addEventListener('open', () => { // Do not show notification when we just opened up the page if (state.mastoUserSocketStatus !== null) { + commit('recoverConnection') dispatch('pushGlobalNotice', { level: 'success', messageKey: 'timeline.socket_reconnected', @@ -114,15 +125,6 @@ const api = { console.error('Error in MastoAPI websocket:', error) commit('setMastoUserSocketStatus', WSConnectionStatus.ERROR) dispatch('clearOpenedChats') - /* Since data in WS event for error is useless it's better to show - * generic warning instead of in "close" which actually has some - * useful data - */ - dispatch('pushGlobalNotice', { - level: 'error', - messageKey: 'timeline.socket_closed', - timeout: 5000 - }) }) state.mastoUserSocket.addEventListener('close', ({ detail: closeEvent }) => { const ignoreCodes = new Set([ @@ -137,13 +139,19 @@ const api = { dispatch('startFetchingTimeline', { timeline: 'friends' }) dispatch('startFetchingNotifications') dispatch('startFetchingChats') - dispatch('restartMastoUserSocket') - dispatch('pushGlobalNotice', { - level: 'error', - messageKey: 'timeline.socket_broke', - messageArgs: [code], - timeout: 5000 - }) + setTimeout(() => { + console.log('TEST') + dispatch('restartMastoUserSocket') + }, 1000) + if (!state.connectionBroken) { + dispatch('pushGlobalNotice', { + level: 'error', + messageKey: 'timeline.socket_broke', + messageArgs: [code], + timeout: 5000 + }) + } + commit('breakConnection') } commit('setMastoUserSocketStatus', WSConnectionStatus.CLOSED) dispatch('clearOpenedChats') diff --git a/src/services/notifications_fetcher/notifications_fetcher.service.js b/src/services/notifications_fetcher/notifications_fetcher.service.js index f83f871e..fc5e76ba 100644 --- a/src/services/notifications_fetcher/notifications_fetcher.service.js +++ b/src/services/notifications_fetcher/notifications_fetcher.service.js @@ -57,12 +57,14 @@ const fetchNotifications = ({ store, args, older }) => { return notifications }) .catch((error) => { - store.dispatch('pushGlobalNotice', { - level: 'error', - messageKey: 'notifications.error', - messageArgs: [error.message], - timeout: 5000 - }) + if (!store.rootState.api.connectionBroken) { + store.dispatch('pushGlobalNotice', { + level: 'error', + messageKey: 'notifications.error', + messageArgs: [error.message], + timeout: 5000 + }) + } }) } diff --git a/src/services/timeline_fetcher/timeline_fetcher.service.js b/src/services/timeline_fetcher/timeline_fetcher.service.js index 46bba41a..eb4a3e0d 100644 --- a/src/services/timeline_fetcher/timeline_fetcher.service.js +++ b/src/services/timeline_fetcher/timeline_fetcher.service.js @@ -66,12 +66,14 @@ const fetchAndUpdate = ({ return { statuses, pagination } }) .catch((error) => { - store.dispatch('pushGlobalNotice', { - level: 'error', - messageKey: 'timeline.error', - messageArgs: [error.message], - timeout: 5000 - }) + if (!store.rootState.api.connectionBroken) { + store.dispatch('pushGlobalNotice', { + level: 'error', + messageKey: 'timeline.error', + messageArgs: [error.message], + timeout: 5000 + }) + } }) } From a8967d85bd7ae1541f1d4e41e95fc8fa111f2360 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 9 Mar 2021 02:38:10 +0200 Subject: [PATCH 20/76] streamlined WS flow, reduced spam amount related to WS reconnections --- src/modules/api.js | 69 +++++++++++-------- src/modules/users.js | 3 +- src/services/api/api.service.js | 5 +- .../notifications_fetcher.service.js | 14 ++-- .../timeline_fetcher.service.js | 14 ++-- 5 files changed, 56 insertions(+), 49 deletions(-) diff --git a/src/modules/api.js b/src/modules/api.js index e392d5b0..8654b90a 100644 --- a/src/modules/api.js +++ b/src/modules/api.js @@ -3,9 +3,10 @@ import { WSConnectionStatus } from '../services/api/api.service.js' import { maybeShowChatNotification } from '../services/chat_utils/chat_utils.js' import { Socket } from 'phoenix' +const retryTimeout = (multiplier) => 1000 * multiplier + const api = { state: { - connectionBroken: false, retryMultiplier: 1, backendInteractor: backendInteractorService(), fetchers: {}, @@ -37,16 +38,20 @@ const api = { setMastoUserSocketStatus (state, value) { state.mastoUserSocketStatus = value }, - recoverConnection (state) { - state.connectionBroken = false + incrementRetryMultiplier (state) { + state.retryMultiplier = Math.max(++state.retryMultiplier, 3) }, - breakConnection (state) { - state.connectionBroken = true + resetRetryMultiplier (state) { + state.retryMultiplier = 1 } }, actions: { - // Global MastoAPI socket control, in future should disable ALL sockets/(re)start relevant sockets - enableMastoSockets (store) { + /** + * Global MastoAPI socket control, in future should disable ALL sockets/(re)start relevant sockets + * + * @param {Boolean} [initial] - whether this enabling happened at boot time or not + */ + enableMastoSockets (store, initial) { const { state, dispatch, commit } = store // Do not initialize unless nonexistent or closed if ( @@ -58,13 +63,17 @@ const api = { ) { return } - commit('recoverConnection') + if (initial) { + commit('setMastoUserSocketStatus', WSConnectionStatus.STARTING_INITIAL) + } else { + commit('setMastoUserSocketStatus', WSConnectionStatus.STARTING) + } return dispatch('startMastoUserSocket') }, disableMastoSockets (store) { const { state, dispatch, commit } = store if (!state.mastoUserSocket) return - commit('recoverConnection') + commit('setMastoUserSocketStatus', WSConnectionStatus.DISABLED) return dispatch('stopMastoUserSocket') }, @@ -111,19 +120,28 @@ const api = { ) state.mastoUserSocket.addEventListener('open', () => { // Do not show notification when we just opened up the page - if (state.mastoUserSocketStatus !== null) { - commit('recoverConnection') + if (state.mastoUserSocketStatus !== WSConnectionStatus.STARTING_INITIAL) { dispatch('pushGlobalNotice', { level: 'success', messageKey: 'timeline.socket_reconnected', timeout: 5000 }) } + // Stop polling if we were errored or disabled + if (new Set([ + WSConnectionStatus.ERROR, + WSConnectionStatus.DISABLED + ]).has(state.mastoUserSocketStatus)) { + dispatch('stopFetchingTimeline', { timeline: 'friends' }) + dispatch('stopFetchingNotifications') + dispatch('stopFetchingChats') + } + commit('resetRetryMultiplier') commit('setMastoUserSocketStatus', WSConnectionStatus.JOINED) }) state.mastoUserSocket.addEventListener('error', ({ detail: error }) => { console.error('Error in MastoAPI websocket:', error) - commit('setMastoUserSocketStatus', WSConnectionStatus.ERROR) + // TODO is this needed? dispatch('clearOpenedChats') }) state.mastoUserSocket.addEventListener('close', ({ detail: closeEvent }) => { @@ -134,16 +152,17 @@ const api = { const { code } = closeEvent if (ignoreCodes.has(code)) { console.debug(`Not restarting socket becasue of closure code ${code} is in ignore list`) + commit('setMastoUserSocketStatus', WSConnectionStatus.CLOSED) } else { console.warn(`MastoAPI websocket disconnected, restarting. CloseEvent code: ${code}`) - dispatch('startFetchingTimeline', { timeline: 'friends' }) - dispatch('startFetchingNotifications') - dispatch('startFetchingChats') setTimeout(() => { - console.log('TEST') - dispatch('restartMastoUserSocket') - }, 1000) - if (!state.connectionBroken) { + dispatch('startMastoUserSocket') + }, retryTimeout(state.retryMultiplier)) + commit('incrementRetryMultiplier') + if (state.mastoUserSocketStatus !== WSConnectionStatus.ERROR) { + dispatch('startFetchingTimeline', { timeline: 'friends' }) + dispatch('startFetchingNotifications') + dispatch('startFetchingChats') dispatch('pushGlobalNotice', { level: 'error', messageKey: 'timeline.socket_broke', @@ -151,9 +170,8 @@ const api = { timeout: 5000 }) } - commit('breakConnection') + commit('setMastoUserSocketStatus', WSConnectionStatus.ERROR) } - commit('setMastoUserSocketStatus', WSConnectionStatus.CLOSED) dispatch('clearOpenedChats') }) resolve() @@ -162,15 +180,6 @@ const api = { } }) }, - restartMastoUserSocket ({ dispatch }) { - // This basically starts MastoAPI user socket and stops conventional - // fetchers when connection reestablished - return dispatch('startMastoUserSocket').then(() => { - dispatch('stopFetchingTimeline', { timeline: 'friends' }) - dispatch('stopFetchingNotifications') - dispatch('stopFetchingChats') - }) - }, stopMastoUserSocket ({ state, dispatch }) { dispatch('startFetchingTimeline', { timeline: 'friends' }) dispatch('startFetchingNotifications') diff --git a/src/modules/users.js b/src/modules/users.js index ac52be1f..8a764a16 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -549,9 +549,8 @@ const users = { if (store.getters.mergedConfig.useStreamingApi) { store.dispatch('fetchTimeline', 'friends', { since: null }) store.dispatch('fetchNotifications', { since: null }) - store.dispatch('enableMastoSockets').catch((error) => { + store.dispatch('enableMastoSockets', true).catch((error) => { console.error('Failed initializing MastoAPI Streaming socket', error) - startPolling() }).then(() => { store.dispatch('fetchChats', { latest: true }) setTimeout(() => store.dispatch('setNotificationsSilence', false), 10000) diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js index d3d5c68d..436b8b0a 100644 --- a/src/services/api/api.service.js +++ b/src/services/api/api.service.js @@ -1184,7 +1184,10 @@ export const handleMastoWS = (wsEvent) => { export const WSConnectionStatus = Object.freeze({ 'JOINED': 1, 'CLOSED': 2, - 'ERROR': 3 + 'ERROR': 3, + 'DISABLED': 4, + 'STARTING': 5, + 'STARTING_INITIAL': 6 }) const chats = ({ credentials }) => { diff --git a/src/services/notifications_fetcher/notifications_fetcher.service.js b/src/services/notifications_fetcher/notifications_fetcher.service.js index fc5e76ba..f83f871e 100644 --- a/src/services/notifications_fetcher/notifications_fetcher.service.js +++ b/src/services/notifications_fetcher/notifications_fetcher.service.js @@ -57,14 +57,12 @@ const fetchNotifications = ({ store, args, older }) => { return notifications }) .catch((error) => { - if (!store.rootState.api.connectionBroken) { - store.dispatch('pushGlobalNotice', { - level: 'error', - messageKey: 'notifications.error', - messageArgs: [error.message], - timeout: 5000 - }) - } + store.dispatch('pushGlobalNotice', { + level: 'error', + messageKey: 'notifications.error', + messageArgs: [error.message], + timeout: 5000 + }) }) } diff --git a/src/services/timeline_fetcher/timeline_fetcher.service.js b/src/services/timeline_fetcher/timeline_fetcher.service.js index eb4a3e0d..46bba41a 100644 --- a/src/services/timeline_fetcher/timeline_fetcher.service.js +++ b/src/services/timeline_fetcher/timeline_fetcher.service.js @@ -66,14 +66,12 @@ const fetchAndUpdate = ({ return { statuses, pagination } }) .catch((error) => { - if (!store.rootState.api.connectionBroken) { - store.dispatch('pushGlobalNotice', { - level: 'error', - messageKey: 'timeline.error', - messageArgs: [error.message], - timeout: 5000 - }) - } + store.dispatch('pushGlobalNotice', { + level: 'error', + messageKey: 'timeline.error', + messageArgs: [error.message], + timeout: 5000 + }) }) } From 088683538d86d5230c333e9e01913a51ea1f95fe Mon Sep 17 00:00:00 2001 From: Shpuld Shpludson Date: Tue, 9 Mar 2021 09:45:14 +0000 Subject: [PATCH 21/76] Update CHANGELOG.md --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3176181..1d2fab67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Added - Added a quick settings to timeline header for easier access - Added option to mark posts as sensitive by default -- Added a quick settings to timeline header for easier access - Added option to mark posts as sensitive by default - Added quick filters for notifications From 0475e1c61cba0862e8ed8976920dad895e8a5828 Mon Sep 17 00:00:00 2001 From: Shpuld Shpludson Date: Tue, 9 Mar 2021 09:45:28 +0000 Subject: [PATCH 22/76] Update CHANGELOG.md --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d2fab67..629e1290 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Added - Added a quick settings to timeline header for easier access - Added option to mark posts as sensitive by default -- Added option to mark posts as sensitive by default - Added quick filters for notifications ## [2.3.0] - 2021-03-01 From 5c064ccf553ffcd3286ad1b3305633c5c4c4c0c4 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Thu, 11 Mar 2021 15:14:30 +0200 Subject: [PATCH 23/76] fix some css problems + tiny bit cleaning up --- src/App.scss | 5 ++- .../notifications/notifications.scss | 7 +++-- .../notifications/notifications.vue | 6 ++-- src/components/timeline/timeline.scss | 31 +++++++++++++++++++ src/components/timeline/timeline.vue | 30 +----------------- 5 files changed, 44 insertions(+), 35 deletions(-) create mode 100644 src/components/timeline/timeline.scss diff --git a/src/App.scss b/src/App.scss index a3b2a08e..da0cfca7 100644 --- a/src/App.scss +++ b/src/App.scss @@ -547,7 +547,10 @@ main-router { border-radius: var(--panelRadius, $fallback--panelRadius); } -.panel-footer { +/* TODO Should remove timeline-footer from here when we refactor panels into + * separate component and utilize slots + */ +.panel-footer, .timeline-footer { display: flex; border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius; border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius); diff --git a/src/components/notifications/notifications.scss b/src/components/notifications/notifications.scss index 682ae127..2bb627a8 100644 --- a/src/components/notifications/notifications.scss +++ b/src/components/notifications/notifications.scss @@ -1,6 +1,6 @@ @import '../../_variables.scss'; -.notifications { +.Notifications { &:not(.minimal) { // a bit of a hack to allow scrolling below notifications padding-bottom: 15em; @@ -11,6 +11,10 @@ color: var(--text, $fallback--text); } + .notifications-footer { + border: none; + } + .notification { position: relative; @@ -82,7 +86,6 @@ } } - .follow-text, .move-text { padding: 0.5em 0; overflow-wrap: break-word; diff --git a/src/components/notifications/notifications.vue b/src/components/notifications/notifications.vue index eb951f18..dc663ce2 100644 --- a/src/components/notifications/notifications.vue +++ b/src/components/notifications/notifications.vue @@ -1,7 +1,7 @@ From d839c1ac89066734bef1f5f5fe524797525287c2 Mon Sep 17 00:00:00 2001 From: Ben Is Date: Mon, 1 Mar 2021 15:07:05 +0000 Subject: [PATCH 28/76] Translated using Weblate (Italian) Currently translated at 100.0% (692 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/it/ --- src/i18n/it.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/i18n/it.json b/src/i18n/it.json index 32028262..d02b7265 100644 --- a/src/i18n/it.json +++ b/src/i18n/it.json @@ -422,7 +422,14 @@ "mute_export_button": "Esporta la tua lista di silenziati in un file CSV", "mute_export": "Esporta silenziati", "hide_wallpaper": "Nascondi sfondo della stanza", - "setting_changed": "Valore personalizzato" + "setting_changed": "Valore personalizzato", + "more_settings": "Altre impostazioni", + "sensitive_by_default": "Tutti i miei messaggi sono scabrosi", + "reply_visibility_self_short": "Vedi solo risposte a te", + "reply_visibility_following_short": "Vedi risposte a messaggi di altri", + "hide_all_muted_posts": "Nascondi messaggi silenziati", + "hide_media_previews": "Nascondi anteprime", + "word_filter": "Parole filtrate" }, "timeline": { "error_fetching": "Errore nell'aggiornamento", From f70921b98422b9a1f776639e71b333aa92fad198 Mon Sep 17 00:00:00 2001 From: Ryo Ueno Date: Mon, 1 Mar 2021 15:01:12 +0000 Subject: [PATCH 29/76] Translated using Weblate (Japanese) Currently translated at 100.0% (692 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ja_PEDANTIC/ --- src/i18n/ja_pedantic.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/i18n/ja_pedantic.json b/src/i18n/ja_pedantic.json index 846c793a..ed3924bb 100644 --- a/src/i18n/ja_pedantic.json +++ b/src/i18n/ja_pedantic.json @@ -574,7 +574,13 @@ "allow_following_move": "フォロー中のアカウントが引っ越したとき、自動フォローを許可する", "setting_changed": "規定の設定と異なっています", "greentext": "引用を緑色で表示", - "sensitive_by_default": "はじめから投稿をセンシティブとして設定" + "sensitive_by_default": "はじめから投稿をセンシティブとして設定", + "more_settings": "その他の設定", + "reply_visibility_self_short": "自分宛のリプライを見る", + "reply_visibility_following_short": "フォローしている人に宛てられたリプライを見る", + "hide_all_muted_posts": "ミュートした投稿を隠す", + "hide_media_previews": "メディアのプレビューを隠す", + "word_filter": "単語フィルタ" }, "time": { "day": "{0}日", From a7d64d038a4e1132cab078d1c2b5187142801fe1 Mon Sep 17 00:00:00 2001 From: Ryo Ueno Date: Mon, 1 Mar 2021 15:06:35 +0000 Subject: [PATCH 30/76] Translated using Weblate (Korean) Currently translated at 66.7% (462 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ko/ --- src/i18n/ko.json | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/i18n/ko.json b/src/i18n/ko.json index c8d213f3..4aae13b7 100644 --- a/src/i18n/ko.json +++ b/src/i18n/ko.json @@ -405,7 +405,8 @@ "change_email": "전자메일 주소 바꾸기", "changed_email": "메일주소가 갱신되었습니다!", "bot": "이 계정은 bot입니다", - "mutes_tab": "침묵" + "mutes_tab": "침묵", + "app_name": "앱 이름" }, "timeline": { "collapse": "접기", @@ -468,7 +469,8 @@ }, "interactions": { "follows": "새 팔로워", - "favs_repeats": "반복과 즐겨찾기" + "favs_repeats": "반복과 즐겨찾기", + "moves": "계정 통합" }, "emoji": { "load_all": "전체 {emojiAmount} 이모지 불러오기", @@ -581,6 +583,10 @@ "day": "{0} 일" }, "remote_user_resolver": { - "error": "찾을 수 없습니다." + "error": "찾을 수 없습니다.", + "searching_for": "검색중" + }, + "selectable_list": { + "select_all": "모두 선택" } } From deac610df638720098b23a72a63259b4e848d6c0 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Tue, 2 Mar 2021 09:00:03 +0000 Subject: [PATCH 31/76] Translated using Weblate (Russian) Currently translated at 84.8% (587 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 6d230e69..f5f1fcac 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -93,7 +93,7 @@ "post_status": { "account_not_locked_warning": "Ваш аккаунт не {0}. Кто угодно может начать читать вас чтобы видеть посты только для подписчиков.", "account_not_locked_warning_link": "залочен", - "attachments_sensitive": "Вложения содержат чувствительный контент", + "attachments_sensitive": "Вложения имеют щекотливый характер", "content_warning": "Тема (не обязательно)", "default": "Что нового?", "direct_warning": "Этот пост будет виден только упомянутым пользователям", @@ -143,7 +143,9 @@ "fullname_placeholder": "например: Почтальон Печкин", "username_placeholder": "например: pechkin", "captcha": "Код подтверждения", - "new_captcha": "Нажмите на изображение чтобы получить новый код" + "new_captcha": "Нажмите на изображение чтобы получить новый код", + "reason_placeholder": "Данный сервер обрабатывает запросы на регистрацию вручную.\nРасскажите администрации почему вы хотите зарегистрироваться.", + "reason": "Причина регистрации" }, "settings": { "enter_current_password_to_confirm": "Введите свой текущий пароль", @@ -476,7 +478,19 @@ "avatar_size_instruction": "Желательный наименьший размер личного образа 150 на 150 пикселей.", "enable_web_push_notifications": "Включить web push-уведомления", "notification_blocks": "Блокировка пользователя выключает все уведомления от него, а также отписывает вас от него.", - "notification_setting_hide_notification_contents": "Скрыть отправителя и содержимое push-уведомлений" + "notification_setting_hide_notification_contents": "Скрыть отправителя и содержимое push-уведомлений", + "version": { + "title": "Версия", + "frontend_version": "Версия фронтенда", + "backend_version": "Версия бекенда" + }, + "word_filter": "Фильтр слов", + "sensitive_by_default": "Помечать статусы как имеющие щекотливый характер по умолчанию", + "reply_visibility_self_short": "Показывать ответы только вам", + "reply_visibility_following_short": "Показывать ответы тем кого вы читаете", + "hide_all_muted_posts": "Не показывать игнорируемые статусы", + "hide_media_previews": "Не показывать вложения в ленте", + "setting_changed": "Отличается от значения по умолчанию" }, "timeline": { "collapse": "Свернуть", @@ -573,7 +587,7 @@ "simple": { "accept_desc": "Данный сервер принимает сообщения только со следующих серверов:", "ftl_removal_desc": "Данный сервер скрывает следующие сервера с федеративной ленты:", - "media_nsfw_desc": "Данный сервер принужденно помечает вложения со следущих серверов как NSFW:", + "media_nsfw_desc": "Данный сервер принужденно помечает вложения со следущих серверов как щекотливые:", "simple_policies": "Правила для определенных серверов", "accept": "Принимаемые сообщения", "reject": "Отклоняемые сообщения", @@ -644,7 +658,9 @@ "votes": "голосов", "option": "Вариант", "add_option": "Добавить вариант", - "add_poll": "Прикрепить опрос" + "add_poll": "Прикрепить опрос", + "votes_count": "{count} голос | {count} голосов", + "people_voted_count": "{count} человек проголосовал | {count} человек проголосовали" }, "media_modal": { "next": "Следующая", From 822d73c221acac331c84a28d39cb9b6fb1b98df4 Mon Sep 17 00:00:00 2001 From: Dmitriy Nelovchenko Date: Tue, 2 Mar 2021 09:11:24 +0000 Subject: [PATCH 32/76] Translated using Weblate (Russian) Currently translated at 84.8% (587 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index f5f1fcac..6cb2f509 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -490,7 +490,9 @@ "reply_visibility_following_short": "Показывать ответы тем кого вы читаете", "hide_all_muted_posts": "Не показывать игнорируемые статусы", "hide_media_previews": "Не показывать вложения в ленте", - "setting_changed": "Отличается от значения по умолчанию" + "setting_changed": "Отличается от значения по умолчанию", + "reset_background_confirm": "Вы точно хотите сбросить фон?", + "reset_banner_confirm": "Вы точно хотите сбросить баннер?" }, "timeline": { "collapse": "Свернуть", From 08a44ee4a100680a2625a8581538794c335ae421 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Wed, 3 Mar 2021 12:46:25 +0000 Subject: [PATCH 33/76] Translated using Weblate (Russian) Currently translated at 84.8% (587 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 80 ++++++++++++++++++++++++------------------------ 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 6cb2f509..5b2241df 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -91,7 +91,7 @@ "moves": "Миграции пользователей" }, "post_status": { - "account_not_locked_warning": "Ваш аккаунт не {0}. Кто угодно может начать читать вас чтобы видеть посты только для подписчиков.", + "account_not_locked_warning": "Ваш аккаунт не {0}. Кто угодно может начать читать вас чтобы видеть статусы только для читателей.", "account_not_locked_warning_link": "залочен", "attachments_sensitive": "Вложения имеют щекотливый характер", "content_warning": "Тема (не обязательно)", @@ -99,15 +99,15 @@ "direct_warning": "Этот пост будет виден только упомянутым пользователям", "posting": "Отправляется", "scope_notice": { - "public": "Этот пост будет виден всем", - "private": "Этот пост будет виден только вашим подписчикам", - "unlisted": "Этот пост не будет виден в публичной и федеративной ленте" + "public": "Этот статус будет виден всем", + "private": "Этот статус будет виден только вашим читателям", + "unlisted": "Этот статус не будет виден в локальной и федеративной ленте" }, "scope": { - "direct": "Личное - этот пост видят только те кто в нём упомянут", - "private": "Для подписчиков - этот пост видят только подписчики", - "public": "Публичный - этот пост виден всем", - "unlisted": "Непубличный - этот пост не виден на публичных лентах" + "direct": "Личное сообщение - этот статус видят только те кто в нём упомянут", + "private": "Для читателей - этот статус видят только ваши читатели", + "public": "Публичный - этот статус виден всем", + "unlisted": "Тихий - этот пост виден всем, но не отображается в публичных лентах" }, "preview_empty": "Пустой предпросмотр", "media_description_error": "Не удалось обновить вложение, попробуйте еще раз", @@ -126,7 +126,7 @@ }, "registration": { "bio": "Описание", - "email": "Email", + "email": "Электронная почта", "fullname": "Отображаемое имя", "password_confirm": "Подтверждение пароля", "registration": "Регистрация", @@ -183,9 +183,9 @@ "cGreen": "Повторить", "cOrange": "Нравится", "cRed": "Отменить", - "change_email": "Сменить email", - "change_email_error": "Произошла ошибка при попытке изменить email.", - "changed_email": "Email изменён успешно!", + "change_email": "Сменить электронную почту", + "change_email_error": "Произошла ошибка при попытке изменить электронную почту.", + "changed_email": "Электронная почта изменена успешно!", "change_password": "Сменить пароль", "change_password_error": "Произошла ошибка при попытке изменить пароль.", "changed_password": "Пароль изменён успешно!", @@ -223,28 +223,28 @@ "interfaceLanguage": "Язык интерфейса", "limited_availability": "Не доступно в вашем браузере", "links": "Ссылки", - "lock_account_description": "Аккаунт доступен только подтверждённым подписчикам", + "lock_account_description": "Сделать учетную запись закрытой — подтверждать читателей вручную", "loop_video": "Зациливать видео", "loop_video_silent_only": "Зацикливать только беззвучные видео (т.е. \"гифки\" с Mastodon)", "name": "Имя", "name_bio": "Имя и описание", - "new_email": "Новый email", + "new_email": "Новый адрес электронной почты", "new_password": "Новый пароль", "fun": "Потешное", "greentext": "Мемные стрелочки", "notification_visibility": "Показывать уведомления", - "notification_visibility_follows": "Подписки", + "notification_visibility_follows": "Новые читатели", "notification_visibility_likes": "Лайки", "notification_visibility_mentions": "Упоминания", "notification_visibility_repeats": "Повторы", - "no_rich_text_description": "Убрать форматирование из всех постов", + "no_rich_text_description": "Убрать форматирование из всех статусов", "hide_follows_description": "Не показывать кого я читаю", "hide_followers_description": "Не показывать кто читает меня", "hide_follows_count_description": "Не показывать число читаемых пользователей", - "hide_followers_count_description": "Не показывать число моих подписчиков", + "hide_followers_count_description": "Не показывать число моих читателей", "show_admin_badge": "Показывать значок администратора в моем профиле", "show_moderator_badge": "Показывать значок модератора в моем профиле", - "nsfw_clickthrough": "Включить скрытие вложений и предпросмотра ссылок для NSFW статусов", + "nsfw_clickthrough": "Включить скрытие вложений и предпросмотра ссылок для статусов щекотливого характера", "oauth_tokens": "OAuth токены", "token": "Токен", "refresh_token": "Рефреш токен", @@ -259,14 +259,14 @@ "radii_help": "Скругление углов элементов интерфейса (в пикселях)", "replies_in_timeline": "Ответы в ленте", "reply_visibility_all": "Показывать все ответы", - "reply_visibility_following": "Показывать только ответы мне или тех на кого я подписан", + "reply_visibility_following": "Показывать только ответы мне или тем кого я читаю", "reply_visibility_self": "Показывать только ответы мне", - "autohide_floating_post_button": "Автоматически скрывать кнопку постинга (в мобильной версии)", + "autohide_floating_post_button": "Автоматически скрывать кнопку \"Написать новый статус\" (в мобильной версии)", "saving_err": "Не удалось сохранить настройки", "saving_ok": "Сохранено", "security_tab": "Безопасность", - "scope_copy": "Копировать видимость поста при ответе (всегда включено для Личных Сообщений)", - "minimal_scopes_mode": "Минимизировать набор опций видимости поста", + "scope_copy": "Копировать видимость поста при ответе (всегда включено для личных сообщений)", + "minimal_scopes_mode": "Показывать только личное сообщение и публичный статус в опциях видимости", "set_new_avatar": "Загрузить новый аватар", "set_new_profile_background": "Загрузить новый фон профиля", "set_new_profile_banner": "Загрузить новый баннер профиля", @@ -387,7 +387,7 @@ "interface": "Интерфейс", "input": "Поля ввода", "post": "Текст постов", - "postCode": "Моноширинный текст в посте (форматирование)" + "postCode": "Моноширинный текст в статусе (форматирование)" }, "family": "Шрифт", "size": "Размер (в пикселях)", @@ -412,9 +412,9 @@ "allow_following_move": "Разрешить автоматически читать новый аккаунт при перемещении на другой сервер", "hide_user_stats": "Не показывать статистику пользователей (например количество читателей)", "discoverable": "Разрешить показ аккаунта в поисковиках и других сервисах", - "default_vis": "Видимость постов по умолчанию", + "default_vis": "Видимость статусов по умолчанию", "mutes_and_blocks": "Блокировки и игнорируемые", - "composing": "Составление постов", + "composing": "Составление статусов", "chatMessageRadius": "Сообщения в беседе", "blocks_tab": "Блокировки", "import_mutes_from_a_csv_file": "Импортировать игнорируемых из CSV файла", @@ -434,7 +434,7 @@ "post_status_content_type": "Формат составляемых статусов по умолчанию", "subject_line_noop": "Не копировать", "subject_line_mastodon": "Как в Mastodon: скопировать как есть", - "subject_line_email": "Как в e-mail: \"re: тема\"", + "subject_line_email": "Как в электронной почте: \"re: тема\"", "subject_line_behavior": "Копировать тему в ответах", "no_mutes": "Нет игнорируемых", "no_blocks": "Нет блокировок", @@ -454,7 +454,7 @@ "hide_filtered_statuses": "Не показывать отфильтрованные статусы", "hide_muted_posts": "Не показывать статусы игнорируемых пользователей", "hide_post_stats": "Не показывать статистику статусов (например количество отметок «Нравится»)", - "use_one_click_nsfw": "Открывать NSFW вложения одним кликом", + "use_one_click_nsfw": "Открывать вложения имеющие щекотливый характер одним кликом", "preload_images": "Предварительно загружать изображения", "max_thumbnails": "Максимальное число миниатюр показываемых в статусе", "emoji_reactions_on_timeline": "Показывать эмодзи реакции в ленте", @@ -475,7 +475,7 @@ "search_user_to_mute": "Искать, кого вы хотите заглушить", "search_user_to_block": "Искать, кого вы хотите заблокировать", "pad_emoji": "Выделять эмодзи пробелами при добавлении из панели", - "avatar_size_instruction": "Желательный наименьший размер личного образа 150 на 150 пикселей.", + "avatar_size_instruction": "Рекомендуется использовать изображение больше чем 150 на 150 пикселей в качестве аватара.", "enable_web_push_notifications": "Включить web push-уведомления", "notification_blocks": "Блокировка пользователя выключает все уведомления от него, а также отписывает вас от него.", "notification_setting_hide_notification_contents": "Скрыть отправителя и содержимое push-уведомлений", @@ -499,7 +499,7 @@ "conversation": "Разговор", "error_fetching": "Ошибка при обновлении", "load_older": "Загрузить старые статусы", - "no_retweet_hint": "Пост помечен как \"только для подписчиков\" или \"личное\" и поэтому не может быть повторён", + "no_retweet_hint": "Статус помечен как \"только для читателей\" или \"личное сообщение\" и потому не может быть повторён", "repeated": "повторил(а)", "show_new": "Показать новые", "up_to_date": "Обновлено", @@ -508,7 +508,7 @@ "status": { "bookmark": "Добавить в закладки", "unbookmark": "Удалить из закладок", - "status_deleted": "Пост удален", + "status_deleted": "Статус удален", "reply_to": "Ответ", "repeats": "Повторы", "favorites": "Понравилось", @@ -547,13 +547,13 @@ "activate_account": "Активировать аккаунт", "deactivate_account": "Деактивировать аккаунт", "delete_account": "Удалить аккаунт", - "force_nsfw": "Отмечать посты пользователя как NSFW", - "strip_media": "Убирать вложения из постов пользователя", - "force_unlisted": "Не добавлять посты в публичные ленты", + "force_nsfw": "Отмечать статусы пользователя как имеющие щекотливый характер", + "strip_media": "Убирать вложения из статусов пользователя", + "force_unlisted": "Не показывать статусы в публичных лентах", "sandbox": "Принудить видимость постов только читателям", "disable_remote_subscription": "Запретить читать с удаленных серверов", "disable_any_subscription": "Запретить читать пользователя", - "quarantine": "Не федерировать посты пользователя", + "quarantine": "Не федерировать статусы пользователя", "delete_user": "Удалить пользователя", "delete_user_confirmation": "Вы уверены? Это действие нельзя отменить." }, @@ -576,9 +576,9 @@ "password_reset": { "forgot_password": "Забыли пароль?", "password_reset": "Сброс пароля", - "instruction": "Введите ваш email или имя пользователя, и мы отправим вам ссылку для сброса пароля.", - "placeholder": "Ваш email или имя пользователя", - "check_email": "Проверьте ваш email и перейдите по ссылке для сброса пароля.", + "instruction": "Введите ваш адрес электронной почты или имя пользователя: на вашу электронную почту будет отправлена ссылка для сброса пароля.", + "placeholder": "Ваш адрес электронной почты или имя пользователя", + "check_email": "Проверьте вашу электронную почту и перейдите по ссылке для сброса пароля.", "return_home": "Вернуться на главную страницу", "too_many_requests": "Вы исчерпали допустимое количество попыток, попробуйте позже.", "password_reset_disabled": "Сброс пароля отключен. Cвяжитесь с администратором вашего сервера." @@ -589,17 +589,17 @@ "simple": { "accept_desc": "Данный сервер принимает сообщения только со следующих серверов:", "ftl_removal_desc": "Данный сервер скрывает следующие сервера с федеративной ленты:", - "media_nsfw_desc": "Данный сервер принужденно помечает вложения со следущих серверов как щекотливые:", + "media_nsfw_desc": "Данный сервер принужденно помечает вложения со следущих серверов как имеющие щекотливый характер:", "simple_policies": "Правила для определенных серверов", "accept": "Принимаемые сообщения", "reject": "Отклоняемые сообщения", "reject_desc": "Данный сервер не принимает сообщения со следующих серверов:", "quarantine": "Зона карантина", - "quarantine_desc": "Данный сервер отправляет только публичные посты следующим серверам:", + "quarantine_desc": "Данный сервер отправляет только публичные статусы следующим серверам:", "ftl_removal": "Скрытие с федеративной ленты", "media_removal": "Удаление вложений", "media_removal_desc": "Данный сервер удаляет вложения со следующих серверов:", - "media_nsfw": "Принужденно помеченно как NSFW" + "media_nsfw": "Принужденно помеченно как имеющее щекотливый характер" }, "keyword": { "ftl_removal": "Убрать из федеративной ленты", From 0a0bb6078b5850719eff2dec2afb06accffe9da6 Mon Sep 17 00:00:00 2001 From: Dmitriy Nelovchenko Date: Wed, 3 Mar 2021 13:51:10 +0000 Subject: [PATCH 34/76] Translated using Weblate (Russian) Currently translated at 84.8% (587 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 5b2241df..fd0101aa 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -471,7 +471,7 @@ "reset_avatar_confirm": "Вы действительно хотите сбросить личный образ?", "reset_profile_banner": "Сбросить личный баннер", "reset_profile_background": "Сбросить личные обои", - "reset_avatar": "Сбросить личный образ", + "reset_avatar": "Сбросить аватарку", "search_user_to_mute": "Искать, кого вы хотите заглушить", "search_user_to_block": "Искать, кого вы хотите заблокировать", "pad_emoji": "Выделять эмодзи пробелами при добавлении из панели", From 8a9913c5f61d45f81a411831e82f7827a6f1b622 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Wed, 3 Mar 2021 13:51:19 +0000 Subject: [PATCH 35/76] Translated using Weblate (Russian) Currently translated at 84.8% (587 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index fd0101aa..c67777e6 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -471,7 +471,7 @@ "reset_avatar_confirm": "Вы действительно хотите сбросить личный образ?", "reset_profile_banner": "Сбросить личный баннер", "reset_profile_background": "Сбросить личные обои", - "reset_avatar": "Сбросить аватарку", + "reset_avatar": "Сбросить аватар", "search_user_to_mute": "Искать, кого вы хотите заглушить", "search_user_to_block": "Искать, кого вы хотите заблокировать", "pad_emoji": "Выделять эмодзи пробелами при добавлении из панели", From 3a07fe2572f39898effb94e529e0ccac65170e72 Mon Sep 17 00:00:00 2001 From: Dmitriy Nelovchenko Date: Wed, 3 Mar 2021 13:51:27 +0000 Subject: [PATCH 36/76] Translated using Weblate (Russian) Currently translated at 84.8% (587 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index c67777e6..e9148823 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -468,7 +468,7 @@ "accent": "Акцент", "upload_a_photo": "Загрузить фото", "notification_mutes": "Чтобы не получать уведомления от определённого пользователя, заглушите его.", - "reset_avatar_confirm": "Вы действительно хотите сбросить личный образ?", + "reset_avatar_confirm": "Вы точно хотите сбросить аватарку?", "reset_profile_banner": "Сбросить личный баннер", "reset_profile_background": "Сбросить личные обои", "reset_avatar": "Сбросить аватар", From 3739c588558d2e198d4fef46e30a6d9ff97d2e1c Mon Sep 17 00:00:00 2001 From: rinpatch Date: Wed, 3 Mar 2021 13:51:34 +0000 Subject: [PATCH 37/76] Translated using Weblate (Russian) Currently translated at 84.8% (587 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index e9148823..af9ceee5 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -370,8 +370,8 @@ "panel": "Панель", "panelHeader": "Заголовок панели", "topBar": "Верхняя полоска", - "avatar": "Аватарка (профиль)", - "avatarStatus": "Аватарка (в ленте)", + "avatar": "Аватар (профиль)", + "avatarStatus": "Аватар (в ленте)", "popup": "Всплывающие подсказки", "button": "Кнопки", "buttonHover": "Кнопки (наведен курсор)", @@ -468,7 +468,7 @@ "accent": "Акцент", "upload_a_photo": "Загрузить фото", "notification_mutes": "Чтобы не получать уведомления от определённого пользователя, заглушите его.", - "reset_avatar_confirm": "Вы точно хотите сбросить аватарку?", + "reset_avatar_confirm": "Вы точно хотите сбросить аватар?", "reset_profile_banner": "Сбросить личный баннер", "reset_profile_background": "Сбросить личные обои", "reset_avatar": "Сбросить аватар", From 7ef1db15563f51cd94ad7b8713adf909ebae3f08 Mon Sep 17 00:00:00 2001 From: Anonymous Date: Wed, 3 Mar 2021 13:53:23 +0000 Subject: [PATCH 38/76] Translated using Weblate (Russian) Currently translated at 84.8% (587 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index af9ceee5..910a28e2 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -24,7 +24,7 @@ "retry": "Попробуйте еще раз", "error_retry": "Пожалуйста попробуйте еще раз", "close": "Закрыть", - "loading": "Загрузка…", + "loading": "Загрузка...", "role": { "moderator": "Модератор", "admin": "Администратор" From e9ead1bfdd7beeff14982a11f13498b30bdbfdb4 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Wed, 3 Mar 2021 13:53:43 +0000 Subject: [PATCH 39/76] Translated using Weblate (Russian) Currently translated at 84.8% (587 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 910a28e2..af9ceee5 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -24,7 +24,7 @@ "retry": "Попробуйте еще раз", "error_retry": "Пожалуйста попробуйте еще раз", "close": "Закрыть", - "loading": "Загрузка...", + "loading": "Загрузка…", "role": { "moderator": "Модератор", "admin": "Администратор" From fe1d90ebc3e89888b5a123cbe90f5ebf13cbd936 Mon Sep 17 00:00:00 2001 From: Dmitriy Nelovchenko Date: Wed, 3 Mar 2021 13:54:30 +0000 Subject: [PATCH 40/76] Translated using Weblate (Russian) Currently translated at 84.8% (587 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index af9ceee5..1f2e19ef 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -474,7 +474,7 @@ "reset_avatar": "Сбросить аватар", "search_user_to_mute": "Искать, кого вы хотите заглушить", "search_user_to_block": "Искать, кого вы хотите заблокировать", - "pad_emoji": "Выделять эмодзи пробелами при добавлении из панели", + "pad_emoji": "Разделять эмодзи пробелами, когда они добавляются из меню?", "avatar_size_instruction": "Рекомендуется использовать изображение больше чем 150 на 150 пикселей в качестве аватара.", "enable_web_push_notifications": "Включить web push-уведомления", "notification_blocks": "Блокировка пользователя выключает все уведомления от него, а также отписывает вас от него.", From a450772039b5dc5588b7ca5de3a3340d7592075c Mon Sep 17 00:00:00 2001 From: rinpatch Date: Wed, 3 Mar 2021 13:54:53 +0000 Subject: [PATCH 41/76] Translated using Weblate (Russian) Currently translated at 84.9% (588 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 1f2e19ef..1fc52611 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -474,7 +474,7 @@ "reset_avatar": "Сбросить аватар", "search_user_to_mute": "Искать, кого вы хотите заглушить", "search_user_to_block": "Искать, кого вы хотите заблокировать", - "pad_emoji": "Разделять эмодзи пробелами, когда они добавляются из меню?", + "pad_emoji": "Разделять эмодзи пробелами, когда они добавляются из меню", "avatar_size_instruction": "Рекомендуется использовать изображение больше чем 150 на 150 пикселей в качестве аватара.", "enable_web_push_notifications": "Включить web push-уведомления", "notification_blocks": "Блокировка пользователя выключает все уведомления от него, а также отписывает вас от него.", From 73b053db5cbfc8d1307dcbdbe95ac98a7df5216a Mon Sep 17 00:00:00 2001 From: Dmitriy Nelovchenko Date: Wed, 3 Mar 2021 13:56:39 +0000 Subject: [PATCH 42/76] Translated using Weblate (Russian) Currently translated at 84.9% (588 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 1fc52611..53e4446c 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -469,11 +469,11 @@ "upload_a_photo": "Загрузить фото", "notification_mutes": "Чтобы не получать уведомления от определённого пользователя, заглушите его.", "reset_avatar_confirm": "Вы точно хотите сбросить аватар?", - "reset_profile_banner": "Сбросить личный баннер", - "reset_profile_background": "Сбросить личные обои", + "reset_profile_banner": "Сбросить баннер профиля", + "reset_profile_background": "Сбросить фон профиля", "reset_avatar": "Сбросить аватар", - "search_user_to_mute": "Искать, кого вы хотите заглушить", - "search_user_to_block": "Искать, кого вы хотите заблокировать", + "search_user_to_mute": "Поиск того, кого вы хотите заглушить", + "search_user_to_block": "Поиск того, кого вы хотите заблокировать", "pad_emoji": "Разделять эмодзи пробелами, когда они добавляются из меню", "avatar_size_instruction": "Рекомендуется использовать изображение больше чем 150 на 150 пикселей в качестве аватара.", "enable_web_push_notifications": "Включить web push-уведомления", @@ -492,7 +492,8 @@ "hide_media_previews": "Не показывать вложения в ленте", "setting_changed": "Отличается от значения по умолчанию", "reset_background_confirm": "Вы точно хотите сбросить фон?", - "reset_banner_confirm": "Вы точно хотите сбросить баннер?" + "reset_banner_confirm": "Вы точно хотите сбросить баннер?", + "type_domains_to_mute": "Поиск доменов, которые вы хотите заглушить" }, "timeline": { "collapse": "Свернуть", From f28d71d7691b840be9fc7630599ee92926da2086 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Wed, 3 Mar 2021 13:58:21 +0000 Subject: [PATCH 43/76] Translated using Weblate (Russian) Currently translated at 85.2% (590 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 53e4446c..6cac5d07 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -493,7 +493,7 @@ "setting_changed": "Отличается от значения по умолчанию", "reset_background_confirm": "Вы точно хотите сбросить фон?", "reset_banner_confirm": "Вы точно хотите сбросить баннер?", - "type_domains_to_mute": "Поиск доменов, которые вы хотите заглушить" + "type_domains_to_mute": "Поиск узлов, которые вы хотите заглушить" }, "timeline": { "collapse": "Свернуть", From 65e510c3f258cfdae56fc60de9fcf369ee1d43d1 Mon Sep 17 00:00:00 2001 From: Dmitriy Nelovchenko Date: Wed, 3 Mar 2021 13:59:02 +0000 Subject: [PATCH 44/76] Translated using Weblate (Russian) Currently translated at 85.2% (590 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 6cac5d07..10e1df7b 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -307,7 +307,8 @@ "older_version_imported": "Файл, который вы импортировали, был сделан в старой версии фронт-энда.", "future_version_imported": "Файл, который вы импортировали, был сделан в новой версии фронт-энда.", "v2_imported": "Файл, который вы импортировали, был сделан под старый фронт-энд. Мы стараемся улучшить совместимость, но все еще возможны несостыковки.", - "upgraded_from_v2": "Фронт-энд Pleroma был изменен. Выбранная тема может выглядеть слегка по-другому." + "upgraded_from_v2": "Фронт-энд Pleroma был изменен. Выбранная тема может выглядеть слегка по-другому.", + "fe_downgraded": "Версия фронт-энда Pleroma была откачена." } }, "common": { @@ -344,8 +345,9 @@ "buttons": "Кнопки", "inputs": "Поля ввода", "faint_text": "Маловажный текст", - "post": "Сообщения и описание пользователя", - "alert_neutral": "Нейтральный" + "post": "Посты/разделы \"О себе\"", + "alert_neutral": "Нейтральный", + "alert_warning": "Предупреждение" }, "radii": { "_tab_label": "Скругление" @@ -467,7 +469,7 @@ "hide_wallpaper": "Скрыть обои узла", "accent": "Акцент", "upload_a_photo": "Загрузить фото", - "notification_mutes": "Чтобы не получать уведомления от определённого пользователя, заглушите его.", + "notification_mutes": "Чтобы не получать уведомления от конкретного пользователя, заглушите его.", "reset_avatar_confirm": "Вы точно хотите сбросить аватар?", "reset_profile_banner": "Сбросить баннер профиля", "reset_profile_background": "Сбросить фон профиля", From 37944a19c3c2b583481b97f7c86f8d6408d71fbc Mon Sep 17 00:00:00 2001 From: rinpatch Date: Wed, 3 Mar 2021 14:00:25 +0000 Subject: [PATCH 45/76] Translated using Weblate (Russian) Currently translated at 86.1% (596 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 10e1df7b..cb128b4c 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -345,7 +345,7 @@ "buttons": "Кнопки", "inputs": "Поля ввода", "faint_text": "Маловажный текст", - "post": "Посты/разделы \"О себе\"", + "post": "Статусы и описание пользователя", "alert_neutral": "Нейтральный", "alert_warning": "Предупреждение" }, From 47507b72dc30a13a807bc4f0986119c71a60fbe8 Mon Sep 17 00:00:00 2001 From: Dmitriy Nelovchenko Date: Wed, 3 Mar 2021 14:00:38 +0000 Subject: [PATCH 46/76] Translated using Weblate (Russian) Currently translated at 86.1% (596 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index cb128b4c..52b94f9c 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -347,7 +347,13 @@ "faint_text": "Маловажный текст", "post": "Статусы и описание пользователя", "alert_neutral": "Нейтральный", - "alert_warning": "Предупреждение" + "alert_warning": "Предупреждение", + "selectedPost": "Выбранный пост", + "pressed": "Нажатие", + "highlight": "Выделенные элементы", + "icons": "Иконки", + "poll": "График результатов опроса", + "wallpaper": "Фон" }, "radii": { "_tab_label": "Скругление" From 6829c92f63efc4c09eeb489cd6fae330e0dcee11 Mon Sep 17 00:00:00 2001 From: Tirifto Date: Tue, 2 Mar 2021 19:36:09 +0000 Subject: [PATCH 47/76] Translated using Weblate (Esperanto) Currently translated at 99.5% (689 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/eo/ --- src/i18n/eo.json | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/i18n/eo.json b/src/i18n/eo.json index 9f0491fb..793314a2 100644 --- a/src/i18n/eo.json +++ b/src/i18n/eo.json @@ -156,7 +156,9 @@ "password_required": "ne povas resti malplena", "password_confirmation_required": "ne povas resti malplena", "password_confirmation_match": "samu la pasvorton" - } + }, + "reason_placeholder": "Ĉi-node oni aprobas registriĝojn permane.\nSciigu la administrantojn kial vi volas registriĝi.", + "reason": "Kialo registriĝi" }, "settings": { "app_name": "Nomo de aplikaĵo", @@ -523,7 +525,13 @@ "mute_export_button": "Elportu viajn silentigojn al CSV-dosiero", "mute_export": "Elporto de silentigoj", "hide_wallpaper": "Kaŝi fonbildon de nodo", - "setting_changed": "Agordo malsamas de la implicita" + "setting_changed": "Agordo malsamas de la implicita", + "more_settings": "Pliaj agordoj", + "sensitive_by_default": "Implicite marki afiŝojn konsternaj", + "reply_visibility_following_short": "Montri respondojn al miaj abonatoj", + "hide_all_muted_posts": "Kaŝi silentigitajn afiŝojn", + "hide_media_previews": "Kaŝi antaŭrigardojn al vidaŭdaĵoj", + "word_filter": "Vortofiltro" }, "timeline": { "collapse": "Maletendi", From b0d450075d23cb068244e0950109eb768141cc50 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Wed, 3 Mar 2021 14:01:27 +0000 Subject: [PATCH 48/76] Translated using Weblate (Russian) Currently translated at 87.8% (608 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 53 +++++++++++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 52b94f9c..d900b768 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -65,7 +65,7 @@ "timelines": "Ленты", "preferences": "Настройки", "who_to_follow": "Кого читать", - "dms": "Личные Сообщения", + "dms": "Личные сообщения", "administration": "Панель администратора", "about": "О сервере", "user_search": "Поиск пользователей" @@ -104,7 +104,7 @@ "unlisted": "Этот статус не будет виден в локальной и федеративной ленте" }, "scope": { - "direct": "Личное сообщение - этот статус видят только те кто в нём упомянут", + "direct": "Личное сообщение - этот статус видят только те, кто в нём упомянут", "private": "Для читателей - этот статус видят только ваши читатели", "public": "Публичный - этот статус виден всем", "unlisted": "Тихий - этот пост виден всем, но не отображается в публичных лентах" @@ -144,7 +144,7 @@ "username_placeholder": "например: pechkin", "captcha": "Код подтверждения", "new_captcha": "Нажмите на изображение чтобы получить новый код", - "reason_placeholder": "Данный сервер обрабатывает запросы на регистрацию вручную.\nРасскажите администрации почему вы хотите зарегистрироваться.", + "reason_placeholder": "Данный узел обрабатывает запросы на регистрацию вручную.\nРасскажите администрации почему вы хотите зарегистрироваться.", "reason": "Причина регистрации" }, "settings": { @@ -183,7 +183,7 @@ "cGreen": "Повторить", "cOrange": "Нравится", "cRed": "Отменить", - "change_email": "Сменить электронную почту", + "change_email": "Сменить адрес электронной почты", "change_email_error": "Произошла ошибка при попытке изменить электронную почту.", "changed_email": "Электронная почта изменена успешно!", "change_password": "Сменить пароль", @@ -196,8 +196,8 @@ "current_profile_banner": "Текущий баннер профиля", "data_import_export_tab": "Импорт / Экспорт данных", "delete_account": "Удалить аккаунт", - "delete_account_description": "Удалить вашу учётную запись и все ваши сообщения.", - "delete_account_error": "Возникла ошибка в процессе удаления вашего аккаунта. Если это повторяется, свяжитесь с администратором вашего сервера.", + "delete_account_description": "Навсегда удалить вашу учётную запись и ваши статусы.", + "delete_account_error": "Возникла ошибка в процессе удаления вашего аккаунта. Если это повторяется, свяжитесь с администратором данного узла.", "delete_account_instructions": "Введите ваш пароль в поле ниже для подтверждения удаления.", "export_theme": "Сохранить Тему", "filtering": "Фильтрация", @@ -275,7 +275,7 @@ "stop_gifs": "Проигрывать GIF анимации только при наведении", "streaming": "Включить автоматическую загрузку новых сообщений при прокрутке вверх", "useStreamingApi": "Получать сообщения и уведомления в реальном времени", - "useStreamingApiWarning": "(Не рекомендуется, экспериментально, сообщения могут пропадать)", + "useStreamingApiWarning": "(Не рекомендуется, экспериментально, статусы могут пропадать)", "text": "Текст", "theme": "Тема", "theme_help": "Используйте шестнадцатеричные коды цветов (#rrggbb) для настройки темы.", @@ -348,7 +348,7 @@ "post": "Статусы и описание пользователя", "alert_neutral": "Нейтральный", "alert_warning": "Предупреждение", - "selectedPost": "Выбранный пост", + "selectedPost": "Выбранный статус", "pressed": "Нажатие", "highlight": "Выделенные элементы", "icons": "Иконки", @@ -560,7 +560,7 @@ "strip_media": "Убирать вложения из статусов пользователя", "force_unlisted": "Не показывать статусы в публичных лентах", "sandbox": "Принудить видимость постов только читателям", - "disable_remote_subscription": "Запретить читать с удаленных серверов", + "disable_remote_subscription": "Запретить читать с других узлов", "disable_any_subscription": "Запретить читать пользователя", "quarantine": "Не федерировать статусы пользователя", "delete_user": "Удалить пользователя", @@ -570,7 +570,8 @@ "mention": "Упомянуть", "show_repeats": "Показывать повторы", "hide_repeats": "Скрыть повторы", - "report": "Пожаловаться" + "report": "Пожаловаться", + "message": "Написать сообщение" }, "user_profile": { "timeline_title": "Лента пользователя" @@ -590,24 +591,25 @@ "check_email": "Проверьте вашу электронную почту и перейдите по ссылке для сброса пароля.", "return_home": "Вернуться на главную страницу", "too_many_requests": "Вы исчерпали допустимое количество попыток, попробуйте позже.", - "password_reset_disabled": "Сброс пароля отключен. Cвяжитесь с администратором вашего сервера." + "password_reset_disabled": "Автоматический сброс пароля отключен. Свяжитесь с администратором данного узла для сброса пароля.", + "password_reset_required_but_mailer_is_disabled": "Вы должны сбросить свой пароль, однако автоматический сброс пароля отключен. Пожалуйста свяжитесь с администратором данного узла." }, "about": { "mrf": { "federation": "Федерация", "simple": { - "accept_desc": "Данный сервер принимает сообщения только со следующих серверов:", - "ftl_removal_desc": "Данный сервер скрывает следующие сервера с федеративной ленты:", - "media_nsfw_desc": "Данный сервер принужденно помечает вложения со следущих серверов как имеющие щекотливый характер:", - "simple_policies": "Правила для определенных серверов", - "accept": "Принимаемые сообщения", - "reject": "Отклоняемые сообщения", - "reject_desc": "Данный сервер не принимает сообщения со следующих серверов:", + "accept_desc": "Данный узел принимает сообщения только со следующих узлов:", + "ftl_removal_desc": "Данный узел скрывает следующие узлы с федеративной ленты:", + "media_nsfw_desc": "Данный узел принужденно помечает вложения со следующих узлов как имеющие щекотливый характер:", + "simple_policies": "Правила для определенных узлов", + "accept": "Белый список", + "reject": "Черный список", + "reject_desc": "Данный узел не принимает сообщения со следующих узлов:", "quarantine": "Зона карантина", - "quarantine_desc": "Данный сервер отправляет только публичные статусы следующим серверам:", + "quarantine_desc": "Данный узел отправляет только публичные статусы следующим узлам:", "ftl_removal": "Скрытие с федеративной ленты", "media_removal": "Удаление вложений", - "media_removal_desc": "Данный сервер удаляет вложения со следующих серверов:", + "media_removal_desc": "Данный узел удаляет вложения со следующих узлов:", "media_nsfw": "Принужденно помеченно как имеющее щекотливый характер" }, "keyword": { @@ -618,7 +620,7 @@ "is_replaced_by": "→" }, "mrf_policies": "Активные правила MRF (модуль переписывания сообщений)", - "mrf_policies_desc": "Правила MRF (модуль переписывания сообщений) влияют на федерацию данного сервера. Следующие правила активны:" + "mrf_policies_desc": "Правила MRF (модуль переписывания сообщений) влияют на федерацию данного узла. Следующие правила активны:" }, "staff": "Администрация" }, @@ -734,5 +736,14 @@ "remote_user_resolver": { "error": "Не найдено.", "searching_for": "Ищем" + }, + "upload": { + "error": { + "message": "Произошла ошибка при загрузке: {0}" + } + }, + "user_reporting": { + "add_comment_description": "Жалоба будет направлена модераторам вашего узла. Вы можете указать причину жалобы ниже:", + "forward_description": "Данный пользователь находится на другом узле. Отослать туда копию вашей жалобы?" } } From 2e6a7c9fb887ae4c5723bbb428d71e3c0670fc5e Mon Sep 17 00:00:00 2001 From: Dmitriy Nelovchenko Date: Wed, 3 Mar 2021 14:01:34 +0000 Subject: [PATCH 49/76] Translated using Weblate (Russian) Currently translated at 87.8% (608 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index d900b768..d82380d9 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -353,7 +353,16 @@ "highlight": "Выделенные элементы", "icons": "Иконки", "poll": "График результатов опроса", - "wallpaper": "Фон" + "wallpaper": "Фон", + "chat": { + "border": "Границы", + "outgoing": "Исходящие", + "incoming": "Входящие" + }, + "tabs": "Вкладки", + "toggled": "Включено", + "disabled": "Отключено", + "selectedMenu": "Выбранный пункт меню" }, "radii": { "_tab_label": "Скругление" @@ -489,8 +498,8 @@ "notification_setting_hide_notification_contents": "Скрыть отправителя и содержимое push-уведомлений", "version": { "title": "Версия", - "frontend_version": "Версия фронтенда", - "backend_version": "Версия бекенда" + "frontend_version": "Версия фронт-энда", + "backend_version": "Версия бэк-энда" }, "word_filter": "Фильтр слов", "sensitive_by_default": "Помечать статусы как имеющие щекотливый характер по умолчанию", From fa6aba1dbd75c4383880d9d4bbb0d606c9680150 Mon Sep 17 00:00:00 2001 From: Kana Date: Wed, 3 Mar 2021 04:54:45 +0000 Subject: [PATCH 50/76] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (692 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/zh_Hans/ --- src/i18n/zh.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/i18n/zh.json b/src/i18n/zh.json index 5e377f7c..6b31ba12 100644 --- a/src/i18n/zh.json +++ b/src/i18n/zh.json @@ -561,7 +561,14 @@ "mute_export_button": "导出你的隐藏名单到一个 csv 文件", "mute_export": "隐藏名单导出", "hide_wallpaper": "隐藏实例壁纸", - "setting_changed": "与默认设置不同" + "setting_changed": "与默认设置不同", + "more_settings": "更多设置", + "sensitive_by_default": "默认标记发文为敏感内容", + "reply_visibility_self_short": "只显示对我本人的回复", + "reply_visibility_following_short": "显示对我关注的人的回复", + "hide_all_muted_posts": "不显示已隐藏的发文", + "hide_media_previews": "隐藏媒体预览", + "word_filter": "词语过滤" }, "time": { "day": "{0} 天", From 35d2a809d21c96bf6a2431cd74f78b450817f8f1 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Thu, 4 Mar 2021 19:52:48 +0000 Subject: [PATCH 51/76] Translated using Weblate (French) Currently translated at 97.1% (672 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/fr/ --- src/i18n/fr.json | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/i18n/fr.json b/src/i18n/fr.json index c2eff808..3c6c104a 100644 --- a/src/i18n/fr.json +++ b/src/i18n/fr.json @@ -14,7 +14,8 @@ "text_limit": "Limite de texte", "title": "Caractéristiques", "who_to_follow": "Personnes à suivre", - "pleroma_chat_messages": "Chat Pleroma" + "pleroma_chat_messages": "Chat Pleroma", + "upload_limit": "Limite de téléversement" }, "finder": { "error_fetching_user": "Erreur lors de la recherche de l'utilisateur·ice", @@ -38,7 +39,11 @@ "close": "Fermer", "retry": "Réessayez", "error_retry": "Veuillez réessayer", - "loading": "Chargement…" + "loading": "Chargement…", + "role": { + "moderator": "Modo'", + "admin": "Admin" + } }, "image_cropper": { "crop_picture": "Rogner l'image", @@ -103,7 +108,8 @@ "no_more_notifications": "Aucune notification supplémentaire", "migrated_to": "a migré à", "reacted_with": "a réagi avec {0}", - "follow_request": "veut vous suivre" + "follow_request": "veut vous suivre", + "error": "Erreur de chargement des notifications : {0}" }, "interactions": { "favs_repeats": "Partages et favoris", @@ -724,7 +730,9 @@ "expires_in": "Fin du sondage dans {0}", "not_enough_options": "Trop peu d'options unique au sondage", "vote": "Voter", - "expired": "Sondage terminé il y a {0}" + "expired": "Sondage terminé il y a {0}", + "people_voted_count": "{count} voteur | {count} voteurs", + "votes_count": "{count} vote | {count} votes" }, "emoji": { "emoji": "Émoji", From f8e2fde99be9e068ce6e1c8350130a84123db190 Mon Sep 17 00:00:00 2001 From: Ben Is Date: Thu, 4 Mar 2021 14:24:35 +0000 Subject: [PATCH 52/76] Translated using Weblate (Italian) Currently translated at 100.0% (692 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/it/ --- src/i18n/it.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/i18n/it.json b/src/i18n/it.json index d02b7265..3197bab2 100644 --- a/src/i18n/it.json +++ b/src/i18n/it.json @@ -563,10 +563,10 @@ "private": "Questo messaggio sarà visibile solo ai tuoi seguaci", "public": "Questo messaggio sarà visibile a tutti" }, - "direct_warning_to_first_only": "Questo messaggio sarà visibile solo agli utenti menzionati all'inizio.", + "direct_warning_to_first_only": "Questo messaggio sarà visibile solo agli utenti menzionati in testa.", "direct_warning_to_all": "Questo messaggio sarà visibile a tutti i menzionati.", "new_status": "Nuovo messaggio", - "empty_status_error": "Non puoi pubblicare messaggi vuoti senza allegati", + "empty_status_error": "Aggiungi del testo o degli allegati", "preview_empty": "Vuoto", "preview": "Anteprima", "media_description_error": "Allegati non caricati, riprova", @@ -590,7 +590,7 @@ "bio_placeholder": "es.\nCiao, sono Lupo Lucio.\nSono un lupo fantastico che vive nel Fantabosco. Forse mi hai visto alla Melevisione.", "fullname_placeholder": "es. Lupo Lucio", "username_placeholder": "es. mister_wolf", - "new_captcha": "Clicca l'immagine per avere un altro captcha", + "new_captcha": "Clicca il captcha per averne uno nuovo", "captcha": "CAPTCHA", "reason_placeholder": "L'amministratore esamina ciascuna richiesta.\nFornisci il motivo della tua iscrizione.", "reason": "Motivo dell'iscrizione" From bb1bcfd084abc65eb5f56881a142fa3db7d70056 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Wed, 3 Mar 2021 15:10:19 +0000 Subject: [PATCH 53/76] Translated using Weblate (Russian) Currently translated at 88.0% (609 of 692 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index d82380d9..b3e1bc63 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -55,8 +55,8 @@ "chat": "Локальный чат", "mentions": "Упоминания", "interactions": "Взаимодействия", - "public_tl": "Публичная лента", - "timeline": "Лента", + "public_tl": "Локальная лента", + "timeline": "Главная", "twkn": "Федеративная лента", "search": "Поиск", "friend_requests": "Запросы на чтение", @@ -79,8 +79,8 @@ "read": "Прочесть", "repeated_you": "повторил(а) ваш статус", "follow_request": "хочет читать вас", - "reacted_with": "добавил реакцию: {0}", - "migrated_to": "мигрировал на", + "reacted_with": "добавил(а) реакцию: {0}", + "migrated_to": "перехал на", "no_more_notifications": "Нет дальнейших уведомлений", "error": "Ошибка при обновлении уведомлений: {0}" }, @@ -88,11 +88,11 @@ "favs_repeats": "Повторы и фавориты", "follows": "Новые читатели", "load_older": "Загрузить старые взаимодействия", - "moves": "Миграции пользователей" + "moves": "Переезды" }, "post_status": { "account_not_locked_warning": "Ваш аккаунт не {0}. Кто угодно может начать читать вас чтобы видеть статусы только для читателей.", - "account_not_locked_warning_link": "залочен", + "account_not_locked_warning_link": "закрыт", "attachments_sensitive": "Вложения имеют щекотливый характер", "content_warning": "Тема (не обязательно)", "default": "Что нового?", @@ -340,7 +340,7 @@ "badge": "Фон значков", "badge_notification": "Уведомления", "panel_header": "Заголовок панели", - "top_bar": "Верняя полоска", + "top_bar": "Верхняя полоска", "borders": "Границы", "buttons": "Кнопки", "inputs": "Поля ввода", @@ -456,7 +456,7 @@ "no_mutes": "Нет игнорируемых", "no_blocks": "Нет блокировок", "notification_visibility_emoji_reactions": "Реакции", - "notification_visibility_moves": "Миграции пользователей", + "notification_visibility_moves": "Переезды", "use_contain_fit": "Не обрезать вложения в миниатюрах", "profile_fields": { "value": "Значение", @@ -740,7 +740,8 @@ "chats": "Беседы", "delete": "Удалить", "message_user": "Напишите {nickname}", - "you": "Вы:" + "you": "Вы:", + "error_sending_message": "Произошла ошибка при отправке сообщения." }, "remote_user_resolver": { "error": "Не найдено.", From 615925e53d8f91f7a18064e0499a0c3215397c0e Mon Sep 17 00:00:00 2001 From: rinpatch Date: Thu, 4 Mar 2021 20:08:12 +0000 Subject: [PATCH 54/76] Translated using Weblate (Russian) Currently translated at 88.6% (617 of 696 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 56 +++++++++++++++++++++++++++++------------------- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index b3e1bc63..f32ffde4 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -13,7 +13,7 @@ "disable": "Оключить", "enable": "Включить", "confirm": "Подтвердить", - "verify": "Проверить", + "verify": "Подтверждение", "more": "Больше", "generic_error": "Произошла ошибка", "optional": "не обязательно", @@ -44,8 +44,8 @@ "heading": { "TotpForm": "Двухфакторная аутентификация", "RecoveryForm": "Two-factor recovery", - "totp": "Двухфакторная аутентификация", - "recovery": "Двухфакторное возвращение аккаунта" + "totp": "Двухэтапная аутентификация", + "recovery": "Восстановление двухэтапной аутентификации" }, "hint": "Войдите чтобы присоединиться к дискуссии", "description": "Войти с помощью OAuth" @@ -67,7 +67,7 @@ "who_to_follow": "Кого читать", "dms": "Личные сообщения", "administration": "Панель администратора", - "about": "О сервере", + "about": "Об узле", "user_search": "Поиск пользователей" }, "notifications": { @@ -91,7 +91,7 @@ "moves": "Переезды" }, "post_status": { - "account_not_locked_warning": "Ваш аккаунт не {0}. Кто угодно может начать читать вас чтобы видеть статусы только для читателей.", + "account_not_locked_warning": "Ваша учетная запись не {0}. Кто угодно может начать читать вас чтобы видеть статусы только для читателей.", "account_not_locked_warning_link": "закрыт", "attachments_sensitive": "Вложения имеют щекотливый характер", "content_warning": "Тема (не обязательно)", @@ -125,7 +125,7 @@ "new_status": "Написать новый статус" }, "registration": { - "bio": "Описание", + "bio": "О себе", "email": "Электронная почта", "fullname": "Отображаемое имя", "password_confirm": "Подтверждение пароля", @@ -154,7 +154,7 @@ "setup_otp": "Настройка OTP", "wait_pre_setup_otp": "предварительная настройка OTP", "confirm_and_enable": "Подтвердить и включить OTP", - "title": "Двухфакторная аутентификация", + "title": "Двухэтапная аутентификация", "generate_new_recovery_codes": "Получить новые коды востановления", "warning_of_generate_new_codes": "После получения новых кодов восстановления, старые больше не будут работать.", "recovery_codes": "Коды восстановления.", @@ -163,11 +163,11 @@ "authentication_methods": "Методы аутентификации", "scan": { "title": "Сканирование", - "desc": "Используйте приложение для двухэтапной аутентификации для сканирования этого QR-код или введите текстовый ключ:", + "desc": "Отсканируйте QR-код приложением для двухэтапной аутентификации или введите текстовый ключ:", "secret_code": "Ключ" }, "verify": { - "desc": "Чтобы включить двухэтапную аутентификации, введите код из вашего приложение для двухэтапной аутентификации:" + "desc": "Чтобы включить двухэтапную аутентификацию, введите код из приложения-аутентификатора:" } }, "attachmentRadius": "Прикреплённые файлы", @@ -176,9 +176,9 @@ "avatarAltRadius": "Аватары в уведомлениях", "avatarRadius": "Аватары", "background": "Фон", - "bio": "Описание", + "bio": "О себе", "btnRadius": "Кнопки", - "bot": "Это аккаунт бота", + "bot": "Это учётная запись бота", "cBlue": "Ответить, читать", "cGreen": "Повторить", "cOrange": "Нравится", @@ -195,9 +195,9 @@ "current_password": "Текущий пароль", "current_profile_banner": "Текущий баннер профиля", "data_import_export_tab": "Импорт / Экспорт данных", - "delete_account": "Удалить аккаунт", + "delete_account": "Удалить учетную запись", "delete_account_description": "Навсегда удалить вашу учётную запись и ваши статусы.", - "delete_account_error": "Возникла ошибка в процессе удаления вашего аккаунта. Если это повторяется, свяжитесь с администратором данного узла.", + "delete_account_error": "Возникла ошибка в процессе удаления вашей учетной записи. Если это повторяется, свяжитесь с администратором данного узла.", "delete_account_instructions": "Введите ваш пароль в поле ниже для подтверждения удаления.", "export_theme": "Сохранить Тему", "filtering": "Фильтрация", @@ -227,7 +227,7 @@ "loop_video": "Зациливать видео", "loop_video_silent_only": "Зацикливать только беззвучные видео (т.е. \"гифки\" с Mastodon)", "name": "Имя", - "name_bio": "Имя и описание", + "name_bio": "Личные данные", "new_email": "Новый адрес электронной почты", "new_password": "Новый пароль", "fun": "Потешное", @@ -345,7 +345,7 @@ "buttons": "Кнопки", "inputs": "Поля ввода", "faint_text": "Маловажный текст", - "post": "Статусы и описание пользователя", + "post": "Статусы и раздел \"О себе\"", "alert_neutral": "Нейтральный", "alert_warning": "Предупреждение", "selectedPost": "Выбранный статус", @@ -426,9 +426,9 @@ "link": "ссылка" } }, - "allow_following_move": "Разрешить автоматически читать новый аккаунт при перемещении на другой сервер", + "allow_following_move": "Автоматически начать читать новый профиль при переезде", "hide_user_stats": "Не показывать статистику пользователей (например количество читателей)", - "discoverable": "Разрешить показ аккаунта в поисковиках и других сервисах", + "discoverable": "Разрешить показывать учетную запись в поисковых системах и прочих сервисах", "default_vis": "Видимость статусов по умолчанию", "mutes_and_blocks": "Блокировки и игнорируемые", "composing": "Составление статусов", @@ -483,7 +483,7 @@ "virtual_scrolling": "Оптимизировать рендеринг ленты", "hide_wallpaper": "Скрыть обои узла", "accent": "Акцент", - "upload_a_photo": "Загрузить фото", + "upload_a_photo": "Загрузить изображение", "notification_mutes": "Чтобы не получать уведомления от конкретного пользователя, заглушите его.", "reset_avatar_confirm": "Вы точно хотите сбросить аватар?", "reset_profile_banner": "Сбросить баннер профиля", @@ -562,9 +562,9 @@ "revoke_admin": "Забрать права администратора", "grant_moderator": "Сделать модератором", "revoke_moderator": "Забрать права модератора", - "activate_account": "Активировать аккаунт", - "deactivate_account": "Деактивировать аккаунт", - "delete_account": "Удалить аккаунт", + "activate_account": "Активировать учетную запись", + "deactivate_account": "Деактивировать учетную запись", + "delete_account": "Удалить учетную запись", "force_nsfw": "Отмечать статусы пользователя как имеющие щекотливый характер", "strip_media": "Убирать вложения из статусов пользователя", "force_unlisted": "Не показывать статусы в публичных лентах", @@ -580,7 +580,13 @@ "show_repeats": "Показывать повторы", "hide_repeats": "Скрыть повторы", "report": "Пожаловаться", - "message": "Написать сообщение" + "message": "Написать сообщение", + "highlight": { + "side": "Полоска сбоку", + "striped": "Фон в полоску", + "solid": "Сплошной фон", + "disabled": "Нет выделения" + } }, "user_profile": { "timeline_title": "Лента пользователя" @@ -755,5 +761,11 @@ "user_reporting": { "add_comment_description": "Жалоба будет направлена модераторам вашего узла. Вы можете указать причину жалобы ниже:", "forward_description": "Данный пользователь находится на другом узле. Отослать туда копию вашей жалобы?" + }, + "file_type": { + "file": "Файл", + "video": "Видеозапись", + "audio": "Аудиозапись", + "image": "Изображение" } } From 7fa7809c502e219c2071cce925502dcbd26288b2 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Thu, 4 Mar 2021 20:15:48 +0000 Subject: [PATCH 55/76] Translated using Weblate (French) Currently translated at 100.0% (696 of 696 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/fr/ --- src/i18n/fr.json | 211 ++++++++++++++++++++++++++--------------------- 1 file changed, 116 insertions(+), 95 deletions(-) diff --git a/src/i18n/fr.json b/src/i18n/fr.json index 3c6c104a..ca36fa59 100644 --- a/src/i18n/fr.json +++ b/src/i18n/fr.json @@ -9,17 +9,17 @@ "features_panel": { "chat": "Chat", "gopher": "Gopher", - "media_proxy": "Proxy média", + "media_proxy": "Proxy attachements", "scope_options": "Options de visibilité", - "text_limit": "Limite de texte", - "title": "Caractéristiques", - "who_to_follow": "Personnes à suivre", + "text_limit": "Limite du texte", + "title": "Fonctionnalités", + "who_to_follow": "Suggestions de suivis", "pleroma_chat_messages": "Chat Pleroma", "upload_limit": "Limite de téléversement" }, "finder": { - "error_fetching_user": "Erreur lors de la recherche de l'utilisateur·ice", - "find_user": "Chercher un-e utilisateur·ice" + "error_fetching_user": "Erreur lors de la recherche du compte", + "find_user": "Rechercher un compte" }, "general": { "apply": "Appliquer", @@ -27,14 +27,14 @@ "more": "Plus", "generic_error": "Une erreur s'est produite", "optional": "optionnel", - "show_more": "Montrer plus", - "show_less": "Montrer moins", + "show_more": "Afficher plus", + "show_less": "Afficher moins", "cancel": "Annuler", "disable": "Désactiver", "enable": "Activer", "confirm": "Confirmer", "verify": "Vérifier", - "dismiss": "Rejeter", + "dismiss": "Ignorer", "peek": "Jeter un coup d'œil", "close": "Fermer", "retry": "Réessayez", @@ -52,7 +52,7 @@ "cancel": "Annuler" }, "importer": { - "submit": "Soumettre", + "submit": "Envoyer", "success": "Importé avec succès.", "error": "Une erreur est survenue pendant l'import de ce fichier." }, @@ -61,17 +61,17 @@ "description": "Connexion avec OAuth", "logout": "Déconnexion", "password": "Mot de passe", - "placeholder": "p.e. lain", + "placeholder": "ex. lain", "register": "S'inscrire", "username": "Identifiant", "hint": "Connectez-vous pour rejoindre la discussion", "authentication_code": "Code d'authentification", "enter_recovery_code": "Entrez un code de récupération", - "enter_two_factor_code": "Entrez un code à double authentification", + "enter_two_factor_code": "Entrez un code double-facteur", "recovery_code": "Code de récupération", "heading": { - "totp": "Authentification à double authentification", - "recovery": "Récuperation de la double authentification" + "totp": "Authentification à double-facteur", + "recovery": "Récupération de l'authentification à double-facteur" } }, "media_modal": { @@ -83,24 +83,25 @@ "back": "Retour", "chat": "Chat local", "friend_requests": "Demandes de suivi", - "mentions": "Notifications", + "mentions": "Mentions", "interactions": "Interactions", "dms": "Messages directs", - "public_tl": "Fil d'actualité public", - "timeline": "Fil d'actualité", + "public_tl": "Flux publique", + "timeline": "Flux personnel", "twkn": "Réseau connu", - "user_search": "Recherche d'utilisateur·ice", - "who_to_follow": "Qui suivre", + "user_search": "Recherche de comptes", + "who_to_follow": "Suggestion de suivit", "preferences": "Préférences", "search": "Recherche", "administration": "Administration", "chats": "Chats", - "bookmarks": "Marques-Pages" + "bookmarks": "Marques-Pages", + "timelines": "Flux" }, "notifications": { - "broken_favorite": "Message inconnu, chargement…", + "broken_favorite": "Message inconnu, recherche en cours…", "favorited_you": "a aimé votre statut", - "followed_you": "a commencé à vous suivre", + "followed_you": "vous suit", "load_older": "Charger les notifications précédentes", "notifications": "Notifications", "read": "Lu !", @@ -121,7 +122,7 @@ "new_status": "Poster un nouveau statut", "account_not_locked_warning": "Votre compte n'est pas {0}. N'importe qui peut vous suivre pour voir vos billets en Abonné·e·s uniquement.", "account_not_locked_warning_link": "verrouillé", - "attachments_sensitive": "Marquer le média comme sensible", + "attachments_sensitive": "Marquer les attachements comme sensible", "content_type": { "text/plain": "Texte brut", "text/html": "HTML", @@ -136,32 +137,32 @@ "scope_notice": { "public": "Ce statut sera visible par tout le monde", "private": "Ce statut sera visible par seulement vos abonné⋅e⋅s", - "unlisted": "Ce statut ne sera pas visible dans le Fil d'actualité public et l'Ensemble du réseau connu" + "unlisted": "Ce statut ne sera pas visible dans le Flux Public et le Flux Fédéré" }, "scope": { "direct": "Direct - N'envoyer qu'aux personnes mentionnées", - "private": "Abonné·e·s uniquement - Seul·e·s vos abonné·e·s verront vos billets", - "public": "Publique - Afficher dans les fils publics", - "unlisted": "Non-Listé - Ne pas afficher dans les fils publics" + "private": "Abonné·e·s uniquement - Seul·e·s vos abonné·e·s verront vos status", + "public": "Publique - Afficher dans les flux publics", + "unlisted": "Non-Listé - Ne pas afficher dans les flux publics" }, "media_description_error": "Échec de téléversement du media, essayez encore", - "empty_status_error": "Impossible de poster un statut vide sans attachements", + "empty_status_error": "Impossible de poster un statut vide sans pièces-jointes", "preview_empty": "Vide", "preview": "Prévisualisation", "media_description": "Description de l'attachement" }, "registration": { "bio": "Biographie", - "email": "Adresse mail", + "email": "Courriel", "fullname": "Pseudonyme", "password_confirm": "Confirmation du mot de passe", "registration": "Inscription", "token": "Jeton d'invitation", "captcha": "CAPTCHA", "new_captcha": "Cliquez sur l'image pour avoir un nouveau captcha", - "username_placeholder": "p.e. lain", - "fullname_placeholder": "p.e. Lain Iwakura", - "bio_placeholder": "p.e.\nSalut, je suis Lain\nJe suis une héroïne d'animé qui vit dans une banlieue japonaise. Vous me connaissez peut-être du Wired.", + "username_placeholder": "ex. lain", + "fullname_placeholder": "ex. Lain Iwakura", + "bio_placeholder": "ex.\nSalut, je suis Lain\nJe suis une héroïne d'animation qui vit dans une banlieue japonaise. Vous me connaissez peut-être du Wired.", "validations": { "username_required": "ne peut pas être laissé vide", "fullname_required": "ne peut pas être laissé vide", @@ -169,7 +170,9 @@ "password_required": "ne peut pas être laissé vide", "password_confirmation_required": "ne peut pas être laissé vide", "password_confirmation_match": "doit être identique au mot de passe" - } + }, + "reason_placeholder": "Cette instance modère les inscriptions manuellement.\nExpliquer ce qui motive votre inscription à l'administration.", + "reason": "Motivation d'inscription" }, "selectable_list": { "select_all": "Tout selectionner" @@ -183,20 +186,20 @@ "setup_otp": "Configurer OTP", "wait_pre_setup_otp": "préconfiguration OTP", "confirm_and_enable": "Confirmer & activer OTP", - "title": "Double authentification", + "title": "Authentification double-facteur", "generate_new_recovery_codes": "Générer de nouveaux codes de récupération", - "warning_of_generate_new_codes": "Quand vous générez de nouveauc codes de récupération, vos anciens codes ne fonctionnerons plus.", + "warning_of_generate_new_codes": "Quand vous générez de nouveaux codes de récupération, vos anciens codes ne fonctionnerons plus.", "recovery_codes": "Codes de récupération.", "waiting_a_recovery_codes": "Réception des codes de récupération…", - "recovery_codes_warning": "Écrivez les codes ou sauvez les quelquepart sécurisé - sinon vous ne les verrez plus jamais. Si vous perdez l'accès à votre application de double authentification et codes de récupération vous serez vérouillé en dehors de votre compte.", - "authentication_methods": "Methodes d'authentification", + "recovery_codes_warning": "Écrivez ces codes ou sauvegardez les dans un endroit sécurisé - sinon vous ne les verrez plus jamais. Si vous perdez l'accès à votre application de double authentification et codes de récupération vous serez verrouillé en dehors de votre compte.", + "authentication_methods": "Méthodes d'authentification", "scan": { "title": "Scanner", - "desc": "En utilisant votre application de double authentification, scannez ce QR code ou entrez la clé textuelle :", + "desc": "En utilisant votre application d'authentification à double-facteur, scannez ce QR code ou entrez la clé textuelle :", "secret_code": "Clé" }, "verify": { - "desc": "Pour activer la double authentification, entrez le code depuis votre application :" + "desc": "Pour activer l'authentification à double-facteur, entrez le code donné par votre application :" } }, "attachmentRadius": "Pièces jointes", @@ -207,10 +210,10 @@ "background": "Arrière-plan", "bio": "Biographie", "block_export": "Export des comptes bloqués", - "block_export_button": "Export des comptes bloqués vers un fichier csv", + "block_export_button": "Export des comptes bloqués vers un fichier CSV", "block_import": "Import des comptes bloqués", "block_import_error": "Erreur lors de l'import des comptes bloqués", - "blocks_imported": "Blocks importés ! Le traitement va prendre un moment.", + "blocks_imported": "Blocages importés ! Le traitement va prendre un moment.", "blocks_tab": "Bloqué·e·s", "btnRadius": "Boutons", "cBlue": "Bleu (répondre, suivre)", @@ -230,31 +233,31 @@ "default_vis": "Visibilité par défaut", "delete_account": "Supprimer le compte", "delete_account_description": "Supprimer définitivement vos données et désactiver votre compte.", - "delete_account_error": "Il y a eu un problème lors de la tentative de suppression de votre compte. Si le problème persiste, contactez l'administrateur⋅ice de cette instance.", + "delete_account_error": "Il y a eu un problème lors de la tentative de suppression de votre compte. Si le problème persiste, contactez l'administration de cette instance.", "delete_account_instructions": "Indiquez votre mot de passe ci-dessous pour confirmer la suppression de votre compte.", "avatar_size_instruction": "La taille minimale recommandée pour l'image de l'avatar est de 150x150 pixels.", "export_theme": "Enregistrer le thème", - "filtering": "Filtre", + "filtering": "Filtrage", "filtering_explanation": "Tous les statuts contenant ces mots seront masqués. Un mot par ligne", - "follow_export": "Exporter les abonnements", - "follow_export_button": "Exporter les abonnements en csv", - "follow_import": "Importer des abonnements", - "follow_import_error": "Erreur lors de l'importation des abonnements", - "follows_imported": "Abonnements importés ! Le traitement peut prendre un moment.", + "follow_export": "Exporter les suivis", + "follow_export_button": "Exporter les suivis dans un fichier CSV", + "follow_import": "Import des suivis", + "follow_import_error": "Erreur lors de l'importation des suivis", + "follows_imported": "Suivis importés ! Le traitement peut prendre un moment.", "foreground": "Premier plan", "general": "Général", "hide_attachments_in_convo": "Masquer les pièces jointes dans les conversations", - "hide_attachments_in_tl": "Masquer les pièces jointes dans le journal", - "hide_muted_posts": "Masquer les statuts des utilisateurs masqués", + "hide_attachments_in_tl": "Masquer les pièces jointes dans le flux", + "hide_muted_posts": "Masquer les statuts des comptes masqués", "max_thumbnails": "Nombre maximum de miniatures par statuts", - "hide_isp": "Masquer le panneau spécifique a l'instance", + "hide_isp": "Masquer le panneau de l'instance", "preload_images": "Précharger les images", - "use_one_click_nsfw": "Ouvrir les pièces-jointes NSFW avec un seul clic", - "hide_post_stats": "Masquer les statistiques de publication (le nombre de favoris)", - "hide_user_stats": "Masquer les statistiques de profil (le nombre d'amis)", + "use_one_click_nsfw": "Ouvrir les pièces-jointes sensibles avec un seul clic", + "hide_post_stats": "Masquer les statistiques des messages (ex. le nombre de favoris)", + "hide_user_stats": "Masquer les statistiques de compte (ex. le nombre de suivis)", "hide_filtered_statuses": "Masquer les statuts filtrés", - "import_blocks_from_a_csv_file": "Importer les blocages depuis un fichier csv", - "import_followers_from_a_csv_file": "Importer des abonnements depuis un fichier csv", + "import_blocks_from_a_csv_file": "Import de blocages depuis un fichier CSV", + "import_followers_from_a_csv_file": "Import de suivis depuis un fichier CSV", "import_theme": "Charger le thème", "inputRadius": "Champs de texte", "checkboxRadius": "Cases à cocher", @@ -275,7 +278,7 @@ "name_bio": "Nom & Bio", "new_password": "Nouveau mot de passe", "notification_visibility": "Types de notifications à afficher", - "notification_visibility_follows": "Abonnements", + "notification_visibility_follows": "Suivis", "notification_visibility_likes": "J'aime", "notification_visibility_mentions": "Mentionnés", "notification_visibility_repeats": "Partages", @@ -284,8 +287,8 @@ "no_mutes": "Aucun masqués", "hide_follows_description": "Ne pas afficher à qui je suis abonné", "hide_followers_description": "Ne pas afficher qui est abonné à moi", - "show_admin_badge": "Afficher le badge d'Administrateur⋅ice sur mon profil", - "show_moderator_badge": "Afficher le badge de Modérateur⋅ice sur mon profil", + "show_admin_badge": "Afficher le badge d'Admin sur mon profil", + "show_moderator_badge": "Afficher le badge de Modo' sur mon profil", "nsfw_clickthrough": "Activer le clic pour dévoiler les pièces jointes et cacher l'aperçu des liens pour les statuts marqués comme sensibles", "oauth_tokens": "Jetons OAuth", "token": "Jeton", @@ -295,11 +298,11 @@ "panelRadius": "Fenêtres", "pause_on_unfocused": "Suspendre le streaming lorsque l'onglet n'est pas actif", "presets": "Thèmes prédéfinis", - "profile_background": "Image de fond", + "profile_background": "Image de fond de profil", "profile_banner": "Bannière de profil", "profile_tab": "Profil", "radii_help": "Vous pouvez ici choisir le niveau d'arrondi des angles de l'interface (en pixels)", - "replies_in_timeline": "Réponses au journal", + "replies_in_timeline": "Réponses dans le flux", "reply_visibility_all": "Montrer toutes les réponses", "reply_visibility_following": "Afficher uniquement les réponses adressées à moi ou aux personnes que je suis", "reply_visibility_self": "Afficher uniquement les réponses adressées à moi", @@ -315,7 +318,7 @@ "set_new_profile_background": "Changer d'image de fond", "set_new_profile_banner": "Changer de bannière", "settings": "Paramètres", - "subject_input_always_show": "Toujours copier le champ de sujet", + "subject_input_always_show": "Toujours afficher le champ Sujet", "subject_line_behavior": "Copier le sujet en répondant", "subject_line_email": "Similaire au courriel : « re : sujet »", "subject_line_mastodon": "Comme mastodon : copier tel quel", @@ -354,7 +357,7 @@ "use_snapshot": "Ancienne version", "help": { "upgraded_from_v2": "PleromaFE à été mis à jour, le thème peut être un peu différent que dans vos souvenirs.", - "v2_imported": "Le fichier que vous avez importé vient d'un version antérieure. Nous essayons de maximizer la compatibilité mais il peu y avoir quelques incohérences.", + "v2_imported": "Le fichier que vous avez importé vient d'une version antérieure. Nous essayons de maximizer la compatibilité mais il peut y avoir quelques incohérences.", "future_version_imported": "Le fichier importé viens d'une version postérieure de PleromaFE.", "older_version_imported": "Le fichier importé viens d'une version antérieure de PleromaFE.", "snapshot_source_mismatch": "Conflict de version : Probablement due à un retour arrière puis remise à jour de la version de PleromaFE, si vous avez charger le thème en utilisant une version antérieure vous voulez probablement utiliser la version antérieure, autrement utiliser la version postérieure.", @@ -438,7 +441,7 @@ "filter_hint": { "always_drop_shadow": "Attention, cette ombre utilise toujours {0} quand le navigateur le supporte.", "drop_shadow_syntax": "{0} ne supporte pas le paramètre {1} et mot-clé {2}.", - "avatar_inset": "Veuillez noter que combiner a la fois les ombres internes et non-internes sur les avatars peut fournir des résultats innatendus avec la transparence des avatars.", + "avatar_inset": "Veuillez noter que combiner à la fois les ombres internes et non-internes sur les avatars peut fournir des résultats inattendus avec la transparence des avatars.", "spread_zero": "Les ombres avec une dispersion > 0 apparaitrons comme si ils étaient à zéro", "inset_classic": "L'ombre interne utilisera toujours {0}" }, @@ -493,15 +496,15 @@ }, "change_email": "Changer de courriel", "domain_mutes": "Domaines", - "pad_emoji": "Rajouter un espace autour de l'émoji après l’avoir choisit", + "pad_emoji": "Entourer les émoji d'espaces après leur sélections", "notification_visibility_emoji_reactions": "Réactions", "hide_follows_count_description": "Masquer le nombre de suivis", "useStreamingApiWarning": "(Non recommandé, expérimental, connu pour rater des messages)", "type_domains_to_mute": "Chercher les domaines à masquer", "fun": "Rigolo", "greentext": "greentexting", - "allow_following_move": "Suivre automatiquement quand ce compte migre", - "change_email_error": "Il y a eu un problème pour charger votre courriel.", + "allow_following_move": "Activer le suivit automatique à la migration des comptes", + "change_email_error": "Il y a eu un problème pour changer votre courriel.", "changed_email": "Courriel changé avec succès !", "discoverable": "Permettre de découvrir ce compte dans les résultats de recherche web et autres services", "emoji_reactions_on_timeline": "Montrer les émojis-réactions dans le flux", @@ -516,7 +519,7 @@ "accent": "Accent", "chatMessageRadius": "Message de chat", "bot": "Ce compte est un robot", - "import_mutes_from_a_csv_file": "Importer les masquages depuis un fichier CSV", + "import_mutes_from_a_csv_file": "Import de masquages depuis un fichier CSV", "mutes_imported": "Masquages importés ! Leur application peut prendre du temps.", "mute_import_error": "Erreur à l'import des masquages", "mute_import": "Import des masquages", @@ -524,24 +527,35 @@ "mute_export": "Export des masquages", "notification_setting_hide_notification_contents": "Cacher l'expéditeur et le contenu des notifications push", "notification_setting_block_from_strangers": "Bloquer les notifications des utilisateur⋅ice⋅s que vous ne suivez pas", - "virtual_scrolling": "Optimiser le rendu du fil d'actualité", + "virtual_scrolling": "Optimiser le rendu des flux", "reset_background_confirm": "Voulez-vraiment réinitialiser l'arrière-plan ?", "reset_banner_confirm": "Voulez-vraiment réinitialiser la bannière ?", "reset_avatar_confirm": "Voulez-vraiment réinitialiser l'avatar ?", "reset_profile_banner": "Réinitialiser la bannière du profil", - "reset_profile_background": "Réinitialiser l'arrière-plan du profil", + "reset_profile_background": "Réinitialiser le fond du profil", "reset_avatar": "Réinitialiser l'avatar", "profile_fields": { "value": "Contenu", - "name": "Étiquette", - "add_field": "Ajouter un champ" - } + "name": "Nom du champ", + "add_field": "Ajouter un champ", + "label": "Champs du profil" + }, + "hide_media_previews": "Cacher la prévisualisation des pièces jointes", + "mutes_and_blocks": "Masquage et Blocages", + "setting_changed": "Préférence modifiée", + "more_settings": "Plus de préférences", + "sensitive_by_default": "Marquer les messages comme sensible par défaut", + "reply_visibility_self_short": "Uniquement les réponses à moi", + "reply_visibility_following_short": "Montrer les réponses à mes suivis", + "hide_wallpaper": "Cacher le fond d'écran", + "hide_all_muted_posts": "Cacher les messages masqués", + "word_filter": "Filtrage par mots" }, "timeline": { "collapse": "Fermer", "conversation": "Conversation", "error_fetching": "Erreur en cherchant les mises à jour", - "load_older": "Afficher plus", + "load_older": "Afficher des status plus ancien", "no_retweet_hint": "Le message est marqué en abonnés-seulement ou direct et ne peut pas être partagé", "repeated": "a partagé", "show_new": "Afficher plus", @@ -549,14 +563,14 @@ "no_more_statuses": "Pas plus de statuts", "no_statuses": "Aucun statuts", "reload": "Recharger", - "error": "Erreur lors de l'affichage du fil d'actualité : {0}" + "error": "Erreur lors de l'affichage du flux : {0}" }, "status": { "favorites": "Favoris", "repeats": "Partages", "delete": "Supprimer statuts", - "pin": "Agraffer sur le profil", - "unpin": "Dégraffer du profil", + "pin": "Agrafer sur le profil", + "unpin": "Dégrafer du profil", "pinned": "Agraffé", "delete_confirm": "Voulez-vous vraiment supprimer ce statuts ?", "reply_to": "Réponse à", @@ -636,10 +650,17 @@ "moderator": "Modérateur⋅ice", "admin": "Administrateur⋅ice" }, - "message": "Message" + "message": "Message", + "highlight": { + "disabled": "Sans mise-en-valeur", + "solid": "Fond uni", + "side": "Coté rayé", + "striped": "Fond rayé" + }, + "bot": "Robot" }, "user_profile": { - "timeline_title": "Journal de l'utilisateur⋅ice", + "timeline_title": "Flux du compte", "profile_does_not_exist": "Désolé, ce profil n'existe pas.", "profile_loading_error": "Désolé, il y a eu une erreur au chargement du profil." }, @@ -675,11 +696,11 @@ "message": "Envoi échoué : {0}" }, "file_size_units": { - "B": "O", - "KiB": "KiO", - "MiB": "MiO", - "GiB": "GiO", - "TiB": "TiO" + "B": "o", + "KiB": "Ko", + "MiB": "Mo", + "GiB": "Go", + "TiB": "To" } }, "about": { @@ -687,24 +708,24 @@ "keyword": { "reject": "Rejeté", "replace": "Remplacer", - "keyword_policies": "Politiques par mot-clés", + "keyword_policies": "Filtrage par mots-clés", "ftl_removal": "Suppression du flux fédéré", "is_replaced_by": "→" }, "simple": { "simple_policies": "Politiques par instances", - "accept": "Accepter", - "accept_desc": "Cette instance accepte des messages seulement depuis ces instances :", - "reject": "Rejeter", + "accept": "Acceptées", + "accept_desc": "Cette instance accepte les messages seulement depuis ces instances :", + "reject": "Rejetées", "reject_desc": "Cette instance n'acceptera pas de message de ces instances :", "quarantine": "Quarantaine", - "quarantine_desc": "Cette instance enverras seulement des messages publics à ces instances :", - "ftl_removal_desc": "Cette instance supprime ces instance du flux fédéré :", - "media_removal": "Suppression multimédia", + "quarantine_desc": "Cette instance enverra seulement des messages publics à ces instances :", + "ftl_removal_desc": "Cette instance supprime les instance suivantes du flux fédéré :", + "media_removal": "Suppression des attachements", "media_removal_desc": "Cette instance supprime le contenu multimédia des instances suivantes :", "media_nsfw": "Force le contenu multimédia comme sensible", - "ftl_removal": "Suppression du flux fédéré", - "media_nsfw_desc": "Cette instance force le contenu multimédia comme sensible pour les messages des instances suivantes :" + "ftl_removal": "Supprimées du flux fédéré", + "media_nsfw_desc": "Cette instance force les attachements comme sensible pour les messages des instances suivantes :" }, "federation": "Fédération", "mrf_policies": "Politiques MRF activées", @@ -713,7 +734,7 @@ "staff": "Staff" }, "domain_mute_card": { - "mute": "Muet", + "mute": "Masqué", "mute_progress": "Masquage…", "unmute": "Démasquer", "unmute_progress": "Démasquage…" @@ -747,7 +768,7 @@ }, "remote_user_resolver": { "error": "Non trouvé.", - "searching_for": "Rechercher", + "searching_for": "Recherche pour", "remote_user_resolver": "Résolution de compte distant" }, "time": { From ba8a2f4a204f6f33c515ebd5e74704543ab08b1f Mon Sep 17 00:00:00 2001 From: Ben Is Date: Fri, 5 Mar 2021 09:32:25 +0000 Subject: [PATCH 56/76] Translated using Weblate (Italian) Currently translated at 100.0% (696 of 696 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/it/ --- src/i18n/it.json | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/i18n/it.json b/src/i18n/it.json index 3197bab2..222af2eb 100644 --- a/src/i18n/it.json +++ b/src/i18n/it.json @@ -83,7 +83,7 @@ "avatarRadius": "Icone utente", "background": "Sfondo", "btnRadius": "Pulsanti", - "cBlue": "Blu (risposte, seguire)", + "cBlue": "Blu (rispondi, segui)", "cGreen": "Verde (ripeti)", "cOrange": "Arancione (gradire)", "cRed": "Rosso (annulla)", @@ -167,18 +167,18 @@ "block_import": "Importa blocchi", "block_export_button": "Esporta i tuoi blocchi in un file CSV", "block_export": "Esporta blocchi", - "allow_following_move": "Consenti", + "allow_following_move": "Consenti l'iscrizione automatica ai profili traslocati", "mfa": { "verify": { "desc": "Per abilitare l'autenticazione bifattoriale, inserisci il codice fornito dalla tua applicazione:" }, "scan": { "secret_code": "Codice", - "desc": "Con la tua applicazione bifattoriale, acquisisci questo QR o inserisci il codice manualmente:", + "desc": "Con la tua applicazione bifattoriale, acquisisci il QR o inserisci il codice:", "title": "Acquisisci" }, "authentication_methods": "Metodi di accesso", - "recovery_codes_warning": "Appuntati i codici o salvali in un posto sicuro, altrimenti rischi di non rivederli mai più. Se perderai l'accesso sia alla tua applicazione bifattoriale che ai codici di recupero non potrai più accedere al tuo profilo.", + "recovery_codes_warning": "Metti i codici al sicuro, perché non potrai più visualizzarli. Se perderai l'accesso sia alla tua applicazione bifattoriale che ai codici di recupero non potrai più accedere al tuo profilo.", "waiting_a_recovery_codes": "Ricevo codici di recupero…", "recovery_codes": "Codici di recupero.", "warning_of_generate_new_codes": "Alla generazione di nuovi codici di recupero, quelli vecchi saranno disattivati.", @@ -250,7 +250,7 @@ "selectedMenu": "Voce menù selezionata", "selectedPost": "Messaggio selezionato", "pressed": "Premuto", - "highlight": "Elementi evidenziati", + "highlight": "Elementi in risalto", "icons": "Icone", "poll": "Grafico sondaggi", "underlay": "Sottostante", @@ -399,7 +399,7 @@ "add_field": "Aggiungi campo", "label": "Metadati profilo" }, - "bot": "Questo profilo è di un robot", + "bot": "Questo è un robot", "version": { "frontend_version": "Versione interfaccia", "backend_version": "Versione backend", @@ -416,10 +416,10 @@ "notification_setting_block_from_strangers": "Blocca notifiche da utenti che non segui", "virtual_scrolling": "Velocizza l'elaborazione delle sequenze", "import_mutes_from_a_csv_file": "Importa silenziati da un file CSV", - "mutes_imported": "Silenziati importati! Saranno elaborati a breve.", + "mutes_imported": "Silenziati importati! Elaborazione in corso.", "mute_import_error": "Errore nell'importazione", - "mute_import": "Importa silenziati", - "mute_export_button": "Esporta la tua lista di silenziati in un file CSV", + "mute_import": "Carica silenziati", + "mute_export_button": "Esporta i silenziati in un file CSV", "mute_export": "Esporta silenziati", "hide_wallpaper": "Nascondi sfondo della stanza", "setting_changed": "Valore personalizzato", @@ -500,7 +500,13 @@ "follow_sent": "Richiesta inviata!", "favorites": "Preferiti", "message": "Contatta", - "bot": "Bot" + "bot": "Bot", + "highlight": { + "side": "Nastro a lato", + "striped": "A righe", + "solid": "Un colore", + "disabled": "Nessun risalto" + } }, "chat": { "title": "Chat" From ecac5bb015c3754c6371fb8b5252937f008df5b2 Mon Sep 17 00:00:00 2001 From: fiftyffs Date: Fri, 5 Mar 2021 04:49:27 +0000 Subject: [PATCH 57/76] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 69.8% (486 of 696 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/nb_NO/ --- src/i18n/nb.json | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/i18n/nb.json b/src/i18n/nb.json index 8bd745f0..e0dffe83 100644 --- a/src/i18n/nb.json +++ b/src/i18n/nb.json @@ -41,8 +41,8 @@ }, "importer": { "submit": "Send", - "success": "Importering fullført", - "error": "Det oppsto en feil under importering av denne filen" + "success": "Importering fullført.", + "error": "Det oppsto en feil under importering av denne filen." }, "login": { "login": "Logg inn", @@ -85,7 +85,7 @@ "bookmarks": "Bokmerker" }, "notifications": { - "broken_favorite": "Ukjent status, leter etter den...", + "broken_favorite": "Ukjent status, leter etter den…", "favorited_you": "likte din status", "followed_you": "fulgte deg", "load_older": "Last eldre varsler", @@ -447,7 +447,8 @@ "title": "Versjon", "backend_version": "Backend Versjon", "frontend_version": "Frontend Versjon" - } + }, + "hide_wallpaper": "Skjul instansens bakgrunnsbilde" }, "time": { "day": "{0} dag", @@ -602,5 +603,22 @@ "person_talking": "{count} person snakker om dette", "people_talking": "{count} personer snakker om dette", "no_results": "Ingen resultater" + }, + "about": { + "mrf": { + "simple": { + "quarantine": "Karantene", + "reject_desc": "Denne instansen vil ikke godta meldinger fra følgende instanser:", + "reject": "Avvis", + "accept_desc": "Denne instansen godtar kun meldinger fra følgende instanser:", + "accept": "Aksepter" + }, + "keyword": { + "is_replaced_by": "→", + "replace": "Erstatt", + "reject": "Avvis", + "ftl_removal": "Fjerning fra \"Det hele kjente nettverket\" Tidslinjen" + } + } } } From fb1e57b6b6e2499e0d7af5c42c1bb32688f4c705 Mon Sep 17 00:00:00 2001 From: Snow Date: Fri, 5 Mar 2021 04:41:47 +0000 Subject: [PATCH 58/76] Translated using Weblate (Chinese (Traditional)) Currently translated at 99.4% (692 of 696 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/zh_Hant/ --- src/i18n/zh_Hant.json | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/src/i18n/zh_Hant.json b/src/i18n/zh_Hant.json index b7b6d7ac..2b68e546 100644 --- a/src/i18n/zh_Hant.json +++ b/src/i18n/zh_Hant.json @@ -22,7 +22,9 @@ "votes": "票", "option": "選項", "add_option": "增加選項", - "add_poll": "增加投票" + "add_poll": "增加投票", + "votes_count": "{count} 票 | {count} 票", + "people_voted_count": "{count} 人已投票 | {count} 人已投票" }, "notifications": { "reacted_with": "作出了 {0} 的反應", @@ -108,7 +110,11 @@ "loading": "載入中…", "more": "更多", "submit": "提交", - "apply": "應用" + "apply": "應用", + "role": { + "moderator": "主持人", + "admin": "管理員" + } }, "finder": { "find_user": "尋找用戶", @@ -528,7 +534,14 @@ "mute_import_error": "導入靜音時出錯", "mute_export_button": "將靜音導出到csv文件", "mute_export": "靜音導出", - "hide_wallpaper": "隱藏實例桌布" + "hide_wallpaper": "隱藏實例桌布", + "reply_visibility_self_short": "只顯示對我本人的回复", + "reply_visibility_following_short": "顯示對我關注的人的回复", + "hide_all_muted_posts": "不顯示已隱藏的帖子", + "hide_media_previews": "隱藏媒體預覽", + "word_filter": "詞過濾", + "setting_changed": "與默認設置不同", + "more_settings": "更多設置" }, "chats": { "more": "更多", @@ -696,7 +709,9 @@ "registration": "註冊", "password_confirm": "確認密碼", "email": "電子郵箱", - "bio": "簡介" + "bio": "簡介", + "reason_placeholder": "此實例的註冊需要手動批准。\n請讓管理知道您為什麼想要註冊。", + "reason": "註冊理由" }, "user_card": { "its_you": "就是你!!", @@ -756,7 +771,11 @@ "roles": { "moderator": "主持人", "admin": "管理員" - } + }, + "highlight": { + "disabled": "無突出顯示" + }, + "bot": "機器人" }, "user_profile": { "timeline_title": "用戶時間線", From 0a4efeb8434c6a2db5e801027d72688cd863d5af Mon Sep 17 00:00:00 2001 From: Tirifto Date: Thu, 11 Mar 2021 23:30:16 +0000 Subject: [PATCH 59/76] Translated using Weblate (Esperanto) Currently translated at 100.0% (696 of 696 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/eo/ --- src/i18n/eo.json | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/i18n/eo.json b/src/i18n/eo.json index 793314a2..0d24a8f8 100644 --- a/src/i18n/eo.json +++ b/src/i18n/eo.json @@ -528,10 +528,11 @@ "setting_changed": "Agordo malsamas de la implicita", "more_settings": "Pliaj agordoj", "sensitive_by_default": "Implicite marki afiŝojn konsternaj", - "reply_visibility_following_short": "Montri respondojn al miaj abonatoj", + "reply_visibility_following_short": "Montri respondojn por miaj abonatoj", "hide_all_muted_posts": "Kaŝi silentigitajn afiŝojn", "hide_media_previews": "Kaŝi antaŭrigardojn al vidaŭdaĵoj", - "word_filter": "Vortofiltro" + "word_filter": "Vortofiltro", + "reply_visibility_self_short": "Montri nur respondojn por mi" }, "timeline": { "collapse": "Maletendi", @@ -602,7 +603,13 @@ "hide_repeats": "Kaŝi ripetojn", "unsubscribe": "Ne ricevi sciigojn", "subscribe": "Ricevi sciigojn", - "bot": "Roboto" + "bot": "Roboto", + "highlight": { + "side": "Flanka strio", + "striped": "Stria fono", + "solid": "Unueca fono", + "disabled": "Senemfaze" + } }, "user_profile": { "timeline_title": "Historio de uzanto", From 41034141d88748c534f64c0ebb8b69832cec3f2e Mon Sep 17 00:00:00 2001 From: Ben Is Date: Thu, 11 Mar 2021 08:12:18 +0000 Subject: [PATCH 60/76] Translated using Weblate (Italian) Currently translated at 100.0% (696 of 696 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/it/ --- src/i18n/it.json | 112 +++++++++++++++++++++++------------------------ 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/src/i18n/it.json b/src/i18n/it.json index 222af2eb..7b70e94b 100644 --- a/src/i18n/it.json +++ b/src/i18n/it.json @@ -48,7 +48,7 @@ "notifications": "Notifiche", "read": "Letto!", "broken_favorite": "Stato sconosciuto, lo sto cercando…", - "favorited_you": "gradisce il tuo messaggio", + "favorited_you": "ha gradito", "load_older": "Carica notifiche precedenti", "repeated_you": "ha condiviso il tuo messaggio", "follow_request": "vuole seguirti", @@ -71,10 +71,10 @@ "name_bio": "Nome ed introduzione", "nsfw_clickthrough": "Fai click per visualizzare gli allegati offuscati", "profile_background": "Sfondo della tua pagina", - "profile_banner": "Stendardo del tuo profilo", + "profile_banner": "Gonfalone del tuo profilo", "set_new_avatar": "Scegli una nuova icona", - "set_new_profile_background": "Scegli un nuovo sfondo per la tua pagina", - "set_new_profile_banner": "Scegli un nuovo stendardo per il tuo profilo", + "set_new_profile_background": "Scegli un nuovo sfondo", + "set_new_profile_banner": "Scegli un nuovo gonfalone", "settings": "Impostazioni", "theme": "Tema", "user_settings": "Impostazioni Utente", @@ -85,7 +85,7 @@ "btnRadius": "Pulsanti", "cBlue": "Blu (rispondi, segui)", "cGreen": "Verde (ripeti)", - "cOrange": "Arancione (gradire)", + "cOrange": "Arancione (gradisci)", "cRed": "Rosso (annulla)", "change_password": "Cambia password", "change_password_error": "C'è stato un problema durante il cambiamento della password.", @@ -98,7 +98,7 @@ "delete_account": "Elimina profilo", "delete_account_description": "Elimina definitivamente i tuoi dati e disattiva il tuo profilo.", "delete_account_error": "C'è stato un problema durante l'eliminazione del tuo profilo. Se il problema persiste contatta l'amministratore della tua stanza.", - "delete_account_instructions": "Digita la tua password nel campo sottostante per confermare l'eliminazione del tuo profilo.", + "delete_account_instructions": "Digita la tua password nel campo sottostante per eliminare il tuo profilo.", "export_theme": "Salva impostazioni", "follow_export": "Esporta la lista di chi segui", "follow_export_button": "Esporta la lista di chi segui in un file CSV", @@ -109,7 +109,7 @@ "foreground": "Primo piano", "general": "Generale", "hide_post_stats": "Nascondi statistiche dei messaggi (es. il numero di preferenze)", - "hide_user_stats": "Nascondi statistiche dell'utente (es. il numero dei tuoi seguaci)", + "hide_user_stats": "Nascondi statistiche dell'utente (es. il numero di seguaci)", "import_followers_from_a_csv_file": "Importa una lista di chi segui da un file CSV", "import_theme": "Carica impostazioni", "inputRadius": "Campi di testo", @@ -118,12 +118,12 @@ "invalid_theme_imported": "Il file selezionato non è un tema supportato da Pleroma. Il tuo tema non è stato modificato.", "limited_availability": "Non disponibile nel tuo browser", "links": "Collegamenti", - "lock_account_description": "Limita il tuo account solo a seguaci approvati", + "lock_account_description": "Vaglia manualmente i nuovi seguaci", "loop_video": "Riproduci video in ciclo continuo", - "loop_video_silent_only": "Riproduci solo video senza audio in ciclo continuo (es. le \"gif\" di Mastodon)", + "loop_video_silent_only": "Riproduci solo video muti in ciclo continuo (es. le \"gif\" di Mastodon)", "new_password": "Nuova password", "notification_visibility": "Tipi di notifiche da mostrare", - "notification_visibility_follows": "Nuove persone ti seguono", + "notification_visibility_follows": "Nuovi seguaci", "notification_visibility_likes": "Preferiti", "notification_visibility_mentions": "Menzioni", "notification_visibility_repeats": "Condivisioni", @@ -138,7 +138,7 @@ "presets": "Valori predefiniti", "profile_tab": "Profilo", "radii_help": "Imposta il raggio degli angoli (in pixel)", - "replies_in_timeline": "Risposte nella sequenza personale", + "replies_in_timeline": "Risposte nelle sequenze", "reply_visibility_all": "Mostra tutte le risposte", "reply_visibility_following": "Mostra solo le risposte rivolte a me o agli utenti che seguo", "reply_visibility_self": "Mostra solo risposte rivolte a me", @@ -148,7 +148,7 @@ "stop_gifs": "Riproduci GIF al passaggio del cursore", "streaming": "Mostra automaticamente i nuovi messaggi quando sei in cima alla pagina", "text": "Testo", - "theme_help": "Usa codici colore esadecimali (#rrggbb) per personalizzare il tuo schema di colori.", + "theme_help": "Usa colori esadecimali (#rrggbb) per personalizzare il tuo schema di colori.", "tooltipRadius": "Suggerimenti/avvisi", "values": { "false": "no", @@ -156,7 +156,7 @@ }, "avatar_size_instruction": "La taglia minima per l'icona personale è 150x150 pixel.", "domain_mutes": "Domini", - "discoverable": "Permetti la scoperta di questo profilo da servizi di ricerca ed altro", + "discoverable": "Permetti la scoperta di questo profilo a servizi di ricerca ed altro", "composing": "Composizione", "changed_email": "Email cambiata con successo!", "change_email_error": "C'è stato un problema nel cambiare la tua email.", @@ -197,14 +197,14 @@ "help": { "older_version_imported": "Il tema importato è stato creato per una versione precedente dell'interfaccia.", "future_version_imported": "Il tema importato è stato creato per una versione più recente dell'interfaccia.", - "v2_imported": "Il tema importato è stato creato per una vecchia interfaccia. Non tutto potrebbe essere come prima.", - "upgraded_from_v2": "L'interfaccia è stata aggiornata, il tema potrebbe essere diverso da come lo intendevi.", + "v2_imported": "Il tema importato è stato creato per una vecchia interfaccia. Non tutto potrebbe essere come inteso.", + "upgraded_from_v2": "L'interfaccia è stata aggiornata, il tema potrebbe essere diverso da come lo ricordi.", "migration_snapshot_ok": "Ho caricato l'anteprima del tema. Puoi provare a caricarne i contenuti.", "fe_downgraded": "L'interfaccia è stata portata ad una versione precedente.", "fe_upgraded": "Lo schema dei temi è stato aggiornato insieme all'interfaccia.", "snapshot_missing": "Il tema non è provvisto di anteprima, quindi potrebbe essere diverso da come appare.", "snapshot_present": "Tutti i valori sono sostituiti dall'anteprima del tema. Puoi invece caricare i suoi contenuti.", - "snapshot_source_mismatch": "Conflitto di versione: probabilmente l'interfaccia è stata portata ad una versione precedente e poi aggiornata di nuovo. Se hai modificato il tema con una versione precedente dell'interfaccia, usa la vecchia versione del tema, altrimenti puoi usare la nuova.", + "snapshot_source_mismatch": "Conflitto di versione: probabilmente l'interfaccia è stata portata indietro e poi aggiornata di nuovo. Se hai modificato il tema con una vecchia versione usa il tema precedente, altrimenti puoi usare il nuovo.", "migration_napshot_gone": "Anteprima del tema non trovata, non tutto potrebbe essere come ricordi." }, "use_source": "Nuova versione", @@ -227,7 +227,7 @@ "contrast": { "context": { "text": "per il testo", - "18pt": "per il testo grande (oltre 17pt)" + "18pt": "per il testo oltre 17pt" }, "level": { "bad": "non soddisfa le linee guida di alcun livello", @@ -312,8 +312,8 @@ "fonts": { "_tab_label": "Font", "custom": "Personalizzato", - "weight": "Peso (grassettatura)", - "size": "Dimensione (in pixel)", + "weight": "Grassettatura", + "size": "Dimensione in pixel", "family": "Nome font", "components": { "postCode": "Font a spaziatura fissa incluso in un messaggio", @@ -348,7 +348,7 @@ "greentext": "Frecce da meme", "upload_a_photo": "Carica un'immagine", "type_domains_to_mute": "Cerca domini da zittire", - "theme_help_v2_2": "Le icone dietro alcuni elementi sono indicatori del contrasto fra testo e sfondo, passaci sopra col puntatore per ulteriori informazioni. Se si usano delle trasparenze, questi indicatori mostrano il peggior caso possibile.", + "theme_help_v2_2": "Le icone vicino alcuni elementi sono indicatori del contrasto fra testo e sfondo, passaci sopra col puntatore per ulteriori informazioni. Se usani trasparenze, questi indicatori mostrano il peggior caso possibile.", "theme_help_v2_1": "Puoi anche forzare colore ed opacità di alcuni elementi selezionando la casella. Usa il pulsante \"Azzera\" per azzerare tutte le forzature.", "useStreamingApiWarning": "(Sconsigliato, sperimentale, può saltare messaggi)", "useStreamingApi": "Ricevi messaggi e notifiche in tempo reale", @@ -387,15 +387,15 @@ "preload_images": "Precarica immagini", "hide_isp": "Nascondi pannello della stanza", "max_thumbnails": "Numero massimo di anteprime per messaggio", - "hide_muted_posts": "Nascondi messaggi degli utenti zilenziati", + "hide_muted_posts": "Nascondi messaggi degli utenti silenziati", "accent": "Accento", - "emoji_reactions_on_timeline": "Mostra emoji di reazione sulle sequenze", + "emoji_reactions_on_timeline": "Mostra reazioni nelle sequenze", "pad_emoji": "Affianca spazi agli emoji inseriti tramite selettore", "notification_blocks": "Bloccando un utente non riceverai più le sue notifiche né lo seguirai più.", - "mutes_and_blocks": "Zittiti e bloccati", + "mutes_and_blocks": "Silenziati e bloccati", "profile_fields": { "value": "Contenuto", - "name": "Etichetta", + "name": "Descrizione", "add_field": "Aggiungi campo", "label": "Metadati profilo" }, @@ -406,10 +406,10 @@ "title": "Versione" }, "reset_avatar": "Azzera icona", - "reset_profile_background": "Azzera sfondo profilo", - "reset_profile_banner": "Azzera stendardo profilo", + "reset_profile_background": "Azzera sfondo", + "reset_profile_banner": "Azzera gonfalone", "reset_avatar_confirm": "Vuoi veramente azzerare l'icona?", - "reset_banner_confirm": "Vuoi veramente azzerare lo stendardo?", + "reset_banner_confirm": "Vuoi veramente azzerare il gonfalone?", "reset_background_confirm": "Vuoi veramente azzerare lo sfondo?", "chatMessageRadius": "Messaggi istantanei", "notification_setting_hide_notification_contents": "Nascondi mittente e contenuti delle notifiche push", @@ -436,10 +436,10 @@ "load_older": "Carica messaggi più vecchi", "show_new": "Mostra nuovi", "up_to_date": "Aggiornato", - "collapse": "Riduci", + "collapse": "Ripiega", "conversation": "Conversazione", "no_retweet_hint": "Il messaggio è diretto o solo per seguaci e non può essere condiviso", - "repeated": "condiviso", + "repeated": "ha condiviso", "no_statuses": "Nessun messaggio", "no_more_statuses": "Fine dei messaggi", "reload": "Ricarica", @@ -447,7 +447,7 @@ }, "user_card": { "follow": "Segui", - "followees": "Chi stai seguendo", + "followees": "Segue", "followers": "Seguaci", "following": "Seguìto!", "follows_you": "Ti segue!", @@ -461,13 +461,13 @@ "deny": "Nega", "remote_follow": "Segui da remoto", "admin_menu": { - "delete_user_confirmation": "Ne sei completamente sicuro? Quest'azione non può essere annullata.", + "delete_user_confirmation": "Ne sei completamente sicuro? Non potrai tornare indietro.", "delete_user": "Elimina utente", "quarantine": "I messaggi non arriveranno alle altre stanze", "disable_any_subscription": "Rendi utente non seguibile", "disable_remote_subscription": "Blocca i tentativi di seguirlo da altre stanze", "sandbox": "Rendi tutti i messaggi solo per seguaci", - "force_unlisted": "Rendi tutti i messaggi invisibili", + "force_unlisted": "Nascondi tutti i messaggi", "strip_media": "Rimuovi ogni allegato ai messaggi", "force_nsfw": "Oscura tutti i messaggi", "delete_account": "Elimina profilo", @@ -481,7 +481,7 @@ }, "show_repeats": "Mostra condivisioni", "hide_repeats": "Nascondi condivisioni", - "mute_progress": "Zittisco…", + "mute_progress": "Silenzio…", "unmute_progress": "Riabilito…", "unmute": "Riabilita", "block_progress": "Blocco…", @@ -490,7 +490,7 @@ "unsubscribe": "Disdici", "subscribe": "Abbònati", "report": "Segnala", - "mention": "Menzioni", + "mention": "Menziona", "media": "Media", "its_you": "Sei tu!", "hidden": "Nascosto", @@ -562,7 +562,7 @@ "direct": "Diretto - Visibile solo agli utenti menzionati", "private": "Solo per seguaci - Visibile solo dai tuoi seguaci", "public": "Pubblico - Visibile sulla sequenza pubblica", - "unlisted": "Non elencato - Non visibile sulla sequenza pubblica" + "unlisted": "Nascosto - Non visibile sulla sequenza pubblica" }, "scope_notice": { "unlisted": "Questo messaggio non sarà visibile sulla sequenza locale né su quella pubblica", @@ -602,7 +602,7 @@ "reason": "Motivo dell'iscrizione" }, "user_profile": { - "timeline_title": "Sequenza dell'Utente", + "timeline_title": "Sequenza dell'utente", "profile_loading_error": "Spiacente, c'è stato un errore nel caricamento del profilo.", "profile_does_not_exist": "Spiacente, questo profilo non esiste." }, @@ -718,8 +718,8 @@ "favorites": "Preferiti", "hide_content": "Nascondi contenuti", "show_content": "Mostra contenuti", - "hide_full_subject": "Nascondi intero oggetto", - "show_full_subject": "Mostra intero oggetto", + "hide_full_subject": "Nascondi oggetto intero", + "show_full_subject": "Mostra oggetto intero", "thread_muted_and_words": ", contiene:", "thread_muted": "Discussione silenziata", "copy_link": "Copia collegamento", @@ -732,41 +732,41 @@ "unbookmark": "Rimuovi segnalibro", "bookmark": "Aggiungi segnalibro", "status_deleted": "Questo messagio è stato cancellato", - "nsfw": "Pruriginoso", + "nsfw": "DISDICEVOLE", "external_source": "Vai al sito", "expand": "Espandi" }, "time": { - "years_short": "{0}a", - "year_short": "{0}a", + "years_short": "{0} a", + "year_short": "{0} a", "years": "{0} anni", "year": "{0} anno", - "weeks_short": "{0}set", - "week_short": "{0}set", - "seconds_short": "{0}sec", - "second_short": "{0}sec", + "weeks_short": "{0} set", + "week_short": "{0} set", + "seconds_short": "{0} sec", + "second_short": "{0} sec", "weeks": "{0} settimane", "week": "{0} settimana", "seconds": "{0} secondi", "second": "{0} secondo", - "now_short": "ora", + "now_short": "adesso", "now": "adesso", - "months_short": "{0}me", - "month_short": "{0}me", + "months_short": "{0} ms", + "month_short": "{0} ms", "months": "{0} mesi", "month": "{0} mese", - "minutes_short": "{0}min", - "minute_short": "{0}min", + "minutes_short": "{0} min", + "minute_short": "{0} min", "minutes": "{0} minuti", "minute": "{0} minuto", "in_past": "{0} fa", "in_future": "fra {0}", - "hours_short": "{0}h", - "days_short": "{0}g", - "hour_short": "{0}h", + "hours_short": "{0} h", + "days_short": "{0} g", + "hour_short": "{0} h", "hours": "{0} ore", "hour": "{0} ora", - "day_short": "{0}g", + "day_short": "{0} g", "days": "{0} giorni", "day": "{0} giorno" }, @@ -780,7 +780,7 @@ "add_comment_description": "La segnalazione sarà inviata ai moderatori della tua stanza. Puoi motivarla qui sotto:" }, "password_reset": { - "password_reset_required_but_mailer_is_disabled": "Devi reimpostare la tua password, ma non puoi farlo. Contatta il tuo amministratore.", + "password_reset_required_but_mailer_is_disabled": "Devi reimpostare la tua password, ma non puoi farlo. Contatta l'amministratore.", "password_reset_required": "Devi reimpostare la tua password per poter continuare.", "password_reset_disabled": "Non puoi azzerare la tua password. Contatta il tuo amministratore.", "too_many_requests": "Hai raggiunto il numero massimo di tentativi, riprova più tardi.", @@ -821,7 +821,7 @@ "add_reaction": "Reagisci", "favorite": "Gradisci", "reply": "Rispondi", - "repeat": "Ripeti", + "repeat": "Condividi", "media_upload": "Carica allegati" }, "display_date": { From c97ad72cf068c03b2019d6fc3a0819ea6434e5b5 Mon Sep 17 00:00:00 2001 From: Ryo Ueno Date: Fri, 12 Mar 2021 04:26:01 +0000 Subject: [PATCH 61/76] Translated using Weblate (Japanese) Currently translated at 100.0% (696 of 696 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ja_PEDANTIC/ --- src/i18n/ja_pedantic.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/i18n/ja_pedantic.json b/src/i18n/ja_pedantic.json index ed3924bb..9074f4bf 100644 --- a/src/i18n/ja_pedantic.json +++ b/src/i18n/ja_pedantic.json @@ -716,7 +716,13 @@ "hide_repeats": "リピートを隠す", "message": "メッセージ", "hidden": "隠す", - "bot": "bot" + "bot": "bot", + "highlight": { + "solid": "背景を単色にする", + "striped": "背景を縞模様にする", + "side": "端に線を付ける", + "disabled": "強調しない" + } }, "user_profile": { "timeline_title": "ユーザータイムライン", From cf35a9697ef4b11abb07e4ac261e509bf034499b Mon Sep 17 00:00:00 2001 From: Kana Date: Thu, 11 Mar 2021 09:20:43 +0000 Subject: [PATCH 62/76] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (696 of 696 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/zh_Hans/ --- src/i18n/zh.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/i18n/zh.json b/src/i18n/zh.json index 6b31ba12..5f9edb58 100644 --- a/src/i18n/zh.json +++ b/src/i18n/zh.json @@ -700,7 +700,13 @@ "hide_repeats": "隐藏转发", "message": "消息", "mention": "提及", - "bot": "机器人" + "bot": "机器人", + "highlight": { + "side": "侧边条纹", + "striped": "条纹背景", + "solid": "单一颜色背景", + "disabled": "不突出显示" + } }, "user_profile": { "timeline_title": "用户时间线", From 9801906ea104852da6ae2dd6ac9b797ca432713f Mon Sep 17 00:00:00 2001 From: tarteka Date: Sat, 13 Mar 2021 21:21:05 +0000 Subject: [PATCH 63/76] Translated using Weblate (Spanish) Currently translated at 100.0% (696 of 696 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/es/ --- src/i18n/es.json | 52 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/src/i18n/es.json b/src/i18n/es.json index 0ee67ed4..c53ece3f 100644 --- a/src/i18n/es.json +++ b/src/i18n/es.json @@ -39,7 +39,11 @@ "dismiss": "Descartar", "retry": "Inténtalo de nuevo", "error_retry": "Por favor, inténtalo de nuevo", - "loading": "Cargando…" + "loading": "Cargando…", + "role": { + "admin": "Admin", + "moderator": "Moderador/a" + } }, "image_cropper": { "crop_picture": "Recortar la foto", @@ -120,7 +124,9 @@ "expiry": "Tiempo de vida de la encuesta", "expires_in": "La encuesta termina en {0}", "expired": "La encuesta terminó hace {0}", - "not_enough_options": "Muy pocas opciones únicas en la encuesta" + "not_enough_options": "Muy pocas opciones únicas en la encuesta", + "people_voted_count": "{count} persona votó | {count} personas votaron", + "votes_count": "{count} voto | {count} votos" }, "emoji": { "stickers": "Pegatinas", @@ -144,7 +150,7 @@ }, "post_status": { "new_status": "Publicar un nuevo estado", - "account_not_locked_warning": "Tu cuenta no está {0}. Cualquiera puede seguirte y leer las entradas para Solo-Seguidores.", + "account_not_locked_warning": "Tu cuenta no está {0}. Cualquiera puede seguirte y leer las publicaciones para Solo-Seguidores.", "account_not_locked_warning_link": "bloqueada", "attachments_sensitive": "Contenido sensible", "content_type": { @@ -166,8 +172,8 @@ "scope": { "direct": "Directo - Solo para los usuarios mencionados", "private": "Solo-seguidores - Solo tus seguidores leerán la publicación", - "public": "Público - Entradas visibles en las Líneas Temporales Públicas", - "unlisted": "Sin listar - Entradas no visibles en las Líneas Temporales Públicas" + "public": "Público - Publicaciones visibles en las Líneas Temporales Públicas", + "unlisted": "Sin listar - Publicaciones no visibles en las Líneas Temporales Públicas" }, "media_description_error": "Error al actualizar el archivo, inténtalo de nuevo", "empty_status_error": "No se puede publicar un estado vacío y sin archivos adjuntos", @@ -194,7 +200,9 @@ "password_required": "no puede estar vacío", "password_confirmation_required": "no puede estar vacío", "password_confirmation_match": "la contraseña no coincide" - } + }, + "reason_placeholder": "Los registros de esta instancia son aprobados manualmente.\nComéntanos por qué quieres registrarte aquí.", + "reason": "Razón para registrarse" }, "selectable_list": { "select_all": "Seleccionar todo" @@ -245,7 +253,7 @@ "change_password": "Cambiar contraseña", "change_password_error": "Hubo un problema cambiando la contraseña.", "changed_password": "¡Contraseña cambiada correctamente!", - "collapse_subject": "Colapsar entradas con tema", + "collapse_subject": "Colapsar publicaciones con tema", "composing": "Redactando", "confirm_new_password": "Confirmar la nueva contraseña", "current_avatar": "Tu avatar actual", @@ -277,7 +285,7 @@ "hide_isp": "Ocultar el panel específico de la instancia", "preload_images": "Precargar las imágenes", "use_one_click_nsfw": "Abrir los adjuntos NSFW con un solo click", - "hide_post_stats": "Ocultar las estadísticas de las entradas (p.ej. el número de favoritos)", + "hide_post_stats": "Ocultar las estadísticas de las publicaciones (p.ej. el número de favoritos)", "hide_user_stats": "Ocultar las estadísticas del usuario (p.ej. el número de seguidores)", "hide_filtered_statuses": "Ocultar estados filtrados", "import_blocks_from_a_csv_file": "Importar lista de usuarios bloqueados dese un archivo csv", @@ -306,7 +314,7 @@ "notification_visibility_likes": "Me gustan (Likes)", "notification_visibility_mentions": "Menciones", "notification_visibility_repeats": "Repeticiones (Repeats)", - "no_rich_text_description": "Eliminar el formato de texto enriquecido de todas las entradas", + "no_rich_text_description": "Eliminar el formato de texto enriquecido de todas las publicaciones", "no_blocks": "No hay usuarios bloqueados", "no_mutes": "No hay usuarios silenciados", "hide_follows_description": "No mostrar a quién sigo", @@ -356,7 +364,7 @@ "theme": "Tema", "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 entradas 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.", + "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.", "tooltipRadius": "Información/alertas", "upload_a_photo": "Subir una foto", "user_settings": "Ajustes del Usuario", @@ -476,7 +484,7 @@ "panelHeader": "Cabecera del panel", "topBar": "Barra superior", "avatar": "Avatar del usuario (en la vista del perfil)", - "avatarStatus": "Avatar del usuario (en la vista de la entrada)", + "avatarStatus": "Avatar del usuario (en la vista de la publicación)", "popup": "Ventanas y textos emergentes (popups & tooltips)", "button": "Botones", "buttonHover": "Botón (encima)", @@ -529,7 +537,7 @@ "fun": "Divertido", "type_domains_to_mute": "Buscar dominios para silenciar", "useStreamingApiWarning": "(no recomendado, experimental, puede omitir publicaciones)", - "useStreamingApi": "Recibir entradas y notificaciones en tiempo real", + "useStreamingApi": "Recibir publicaciones y notificaciones en tiempo real", "user_mutes": "Usuarios", "reset_profile_background": "Restablecer el fondo de pantalla", "reset_background_confirm": "¿Estás seguro de restablecer el fondo de pantalla?", @@ -563,7 +571,14 @@ "mute_export_button": "Exportar los silenciados a un archivo csv", "mute_export": "Exportar silenciados", "hide_wallpaper": "Ocultar el fondo de pantalla de la instancia", - "setting_changed": "La configuración es diferente a la predeterminada" + "setting_changed": "La configuración es diferente a la predeterminada", + "hide_all_muted_posts": "Ocultar las publicaciones silenciadas", + "more_settings": "Más opciones", + "sensitive_by_default": "Identificar las publicaciones como sensibles de forma predeterminada", + "reply_visibility_self_short": "Mostrar respuestas solo a uno mismo", + "reply_visibility_following_short": "Mostrar las réplicas a mis seguidores", + "hide_media_previews": "Ocultar la vista previa multimedia", + "word_filter": "Filtro de palabras" }, "time": { "day": "{0} día", @@ -635,7 +650,7 @@ "status_unavailable": "Estado no disponible", "bookmark": "Marcar", "unbookmark": "Desmarcar", - "status_deleted": "Esta entrada ha sido eliminada", + "status_deleted": "Esta publicación ha sido eliminada", "nsfw": "NSFW (No apropiado para el trabajo)", "expand": "Expandir", "external_source": "Fuente externa" @@ -698,7 +713,14 @@ "roles": { "moderator": "Moderador", "admin": "Administrador" - } + }, + "highlight": { + "striped": "Fondo rayado", + "side": "Raya lateral", + "solid": "Fondo sólido", + "disabled": "Sin resaltado" + }, + "bot": "Bot" }, "user_profile": { "timeline_title": "Linea Temporal del Usuario", From d716026f54236a7029c8261d3fd2917abc0b0afe Mon Sep 17 00:00:00 2001 From: tarteka Date: Sat, 13 Mar 2021 21:40:23 +0000 Subject: [PATCH 64/76] Translated using Weblate (Basque) Currently translated at 79.7% (555 of 696 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/eu/ --- src/i18n/eu.json | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/i18n/eu.json b/src/i18n/eu.json index a45b7cfd..c0328139 100644 --- a/src/i18n/eu.json +++ b/src/i18n/eu.json @@ -14,7 +14,8 @@ "text_limit": "Testu limitea", "title": "Ezaugarriak", "who_to_follow": "Nori jarraitu", - "pleroma_chat_messages": "Pleroma Txata" + "pleroma_chat_messages": "Pleroma Txata", + "upload_limit": "Kargatzeko muga" }, "finder": { "error_fetching_user": "Errorea erabiltzailea eskuratzen", @@ -38,7 +39,11 @@ "dismiss": "Baztertu", "retry": "Saiatu berriro", "error_retry": "Saiatu berriro mesedez", - "loading": "Kargatzen…" + "loading": "Kargatzen…", + "role": { + "moderator": "Moderatzailea", + "admin": "Administratzailea" + } }, "image_cropper": { "crop_picture": "Moztu argazkia", @@ -104,7 +109,8 @@ "no_more_notifications": "Ez dago jakinarazpen gehiago", "reacted_with": "{0}kin erreakzionatu zuen", "migrated_to": "hona migratua:", - "follow_request": "jarraitu nahi zaitu" + "follow_request": "jarraitu nahi zaitu", + "error": "Errorea jakinarazpenak eskuratzean: {0}" }, "polls": { "add_poll": "Inkesta gehitu", @@ -118,7 +124,9 @@ "expiry": "Inkestaren iraupena", "expires_in": "Inkesta {0} bukatzen da", "expired": "Inkesta {0} bukatu zen", - "not_enough_options": "Aukera gutxiegi inkestan" + "not_enough_options": "Aukera gutxiegi inkestan", + "votes_count": "{count} boto| {count} boto", + "people_voted_count": "Pertsona batek bozkatu du | {count} pertsonak bozkatu dute" }, "emoji": { "stickers": "Pegatinak", From e199f266329b322dbaccd1a1514138f2c38d42d0 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Mon, 15 Mar 2021 07:21:12 +0000 Subject: [PATCH 65/76] Translated using Weblate (French) Currently translated at 100.0% (697 of 697 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/fr/ --- src/i18n/fr.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/fr.json b/src/i18n/fr.json index ca36fa59..54908ce6 100644 --- a/src/i18n/fr.json +++ b/src/i18n/fr.json @@ -96,7 +96,8 @@ "administration": "Administration", "chats": "Chats", "bookmarks": "Marques-Pages", - "timelines": "Flux" + "timelines": "Flux", + "home_timeline": "Flux personnel" }, "notifications": { "broken_favorite": "Message inconnu, recherche en cours…", From 239230729074f6be954c17b2a6b9fee020e564e1 Mon Sep 17 00:00:00 2001 From: Ben Is Date: Mon, 15 Mar 2021 08:19:00 +0000 Subject: [PATCH 66/76] Translated using Weblate (Italian) Currently translated at 100.0% (697 of 697 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/it/ --- src/i18n/it.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/i18n/it.json b/src/i18n/it.json index 7b70e94b..7987e614 100644 --- a/src/i18n/it.json +++ b/src/i18n/it.json @@ -41,7 +41,8 @@ "preferences": "Preferenze", "bookmarks": "Segnalibri", "chats": "Conversazioni", - "timelines": "Sequenze" + "timelines": "Sequenze", + "home_timeline": "Sequenza personale" }, "notifications": { "followed_you": "ti segue", From 5872e3dd5422f84c1dbb129e248ac073a95d41e2 Mon Sep 17 00:00:00 2001 From: rinpatch Date: Mon, 15 Mar 2021 10:07:45 +0000 Subject: [PATCH 67/76] Translated using Weblate (Russian) Currently translated at 88.5% (619 of 699 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index f32ffde4..15a1ef22 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -68,7 +68,8 @@ "dms": "Личные сообщения", "administration": "Панель администратора", "about": "Об узле", - "user_search": "Поиск пользователей" + "user_search": "Поиск пользователей", + "home_timeline": "Главная" }, "notifications": { "broken_favorite": "Неизвестный статус, ищем…", @@ -85,7 +86,7 @@ "error": "Ошибка при обновлении уведомлений: {0}" }, "interactions": { - "favs_repeats": "Повторы и фавориты", + "favs_repeats": "Повторы и отметки «Нравится»", "follows": "Новые читатели", "load_older": "Загрузить старые взаимодействия", "moves": "Переезды" @@ -510,7 +511,8 @@ "setting_changed": "Отличается от значения по умолчанию", "reset_background_confirm": "Вы точно хотите сбросить фон?", "reset_banner_confirm": "Вы точно хотите сбросить баннер?", - "type_domains_to_mute": "Поиск узлов, которые вы хотите заглушить" + "type_domains_to_mute": "Поиск узлов, которые вы хотите заглушить", + "more_settings": "Остальные настройки" }, "timeline": { "collapse": "Свернуть", From 2367e7ce8f632d9733ca77f83ee1bb483d3b48e7 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Mon, 15 Mar 2021 11:47:28 +0000 Subject: [PATCH 68/76] Translated using Weblate (French) Currently translated at 100.0% (702 of 702 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/fr/ --- src/i18n/fr.json | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/i18n/fr.json b/src/i18n/fr.json index 54908ce6..e51657e4 100644 --- a/src/i18n/fr.json +++ b/src/i18n/fr.json @@ -9,7 +9,7 @@ "features_panel": { "chat": "Chat", "gopher": "Gopher", - "media_proxy": "Proxy attachements", + "media_proxy": "Proxy pièce-jointes", "scope_options": "Options de visibilité", "text_limit": "Limite du texte", "title": "Fonctionnalités", @@ -123,7 +123,7 @@ "new_status": "Poster un nouveau statut", "account_not_locked_warning": "Votre compte n'est pas {0}. N'importe qui peut vous suivre pour voir vos billets en Abonné·e·s uniquement.", "account_not_locked_warning_link": "verrouillé", - "attachments_sensitive": "Marquer les attachements comme sensible", + "attachments_sensitive": "Marquer les pièce-jointes comme sensible", "content_type": { "text/plain": "Texte brut", "text/html": "HTML", @@ -150,7 +150,8 @@ "empty_status_error": "Impossible de poster un statut vide sans pièces-jointes", "preview_empty": "Vide", "preview": "Prévisualisation", - "media_description": "Description de l'attachement" + "media_description": "Description de la pièce-jointe", + "post": "Post" }, "registration": { "bio": "Biographie", @@ -173,7 +174,8 @@ "password_confirmation_match": "doit être identique au mot de passe" }, "reason_placeholder": "Cette instance modère les inscriptions manuellement.\nExpliquer ce qui motive votre inscription à l'administration.", - "reason": "Motivation d'inscription" + "reason": "Motivation d'inscription", + "register": "Enregistrer" }, "selectable_list": { "select_all": "Tout selectionner" @@ -550,7 +552,8 @@ "reply_visibility_following_short": "Montrer les réponses à mes suivis", "hide_wallpaper": "Cacher le fond d'écran", "hide_all_muted_posts": "Cacher les messages masqués", - "word_filter": "Filtrage par mots" + "word_filter": "Filtrage par mots", + "save": "Enregistrer les changements" }, "timeline": { "collapse": "Fermer", @@ -564,7 +567,9 @@ "no_more_statuses": "Pas plus de statuts", "no_statuses": "Aucun statuts", "reload": "Recharger", - "error": "Erreur lors de l'affichage du flux : {0}" + "error": "Erreur lors de l'affichage du flux : {0}", + "socket_broke": "Connexion temps-réel perdue : CloseEvent code {0}", + "socket_reconnected": "Connexion temps-réel établie" }, "status": { "favorites": "Favoris", @@ -707,8 +712,8 @@ "about": { "mrf": { "keyword": { - "reject": "Rejeté", - "replace": "Remplacer", + "reject": "Rejette", + "replace": "Remplace", "keyword_policies": "Filtrage par mots-clés", "ftl_removal": "Suppression du flux fédéré", "is_replaced_by": "→" @@ -722,14 +727,14 @@ "quarantine": "Quarantaine", "quarantine_desc": "Cette instance enverra seulement des messages publics à ces instances :", "ftl_removal_desc": "Cette instance supprime les instance suivantes du flux fédéré :", - "media_removal": "Suppression des attachements", + "media_removal": "Suppression des pièce-jointes", "media_removal_desc": "Cette instance supprime le contenu multimédia des instances suivantes :", "media_nsfw": "Force le contenu multimédia comme sensible", "ftl_removal": "Supprimées du flux fédéré", - "media_nsfw_desc": "Cette instance force les attachements comme sensible pour les messages des instances suivantes :" + "media_nsfw_desc": "Cette instance force les pièce-jointes comme sensible pour les messages des instances suivantes :" }, "federation": "Fédération", - "mrf_policies": "Politiques MRF activées", + "mrf_policies": "Politiques MRF actives", "mrf_policies_desc": "Les politiques MRF modifient la fédération entre les instances. Les politiques suivantes sont activées :" }, "staff": "Staff" @@ -765,7 +770,7 @@ "load_all": "Charger tout les {emojiAmount} émojis", "load_all_hint": "{saneAmount} émojis chargé, charger tout les émojis peuvent causer des problèmes de performances.", "stickers": "Stickers", - "keep_open": "Garder le sélecteur ouvert" + "keep_open": "Garder ouvert" }, "remote_user_resolver": { "error": "Non trouvé.", From dc37f07fe25b30d55fec03b8976a2892f884cafb Mon Sep 17 00:00:00 2001 From: Ben Is Date: Mon, 15 Mar 2021 10:53:04 +0000 Subject: [PATCH 69/76] Translated using Weblate (Italian) Currently translated at 100.0% (702 of 702 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/it/ --- src/i18n/it.json | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/i18n/it.json b/src/i18n/it.json index 7987e614..e10a04f2 100644 --- a/src/i18n/it.json +++ b/src/i18n/it.json @@ -430,7 +430,8 @@ "reply_visibility_following_short": "Vedi risposte a messaggi di altri", "hide_all_muted_posts": "Nascondi messaggi silenziati", "hide_media_previews": "Nascondi anteprime", - "word_filter": "Parole filtrate" + "word_filter": "Parole filtrate", + "save": "Salva modifiche" }, "timeline": { "error_fetching": "Errore nell'aggiornamento", @@ -444,7 +445,9 @@ "no_statuses": "Nessun messaggio", "no_more_statuses": "Fine dei messaggi", "reload": "Ricarica", - "error": "Errore nel caricare la sequenza: {0}" + "error": "Errore nel caricare la sequenza: {0}", + "socket_broke": "Connessione tempo reale interrotta: codice {0}", + "socket_reconnected": "Connesso in tempo reale" }, "user_card": { "follow": "Segui", @@ -577,7 +580,8 @@ "preview_empty": "Vuoto", "preview": "Anteprima", "media_description_error": "Allegati non caricati, riprova", - "media_description": "Descrizione allegati" + "media_description": "Descrizione allegati", + "post": "Pubblica" }, "registration": { "bio": "Introduzione", @@ -600,7 +604,8 @@ "new_captcha": "Clicca il captcha per averne uno nuovo", "captcha": "CAPTCHA", "reason_placeholder": "L'amministratore esamina ciascuna richiesta.\nFornisci il motivo della tua iscrizione.", - "reason": "Motivo dell'iscrizione" + "reason": "Motivo dell'iscrizione", + "register": "Registrati" }, "user_profile": { "timeline_title": "Sequenza dell'utente", From e11e23e6f94eef6f66495b7640b4382083e911fb Mon Sep 17 00:00:00 2001 From: rinpatch Date: Mon, 15 Mar 2021 11:35:44 +0000 Subject: [PATCH 70/76] Translated using Weblate (Russian) Currently translated at 88.6% (622 of 702 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/ru/ --- src/i18n/ru.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/i18n/ru.json b/src/i18n/ru.json index 15a1ef22..7c20ad8b 100644 --- a/src/i18n/ru.json +++ b/src/i18n/ru.json @@ -123,7 +123,8 @@ "text/plain": "Простой текст" }, "media_description": "Описание вложения", - "new_status": "Написать новый статус" + "new_status": "Написать новый статус", + "post": "Опубликовать" }, "registration": { "bio": "О себе", @@ -146,7 +147,8 @@ "captcha": "Код подтверждения", "new_captcha": "Нажмите на изображение чтобы получить новый код", "reason_placeholder": "Данный узел обрабатывает запросы на регистрацию вручную.\nРасскажите администрации почему вы хотите зарегистрироваться.", - "reason": "Причина регистрации" + "reason": "Причина регистрации", + "register": "Зарегистрироваться" }, "settings": { "enter_current_password_to_confirm": "Введите свой текущий пароль", @@ -512,7 +514,8 @@ "reset_background_confirm": "Вы точно хотите сбросить фон?", "reset_banner_confirm": "Вы точно хотите сбросить баннер?", "type_domains_to_mute": "Поиск узлов, которые вы хотите заглушить", - "more_settings": "Остальные настройки" + "more_settings": "Остальные настройки", + "save": "Сохранить изменения" }, "timeline": { "collapse": "Свернуть", From d3ae0b3b979ad2372ae65a7a6d135accca915023 Mon Sep 17 00:00:00 2001 From: Snow Date: Mon, 15 Mar 2021 14:58:21 +0000 Subject: [PATCH 71/76] Translated using Weblate (Chinese (Traditional)) Currently translated at 97.5% (685 of 702 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/zh_Hant/ --- src/i18n/zh_Hant.json | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/i18n/zh_Hant.json b/src/i18n/zh_Hant.json index 2b68e546..749a9b5f 100644 --- a/src/i18n/zh_Hant.json +++ b/src/i18n/zh_Hant.json @@ -430,7 +430,7 @@ "notification_blocks": "封鎖一個用戶會停掉所有他的通知,等同於取消關注。", "enable_web_push_notifications": "啟用 web 推送通知", "presets": "預置", - "profile_background": "個人背景圖", + "profile_background": "配置文件背景圖", "profile_banner": "橫幅圖片", "profile_tab": "個人資料", "radii_help": "設置界面邊緣的圓角 (單位:像素)", @@ -518,7 +518,7 @@ "show_moderator_badge": "顯示主持人徽章", "oauth_tokens": "OAuth代幣", "token": "代幣", - "refresh_token": "刷新代幣", + "refresh_token": "刷新token", "useStreamingApiWarning": "(不推薦使用,實驗性的,已知跳過文章)", "fun": "有趣", "notification_setting_hide_notification_contents": "隱藏推送通知中的發送者與內容信息", @@ -680,7 +680,7 @@ "load_older": "載入更早的互動", "moves": "用戶遷移", "follows": "新的關注者", - "favs_repeats": "轉發和收藏" + "favs_repeats": "轉發和喜歡" }, "selectable_list": { "select_all": "選擇全部" @@ -773,7 +773,10 @@ "admin": "管理員" }, "highlight": { - "disabled": "無突出顯示" + "disabled": "無突出顯示", + "solid": "單色背景", + "striped": "條紋背景", + "side": "彩條" }, "bot": "機器人" }, From 5d9f1fa76fa234f5b9e385e53a6842977c570f47 Mon Sep 17 00:00:00 2001 From: Ben Is Date: Tue, 16 Mar 2021 10:13:44 +0000 Subject: [PATCH 72/76] Translated using Weblate (Italian) Currently translated at 100.0% (702 of 702 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/it/ --- src/i18n/it.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/i18n/it.json b/src/i18n/it.json index e10a04f2..430fc144 100644 --- a/src/i18n/it.json +++ b/src/i18n/it.json @@ -27,7 +27,7 @@ "mentions": "Menzioni", "public_tl": "Sequenza pubblica", "timeline": "Sequenza personale", - "twkn": "Sequenza globale", + "twkn": "Sequenza federale", "chat": "Chat della stanza", "friend_requests": "Vogliono seguirti", "about": "Informazioni", @@ -624,7 +624,7 @@ "replace": "Sostituisci", "is_replaced_by": "→", "keyword_policies": "Regole per parole chiave", - "ftl_removal": "Rimozione dalla sequenza globale" + "ftl_removal": "Rimozione dalla sequenza federale" }, "simple": { "reject": "Rifiuta", @@ -634,8 +634,8 @@ "reject_desc": "Questa stanza rifiuterà i messaggi provenienti dalle seguenti:", "quarantine": "Quarantena", "quarantine_desc": "Questa stanza inoltrerà solo messaggi pubblici alle seguenti:", - "ftl_removal": "Rimozione dalla sequenza globale", - "ftl_removal_desc": "Questa stanza rimuove le seguenti dalla sequenza globale:", + "ftl_removal": "Rimozione dalla sequenza federale", + "ftl_removal_desc": "Questa stanza rimuove le seguenti dalla sequenza federale:", "media_removal": "Rimozione multimedia", "media_removal_desc": "Questa istanza rimuove gli allegati dalle seguenti stanze:", "media_nsfw": "Allegati oscurati d'ufficio", From 5be18d177d313b334edd4e1eca18b05cdc4f668c Mon Sep 17 00:00:00 2001 From: Kana Date: Tue, 16 Mar 2021 09:26:20 +0000 Subject: [PATCH 73/76] Translated using Weblate (Chinese (Simplified)) Currently translated at 99.8% (701 of 702 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/zh_Hans/ --- src/i18n/zh.json | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/i18n/zh.json b/src/i18n/zh.json index 5f9edb58..a09ef3ab 100644 --- a/src/i18n/zh.json +++ b/src/i18n/zh.json @@ -168,7 +168,8 @@ "preview": "预览", "media_description": "媒体描述", "media_description_error": "更新媒体失败,请重试", - "empty_status_error": "不能发布没有内容、没有附件的发文" + "empty_status_error": "不能发布没有内容、没有附件的发文", + "post": "发送" }, "registration": { "bio": "简介", @@ -191,7 +192,8 @@ "password_confirmation_match": "密码不一致" }, "reason_placeholder": "此实例的注册需要手动批准。\n请让管理员知道您为什么想要注册。", - "reason": "注册理由" + "reason": "注册理由", + "register": "注册" }, "selectable_list": { "select_all": "选择全部" @@ -306,8 +308,8 @@ "no_mutes": "没有隐藏", "hide_follows_description": "不要显示我所关注的人", "hide_followers_description": "不要显示关注我的人", - "show_admin_badge": "在我的个人资料中显示管理员徽章", - "show_moderator_badge": "在我的个人资料中显示监察员徽章", + "show_admin_badge": "在我的个人资料中显示“管理员”徽章", + "show_moderator_badge": "在我的个人资料中显示“监察员”徽章", "nsfw_clickthrough": "将不和谐附件和链接预览隐藏,点击才会显示", "oauth_tokens": "OAuth令牌", "token": "令牌", @@ -568,7 +570,8 @@ "reply_visibility_following_short": "显示对我关注的人的回复", "hide_all_muted_posts": "不显示已隐藏的发文", "hide_media_previews": "隐藏媒体预览", - "word_filter": "词语过滤" + "word_filter": "词语过滤", + "save": "保存更改" }, "time": { "day": "{0} 天", @@ -616,7 +619,9 @@ "no_more_statuses": "没有更多的状态", "no_statuses": "没有状态更新", "reload": "重新载入", - "error": "取得时间轴时发生错误:{0}" + "error": "取得时间轴时发生错误:{0}", + "socket_broke": "丢失实时连接:CloseEvent code {0}", + "socket_reconnected": "已建立实时连接" }, "status": { "favorites": "喜欢", @@ -801,8 +806,8 @@ "media_nsfw_desc": "本实例将来自以下实例的媒体内容强制设置为敏感内容:", "media_nsfw": "强制设置媒体为敏感内容", "media_removal_desc": "本实例移除来自以下实例的媒体内容:", - "ftl_removal_desc": "该实例在从“全部已知网络”时间线上移除了下列实例:", - "ftl_removal": "从“全部已知网络”时间线上移除" + "ftl_removal_desc": "该实例在从“已知网络”时间线上移除了下列实例:", + "ftl_removal": "从“已知网络”时间线上移除" }, "mrf_policies_desc": "MRF 策略会影响本实例的互通行为。以下策略已启用:", "mrf_policies": "已启用的 MRF 策略", From 9701a28a340d3eac6afbb1b5df0a656a6410b1c6 Mon Sep 17 00:00:00 2001 From: tarteka Date: Wed, 17 Mar 2021 09:31:31 +0000 Subject: [PATCH 74/76] Translated using Weblate (Spanish) Currently translated at 100.0% (702 of 702 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/es/ --- src/i18n/es.json | 74 ++++++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/src/i18n/es.json b/src/i18n/es.json index c53ece3f..faaf3437 100644 --- a/src/i18n/es.json +++ b/src/i18n/es.json @@ -41,7 +41,7 @@ "error_retry": "Por favor, inténtalo de nuevo", "loading": "Cargando…", "role": { - "admin": "Admin", + "admin": "Administrador/a", "moderator": "Moderador/a" } }, @@ -86,8 +86,8 @@ "friend_requests": "Solicitudes de seguimiento", "mentions": "Menciones", "interactions": "Interacciones", - "dms": "Mensajes Directos", - "public_tl": "Línea Temporal Pública", + "dms": "Mensajes directos", + "public_tl": "Línea temporal pública", "timeline": "Línea Temporal", "twkn": "Red Conocida", "user_search": "Búsqueda de Usuarios", @@ -96,7 +96,8 @@ "preferences": "Preferencias", "chats": "Chats", "timelines": "Líneas de Tiempo", - "bookmarks": "Marcadores" + "bookmarks": "Marcadores", + "home_timeline": "Línea temporal personal" }, "notifications": { "broken_favorite": "Estado desconocido, buscándolo…", @@ -143,7 +144,7 @@ "add_sticker": "Añadir Pegatina" }, "interactions": { - "favs_repeats": "Favoritos y Repetidos", + "favs_repeats": "Favoritos y repetidos", "follows": "Nuevos seguidores", "load_older": "Cargar interacciones más antiguas", "moves": "Usuario Migrado" @@ -170,16 +171,17 @@ "unlisted": "Esta publicación no será visible en la Línea Temporal Pública ni en Toda La Red Conocida" }, "scope": { - "direct": "Directo - Solo para los usuarios mencionados", - "private": "Solo-seguidores - Solo tus seguidores leerán la publicación", - "public": "Público - Publicaciones visibles en las Líneas Temporales Públicas", - "unlisted": "Sin listar - Publicaciones no visibles en las Líneas Temporales Públicas" + "direct": "Directo - solo para los usuarios mencionados", + "private": "Solo-seguidores - solo tus seguidores leerán la publicación", + "public": "Público - publicaciones visibles en las líneas temporales públicas", + "unlisted": "Sin listar -publicaciones no visibles en las líneas temporales públicas" }, "media_description_error": "Error al actualizar el archivo, inténtalo de nuevo", "empty_status_error": "No se puede publicar un estado vacío y sin archivos adjuntos", "preview_empty": "Vacío", "preview": "Vista previa", - "media_description": "Descripción multimedia" + "media_description": "Descripción multimedia", + "post": "Publicación" }, "registration": { "bio": "Biografía", @@ -202,7 +204,8 @@ "password_confirmation_match": "la contraseña no coincide" }, "reason_placeholder": "Los registros de esta instancia son aprobados manualmente.\nComéntanos por qué quieres registrarte aquí.", - "reason": "Razón para registrarse" + "reason": "Razón para registrarse", + "register": "Registrarse" }, "selectable_list": { "select_all": "Seleccionar todo" @@ -235,7 +238,7 @@ "attachmentRadius": "Adjuntos", "attachments": "Adjuntos", "avatar": "Avatar", - "avatarAltRadius": "Avatares (Notificaciones)", + "avatarAltRadius": "Avatares (notificaciones)", "avatarRadius": "Avatares", "background": "Fondo", "bio": "Biografía", @@ -259,13 +262,13 @@ "current_avatar": "Tu avatar actual", "current_password": "Contraseña actual", "current_profile_banner": "Tu cabecera actual", - "data_import_export_tab": "Importar / Exportar Datos", + "data_import_export_tab": "Importar / Exportar datos", "default_vis": "Alcance de visibilidad por defecto", "delete_account": "Eliminar la cuenta", "discoverable": "Permitir la aparición de esta cuenta en los resultados de búsqueda y otros servicios", "delete_account_description": "Eliminar para siempre los datos y desactivar la cuenta.", "pad_emoji": "Rellenar con espacios al agregar emojis desde el selector", - "delete_account_error": "Hubo un error al eliminar tu cuenta. Si el fallo persiste, ponte en contacto con el administrador de tu instancia.", + "delete_account_error": "Hubo un error al eliminar tu cuenta. Si el fallo persiste, ponte en contacto con el/la administrador/a de tu instancia.", "delete_account_instructions": "Escribe tu contraseña para confirmar la eliminación de tu cuenta.", "avatar_size_instruction": "El tamaño mínimo recomendado para el avatar es de 150X150 píxeles.", "export_theme": "Exportar tema", @@ -307,11 +310,11 @@ "play_videos_in_modal": "Reproducir los vídeos en un marco emergente", "use_contain_fit": "No recortar los adjuntos en miniaturas", "name": "Nombre", - "name_bio": "Nombre y Biografía", + "name_bio": "Nombre y biografía", "new_password": "Nueva contraseña", "notification_visibility": "Tipos de notificaciones a mostrar", "notification_visibility_follows": "Nuevos seguidores", - "notification_visibility_likes": "Me gustan (Likes)", + "notification_visibility_likes": "Favoritos", "notification_visibility_mentions": "Menciones", "notification_visibility_repeats": "Repeticiones (Repeats)", "no_rich_text_description": "Eliminar el formato de texto enriquecido de todas las publicaciones", @@ -321,8 +324,8 @@ "hide_followers_description": "No mostrar quién me sigue", "hide_follows_count_description": "No mostrar el número de cuentas que sigo", "hide_followers_count_description": "No mostrar el número de cuentas que me siguen", - "show_admin_badge": "Mostrar la insignia de Administrador en mi perfil", - "show_moderator_badge": "Mostrar la insignia de Moderador en mi perfil", + "show_admin_badge": "Mostrar la insignia de \"Administrador/a\" en mi perfil", + "show_moderator_badge": "Mostrar la insignia de \"Moderador/a\" en mi perfil", "nsfw_clickthrough": "Habilitar la ocultación de la imagen de vista previa del enlace y el adjunto para los estados NSFW por defecto", "oauth_tokens": "Tokens de OAuth", "token": "Token", @@ -332,8 +335,8 @@ "panelRadius": "Paneles", "pause_on_unfocused": "Parar la transmisión cuando no estés en foco", "presets": "Por defecto", - "profile_background": "Fondo del Perfil", - "profile_banner": "Cabecera del Perfil", + "profile_background": "Imagen de fondo del perfil", + "profile_banner": "Imagen de cabecera del perfil", "profile_tab": "Perfil", "radii_help": "Establezca el redondeo de las esquinas de la interfaz (en píxeles)", "replies_in_timeline": "Réplicas en la línea temporal", @@ -525,8 +528,8 @@ }, "version": { "title": "Versión", - "backend_version": "Versión del Backend", - "frontend_version": "Versión del Frontend" + "backend_version": "Versión del backend", + "frontend_version": "Versión del frontend" }, "notification_visibility_moves": "Usuario Migrado", "greentext": "Texto verde (meme arrows)", @@ -578,7 +581,8 @@ "reply_visibility_self_short": "Mostrar respuestas solo a uno mismo", "reply_visibility_following_short": "Mostrar las réplicas a mis seguidores", "hide_media_previews": "Ocultar la vista previa multimedia", - "word_filter": "Filtro de palabras" + "word_filter": "Filtro de palabras", + "save": "Guardar los cambios" }, "time": { "day": "{0} día", @@ -626,7 +630,9 @@ "no_more_statuses": "No hay más estados", "no_statuses": "Sin estados", "reload": "Recargar", - "error": "Error obteniendo la linea de tiempo:{0}" + "error": "Error obteniendo la linea de tiempo:{0}", + "socket_broke": "Conexión en timpo real perdida: código del motivo {0}", + "socket_reconnected": "Establecida la conexión en tiempo real" }, "status": { "favorites": "Favoritos", @@ -689,10 +695,10 @@ "mute_progress": "Silenciando…", "admin_menu": { "moderation": "Moderación", - "grant_admin": "Conceder permisos de Administrador", - "revoke_admin": "Revocar permisos de Administrador", - "grant_moderator": "Conceder permisos de Moderador", - "revoke_moderator": "Revocar permisos de Moderador", + "grant_admin": "Conceder permisos de Administrador/a", + "revoke_admin": "Revocar permisos de Administrador/a", + "grant_moderator": "Conceder permisos de Moderador/a", + "revoke_moderator": "Revocar permisos de Moderador/a", "activate_account": "Activar cuenta", "deactivate_account": "Desactivar cuenta", "delete_account": "Eliminar cuenta", @@ -723,13 +729,13 @@ "bot": "Bot" }, "user_profile": { - "timeline_title": "Linea Temporal del Usuario", + "timeline_title": "Línea temporal del usuario", "profile_does_not_exist": "Lo sentimos, este perfil no existe.", "profile_loading_error": "Lo sentimos, hubo un error al cargar este perfil." }, "user_reporting": { "title": "Reportando a {0}", - "add_comment_description": "El informe será enviado a los moderadores de su instancia. Puedes proporcionar una explicación de por qué estás reportando esta cuenta a continuación:", + "add_comment_description": "El informe será enviado a los/las moderadores/as de su instancia. Puedes proporcionar una explicación de por qué estás reportando esta cuenta a continuación:", "additional_comments": "Comentarios adicionales", "forward_description": "La cuenta es de otro servidor. ¿Enviar una copia del informe allí también?", "forward_to": "Reenviar a {0}", @@ -741,7 +747,7 @@ "who_to_follow": "A quién seguir" }, "tool_tip": { - "media_upload": "Subir Medios", + "media_upload": "Subir multimedia", "repeat": "Repetir", "reply": "Contestar", "favorite": "Favorito", @@ -799,12 +805,12 @@ "simple": { "accept_desc": "Esta instancia solo acepta mensajes de las siguientes instancias:", "media_nsfw_desc": "Esta instancia obliga a que los archivos multimedia se establezcan como sensibles en las publicaciones de las siguientes instancias:", - "media_nsfw": "Forzar Multimedia Como Sensible", + "media_nsfw": "Forzar contenido multimedia como sensible", "media_removal_desc": "Esta instancia elimina los archivos multimedia de las publicaciones de las siguientes instancias:", "media_removal": "Eliminar Multimedia", "quarantine": "Cuarentena", - "ftl_removal_desc": "Esta instancia elimina las siguientes instancias de la línea de tiempo \"Toda la red conocida\":", - "ftl_removal": "Eliminar de la línea de tiempo \"Toda La Red Conocida\"", + "ftl_removal_desc": "Esta instancia elimina las siguientes instancias de la línea de tiempo \"Red Conocida\":", + "ftl_removal": "Eliminar de la línea de tiempo \"Red Conocida\"", "quarantine_desc": "Esta instancia enviará solo publicaciones públicas a las siguientes instancias:", "simple_policies": "Políticas específicas de la instancia", "reject_desc": "Esta instancia no aceptará mensajes de las siguientes instancias:", From 16beb3cbda3de8af5be2e9a9fa3434e586617330 Mon Sep 17 00:00:00 2001 From: tarteka Date: Wed, 17 Mar 2021 09:52:08 +0000 Subject: [PATCH 75/76] Translated using Weblate (Basque) Currently translated at 79.2% (556 of 702 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/eu/ --- src/i18n/eu.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/i18n/eu.json b/src/i18n/eu.json index c0328139..e543fda0 100644 --- a/src/i18n/eu.json +++ b/src/i18n/eu.json @@ -86,8 +86,8 @@ "friend_requests": "Jarraitzeko eskaerak", "mentions": "Aipamenak", "interactions": "Interakzioak", - "dms": "Zuzeneko Mezuak", - "public_tl": "Denbora-lerro Publikoa", + "dms": "Zuzeneko mezuak", + "public_tl": "Denbora-lerro publikoa", "timeline": "Denbora-lerroa", "twkn": "Ezagutzen den Sarea", "user_search": "Erabiltzailea Bilatu", @@ -168,9 +168,9 @@ "unlisted": "Mezu hau ez da argitaratuko Denbora-lerro Publikoan ezta Ezagutzen den Sarean" }, "scope": { - "direct": "Zuzena: Bidali aipatutako erabiltzaileei besterik ez", - "private": "Jarraitzaileentzako bakarrik: Bidali jarraitzaileentzat bakarrik", - "public": "Publikoa: Bistaratu denbora-lerro publikoetan", + "direct": "Zuzena: bidali aipatutako erabiltzaileei besterik ez", + "private": "Jarraitzaileentzako bakarrik: bidali jarraitzaileentzat bakarrik", + "public": "Publikoa: bistaratu denbora-lerro publikoetan", "unlisted": "Zerrendatu gabea: ez bidali denbora-lerro publikoetara" } }, @@ -226,7 +226,7 @@ "attachmentRadius": "Eranskinak", "attachments": "Eranskinak", "avatar": "Avatarra", - "avatarAltRadius": "Avatarra (Aipamenak)", + "avatarAltRadius": "Abatarra (aipamenak)", "avatarRadius": "Avatarrak", "background": "Atzeko planoa", "bio": "Biografia", @@ -250,7 +250,7 @@ "current_avatar": "Zure uneko avatarra", "current_password": "Indarrean dagoen pasahitza", "current_profile_banner": "Zure profilaren banner-a", - "data_import_export_tab": "Datuak Inportatu / Esportatu", + "data_import_export_tab": "Datuak inportatu / esportatu", "default_vis": "Lehenetsitako ikusgaitasunak", "delete_account": "Ezabatu kontua", "discoverable": "Baimendu zure kontua kanpo bilaketa-emaitzetan eta bestelako zerbitzuetan agertzea", @@ -312,19 +312,19 @@ "hide_followers_description": "Ez erakutsi nor ari den ni jarraitzen", "hide_follows_count_description": "Ez erakutsi jarraitzen ari naizen kontuen kopurua", "hide_followers_count_description": "Ez erakutsi nire jarraitzaileen kontuen kopurua", - "show_admin_badge": "Erakutsi Administratzaile etiketa nire profilan", - "show_moderator_badge": "Erakutsi Moderatzaile etiketa nire profilan", + "show_admin_badge": "Erakutsi \"Administratzaile\" etiketa nire profilan", + "show_moderator_badge": "Erakutsi \"Moderatzaile\" etiketa nire profilan", "nsfw_clickthrough": "Gaitu klika hunkigarri eranskinak ezkutatzeko", "oauth_tokens": "OAuth tokenak", "token": "Tokena", - "refresh_token": "Berrgin Tokena", - "valid_until": "Baliozkoa Arte", + "refresh_token": "Berrgin tokena", + "valid_until": "Baliozkoa arte", "revoke_token": "Ezeztatu", "panelRadius": "Panelak", "pause_on_unfocused": "Eguneraketa automatikoa gelditu fitxatik kanpo", "presets": "Aurrezarpenak", "profile_background": "Profilaren atzeko planoa", - "profile_banner": "Profilaren Banner-a", + "profile_banner": "Profilaren banner-a", "profile_tab": "Profila", "radii_help": "Konfiguratu interfazearen ertzen biribiltzea (pixeletan)", "replies_in_timeline": "Denbora-lerroko erantzunak", @@ -478,8 +478,8 @@ }, "version": { "title": "Bertsioa", - "backend_version": "Backend Bertsioa", - "frontend_version": "Frontend Bertsioa" + "backend_version": "Backend bertsioa", + "frontend_version": "Frontend bertsioa" } }, "time": { @@ -665,7 +665,7 @@ "federation": "Federazioa", "simple": { "media_nsfw_desc": "Instantzia honek hurrengo instantzien multimediak sentikorrak izatera behartzen ditu:", - "media_nsfw": "Behartu Multimedia Sentikor", + "media_nsfw": "Behartu multimedia sentikor moduan", "media_removal_desc": "Instantzia honek atxikitutako multimedia hurrengo instantzietatik ezabatzen ditu:", "media_removal": "Multimedia Ezabatu", "ftl_removal_desc": "Instantzia honek hurrengo instantziak ezabatzen ditu \"Ezagutzen den Sarea\" denbora-lerrotik:", From bb7d89cd8c4d1da4eca9e76064d7e1a9c68b2c6e Mon Sep 17 00:00:00 2001 From: Ben Is Date: Mon, 22 Mar 2021 10:09:24 +0000 Subject: [PATCH 76/76] Translated using Weblate (Italian) Currently translated at 100.0% (702 of 702 strings) Translation: Pleroma/Pleroma-FE Translate-URL: https://translate.pleroma.social/projects/pleroma/pleroma-fe/it/ --- src/i18n/it.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/i18n/it.json b/src/i18n/it.json index 430fc144..1c89bd79 100644 --- a/src/i18n/it.json +++ b/src/i18n/it.json @@ -733,7 +733,7 @@ "unmute_conversation": "Riabilita conversazione", "mute_conversation": "Silenzia conversazione", "replies_list": "Risposte:", - "reply_to": "Rispondi a", + "reply_to": "In risposta a", "delete_confirm": "Vuoi veramente eliminare questo messaggio?", "unbookmark": "Rimuovi segnalibro", "bookmark": "Aggiungi segnalibro",