From 022d2a3793bf45631be938e9e803f81b5ff2b4b5 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 31 Jan 2024 07:52:51 -0500 Subject: [PATCH 01/42] Make factory gems available in test+development envs (#28969) --- Gemfile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 4951304e39..906441ec67 100644 --- a/Gemfile +++ b/Gemfile @@ -125,12 +125,6 @@ group :test do # Used to mock environment variables gem 'climate_control' - # Generating fake data for specs - gem 'faker', '~> 3.2' - - # Generate test objects for specs - gem 'fabrication', '~> 2.30' - # Add back helpers functions removed in Rails 5.1 gem 'rails-controller-testing', '~> 1.0' @@ -182,6 +176,12 @@ group :development, :test do # Interactive Debugging tools gem 'debug', '~> 1.8' + # Generate fake data values + gem 'faker', '~> 3.2' + + # Generate factory objects + gem 'fabrication', '~> 2.30' + # Profiling tools gem 'memory_profiler', require: false gem 'ruby-prof', require: false From 738dba0cf7380c0392d2588deeddbdaa197a6331 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 31 Jan 2024 13:55:15 +0100 Subject: [PATCH 02/42] Update dependency capybara to v3.40.0 (#28966) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 3891139dce..01f5b45929 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -167,11 +167,11 @@ GEM bundler-audit (0.9.1) bundler (>= 1.2.0, < 3) thor (~> 1.0) - capybara (3.39.2) + capybara (3.40.0) addressable matrix mini_mime (>= 0.1.3) - nokogiri (~> 1.8) + nokogiri (~> 1.11) rack (>= 1.6.0) rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) From dd934ebb07b1dc087fb782c025935de8e1107367 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 31 Jan 2024 11:55:50 -0500 Subject: [PATCH 03/42] Update `actions/cache` to v4 (updates node 16->20) (#29025) --- .github/actions/setup-javascript/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/setup-javascript/action.yml b/.github/actions/setup-javascript/action.yml index 07fd4d08d3..808adc7de6 100644 --- a/.github/actions/setup-javascript/action.yml +++ b/.github/actions/setup-javascript/action.yml @@ -23,7 +23,7 @@ runs: shell: bash run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3 + - uses: actions/cache@v4 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} From 812a13142371441fb4510a0d8862ee413f3b98c5 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 1 Feb 2024 10:33:12 +0100 Subject: [PATCH 04/42] Add github action workflow for manual security builds (#29040) --- .github/workflows/build-security.yml | 62 ++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 .github/workflows/build-security.yml diff --git a/.github/workflows/build-security.yml b/.github/workflows/build-security.yml new file mode 100644 index 0000000000..cc9bae9227 --- /dev/null +++ b/.github/workflows/build-security.yml @@ -0,0 +1,62 @@ +name: Build security nightly container image + +permissions: + contents: read + packages: write + +jobs: + compute-suffix: + runs-on: ubuntu-latest + if: github.repository == 'mastodon/mastodon' + steps: + - id: version_vars + env: + TZ: Etc/UTC + run: | + echo mastodon_version_prerelease=nightly.$(date --date='next day' +'%Y-%m-%d')-security>> $GITHUB_OUTPUT + outputs: + prerelease: ${{ steps.version_vars.outputs.mastodon_version_prerelease }} + + build-image: + needs: compute-suffix + uses: ./.github/workflows/build-container-image.yml + with: + file_to_build: Dockerfile + platforms: linux/amd64,linux/arm64 + use_native_arm64_builder: true + cache: false + push_to_images: | + tootsuite/mastodon + ghcr.io/mastodon/mastodon + version_prerelease: ${{ needs.compute-suffix.outputs.prerelease }} + labels: | + org.opencontainers.image.description=Nightly build image used for testing purposes + flavor: | + latest=auto + tags: | + type=raw,value=edge + type=raw,value=nightly + type=schedule,pattern=${{ needs.compute-suffix.outputs.prerelease }} + secrets: inherit + + build-image-streaming: + needs: compute-suffix + uses: ./.github/workflows/build-container-image.yml + with: + file_to_build: streaming/Dockerfile + platforms: linux/amd64,linux/arm64 + use_native_arm64_builder: true + cache: false + push_to_images: | + tootsuite/mastodon-streaming + ghcr.io/mastodon/mastodon-streaming + version_prerelease: ${{ needs.compute-suffix.outputs.prerelease }} + labels: | + org.opencontainers.image.description=Nightly build image used for testing purposes + flavor: | + latest=auto + tags: | + type=raw,value=edge + type=raw,value=nightly + type=schedule,pattern=${{ needs.compute-suffix.outputs.prerelease }} + secrets: inherit From 8b7b0ee59873fcb6ad79daabd46eec07ae2c68ee Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 1 Feb 2024 04:46:31 -0500 Subject: [PATCH 05/42] Configure selenium to use Chrome version 120 (#29038) --- spec/support/capybara.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/spec/support/capybara.rb b/spec/support/capybara.rb index d4f27e209e..4aba65b404 100644 --- a/spec/support/capybara.rb +++ b/spec/support/capybara.rb @@ -14,6 +14,7 @@ Capybara.register_driver :headless_chrome do |app| options = Selenium::WebDriver::Chrome::Options.new options.add_argument '--headless=new' options.add_argument '--window-size=1680,1050' + options.browser_version = '120' Capybara::Selenium::Driver.new( app, From 7316a08380faed6c3553d0d24f51d206fe974e92 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 1 Feb 2024 10:52:01 +0100 Subject: [PATCH 06/42] Fix missing `workflow_dispatch` trigger for `build-security` (#29041) --- .github/workflows/build-security.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-security.yml b/.github/workflows/build-security.yml index cc9bae9227..b03b787d5f 100644 --- a/.github/workflows/build-security.yml +++ b/.github/workflows/build-security.yml @@ -1,4 +1,6 @@ name: Build security nightly container image +on: + workflow_dispatch: permissions: contents: read From 9cdc60ecc6e5746b706bdcf19d0743d1c153105f Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 1 Feb 2024 14:37:04 +0100 Subject: [PATCH 07/42] Change onboarding prompt to follow suggestions carousel in web UI (#28878) --- .../mastodon/actions/suggestions.js | 9 +- app/javascript/mastodon/actions/timelines.js | 21 ++ .../mastodon/components/status_list.jsx | 53 +++-- .../components/explore_prompt.tsx | 46 ---- .../components/inline_follow_suggestions.jsx | 201 ++++++++++++++++++ .../mastodon/features/home_timeline/index.jsx | 51 +---- .../ui/containers/status_list_container.js | 2 +- app/javascript/mastodon/locales/en.json | 10 +- app/javascript/mastodon/reducers/settings.js | 2 +- .../mastodon/reducers/suggestions.js | 6 +- app/javascript/mastodon/reducers/timelines.js | 31 ++- .../400-24px/navigate_before-fill.svg | 1 + .../400-24px/navigate_before.svg | 1 + .../400-24px/navigate_next-fill.svg | 1 + .../material-icons/400-24px/navigate_next.svg | 1 + .../styles/mastodon-light/diff.scss | 13 ++ .../styles/mastodon/components.scss | 196 +++++++++++++++++ 17 files changed, 507 insertions(+), 138 deletions(-) delete mode 100644 app/javascript/mastodon/features/home_timeline/components/explore_prompt.tsx create mode 100644 app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.jsx create mode 100644 app/javascript/material-icons/400-24px/navigate_before-fill.svg create mode 100644 app/javascript/material-icons/400-24px/navigate_before.svg create mode 100644 app/javascript/material-icons/400-24px/navigate_next-fill.svg create mode 100644 app/javascript/material-icons/400-24px/navigate_next.svg diff --git a/app/javascript/mastodon/actions/suggestions.js b/app/javascript/mastodon/actions/suggestions.js index 870a311024..8eafe38b21 100644 --- a/app/javascript/mastodon/actions/suggestions.js +++ b/app/javascript/mastodon/actions/suggestions.js @@ -54,12 +54,5 @@ export const dismissSuggestion = accountId => (dispatch, getState) => { id: accountId, }); - api(getState).delete(`/api/v1/suggestions/${accountId}`).then(() => { - dispatch(fetchSuggestionsRequest()); - - api(getState).get('/api/v2/suggestions').then(response => { - dispatch(importFetchedAccounts(response.data.map(x => x.account))); - dispatch(fetchSuggestionsSuccess(response.data)); - }).catch(error => dispatch(fetchSuggestionsFail(error))); - }).catch(() => {}); + api(getState).delete(`/api/v1/suggestions/${accountId}`).catch(() => {}); }; diff --git a/app/javascript/mastodon/actions/timelines.js b/app/javascript/mastodon/actions/timelines.js index 08561c71f4..4ce7c3cf84 100644 --- a/app/javascript/mastodon/actions/timelines.js +++ b/app/javascript/mastodon/actions/timelines.js @@ -21,6 +21,10 @@ export const TIMELINE_DISCONNECT = 'TIMELINE_DISCONNECT'; export const TIMELINE_CONNECT = 'TIMELINE_CONNECT'; export const TIMELINE_MARK_AS_PARTIAL = 'TIMELINE_MARK_AS_PARTIAL'; +export const TIMELINE_INSERT = 'TIMELINE_INSERT'; + +export const TIMELINE_SUGGESTIONS = 'inline-follow-suggestions'; +export const TIMELINE_GAP = null; export const loadPending = timeline => ({ type: TIMELINE_LOAD_PENDING, @@ -112,9 +116,19 @@ export function expandTimeline(timelineId, path, params = {}, done = noOp) { api(getState).get(path, { params }).then(response => { const next = getLinks(response).refs.find(link => link.rel === 'next'); + dispatch(importFetchedStatuses(response.data)); dispatch(expandTimelineSuccess(timelineId, response.data, next ? next.uri : null, response.status === 206, isLoadingRecent, isLoadingMore, isLoadingRecent && preferPendingItems)); + if (timelineId === 'home' && !isLoadingMore && !isLoadingRecent) { + const now = new Date(); + const fittingIndex = response.data.findIndex(status => now - (new Date(status.created_at)) > 4 * 3600 * 1000); + + if (fittingIndex !== -1) { + dispatch(insertIntoTimeline(timelineId, TIMELINE_SUGGESTIONS, Math.max(1, fittingIndex))); + } + } + if (timelineId === 'home') { dispatch(submitMarkers()); } @@ -221,3 +235,10 @@ export const markAsPartial = timeline => ({ type: TIMELINE_MARK_AS_PARTIAL, timeline, }); + +export const insertIntoTimeline = (timeline, key, index) => ({ + type: TIMELINE_INSERT, + timeline, + index, + key, +}); diff --git a/app/javascript/mastodon/components/status_list.jsx b/app/javascript/mastodon/components/status_list.jsx index e92dd233e1..3ed20f65eb 100644 --- a/app/javascript/mastodon/components/status_list.jsx +++ b/app/javascript/mastodon/components/status_list.jsx @@ -5,7 +5,9 @@ import ImmutablePureComponent from 'react-immutable-pure-component'; import { debounce } from 'lodash'; +import { TIMELINE_GAP, TIMELINE_SUGGESTIONS } from 'mastodon/actions/timelines'; import RegenerationIndicator from 'mastodon/components/regeneration_indicator'; +import { InlineFollowSuggestions } from 'mastodon/features/home_timeline/components/inline_follow_suggestions'; import StatusContainer from '../containers/status_container'; @@ -91,25 +93,38 @@ export default class StatusList extends ImmutablePureComponent { } let scrollableContent = (isLoading || statusIds.size > 0) ? ( - statusIds.map((statusId, index) => statusId === null ? ( - 0 ? statusIds.get(index - 1) : null} - onClick={onLoadMore} - /> - ) : ( - - )) + statusIds.map((statusId, index) => { + switch(statusId) { + case TIMELINE_SUGGESTIONS: + return ( + + ); + case TIMELINE_GAP: + return ( + 0 ? statusIds.get(index - 1) : null} + onClick={onLoadMore} + /> + ); + default: + return ( + + ); + } + }) ) : null; if (scrollableContent && featuredStatusIds) { diff --git a/app/javascript/mastodon/features/home_timeline/components/explore_prompt.tsx b/app/javascript/mastodon/features/home_timeline/components/explore_prompt.tsx deleted file mode 100644 index 960d30e2ca..0000000000 --- a/app/javascript/mastodon/features/home_timeline/components/explore_prompt.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { FormattedMessage } from 'react-intl'; - -import { Link } from 'react-router-dom'; - -import background from '@/images/friends-cropped.png'; -import { DismissableBanner } from 'mastodon/components/dismissable_banner'; - -export const ExplorePrompt = () => ( - - - -

- -

-

- -

- -
-
- - - - - - -
-
-
-); diff --git a/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.jsx b/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.jsx new file mode 100644 index 0000000000..ac414d04d6 --- /dev/null +++ b/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.jsx @@ -0,0 +1,201 @@ +import PropTypes from 'prop-types'; +import { useEffect, useCallback, useRef, useState } from 'react'; + +import { FormattedMessage, useIntl, defineMessages } from 'react-intl'; + +import { Link } from 'react-router-dom'; + +import ImmutablePropTypes from 'react-immutable-proptypes'; +import { useDispatch, useSelector } from 'react-redux'; + +import ChevronLeftIcon from '@/material-icons/400-24px/chevron_left.svg?react'; +import ChevronRightIcon from '@/material-icons/400-24px/chevron_right.svg?react'; +import CloseIcon from '@/material-icons/400-24px/close.svg?react'; +import InfoIcon from '@/material-icons/400-24px/info.svg?react'; +import { followAccount, unfollowAccount } from 'mastodon/actions/accounts'; +import { changeSetting } from 'mastodon/actions/settings'; +import { fetchSuggestions, dismissSuggestion } from 'mastodon/actions/suggestions'; +import { Avatar } from 'mastodon/components/avatar'; +import { Button } from 'mastodon/components/button'; +import { DisplayName } from 'mastodon/components/display_name'; +import { Icon } from 'mastodon/components/icon'; +import { IconButton } from 'mastodon/components/icon_button'; +import { VerifiedBadge } from 'mastodon/components/verified_badge'; + +const messages = defineMessages({ + follow: { id: 'account.follow', defaultMessage: 'Follow' }, + unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' }, + previous: { id: 'lightbox.previous', defaultMessage: 'Previous' }, + next: { id: 'lightbox.next', defaultMessage: 'Next' }, + dismiss: { id: 'follow_suggestions.dismiss', defaultMessage: "Don't show again" }, +}); + +const Source = ({ id }) => { + let label; + + switch (id) { + case 'friends_of_friends': + case 'similar_to_recently_followed': + label = ; + break; + case 'featured': + label = ; + break; + case 'most_followed': + case 'most_interactions': + label = ; + break; + } + + return ( +
+ + {label} +
+ ); +}; + +Source.propTypes = { + id: PropTypes.oneOf(['friends_of_friends', 'similar_to_recently_followed', 'featured', 'most_followed', 'most_interactions']), +}; + +const Card = ({ id, source }) => { + const intl = useIntl(); + const account = useSelector(state => state.getIn(['accounts', id])); + const relationship = useSelector(state => state.getIn(['relationships', id])); + const firstVerifiedField = account.get('fields').find(item => !!item.get('verified_at')); + const dispatch = useDispatch(); + const following = relationship?.get('following') ?? relationship?.get('requested'); + + const handleFollow = useCallback(() => { + if (following) { + dispatch(unfollowAccount(id)); + } else { + dispatch(followAccount(id)); + } + }, [id, following, dispatch]); + + const handleDismiss = useCallback(() => { + dispatch(dismissSuggestion(id)); + }, [id, dispatch]); + + return ( +
+ + +
+ +
+ +
+ + {firstVerifiedField ? : } +
+ +
+ ); +}; + +Card.propTypes = { + id: PropTypes.string.isRequired, + source: ImmutablePropTypes.list, +}; + +const DISMISSIBLE_ID = 'home/follow-suggestions'; + +export const InlineFollowSuggestions = ({ hidden }) => { + const intl = useIntl(); + const dispatch = useDispatch(); + const suggestions = useSelector(state => state.getIn(['suggestions', 'items'])); + const isLoading = useSelector(state => state.getIn(['suggestions', 'isLoading'])); + const dismissed = useSelector(state => state.getIn(['settings', 'dismissed_banners', DISMISSIBLE_ID])); + const bodyRef = useRef(); + const [canScrollLeft, setCanScrollLeft] = useState(false); + const [canScrollRight, setCanScrollRight] = useState(true); + + useEffect(() => { + dispatch(fetchSuggestions()); + }, [dispatch]); + + useEffect(() => { + if (!bodyRef.current) { + return; + } + + setCanScrollLeft(bodyRef.current.scrollLeft > 0); + setCanScrollRight((bodyRef.current.scrollLeft + bodyRef.current.clientWidth) < bodyRef.current.scrollWidth); + }, [setCanScrollRight, setCanScrollLeft, bodyRef, suggestions]); + + const handleLeftNav = useCallback(() => { + bodyRef.current.scrollLeft -= 200; + }, [bodyRef]); + + const handleRightNav = useCallback(() => { + bodyRef.current.scrollLeft += 200; + }, [bodyRef]); + + const handleScroll = useCallback(() => { + if (!bodyRef.current) { + return; + } + + setCanScrollLeft(bodyRef.current.scrollLeft > 0); + setCanScrollRight((bodyRef.current.scrollLeft + bodyRef.current.clientWidth) < bodyRef.current.scrollWidth); + }, [setCanScrollRight, setCanScrollLeft, bodyRef]); + + const handleDismiss = useCallback(() => { + dispatch(changeSetting(['dismissed_banners', DISMISSIBLE_ID], true)); + }, [dispatch]); + + if (dismissed || (!isLoading && suggestions.isEmpty())) { + return null; + } + + if (hidden) { + return ( +
+ ); + } + + return ( +
+
+

+ +
+ + +
+
+ +
+
+ {suggestions.map(suggestion => ( + + ))} +
+ + {canScrollLeft && ( + + )} + + {canScrollRight && ( + + )} +
+
+ ); +}; + +InlineFollowSuggestions.propTypes = { + hidden: PropTypes.bool, +}; diff --git a/app/javascript/mastodon/features/home_timeline/index.jsx b/app/javascript/mastodon/features/home_timeline/index.jsx index 069f52b0be..6e7dc2b6c8 100644 --- a/app/javascript/mastodon/features/home_timeline/index.jsx +++ b/app/javascript/mastodon/features/home_timeline/index.jsx @@ -6,8 +6,6 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import classNames from 'classnames'; import { Helmet } from 'react-helmet'; -import { createSelector } from '@reduxjs/toolkit'; -import { List as ImmutableList } from 'immutable'; import { connect } from 'react-redux'; import CampaignIcon from '@/material-icons/400-24px/campaign.svg?react'; @@ -16,7 +14,7 @@ import { fetchAnnouncements, toggleShowAnnouncements } from 'mastodon/actions/an import { IconWithBadge } from 'mastodon/components/icon_with_badge'; import { NotSignedInIndicator } from 'mastodon/components/not_signed_in_indicator'; import AnnouncementsContainer from 'mastodon/features/getting_started/containers/announcements_container'; -import { me, criticalUpdatesPending } from 'mastodon/initial_state'; +import { criticalUpdatesPending } from 'mastodon/initial_state'; import { addColumn, removeColumn, moveColumn } from '../../actions/columns'; import { expandHomeTimeline } from '../../actions/timelines'; @@ -26,7 +24,6 @@ import StatusListContainer from '../ui/containers/status_list_container'; import { ColumnSettings } from './components/column_settings'; import { CriticalUpdateBanner } from './components/critical_update_banner'; -import { ExplorePrompt } from './components/explore_prompt'; const messages = defineMessages({ title: { id: 'column.home', defaultMessage: 'Home' }, @@ -34,51 +31,12 @@ const messages = defineMessages({ hide_announcements: { id: 'home.hide_announcements', defaultMessage: 'Hide announcements' }, }); -const getHomeFeedSpeed = createSelector([ - state => state.getIn(['timelines', 'home', 'items'], ImmutableList()), - state => state.getIn(['timelines', 'home', 'pendingItems'], ImmutableList()), - state => state.get('statuses'), -], (statusIds, pendingStatusIds, statusMap) => { - const recentStatusIds = pendingStatusIds.concat(statusIds); - const statuses = recentStatusIds.filter(id => id !== null).map(id => statusMap.get(id)).filter(status => status?.get('account') !== me).take(20); - - if (statuses.isEmpty()) { - return { - gap: 0, - newest: new Date(0), - }; - } - - const datetimes = statuses.map(status => status.get('created_at', 0)); - const oldest = new Date(datetimes.min()); - const newest = new Date(datetimes.max()); - const averageGap = (newest - oldest) / (1000 * (statuses.size + 1)); // Average gap between posts on first page in seconds - - return { - gap: averageGap, - newest, - }; -}); - -const homeTooSlow = createSelector([ - state => state.getIn(['timelines', 'home', 'isLoading']), - state => state.getIn(['timelines', 'home', 'isPartial']), - getHomeFeedSpeed, -], (isLoading, isPartial, speed) => - !isLoading && !isPartial // Only if the home feed has finished loading - && ( - (speed.gap > (30 * 60) // If the average gap between posts is more than 30 minutes - || (Date.now() - speed.newest) > (1000 * 3600)) // If the most recent post is from over an hour ago - ) -); - const mapStateToProps = state => ({ hasUnread: state.getIn(['timelines', 'home', 'unread']) > 0, isPartial: state.getIn(['timelines', 'home', 'isPartial']), hasAnnouncements: !state.getIn(['announcements', 'items']).isEmpty(), unreadAnnouncements: state.getIn(['announcements', 'items']).count(item => !item.get('read')), showAnnouncements: state.getIn(['announcements', 'show']), - tooSlow: homeTooSlow(state), }); class HomeTimeline extends PureComponent { @@ -97,7 +55,6 @@ class HomeTimeline extends PureComponent { hasAnnouncements: PropTypes.bool, unreadAnnouncements: PropTypes.number, showAnnouncements: PropTypes.bool, - tooSlow: PropTypes.bool, }; handlePin = () => { @@ -167,7 +124,7 @@ class HomeTimeline extends PureComponent { }; render () { - const { intl, hasUnread, columnId, multiColumn, tooSlow, hasAnnouncements, unreadAnnouncements, showAnnouncements } = this.props; + const { intl, hasUnread, columnId, multiColumn, hasAnnouncements, unreadAnnouncements, showAnnouncements } = this.props; const pinned = !!columnId; const { signedIn } = this.context.identity; const banners = []; @@ -192,10 +149,6 @@ class HomeTimeline extends PureComponent { banners.push(); } - if (tooSlow) { - banners.push(); - } - return ( createSelector([ (state) => state.get('statuses'), ], (columnSettings, statusIds, statuses) => { return statusIds.filter(id => { - if (id === null) return true; + if (id === null || id === 'inline-follow-suggestions') return true; const statusForId = statuses.get(id); let showStatus = true; diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 22a831b093..12d0068d69 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -277,6 +277,12 @@ "follow_request.authorize": "Authorize", "follow_request.reject": "Reject", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "follow_suggestions.curated_suggestion": "Editors' Choice", + "follow_suggestions.dismiss": "Don't show again", + "follow_suggestions.personalized_suggestion": "Personalized suggestion", + "follow_suggestions.popular_suggestion": "Popular suggestion", + "follow_suggestions.view_all": "View all", + "follow_suggestions.who_to_follow": "Who to follow", "followed_tags": "Followed hashtags", "footer.about": "About", "footer.directory": "Profiles directory", @@ -303,13 +309,9 @@ "hashtag.follow": "Follow hashtag", "hashtag.unfollow": "Unfollow hashtag", "hashtags.and_other": "…and {count, plural, other {# more}}", - "home.actions.go_to_explore": "See what's trending", - "home.actions.go_to_suggestions": "Find people to follow", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", - "home.explore_prompt.body": "Your home feed will have a mix of posts from the hashtags you've chosen to follow, the people you've chosen to follow, and the posts they boost. If that feels too quiet, you may want to:", - "home.explore_prompt.title": "This is your home base within Mastodon.", "home.hide_announcements": "Hide announcements", "home.pending_critical_update.body": "Please update your Mastodon server as soon as possible!", "home.pending_critical_update.link": "See updates", diff --git a/app/javascript/mastodon/reducers/settings.js b/app/javascript/mastodon/reducers/settings.js index a605ecbb8b..0e353e0d1b 100644 --- a/app/javascript/mastodon/reducers/settings.js +++ b/app/javascript/mastodon/reducers/settings.js @@ -104,7 +104,7 @@ const initialState = ImmutableMap({ dismissed_banners: ImmutableMap({ 'public_timeline': false, 'community_timeline': false, - 'home.explore_prompt': false, + 'home/follow-suggestions': false, 'explore/links': false, 'explore/statuses': false, 'explore/tags': false, diff --git a/app/javascript/mastodon/reducers/suggestions.js b/app/javascript/mastodon/reducers/suggestions.js index 0f224ff4b9..5b9d983dea 100644 --- a/app/javascript/mastodon/reducers/suggestions.js +++ b/app/javascript/mastodon/reducers/suggestions.js @@ -28,12 +28,12 @@ export default function suggestionsReducer(state = initialState, action) { case SUGGESTIONS_FETCH_FAIL: return state.set('isLoading', false); case SUGGESTIONS_DISMISS: - return state.update('items', list => list.filterNot(x => x.account === action.id)); + return state.update('items', list => list.filterNot(x => x.get('account') === action.id)); case blockAccountSuccess.type: case muteAccountSuccess.type: - return state.update('items', list => list.filterNot(x => x.account === action.payload.relationship.id)); + return state.update('items', list => list.filterNot(x => x.get('account') === action.payload.relationship.id)); case blockDomainSuccess.type: - return state.update('items', list => list.filterNot(x => action.payload.accounts.includes(x.account))); + return state.update('items', list => list.filterNot(x => action.payload.accounts.includes(x.get('account')))); default: return state; } diff --git a/app/javascript/mastodon/reducers/timelines.js b/app/javascript/mastodon/reducers/timelines.js index 43dedd6e6d..4c9ab98a82 100644 --- a/app/javascript/mastodon/reducers/timelines.js +++ b/app/javascript/mastodon/reducers/timelines.js @@ -17,6 +17,9 @@ import { TIMELINE_DISCONNECT, TIMELINE_LOAD_PENDING, TIMELINE_MARK_AS_PARTIAL, + TIMELINE_INSERT, + TIMELINE_GAP, + TIMELINE_SUGGESTIONS, } from '../actions/timelines'; import { compareId } from '../compare_id'; @@ -32,6 +35,8 @@ const initialTimeline = ImmutableMap({ items: ImmutableList(), }); +const isPlaceholder = value => value === TIMELINE_GAP || value === TIMELINE_SUGGESTIONS; + const expandNormalizedTimeline = (state, timeline, statuses, next, isPartial, isLoadingRecent, usePendingItems) => { // This method is pretty tricky because: // - existing items in the timeline might be out of order @@ -63,20 +68,20 @@ const expandNormalizedTimeline = (state, timeline, statuses, next, isPartial, is // First, find the furthest (if properly sorted, oldest) item in the timeline that is // newer than the oldest fetched one, as it's most likely that it delimits the gap. // Start the gap *after* that item. - const lastIndex = oldIds.findLastIndex(id => id !== null && compareId(id, newIds.last()) >= 0) + 1; + const lastIndex = oldIds.findLastIndex(id => !isPlaceholder(id) && compareId(id, newIds.last()) >= 0) + 1; // Then, try to find the furthest (if properly sorted, oldest) item in the timeline that // is newer than the most recent fetched one, as it delimits a section comprised of only // items older or within `newIds` (or that were deleted from the server, so should be removed // anyway). // Stop the gap *after* that item. - const firstIndex = oldIds.take(lastIndex).findLastIndex(id => id !== null && compareId(id, newIds.first()) > 0) + 1; + const firstIndex = oldIds.take(lastIndex).findLastIndex(id => !isPlaceholder(id) && compareId(id, newIds.first()) > 0) + 1; let insertedIds = ImmutableOrderedSet(newIds).withMutations(insertedIds => { // It is possible, though unlikely, that the slice we are replacing contains items older // than the elements we got from the API. Get them and add them back at the back of the // slice. - const olderIds = oldIds.slice(firstIndex, lastIndex).filter(id => id !== null && compareId(id, newIds.last()) < 0); + const olderIds = oldIds.slice(firstIndex, lastIndex).filter(id => !isPlaceholder(id) && compareId(id, newIds.last()) < 0); insertedIds.union(olderIds); // Make sure we aren't inserting duplicates @@ -84,8 +89,8 @@ const expandNormalizedTimeline = (state, timeline, statuses, next, isPartial, is }).toList(); // Finally, insert a gap marker if the data is marked as partial by the server - if (isPartial && (firstIndex === 0 || oldIds.get(firstIndex - 1) !== null)) { - insertedIds = insertedIds.unshift(null); + if (isPartial && (firstIndex === 0 || oldIds.get(firstIndex - 1) !== TIMELINE_GAP)) { + insertedIds = insertedIds.unshift(TIMELINE_GAP); } return oldIds.take(firstIndex).concat( @@ -178,7 +183,7 @@ const reconnectTimeline = (state, usePendingItems) => { } return state.withMutations(mMap => { - mMap.update(usePendingItems ? 'pendingItems' : 'items', items => items.first() ? items.unshift(null) : items); + mMap.update(usePendingItems ? 'pendingItems' : 'items', items => items.first() ? items.unshift(TIMELINE_GAP) : items); mMap.set('online', true); }); }; @@ -213,7 +218,7 @@ export default function timelines(state = initialState, action) { return state.update( action.timeline, initialTimeline, - map => map.set('online', false).update(action.usePendingItems ? 'pendingItems' : 'items', items => items.first() ? items.unshift(null) : items), + map => map.set('online', false).update(action.usePendingItems ? 'pendingItems' : 'items', items => items.first() ? items.unshift(TIMELINE_GAP) : items), ); case TIMELINE_MARK_AS_PARTIAL: return state.update( @@ -221,6 +226,18 @@ export default function timelines(state = initialState, action) { initialTimeline, map => map.set('isPartial', true).set('items', ImmutableList()).set('pendingItems', ImmutableList()).set('unread', 0), ); + case TIMELINE_INSERT: + return state.update( + action.timeline, + initialTimeline, + map => map.update('items', ImmutableList(), list => { + if (!list.includes(action.key)) { + return list.insert(action.index, action.key); + } + + return list; + }) + ); default: return state; } diff --git a/app/javascript/material-icons/400-24px/navigate_before-fill.svg b/app/javascript/material-icons/400-24px/navigate_before-fill.svg new file mode 100644 index 0000000000..53783746ae --- /dev/null +++ b/app/javascript/material-icons/400-24px/navigate_before-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/material-icons/400-24px/navigate_before.svg b/app/javascript/material-icons/400-24px/navigate_before.svg new file mode 100644 index 0000000000..53783746ae --- /dev/null +++ b/app/javascript/material-icons/400-24px/navigate_before.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/material-icons/400-24px/navigate_next-fill.svg b/app/javascript/material-icons/400-24px/navigate_next-fill.svg new file mode 100644 index 0000000000..4100467365 --- /dev/null +++ b/app/javascript/material-icons/400-24px/navigate_next-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/material-icons/400-24px/navigate_next.svg b/app/javascript/material-icons/400-24px/navigate_next.svg new file mode 100644 index 0000000000..4100467365 --- /dev/null +++ b/app/javascript/material-icons/400-24px/navigate_next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss index 3c75854d9b..520e91e28b 100644 --- a/app/javascript/styles/mastodon-light/diff.scss +++ b/app/javascript/styles/mastodon-light/diff.scss @@ -578,3 +578,16 @@ html { .poll__option input[type='text'] { background: darken($ui-base-color, 10%); } + +.inline-follow-suggestions { + background-color: rgba($ui-highlight-color, 0.1); + border-bottom-color: rgba($ui-highlight-color, 0.3); +} + +.inline-follow-suggestions__body__scrollable__card { + background: $white; +} + +.inline-follow-suggestions__body__scroll-button__icon { + color: $white; +} diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 5b89e7f25d..f70fa12a51 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -9459,3 +9459,199 @@ noscript { padding: 0; } } + +.inline-follow-suggestions { + display: flex; + flex-direction: column; + gap: 12px; + padding: 16px 0; + border-bottom: 1px solid mix($ui-base-color, $ui-highlight-color, 75%); + background: mix($ui-base-color, $ui-highlight-color, 95%); + + &__header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 16px; + + h3 { + font-size: 15px; + line-height: 22px; + font-weight: 500; + } + + &__actions { + display: flex; + align-items: center; + gap: 24px; + } + + .link-button { + font-size: 13px; + font-weight: 500; + } + } + + &__body { + position: relative; + + &__scroll-button { + position: absolute; + height: 100%; + background: transparent; + border: none; + cursor: pointer; + top: 0; + color: $primary-text-color; + + &.left { + left: 0; + } + + &.right { + right: 0; + } + + &__icon { + border-radius: 50%; + background: $ui-highlight-color; + display: flex; + align-items: center; + justify-content: center; + aspect-ratio: 1; + padding: 8px; + + .icon { + width: 24px; + height: 24px; + } + } + + &:hover, + &:focus, + &:active { + .inline-follow-suggestions__body__scroll-button__icon { + background: lighten($ui-highlight-color, 4%); + } + } + } + + &__scrollable { + display: flex; + flex-wrap: nowrap; + gap: 16px; + padding: 16px; + padding-bottom: 0; + scroll-snap-type: x mandatory; + scroll-padding: 16px; + scroll-behavior: smooth; + overflow-x: hidden; + + &__card { + background: darken($ui-base-color, 4%); + border: 1px solid lighten($ui-base-color, 8%); + border-radius: 4px; + display: flex; + flex-direction: column; + gap: 12px; + align-items: center; + padding: 12px; + scroll-snap-align: start; + flex: 0 0 auto; + width: 200px; + box-sizing: border-box; + position: relative; + + a { + text-decoration: none; + } + + & > .icon-button { + position: absolute; + inset-inline-end: 8px; + top: 8px; + } + + &__avatar { + height: 48px; + display: flex; + + a { + display: flex; + text-decoration: none; + } + } + + .account__avatar { + flex-shrink: 0; + align-self: flex-end; + border: 1px solid lighten($ui-base-color, 8%); + background-color: $ui-base-color; + } + + &__text-stack { + display: flex; + flex-direction: column; + gap: 4px; + align-items: center; + max-width: 100%; + + a { + max-width: 100%; + } + + &__source { + display: inline-flex; + align-items: center; + color: $dark-text-color; + gap: 4px; + overflow: hidden; + white-space: nowrap; + + > span { + overflow: hidden; + text-overflow: ellipsis; + } + + .icon { + width: 16px; + height: 16px; + } + } + } + + .display-name { + display: flex; + flex-direction: column; + gap: 4px; + align-items: center; + + & > * { + max-width: 100%; + } + + &__html { + font-size: 15px; + font-weight: 500; + color: $secondary-text-color; + } + + &__account { + font-size: 14px; + color: $darker-text-color; + } + } + + .verified-badge { + font-size: 14px; + max-width: 100%; + } + + .button { + display: block; + width: 100%; + } + } + } + } +} From 1726085db5cd73dd30953da858f9887bcc90b958 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 1 Feb 2024 15:56:46 +0100 Subject: [PATCH 08/42] Merge pull request from GHSA-3fjr-858r-92rw * Fix insufficient origin validation * Bump version to 4.3.0-alpha.1 --- .../concerns/signature_verification.rb | 2 +- app/helpers/jsonld_helper.rb | 4 ++-- app/lib/activitypub/activity.rb | 2 +- app/lib/activitypub/linked_data_signature.rb | 2 +- .../activitypub/fetch_remote_account_service.rb | 2 +- .../activitypub/fetch_remote_actor_service.rb | 6 +++--- .../activitypub/fetch_remote_key_service.rb | 17 ++--------------- .../activitypub/fetch_remote_status_service.rb | 8 ++++---- .../activitypub/process_account_service.rb | 2 +- app/services/fetch_resource_service.rb | 10 +++++++++- lib/mastodon/version.rb | 2 +- .../activitypub/linked_data_signature_spec.rb | 4 ++-- .../fetch_remote_account_service_spec.rb | 2 +- .../fetch_remote_actor_service_spec.rb | 2 +- .../fetch_remote_key_service_spec.rb | 2 +- spec/services/fetch_resource_service_spec.rb | 10 +++++----- spec/services/resolve_url_service_spec.rb | 1 + 17 files changed, 37 insertions(+), 41 deletions(-) diff --git a/app/controllers/concerns/signature_verification.rb b/app/controllers/concerns/signature_verification.rb index 35391e64c4..92f1eb5a16 100644 --- a/app/controllers/concerns/signature_verification.rb +++ b/app/controllers/concerns/signature_verification.rb @@ -266,7 +266,7 @@ module SignatureVerification stoplight_wrap_request { ResolveAccountService.new.call(key_id.delete_prefix('acct:'), suppress_errors: false) } elsif !ActivityPub::TagManager.instance.local_uri?(key_id) account = ActivityPub::TagManager.instance.uri_to_actor(key_id) - account ||= stoplight_wrap_request { ActivityPub::FetchRemoteKeyService.new.call(key_id, id: false, suppress_errors: false) } + account ||= stoplight_wrap_request { ActivityPub::FetchRemoteKeyService.new.call(key_id, suppress_errors: false) } account end rescue Mastodon::PrivateNetworkAddressError => e diff --git a/app/helpers/jsonld_helper.rb b/app/helpers/jsonld_helper.rb index b3d0d032c4..cc05b7a403 100644 --- a/app/helpers/jsonld_helper.rb +++ b/app/helpers/jsonld_helper.rb @@ -155,8 +155,8 @@ module JsonLdHelper end end - def fetch_resource(uri, id, on_behalf_of = nil, request_options: {}) - unless id + def fetch_resource(uri, id_is_known, on_behalf_of = nil, request_options: {}) + unless id_is_known json = fetch_resource_without_id_validation(uri, on_behalf_of) return if !json.is_a?(Hash) || unsupported_uri_scheme?(json['id']) diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb index 51384ef984..322f3e27ad 100644 --- a/app/lib/activitypub/activity.rb +++ b/app/lib/activitypub/activity.rb @@ -154,7 +154,7 @@ class ActivityPub::Activity if object_uri.start_with?('http') return if ActivityPub::TagManager.instance.local_uri?(object_uri) - ActivityPub::FetchRemoteStatusService.new.call(object_uri, id: true, on_behalf_of: @account.followers.local.first, request_id: @options[:request_id]) + ActivityPub::FetchRemoteStatusService.new.call(object_uri, on_behalf_of: @account.followers.local.first, request_id: @options[:request_id]) elsif @object['url'].present? ::FetchRemoteStatusService.new.call(@object['url'], request_id: @options[:request_id]) end diff --git a/app/lib/activitypub/linked_data_signature.rb b/app/lib/activitypub/linked_data_signature.rb index faea63e8f1..9459fdd8b7 100644 --- a/app/lib/activitypub/linked_data_signature.rb +++ b/app/lib/activitypub/linked_data_signature.rb @@ -19,7 +19,7 @@ class ActivityPub::LinkedDataSignature return unless type == 'RsaSignature2017' creator = ActivityPub::TagManager.instance.uri_to_actor(creator_uri) - creator = ActivityPub::FetchRemoteKeyService.new.call(creator_uri, id: false) if creator&.public_key.blank? + creator = ActivityPub::FetchRemoteKeyService.new.call(creator_uri) if creator&.public_key.blank? return if creator.nil? diff --git a/app/services/activitypub/fetch_remote_account_service.rb b/app/services/activitypub/fetch_remote_account_service.rb index 567dd8a14a..7b083d889b 100644 --- a/app/services/activitypub/fetch_remote_account_service.rb +++ b/app/services/activitypub/fetch_remote_account_service.rb @@ -2,7 +2,7 @@ class ActivityPub::FetchRemoteAccountService < ActivityPub::FetchRemoteActorService # Does a WebFinger roundtrip on each call, unless `only_key` is true - def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true, request_id: nil) + def call(uri, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true, request_id: nil) actor = super return actor if actor.nil? || actor.is_a?(Account) diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb index 8df8c75876..86a134bb4e 100644 --- a/app/services/activitypub/fetch_remote_actor_service.rb +++ b/app/services/activitypub/fetch_remote_actor_service.rb @@ -10,15 +10,15 @@ class ActivityPub::FetchRemoteActorService < BaseService SUPPORTED_TYPES = %w(Application Group Organization Person Service).freeze # Does a WebFinger roundtrip on each call, unless `only_key` is true - def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true, request_id: nil) + def call(uri, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true, request_id: nil) return if domain_not_allowed?(uri) return ActivityPub::TagManager.instance.uri_to_actor(uri) if ActivityPub::TagManager.instance.local_uri?(uri) @json = begin if prefetched_body.nil? - fetch_resource(uri, id) + fetch_resource(uri, true) else - body_to_json(prefetched_body, compare_id: id ? uri : nil) + body_to_json(prefetched_body, compare_id: uri) end rescue Oj::ParseError raise Error, "Error parsing JSON-LD document #{uri}" diff --git a/app/services/activitypub/fetch_remote_key_service.rb b/app/services/activitypub/fetch_remote_key_service.rb index 8eb97c1e66..e96b5ad3bb 100644 --- a/app/services/activitypub/fetch_remote_key_service.rb +++ b/app/services/activitypub/fetch_remote_key_service.rb @@ -6,23 +6,10 @@ class ActivityPub::FetchRemoteKeyService < BaseService class Error < StandardError; end # Returns actor that owns the key - def call(uri, id: true, prefetched_body: nil, suppress_errors: true) + def call(uri, suppress_errors: true) raise Error, 'No key URI given' if uri.blank? - if prefetched_body.nil? - if id - @json = fetch_resource_without_id_validation(uri) - if actor_type? - @json = fetch_resource(@json['id'], true) - elsif uri != @json['id'] - raise Error, "Fetched URI #{uri} has wrong id #{@json['id']}" - end - else - @json = fetch_resource(uri, id) - end - else - @json = body_to_json(prefetched_body, compare_id: id ? uri : nil) - end + @json = fetch_resource(uri, false) raise Error, "Unable to fetch key JSON at #{uri}" if @json.nil? raise Error, "Unsupported JSON-LD context for document #{uri}" unless supported_context?(@json) diff --git a/app/services/activitypub/fetch_remote_status_service.rb b/app/services/activitypub/fetch_remote_status_service.rb index e3a9b60b56..6f8882378f 100644 --- a/app/services/activitypub/fetch_remote_status_service.rb +++ b/app/services/activitypub/fetch_remote_status_service.rb @@ -8,14 +8,14 @@ class ActivityPub::FetchRemoteStatusService < BaseService DISCOVERIES_PER_REQUEST = 1000 # Should be called when uri has already been checked for locality - def call(uri, id: true, prefetched_body: nil, on_behalf_of: nil, expected_actor_uri: nil, request_id: nil) + def call(uri, prefetched_body: nil, on_behalf_of: nil, expected_actor_uri: nil, request_id: nil) return if domain_not_allowed?(uri) @request_id = request_id || "#{Time.now.utc.to_i}-status-#{uri}" @json = if prefetched_body.nil? - fetch_resource(uri, id, on_behalf_of) + fetch_resource(uri, true, on_behalf_of) else - body_to_json(prefetched_body, compare_id: id ? uri : nil) + body_to_json(prefetched_body, compare_id: uri) end return unless supported_context? @@ -65,7 +65,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService def account_from_uri(uri) actor = ActivityPub::TagManager.instance.uri_to_resource(uri, Account) - actor = ActivityPub::FetchRemoteAccountService.new.call(uri, id: true, request_id: @request_id) if actor.nil? || actor.possibly_stale? + actor = ActivityPub::FetchRemoteAccountService.new.call(uri, request_id: @request_id) if actor.nil? || actor.possibly_stale? actor end diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb index 8fc0989a3f..9e787ace50 100644 --- a/app/services/activitypub/process_account_service.rb +++ b/app/services/activitypub/process_account_service.rb @@ -277,7 +277,7 @@ class ActivityPub::ProcessAccountService < BaseService def moved_account account = ActivityPub::TagManager.instance.uri_to_resource(@json['movedTo'], Account) - account ||= ActivityPub::FetchRemoteAccountService.new.call(@json['movedTo'], id: true, break_on_redirect: true, request_id: @options[:request_id]) + account ||= ActivityPub::FetchRemoteAccountService.new.call(@json['movedTo'], break_on_redirect: true, request_id: @options[:request_id]) account end diff --git a/app/services/fetch_resource_service.rb b/app/services/fetch_resource_service.rb index a3406e5a57..71c6cca790 100644 --- a/app/services/fetch_resource_service.rb +++ b/app/services/fetch_resource_service.rb @@ -48,7 +48,15 @@ class FetchResourceService < BaseService body = response.body_with_limit json = body_to_json(body) - [json['id'], { prefetched_body: body, id: true }] if supported_context?(json) && (equals_or_includes_any?(json['type'], ActivityPub::FetchRemoteActorService::SUPPORTED_TYPES) || expected_type?(json)) + return unless supported_context?(json) && (equals_or_includes_any?(json['type'], ActivityPub::FetchRemoteActorService::SUPPORTED_TYPES) || expected_type?(json)) + + if json['id'] != @url + return if terminal + + return process(json['id'], terminal: true) + end + + [@url, { prefetched_body: body }] elsif !terminal link_header = response['Link'] && parse_link_header(response) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 587e89303b..dd7c84207e 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -17,7 +17,7 @@ module Mastodon end def default_prerelease - 'alpha.0' + 'alpha.1' end def prerelease diff --git a/spec/lib/activitypub/linked_data_signature_spec.rb b/spec/lib/activitypub/linked_data_signature_spec.rb index 97268eea6d..1af45673c0 100644 --- a/spec/lib/activitypub/linked_data_signature_spec.rb +++ b/spec/lib/activitypub/linked_data_signature_spec.rb @@ -56,7 +56,7 @@ RSpec.describe ActivityPub::LinkedDataSignature do allow(ActivityPub::FetchRemoteKeyService).to receive(:new).and_return(service_stub) - allow(service_stub).to receive(:call).with('http://example.com/alice', id: false) do + allow(service_stub).to receive(:call).with('http://example.com/alice') do sender.update!(public_key: old_key) sender end @@ -64,7 +64,7 @@ RSpec.describe ActivityPub::LinkedDataSignature do it 'fetches key and returns creator' do expect(subject.verify_actor!).to eq sender - expect(service_stub).to have_received(:call).with('http://example.com/alice', id: false).once + expect(service_stub).to have_received(:call).with('http://example.com/alice').once end end diff --git a/spec/services/activitypub/fetch_remote_account_service_spec.rb b/spec/services/activitypub/fetch_remote_account_service_spec.rb index 4015723f6d..e7f6bb8dd8 100644 --- a/spec/services/activitypub/fetch_remote_account_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_account_service_spec.rb @@ -18,7 +18,7 @@ RSpec.describe ActivityPub::FetchRemoteAccountService, type: :service do end describe '#call' do - let(:account) { subject.call('https://example.com/alice', id: true) } + let(:account) { subject.call('https://example.com/alice') } shared_examples 'sets profile data' do it 'returns an account with expected details' do diff --git a/spec/services/activitypub/fetch_remote_actor_service_spec.rb b/spec/services/activitypub/fetch_remote_actor_service_spec.rb index 485ca81a11..e622c7d4c3 100644 --- a/spec/services/activitypub/fetch_remote_actor_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_actor_service_spec.rb @@ -18,7 +18,7 @@ RSpec.describe ActivityPub::FetchRemoteActorService, type: :service do end describe '#call' do - let(:account) { subject.call('https://example.com/alice', id: true) } + let(:account) { subject.call('https://example.com/alice') } shared_examples 'sets profile data' do it 'returns an account and sets attributes' do diff --git a/spec/services/activitypub/fetch_remote_key_service_spec.rb b/spec/services/activitypub/fetch_remote_key_service_spec.rb index e210d20ec7..0b14da4f44 100644 --- a/spec/services/activitypub/fetch_remote_key_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_key_service_spec.rb @@ -55,7 +55,7 @@ RSpec.describe ActivityPub::FetchRemoteKeyService, type: :service do end describe '#call' do - let(:account) { subject.call(public_key_id, id: false) } + let(:account) { subject.call(public_key_id) } context 'when the key is a sub-object from the actor' do before do diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb index 0f1068471f..78037a06ce 100644 --- a/spec/services/fetch_resource_service_spec.rb +++ b/spec/services/fetch_resource_service_spec.rb @@ -57,7 +57,7 @@ RSpec.describe FetchResourceService, type: :service do let(:json) do { - id: 1, + id: 'http://example.com/foo', '@context': ActivityPub::TagManager::CONTEXT, type: 'Note', }.to_json @@ -83,27 +83,27 @@ RSpec.describe FetchResourceService, type: :service do let(:content_type) { 'application/activity+json; charset=utf-8' } let(:body) { json } - it { is_expected.to eq [1, { prefetched_body: body, id: true }] } + it { is_expected.to eq ['http://example.com/foo', { prefetched_body: body }] } end context 'when content type is ld+json with profile' do let(:content_type) { 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"' } let(:body) { json } - it { is_expected.to eq [1, { prefetched_body: body, id: true }] } + it { is_expected.to eq ['http://example.com/foo', { prefetched_body: body }] } end context 'when link header is present' do let(:headers) { { 'Link' => '; rel="alternate"; type="application/activity+json"' } } - it { is_expected.to eq [1, { prefetched_body: json, id: true }] } + it { is_expected.to eq ['http://example.com/foo', { prefetched_body: json }] } end context 'when content type is text/html' do let(:content_type) { 'text/html' } let(:body) { '' } - it { is_expected.to eq [1, { prefetched_body: json, id: true }] } + it { is_expected.to eq ['http://example.com/foo', { prefetched_body: json }] } end end end diff --git a/spec/services/resolve_url_service_spec.rb b/spec/services/resolve_url_service_spec.rb index bcfb9dbfb0..5270cc10dd 100644 --- a/spec/services/resolve_url_service_spec.rb +++ b/spec/services/resolve_url_service_spec.rb @@ -139,6 +139,7 @@ describe ResolveURLService, type: :service do stub_request(:get, url).to_return(status: 302, headers: { 'Location' => status_url }) body = ActiveModelSerializers::SerializableResource.new(status, serializer: ActivityPub::NoteSerializer, adapter: ActivityPub::Adapter).to_json stub_request(:get, status_url).to_return(body: body, headers: { 'Content-Type' => 'application/activity+json' }) + stub_request(:get, uri).to_return(body: body, headers: { 'Content-Type' => 'application/activity+json' }) end it 'returns status by url' do From 3c315a68afdb3b6ea1bc66b66bc7dcd49a335a08 Mon Sep 17 00:00:00 2001 From: "y.takahashi" Date: Fri, 2 Feb 2024 15:33:53 +0900 Subject: [PATCH 09/42] Fix 'focus the compose textarea' shortcut is not working (#29059) --- app/javascript/mastodon/features/ui/index.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/ui/index.jsx b/app/javascript/mastodon/features/ui/index.jsx index d3fee272f0..b17b59a0e6 100644 --- a/app/javascript/mastodon/features/ui/index.jsx +++ b/app/javascript/mastodon/features/ui/index.jsx @@ -438,7 +438,7 @@ class UI extends PureComponent { handleHotkeyNew = e => { e.preventDefault(); - const element = this.node.querySelector('.compose-form__autosuggest-wrapper textarea'); + const element = this.node.querySelector('.autosuggest-textarea__textarea'); if (element) { element.focus(); From 1666b1955992e16f4605b414c6563ca25b3a3f18 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 2 Feb 2024 16:51:26 +0100 Subject: [PATCH 10/42] Fix confirmation e-mails when signing up through an app (#29064) --- app/views/user_mailer/confirmation_instructions.html.haml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/views/user_mailer/confirmation_instructions.html.haml b/app/views/user_mailer/confirmation_instructions.html.haml index 74b2d49a47..13e68c722b 100644 --- a/app/views/user_mailer/confirmation_instructions.html.haml +++ b/app/views/user_mailer/confirmation_instructions.html.haml @@ -8,9 +8,7 @@ %td.email-inner-card-td.email-prose %p= t @resource.approved? ? 'devise.mailer.confirmation_instructions.explanation' : 'devise.mailer.confirmation_instructions.explanation_when_pending', host: site_hostname - if @resource.created_by_application - = render 'application/mailer/button', text: t('settings.account_settings'), url: edit_user_registration_url - = link_to confirmation_url(@resource, confirmation_token: @token, redirect_to_app: 'true') do - %span= t 'devise.mailer.confirmation_instructions.action_with_app', app: @resource.created_by_application.name + = render 'application/mailer/button', text: t('devise.mailer.confirmation_instructions.action_with_app', app: @resource.created_by_application.name), url: confirmation_url(@resource, confirmation_token: @token, redirect_to_app: 'true') - else = render 'application/mailer/button', text: t('devise.mailer.confirmation_instructions.action'), url: confirmation_url(@resource, confirmation_token: @token) %p= t 'devise.mailer.confirmation_instructions.extra_html', terms_path: about_more_url, policy_path: privacy_policy_url From 86500e3312394de52413254e81bbc91f1a9333a0 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 6 Feb 2024 04:08:07 -0500 Subject: [PATCH 11/42] Extract scenic view model common methods to concern (#28111) --- app/models/account_summary.rb | 14 +++--------- app/models/concerns/database_view_record.rb | 25 +++++++++++++++++++++ app/models/follow_recommendation.rb | 12 ++-------- app/models/instance.rb | 10 ++------- app/models/user_ip.rb | 6 ++--- 5 files changed, 34 insertions(+), 33 deletions(-) create mode 100644 app/models/concerns/database_view_record.rb diff --git a/app/models/account_summary.rb b/app/models/account_summary.rb index 30ada50cc0..327c0ef305 100644 --- a/app/models/account_summary.rb +++ b/app/models/account_summary.rb @@ -10,21 +10,13 @@ # class AccountSummary < ApplicationRecord + include DatabaseViewRecord + self.primary_key = :account_id - has_many :follow_recommendation_suppressions, primary_key: :account_id, foreign_key: :account_id, inverse_of: false + has_many :follow_recommendation_suppressions, primary_key: :account_id, foreign_key: :account_id, inverse_of: false, dependent: nil scope :safe, -> { where(sensitive: false) } scope :localized, ->(locale) { order(Arel::Nodes::Case.new.when(arel_table[:language].eq(locale)).then(1).else(0).desc) } scope :filtered, -> { where.missing(:follow_recommendation_suppressions) } - - def self.refresh - Scenic.database.refresh_materialized_view(table_name, concurrently: true, cascade: false) - rescue ActiveRecord::StatementInvalid - Scenic.database.refresh_materialized_view(table_name, concurrently: false, cascade: false) - end - - def readonly? - true - end end diff --git a/app/models/concerns/database_view_record.rb b/app/models/concerns/database_view_record.rb new file mode 100644 index 0000000000..8b6672e299 --- /dev/null +++ b/app/models/concerns/database_view_record.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +module DatabaseViewRecord + extend ActiveSupport::Concern + + class_methods do + def refresh + Scenic.database.refresh_materialized_view( + table_name, + concurrently: true, + cascade: false + ) + rescue ActiveRecord::StatementInvalid + Scenic.database.refresh_materialized_view( + table_name, + concurrently: false, + cascade: false + ) + end + end + + def readonly? + true + end +end diff --git a/app/models/follow_recommendation.rb b/app/models/follow_recommendation.rb index 6b49a3ca66..7ac9e6dfb9 100644 --- a/app/models/follow_recommendation.rb +++ b/app/models/follow_recommendation.rb @@ -10,6 +10,8 @@ # class FollowRecommendation < ApplicationRecord + include DatabaseViewRecord + self.primary_key = :account_id self.table_name = :global_follow_recommendations @@ -17,14 +19,4 @@ class FollowRecommendation < ApplicationRecord belongs_to :account scope :localized, ->(locale) { joins(:account_summary).merge(AccountSummary.localized(locale)) } - - def self.refresh - Scenic.database.refresh_materialized_view(table_name, concurrently: true, cascade: false) - rescue ActiveRecord::StatementInvalid - Scenic.database.refresh_materialized_view(table_name, concurrently: false, cascade: false) - end - - def readonly? - true - end end diff --git a/app/models/instance.rb b/app/models/instance.rb index 0fd31c8097..3bd4b924ae 100644 --- a/app/models/instance.rb +++ b/app/models/instance.rb @@ -9,6 +9,8 @@ # class Instance < ApplicationRecord + include DatabaseViewRecord + self.primary_key = :domain attr_accessor :failure_days @@ -27,10 +29,6 @@ class Instance < ApplicationRecord scope :by_domain_and_subdomains, ->(domain) { where("reverse('.' || domain) LIKE reverse(?)", "%.#{domain}") } scope :with_domain_follows, ->(domains) { where(domain: domains).where(domain_account_follows) } - def self.refresh - Scenic.database.refresh_materialized_view(table_name, concurrently: true, cascade: false) - end - def self.domain_account_follows Arel.sql( <<~SQL.squish @@ -44,10 +42,6 @@ class Instance < ApplicationRecord ) end - def readonly? - true - end - def delivery_failure_tracker @delivery_failure_tracker ||= DeliveryFailureTracker.new(domain) end diff --git a/app/models/user_ip.rb b/app/models/user_ip.rb index 38287c2a60..87b86a24d4 100644 --- a/app/models/user_ip.rb +++ b/app/models/user_ip.rb @@ -10,11 +10,9 @@ # class UserIp < ApplicationRecord + include DatabaseViewRecord + self.primary_key = :user_id belongs_to :user - - def readonly? - true - end end From f00ba02653ef4e654571e8942b404fcd925662b1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 10:20:23 +0100 Subject: [PATCH 12/42] Update dependency nokogiri to v1.16.2 [SECURITY] (#29106) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 01f5b45929..7c10a419ad 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -465,7 +465,7 @@ GEM net-smtp (0.4.0.1) net-protocol nio4r (2.5.9) - nokogiri (1.16.0) + nokogiri (1.16.2) mini_portile2 (~> 2.8.2) racc (~> 1.4) oj (3.16.3) From 916aeb574d24e2dce1cfefac4694066c7caf65ca Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 10:23:55 +0100 Subject: [PATCH 13/42] Update DefinitelyTyped types (non-major) (#29088) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4d1084c229..8055554014 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3179,12 +3179,12 @@ __metadata: linkType: hard "@types/jest@npm:^29.5.2": - version: 29.5.11 - resolution: "@types/jest@npm:29.5.11" + version: 29.5.12 + resolution: "@types/jest@npm:29.5.12" dependencies: expect: "npm:^29.0.0" pretty-format: "npm:^29.0.0" - checksum: 524a3394845214581278bf4d75055927261fbeac7e1a89cd621bd0636da37d265fe0a85eac58b5778758faad1cbd7c7c361dfc190c78ebde03a91cce33463261 + checksum: 25fc8e4c611fa6c4421e631432e9f0a6865a8cb07c9815ec9ac90d630271cad773b2ee5fe08066f7b95bebd18bb967f8ce05d018ee9ab0430f9dfd1d84665b6f languageName: node linkType: hard @@ -3286,13 +3286,13 @@ __metadata: linkType: hard "@types/pg@npm:^8.6.6": - version: 8.10.9 - resolution: "@types/pg@npm:8.10.9" + version: 8.11.0 + resolution: "@types/pg@npm:8.11.0" dependencies: "@types/node": "npm:*" pg-protocol: "npm:*" pg-types: "npm:^4.0.1" - checksum: 6b3bec7230d09da6459636a66dfd6fb538378e466ffff0a0bcd07d67aa4ddce49c73afc7442f53adec92a49dbf9e71d8d847e0075750d7545331735dfd92d22c + checksum: df2c2ac11fa5e8863a98aadce9a9168af5cfc38a226a228d8b1be513ef48d33ceb9bfaa64ef685a87e0611a4f8d94f2e0736bb2812fa00ed264f76679b86945d languageName: node linkType: hard @@ -3476,13 +3476,13 @@ __metadata: linkType: hard "@types/react@npm:*, @types/react@npm:16 || 17 || 18, @types/react@npm:>=16.9.11, @types/react@npm:^18.2.7": - version: 18.2.48 - resolution: "@types/react@npm:18.2.48" + version: 18.2.54 + resolution: "@types/react@npm:18.2.54" dependencies: "@types/prop-types": "npm:*" "@types/scheduler": "npm:*" csstype: "npm:^3.0.2" - checksum: 7e89f18ea2928b1638f564b156d692894dcb9352a7e0a807873c97e858abe1f23dbd165a25dd088a991344e973fdeef88ba5724bfb64504b74072cbc9c220c3a + checksum: ad38193c30a063a481aeec2460de6396c80d8de2f1c7a8cbb80a4e8bc594f74c308ce93e165d743b38507c3ac0a491c24ce0efbd84c9ab21fd5fd38d2963d329 languageName: node linkType: hard @@ -3599,9 +3599,9 @@ __metadata: linkType: hard "@types/uuid@npm:^9.0.0": - version: 9.0.7 - resolution: "@types/uuid@npm:9.0.7" - checksum: b329ebd4f9d1d8e08d4f2cc211be4922d70d1149f73d5772630e4a3acfb5170c6d37b3d7a39a0412f1a56e86e8a844c7f297c798b082f90380608bf766688787 + version: 9.0.8 + resolution: "@types/uuid@npm:9.0.8" + checksum: b411b93054cb1d4361919579ef3508a1f12bf15b5fdd97337d3d351bece6c921b52b6daeef89b62340fd73fd60da407878432a1af777f40648cbe53a01723489 languageName: node linkType: hard From 586b4faf61dac5156a79637b49ce07ca401077d4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 10:24:44 +0100 Subject: [PATCH 14/42] Update dependency haml_lint to v0.56.0 (#29082) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7c10a419ad..960bd48de4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -319,7 +319,7 @@ GEM activesupport (>= 5.1) haml (>= 4.0.6) railties (>= 5.1) - haml_lint (0.55.0) + haml_lint (0.56.0) haml (>= 5.0) parallel (~> 1.10) rainbow From 5ca45403e24522257da4ed608c265078b558ab8a Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 6 Feb 2024 04:33:11 -0500 Subject: [PATCH 15/42] Update `nsa` gem to version 0.3.0 (#29065) --- Gemfile | 2 +- Gemfile.lock | 18 ++++++------------ 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/Gemfile b/Gemfile index 906441ec67..5f09b4beb2 100644 --- a/Gemfile +++ b/Gemfile @@ -63,7 +63,7 @@ gem 'kaminari', '~> 1.2' gem 'link_header', '~> 0.0' gem 'mime-types', '~> 3.5.0', require: 'mime/types/columnar' gem 'nokogiri', '~> 1.15' -gem 'nsa', github: 'jhawthorn/nsa', ref: 'e020fcc3a54d993ab45b7194d89ab720296c111b' +gem 'nsa' gem 'oj', '~> 3.14' gem 'ox', '~> 2.14' gem 'parslet' diff --git a/Gemfile.lock b/Gemfile.lock index 960bd48de4..9de0af9a4b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,17 +7,6 @@ GIT hkdf (~> 0.2) jwt (~> 2.0) -GIT - remote: https://github.com/jhawthorn/nsa.git - revision: e020fcc3a54d993ab45b7194d89ab720296c111b - ref: e020fcc3a54d993ab45b7194d89ab720296c111b - specs: - nsa (0.2.8) - activesupport (>= 4.2, < 7.2) - concurrent-ruby (~> 1.0, >= 1.0.2) - sidekiq (>= 3.5) - statsd-ruby (~> 1.4, >= 1.4.0) - GEM remote: https://rubygems.org/ specs: @@ -468,6 +457,11 @@ GEM nokogiri (1.16.2) mini_portile2 (~> 2.8.2) racc (~> 1.4) + nsa (0.3.0) + activesupport (>= 4.2, < 7.2) + concurrent-ruby (~> 1.0, >= 1.0.2) + sidekiq (>= 3.5) + statsd-ruby (~> 1.4, >= 1.4.0) oj (3.16.3) bigdecimal (>= 3.0) omniauth (2.1.1) @@ -886,7 +880,7 @@ DEPENDENCIES net-http (~> 0.4.0) net-ldap (~> 0.18) nokogiri (~> 1.15) - nsa! + nsa oj (~> 3.14) omniauth (~> 2.0) omniauth-cas (~> 3.0.0.beta.1) From a2d8aa1583545d52b4825a38dc1880f7dd81223d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 10:33:41 +0100 Subject: [PATCH 16/42] Update dependency tzinfo-data to v1.2024.1 (#29052) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 9de0af9a4b..d6a51e2f0a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -765,7 +765,7 @@ GEM unf (~> 0.1.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2023.4) + tzinfo-data (1.2024.1) tzinfo (>= 1.0.0) unf (0.1.4) unf_ext From 779d987fbc42412f80cce93a8f5979525c894d5d Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 6 Feb 2024 04:34:28 -0500 Subject: [PATCH 17/42] Update `codedoc/codecov-action` to v4 (#29036) --- .github/workflows/test-ruby.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml index 346703ced4..4275f59420 100644 --- a/.github/workflows/test-ruby.yml +++ b/.github/workflows/test-ruby.yml @@ -139,7 +139,7 @@ jobs: - name: Upload coverage reports to Codecov if: matrix.ruby-version == '.ruby-version' - uses: codecov/codecov-action@v3 + uses: codecov/codecov-action@v4 with: files: coverage/lcov/mastodon.lcov From 66dda7c762d19c18dc1d7e3105a26377c5b6e932 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 6 Feb 2024 10:35:27 +0100 Subject: [PATCH 18/42] Fix already-invalid reports failing to resolve (#29027) --- app/models/report.rb | 6 ++---- spec/models/report_spec.rb | 13 +++++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/models/report.rb b/app/models/report.rb index 38da26d7b7..1b132753b5 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -47,9 +47,9 @@ class Report < ApplicationRecord delegate :local?, to: :account validates :comment, length: { maximum: 1_000 }, if: :local? - validates :rule_ids, absence: true, unless: :violation? + validates :rule_ids, absence: true, if: -> { (category_changed? || rule_ids_changed?) && !violation? } - validate :validate_rule_ids + validate :validate_rule_ids, if: -> { (category_changed? || rule_ids_changed?) && violation? } # entries here need to be kept in sync with the front-end: # - app/javascript/mastodon/features/notifications/components/report.jsx @@ -162,8 +162,6 @@ class Report < ApplicationRecord end def validate_rule_ids - return unless violation? - errors.add(:rule_ids, I18n.t('reports.errors.invalid_rules')) unless rules.size == rule_ids&.size end diff --git a/spec/models/report_spec.rb b/spec/models/report_spec.rb index c514c63b39..0168268bcb 100644 --- a/spec/models/report_spec.rb +++ b/spec/models/report_spec.rb @@ -133,5 +133,18 @@ describe Report do report = Fabricate.build(:report, account: remote_account, comment: Faker::Lorem.characters(number: 1001)) expect(report.valid?).to be true end + + it 'is invalid if it references invalid rules' do + report = Fabricate.build(:report, category: :violation, rule_ids: [-1]) + expect(report.valid?).to be false + expect(report).to model_have_error_on_field(:rule_ids) + end + + it 'is invalid if it references rules but category is not "violation"' do + rule = Fabricate(:rule) + report = Fabricate.build(:report, category: :spam, rule_ids: rule.id) + expect(report.valid?).to be false + expect(report).to model_have_error_on_field(:rule_ids) + end end end From 9ce914cc897d2b1100cee8cb6d792a2283d877ec Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 6 Feb 2024 10:35:36 +0100 Subject: [PATCH 19/42] Fix report reason selector in moderation interface not unselecting rules when changing category (#29026) --- .../mastodon/components/admin/ReportReasonSelector.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx b/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx index ecce92b309..90f4334a6e 100644 --- a/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx +++ b/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx @@ -124,7 +124,7 @@ class ReportReasonSelector extends PureComponent { api().put(`/api/v1/admin/reports/${id}`, { category, - rule_ids, + rule_ids: category === 'violation' ? rule_ids : [], }).catch(err => { console.error(err); }); From 90f4b8d53a027e39049b5b6f4decfe605f925bda Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 10:37:03 +0100 Subject: [PATCH 20/42] Update dependency postcss to v8.4.34 (#29103) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8055554014..8783c33f86 100644 --- a/yarn.lock +++ b/yarn.lock @@ -13144,13 +13144,13 @@ __metadata: linkType: hard "postcss@npm:^8.2.15, postcss@npm:^8.4.24, postcss@npm:^8.4.33": - version: 8.4.33 - resolution: "postcss@npm:8.4.33" + version: 8.4.34 + resolution: "postcss@npm:8.4.34" dependencies: nanoid: "npm:^3.3.7" picocolors: "npm:^1.0.0" source-map-js: "npm:^1.0.2" - checksum: 16eda83458fcd8a91bece287b5920c7f57164c3ea293e6c80d0ea71ce7843007bcd8592260a5160b9a7f02693e6ac93e2495b02d8c7596d3f3f72c1447e3ba79 + checksum: 4d6f072cdfdc1ced16b4336263d830f8b4397fc47b9b382e02f6448fda9386d881aa9d27fbe0dd124f59c76f3a5da4f360919d25dfc818eca50b48f042af35a8 languageName: node linkType: hard From 62028b1b1bf32623c13e2c5f3419c8ab03fc1db2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 10:38:32 +0100 Subject: [PATCH 21/42] Update libretranslate/libretranslate Docker tag to v1.5.5 (#29090) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .devcontainer/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 88979723c3..ecdf9f5f53 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -70,7 +70,7 @@ services: hard: -1 libretranslate: - image: libretranslate/libretranslate:v1.5.4 + image: libretranslate/libretranslate:v1.5.5 restart: unless-stopped volumes: - lt-data:/home/libretranslate/.local From 0bec5c0755cfb270c692fd39b0f22e98ab1b4e0b Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 6 Feb 2024 04:56:24 -0500 Subject: [PATCH 22/42] Remove migration base class switcher from `RailsSettingsMigration` (#29047) --- db/migrate/20161006213403_rails_settings_migration.rb | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/db/migrate/20161006213403_rails_settings_migration.rb b/db/migrate/20161006213403_rails_settings_migration.rb index 401b7a83b7..9764196fab 100644 --- a/db/migrate/20161006213403_rails_settings_migration.rb +++ b/db/migrate/20161006213403_rails_settings_migration.rb @@ -1,12 +1,6 @@ # frozen_string_literal: true -MIGRATION_BASE_CLASS = if ActiveRecord::VERSION::MAJOR >= 5 - ActiveRecord::Migration[5.0] - else - ActiveRecord::Migration[4.2] - end - -class RailsSettingsMigration < MIGRATION_BASE_CLASS +class RailsSettingsMigration < ActiveRecord::Migration[5.0] def self.up create_table :settings do |t| t.string :var, null: false From a31427a629df020a975276cbff157691e51d7456 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 12:33:06 +0100 Subject: [PATCH 23/42] Update dependency pino to v8.18.0 (#29043) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8783c33f86..75b4c355af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12667,8 +12667,8 @@ __metadata: linkType: hard "pino@npm:^8.17.1, pino@npm:^8.17.2": - version: 8.17.2 - resolution: "pino@npm:8.17.2" + version: 8.18.0 + resolution: "pino@npm:8.18.0" dependencies: atomic-sleep: "npm:^1.0.0" fast-redact: "npm:^3.1.1" @@ -12683,7 +12683,7 @@ __metadata: thread-stream: "npm:^2.0.0" bin: pino: bin.js - checksum: 9e55af6cd9d1833a4dbe64924fc73163295acd3c988a9c7db88926669f2574ab7ec607e8487b6dd71dbdad2d7c1c1aac439f37e59233f37220b1a9d88fa2ce01 + checksum: ca73bb31e4656954413b89f48c486b1680fec0c6bb12d4d796c5ccf8eca40f3ee12c9532a0fa61284ed9a800c14eaa0f496f520057ef70cdee0447114813e8eb languageName: node linkType: hard From 4cf07ed78c0f4959160f22506e1f03dc5737a815 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 6 Feb 2024 06:34:11 -0500 Subject: [PATCH 24/42] Add missing action logging to `api/v1/admin/reports#update` (#29044) --- .../api/v1/admin/reports_controller.rb | 1 + .../admin/reports_controller_spec.rb | 10 +++++++ spec/requests/api/v1/admin/reports_spec.rb | 26 +++++++++++++++---- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/app/controllers/api/v1/admin/reports_controller.rb b/app/controllers/api/v1/admin/reports_controller.rb index 9dfb181a28..7129a5f6ca 100644 --- a/app/controllers/api/v1/admin/reports_controller.rb +++ b/app/controllers/api/v1/admin/reports_controller.rb @@ -35,6 +35,7 @@ class Api::V1::Admin::ReportsController < Api::BaseController def update authorize @report, :update? @report.update!(report_params) + log_action :update, @report render json: @report, serializer: REST::Admin::ReportSerializer end diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb index 97daaf8da9..02760154fb 100644 --- a/spec/controllers/admin/reports_controller_spec.rb +++ b/spec/controllers/admin/reports_controller_spec.rb @@ -58,6 +58,7 @@ describe Admin::ReportsController do report.reload expect(report.action_taken_by_account).to eq user.account expect(report.action_taken?).to be true + expect(last_action_log.target).to eq(report) end end @@ -70,6 +71,7 @@ describe Admin::ReportsController do report.reload expect(report.action_taken_by_account).to be_nil expect(report.action_taken?).to be false + expect(last_action_log.target).to eq(report) end end @@ -81,6 +83,7 @@ describe Admin::ReportsController do expect(response).to redirect_to(admin_report_path(report)) report.reload expect(report.assigned_account).to eq user.account + expect(last_action_log.target).to eq(report) end end @@ -92,6 +95,13 @@ describe Admin::ReportsController do expect(response).to redirect_to(admin_report_path(report)) report.reload expect(report.assigned_account).to be_nil + expect(last_action_log.target).to eq(report) end end + + private + + def last_action_log + Admin::ActionLog.last + end end diff --git a/spec/requests/api/v1/admin/reports_spec.rb b/spec/requests/api/v1/admin/reports_spec.rb index 5403457db0..4b0b7e1713 100644 --- a/spec/requests/api/v1/admin/reports_spec.rb +++ b/spec/requests/api/v1/admin/reports_spec.rb @@ -151,7 +151,9 @@ RSpec.describe 'Reports' do let(:params) { { category: 'spam' } } it 'updates the report category', :aggregate_failures do - expect { subject }.to change { report.reload.category }.from('other').to('spam') + expect { subject } + .to change { report.reload.category }.from('other').to('spam') + .and create_an_action_log expect(response).to have_http_status(200) @@ -184,7 +186,9 @@ RSpec.describe 'Reports' do it_behaves_like 'forbidden for wrong role', '' it 'marks report as resolved', :aggregate_failures do - expect { subject }.to change { report.reload.unresolved? }.from(true).to(false) + expect { subject } + .to change { report.reload.unresolved? }.from(true).to(false) + .and create_an_action_log expect(response).to have_http_status(200) end end @@ -200,7 +204,9 @@ RSpec.describe 'Reports' do it_behaves_like 'forbidden for wrong role', '' it 'marks report as unresolved', :aggregate_failures do - expect { subject }.to change { report.reload.unresolved? }.from(false).to(true) + expect { subject } + .to change { report.reload.unresolved? }.from(false).to(true) + .and create_an_action_log expect(response).to have_http_status(200) end end @@ -216,7 +222,9 @@ RSpec.describe 'Reports' do it_behaves_like 'forbidden for wrong role', '' it 'assigns report to the requesting user', :aggregate_failures do - expect { subject }.to change { report.reload.assigned_account_id }.from(nil).to(user.account.id) + expect { subject } + .to change { report.reload.assigned_account_id }.from(nil).to(user.account.id) + .and create_an_action_log expect(response).to have_http_status(200) end end @@ -232,8 +240,16 @@ RSpec.describe 'Reports' do it_behaves_like 'forbidden for wrong role', '' it 'unassigns report from assignee', :aggregate_failures do - expect { subject }.to change { report.reload.assigned_account_id }.from(user.account.id).to(nil) + expect { subject } + .to change { report.reload.assigned_account_id }.from(user.account.id).to(nil) + .and create_an_action_log expect(response).to have_http_status(200) end end + + private + + def create_an_action_log + change(Admin::ActionLog, :count).by(1) + end end From dedefdc303a2438d9b9026797bb00a41930b91e2 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 6 Feb 2024 06:40:24 -0500 Subject: [PATCH 25/42] Move length value mapping to constant in ids to bigints migration (#29048) --- db/migrate/20170918125918_ids_to_bigints.rb | 152 +++++++++++--------- 1 file changed, 82 insertions(+), 70 deletions(-) diff --git a/db/migrate/20170918125918_ids_to_bigints.rb b/db/migrate/20170918125918_ids_to_bigints.rb index 83c5ab971b..64f1d0093a 100644 --- a/db/migrate/20170918125918_ids_to_bigints.rb +++ b/db/migrate/20170918125918_ids_to_bigints.rb @@ -7,80 +7,73 @@ class IdsToBigints < ActiveRecord::Migration[5.1] include Mastodon::MigrationHelpers include Mastodon::MigrationWarning + TABLE_COLUMN_MAPPING = [ + [:account_domain_blocks, :account_id], + [:account_domain_blocks, :id], + [:accounts, :id], + [:blocks, :account_id], + [:blocks, :id], + [:blocks, :target_account_id], + [:conversation_mutes, :account_id], + [:conversation_mutes, :id], + [:domain_blocks, :id], + [:favourites, :account_id], + [:favourites, :id], + [:favourites, :status_id], + [:follow_requests, :account_id], + [:follow_requests, :id], + [:follow_requests, :target_account_id], + [:follows, :account_id], + [:follows, :id], + [:follows, :target_account_id], + [:imports, :account_id], + [:imports, :id], + [:media_attachments, :account_id], + [:media_attachments, :id], + [:mentions, :account_id], + [:mentions, :id], + [:mutes, :account_id], + [:mutes, :id], + [:mutes, :target_account_id], + [:notifications, :account_id], + [:notifications, :from_account_id], + [:notifications, :id], + [:oauth_access_grants, :application_id], + [:oauth_access_grants, :id], + [:oauth_access_grants, :resource_owner_id], + [:oauth_access_tokens, :application_id], + [:oauth_access_tokens, :id], + [:oauth_access_tokens, :resource_owner_id], + [:oauth_applications, :id], + [:oauth_applications, :owner_id], + [:reports, :account_id], + [:reports, :action_taken_by_account_id], + [:reports, :id], + [:reports, :target_account_id], + [:session_activations, :access_token_id], + [:session_activations, :user_id], + [:session_activations, :web_push_subscription_id], + [:settings, :id], + [:settings, :thing_id], + [:statuses, :account_id], + [:statuses, :application_id], + [:statuses, :in_reply_to_account_id], + [:stream_entries, :account_id], + [:stream_entries, :id], + [:subscriptions, :account_id], + [:subscriptions, :id], + [:tags, :id], + [:users, :account_id], + [:users, :id], + [:web_settings, :id], + [:web_settings, :user_id], + ].freeze + disable_ddl_transaction! def migrate_columns(to_type) - included_columns = [ - [:account_domain_blocks, :account_id], - [:account_domain_blocks, :id], - [:accounts, :id], - [:blocks, :account_id], - [:blocks, :id], - [:blocks, :target_account_id], - [:conversation_mutes, :account_id], - [:conversation_mutes, :id], - [:domain_blocks, :id], - [:favourites, :account_id], - [:favourites, :id], - [:favourites, :status_id], - [:follow_requests, :account_id], - [:follow_requests, :id], - [:follow_requests, :target_account_id], - [:follows, :account_id], - [:follows, :id], - [:follows, :target_account_id], - [:imports, :account_id], - [:imports, :id], - [:media_attachments, :account_id], - [:media_attachments, :id], - [:mentions, :account_id], - [:mentions, :id], - [:mutes, :account_id], - [:mutes, :id], - [:mutes, :target_account_id], - [:notifications, :account_id], - [:notifications, :from_account_id], - [:notifications, :id], - [:oauth_access_grants, :application_id], - [:oauth_access_grants, :id], - [:oauth_access_grants, :resource_owner_id], - [:oauth_access_tokens, :application_id], - [:oauth_access_tokens, :id], - [:oauth_access_tokens, :resource_owner_id], - [:oauth_applications, :id], - [:oauth_applications, :owner_id], - [:reports, :account_id], - [:reports, :action_taken_by_account_id], - [:reports, :id], - [:reports, :target_account_id], - [:session_activations, :access_token_id], - [:session_activations, :user_id], - [:session_activations, :web_push_subscription_id], - [:settings, :id], - [:settings, :thing_id], - [:statuses, :account_id], - [:statuses, :application_id], - [:statuses, :in_reply_to_account_id], - [:stream_entries, :account_id], - [:stream_entries, :id], - [:subscriptions, :account_id], - [:subscriptions, :id], - [:tags, :id], - [:users, :account_id], - [:users, :id], - [:web_settings, :id], - [:web_settings, :user_id], - ] - included_columns << [:deprecated_preview_cards, :id] if table_exists?(:deprecated_preview_cards) + display_warning - migration_duration_warning(<<~EXPLANATION) - This migration has some sections that can be safely interrupted - and restarted later, and will tell you when those are occurring. - - For more information, see https://github.com/mastodon/mastodon/pull/5088 - EXPLANATION - - tables = included_columns.map(&:first).uniq table_sizes = {} # Sort tables by their size @@ -103,6 +96,25 @@ class IdsToBigints < ActiveRecord::Migration[5.1] end end + def display_warning + migration_duration_warning(<<~EXPLANATION) + This migration has some sections that can be safely interrupted + and restarted later, and will tell you when those are occurring. + + For more information, see https://github.com/mastodon/mastodon/pull/5088 + EXPLANATION + end + + def tables + included_columns.map(&:first).uniq + end + + def included_columns + TABLE_COLUMN_MAPPING.dup.tap do |included_columns| + included_columns << [:deprecated_preview_cards, :id] if table_exists?(:deprecated_preview_cards) + end + end + def up migrate_columns(:bigint) end From 4fb7f611de1cf33a74ff57f1c400e9cba7a24771 Mon Sep 17 00:00:00 2001 From: Emelia Smith Date: Tue, 6 Feb 2024 13:38:14 +0100 Subject: [PATCH 26/42] Return domain block digests from admin domain blocks API (#29092) --- app/serializers/rest/admin/domain_block_serializer.rb | 6 +++++- spec/requests/api/v1/admin/domain_blocks_spec.rb | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/serializers/rest/admin/domain_block_serializer.rb b/app/serializers/rest/admin/domain_block_serializer.rb index b955d008a6..e94a337cb8 100644 --- a/app/serializers/rest/admin/domain_block_serializer.rb +++ b/app/serializers/rest/admin/domain_block_serializer.rb @@ -1,11 +1,15 @@ # frozen_string_literal: true class REST::Admin::DomainBlockSerializer < ActiveModel::Serializer - attributes :id, :domain, :created_at, :severity, + attributes :id, :domain, :digest, :created_at, :severity, :reject_media, :reject_reports, :private_comment, :public_comment, :obfuscate def id object.id.to_s end + + def digest + object.domain_digest + end end diff --git a/spec/requests/api/v1/admin/domain_blocks_spec.rb b/spec/requests/api/v1/admin/domain_blocks_spec.rb index 1fb6fc8228..47aaf44d80 100644 --- a/spec/requests/api/v1/admin/domain_blocks_spec.rb +++ b/spec/requests/api/v1/admin/domain_blocks_spec.rb @@ -49,6 +49,7 @@ RSpec.describe 'Domain Blocks' do { id: domain_block.id.to_s, domain: domain_block.domain, + digest: domain_block.domain_digest, created_at: domain_block.created_at.strftime('%Y-%m-%dT%H:%M:%S.%LZ'), severity: domain_block.severity.to_s, reject_media: domain_block.reject_media, @@ -97,6 +98,7 @@ RSpec.describe 'Domain Blocks' do { id: domain_block.id.to_s, domain: domain_block.domain, + digest: domain_block.domain_digest, created_at: domain_block.created_at.strftime('%Y-%m-%dT%H:%M:%S.%LZ'), severity: domain_block.severity.to_s, reject_media: domain_block.reject_media, @@ -188,6 +190,7 @@ RSpec.describe 'Domain Blocks' do { id: domain_block.id.to_s, domain: domain_block.domain, + digest: domain_block.domain_digest, severity: 'suspend', } ) From df7acdcee516d6321a40c0f1cbc55c41b039e3c7 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 6 Feb 2024 07:47:04 -0500 Subject: [PATCH 27/42] Update markers API spec for error case (#29096) --- spec/requests/api/v1/markers_spec.rb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/spec/requests/api/v1/markers_spec.rb b/spec/requests/api/v1/markers_spec.rb index a1ca4ba754..b04adf2594 100644 --- a/spec/requests/api/v1/markers_spec.rb +++ b/spec/requests/api/v1/markers_spec.rb @@ -52,5 +52,19 @@ RSpec.describe 'API Markers' do expect(user.markers.first.last_read_id).to eq 70_120 end end + + context 'when database object becomes stale' do + before do + allow(Marker).to receive(:transaction).and_raise(ActiveRecord::StaleObjectError) + post '/api/v1/markers', headers: headers, params: { home: { last_read_id: '69420' } } + end + + it 'returns error json' do + expect(response) + .to have_http_status(409) + expect(body_as_json) + .to include(error: /Conflict during update/) + end + end end end From 577520b6376f5ad14aa343a2aba881e7e1ef1897 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 6 Feb 2024 07:49:48 -0500 Subject: [PATCH 28/42] Replace deprecated `Sidekiq::Testing` block style (#29097) --- spec/rails_helper.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index aaf587f49b..5125339096 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -95,8 +95,13 @@ RSpec.configure do |config| self.use_transactional_tests = true end - config.around(:each, :sidekiq_inline) do |example| - Sidekiq::Testing.inline!(&example) + config.around do |example| + if example.metadata[:sidekiq_inline] == true + Sidekiq::Testing.inline! + else + Sidekiq::Testing.fake! + end + example.run end config.before :each, type: :cli do From e8cc98977d081898682e0ca25154be7fb2c358fb Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 13:52:28 +0100 Subject: [PATCH 29/42] Update dependency bootsnap to '~> 1.18.0' (#29019) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 5f09b4beb2..355e69b0c4 100644 --- a/Gemfile +++ b/Gemfile @@ -26,7 +26,7 @@ gem 'blurhash', '~> 0.1' gem 'active_model_serializers', '~> 0.10' gem 'addressable', '~> 2.8' -gem 'bootsnap', '~> 1.17.0', require: false +gem 'bootsnap', '~> 1.18.0', require: false gem 'browser' gem 'charlock_holmes', '~> 0.7.7' gem 'chewy', '~> 7.3' diff --git a/Gemfile.lock b/Gemfile.lock index d6a51e2f0a..57ad96437f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -144,7 +144,7 @@ GEM binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) blurhash (0.1.7) - bootsnap (1.17.1) + bootsnap (1.18.3) msgpack (~> 1.2) brakeman (6.1.1) racc @@ -823,7 +823,7 @@ DEPENDENCIES better_errors (~> 2.9) binding_of_caller (~> 1.0) blurhash (~> 0.1) - bootsnap (~> 1.17.0) + bootsnap (~> 1.18.0) brakeman (~> 6.0) browser bundler-audit (~> 0.9) From 0877f6fda417d27e7e6b9bd1d888dec1b97a7792 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 6 Feb 2024 07:56:22 -0500 Subject: [PATCH 30/42] Remove redundant `return` in `IntentsController` (#29099) --- app/controllers/intents_controller.rb | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/app/controllers/intents_controller.rb b/app/controllers/intents_controller.rb index ea024e30e6..65c315208d 100644 --- a/app/controllers/intents_controller.rb +++ b/app/controllers/intents_controller.rb @@ -1,27 +1,26 @@ # frozen_string_literal: true class IntentsController < ApplicationController - before_action :check_uri + EXPECTED_SCHEME = 'web+mastodon' + before_action :handle_invalid_uri, unless: :valid_uri? rescue_from Addressable::URI::InvalidURIError, with: :handle_invalid_uri def show - if uri.scheme == 'web+mastodon' - case uri.host - when 'follow' - return redirect_to authorize_interaction_path(uri: uri.query_values['uri'].delete_prefix('acct:')) - when 'share' - return redirect_to share_path(text: uri.query_values['text']) - end + case uri.host + when 'follow' + redirect_to authorize_interaction_path(uri: uri.query_values['uri'].delete_prefix('acct:')) + when 'share' + redirect_to share_path(text: uri.query_values['text']) + else + handle_invalid_uri end - - not_found end private - def check_uri - not_found if uri.blank? + def valid_uri? + uri.present? && uri.scheme == EXPECTED_SCHEME end def handle_invalid_uri From 978fdc71cab327c98b3c03c05f3f716fbeedf6c9 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 6 Feb 2024 08:04:02 -0500 Subject: [PATCH 31/42] Reduce expectation count in example from `ProcessAccountService` spec (#29100) --- .rubocop_todo.yml | 2 +- .../process_account_service_spec.rb | 24 ++++++++++++------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index c8165c1edf..09e9fd73d8 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -39,7 +39,7 @@ RSpec/ExampleLength: Max: 22 RSpec/MultipleExpectations: - Max: 8 + Max: 7 # Configuration parameters: AllowSubject. RSpec/MultipleMemoizedHelpers: diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb index 9abe03181e..824577d1b0 100644 --- a/spec/services/activitypub/process_account_service_spec.rb +++ b/spec/services/activitypub/process_account_service_spec.rb @@ -21,14 +21,22 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do it 'parses out of attachment' do account = subject.call('alice', 'example.com', payload) - expect(account.fields).to be_a Array - expect(account.fields.size).to eq 2 - expect(account.fields[0]).to be_a Account::Field - expect(account.fields[0].name).to eq 'Pronouns' - expect(account.fields[0].value).to eq 'They/them' - expect(account.fields[1]).to be_a Account::Field - expect(account.fields[1].name).to eq 'Occupation' - expect(account.fields[1].value).to eq 'Unit test' + + expect(account.fields) + .to be_an(Array) + .and have_attributes(size: 2) + expect(account.fields.first) + .to be_an(Account::Field) + .and have_attributes( + name: eq('Pronouns'), + value: eq('They/them') + ) + expect(account.fields.last) + .to be_an(Account::Field) + .and have_attributes( + name: eq('Occupation'), + value: eq('Unit test') + ) end end From 2d6ab445562fd6c4d56d7aef5dd406c15de8bbf9 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 6 Feb 2024 08:10:00 -0500 Subject: [PATCH 32/42] Reduce request/response round-trips in ap/collections controller spec (#29102) --- .../collections_controller_spec.rb | 92 ++++++------------- 1 file changed, 29 insertions(+), 63 deletions(-) diff --git a/spec/controllers/activitypub/collections_controller_spec.rb b/spec/controllers/activitypub/collections_controller_spec.rb index cf484ff5a4..11ef03c842 100644 --- a/spec/controllers/activitypub/collections_controller_spec.rb +++ b/spec/controllers/activitypub/collections_controller_spec.rb @@ -17,34 +17,27 @@ RSpec.describe ActivityPub::CollectionsController do end describe 'GET #show' do - context 'when id is "featured"' do - context 'without signature' do - subject(:response) { get :show, params: { id: 'featured', account_username: account.username } } + subject(:response) { get :show, params: { id: id, account_username: account.username } } - let(:body) { body_as_json } + context 'when id is "featured"' do + let(:id) { 'featured' } + + context 'without signature' do let(:remote_account) { nil } - it 'returns http success' do + it 'returns http success and correct media type' do expect(response).to have_http_status(200) - end - - it 'returns application/activity+json' do expect(response.media_type).to eq 'application/activity+json' end it_behaves_like 'cacheable response' - it 'returns orderedItems with pinned statuses' do - expect(body[:orderedItems]).to be_an Array - expect(body[:orderedItems].size).to eq 3 - end - - it 'includes URI of private pinned status' do - expect(body[:orderedItems]).to include(ActivityPub::TagManager.instance.uri_for(private_pinned)) - end - - it 'does not include contents of private pinned status' do - expect(response.body).to_not include(private_pinned.text) + it 'returns orderedItems with correct items' do + expect(body_as_json[:orderedItems]) + .to be_an(Array) + .and have_attributes(size: 3) + .and include(ActivityPub::TagManager.instance.uri_for(private_pinned)) + .and not_include(private_pinned.text) end context 'when account is permanently suspended' do @@ -73,33 +66,19 @@ RSpec.describe ActivityPub::CollectionsController do let(:remote_account) { Fabricate(:account, domain: 'example.com') } context 'when getting a featured resource' do - before do - get :show, params: { id: 'featured', account_username: account.username } - end - - it 'returns http success' do + it 'returns http success and correct media type' do expect(response).to have_http_status(200) - end - - it 'returns application/activity+json' do expect(response.media_type).to eq 'application/activity+json' end it_behaves_like 'cacheable response' - it 'returns orderedItems with pinned statuses' do - json = body_as_json - expect(json[:orderedItems]).to be_an Array - expect(json[:orderedItems].size).to eq 3 - end - - it 'includes URI of private pinned status' do - json = body_as_json - expect(json[:orderedItems]).to include(ActivityPub::TagManager.instance.uri_for(private_pinned)) - end - - it 'does not include contents of private pinned status' do - expect(response.body).to_not include(private_pinned.text) + it 'returns orderedItems with expected items' do + expect(body_as_json[:orderedItems]) + .to be_an(Array) + .and have_attributes(size: 3) + .and include(ActivityPub::TagManager.instance.uri_for(private_pinned)) + .and not_include(private_pinned.text) end end @@ -111,50 +90,36 @@ RSpec.describe ActivityPub::CollectionsController do context 'when signed request account is blocked' do before do account.block!(remote_account) - get :show, params: { id: 'featured', account_username: account.username } end - it 'returns http success' do + it 'returns http success and correct media type and cache headers' do expect(response).to have_http_status(200) - end - - it 'returns application/activity+json' do expect(response.media_type).to eq 'application/activity+json' - end - - it 'returns private Cache-Control header' do expect(response.headers['Cache-Control']).to include 'private' end it 'returns empty orderedItems' do - json = body_as_json - expect(json[:orderedItems]).to be_an Array - expect(json[:orderedItems].size).to eq 0 + expect(body_as_json[:orderedItems]) + .to be_an(Array) + .and have_attributes(size: 0) end end context 'when signed request account is domain blocked' do before do account.block_domain!(remote_account.domain) - get :show, params: { id: 'featured', account_username: account.username } end - it 'returns http success' do + it 'returns http success and correct media type and cache headers' do expect(response).to have_http_status(200) - end - - it 'returns application/activity+json' do expect(response.media_type).to eq 'application/activity+json' - end - - it 'returns private Cache-Control header' do expect(response.headers['Cache-Control']).to include 'private' end it 'returns empty orderedItems' do - json = body_as_json - expect(json[:orderedItems]).to be_an Array - expect(json[:orderedItems].size).to eq 0 + expect(body_as_json[:orderedItems]) + .to be_an(Array) + .and have_attributes(size: 0) end end end @@ -162,8 +127,9 @@ RSpec.describe ActivityPub::CollectionsController do end context 'when id is not "featured"' do + let(:id) { 'hoge' } + it 'returns http not found' do - get :show, params: { id: 'hoge', account_username: account.username } expect(response).to have_http_status(404) end end From 69e61fff38b426109bd074ccf93f5d2874d430c2 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 6 Feb 2024 08:18:37 -0500 Subject: [PATCH 33/42] Move direct serializer usage out of admin view partial (#29028) --- app/helpers/react_component_helper.rb | 11 +++++++++++ app/views/admin/reports/_media_attachments.html.haml | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/helpers/react_component_helper.rb b/app/helpers/react_component_helper.rb index ce616e8306..821a6f1e2d 100644 --- a/app/helpers/react_component_helper.rb +++ b/app/helpers/react_component_helper.rb @@ -15,9 +15,20 @@ module ReactComponentHelper div_tag_with_data(data) end + def serialized_media_attachments(media_attachments) + media_attachments.map { |attachment| serialized_attachment(attachment) } + end + private def div_tag_with_data(data) content_tag(:div, nil, data: data) end + + def serialized_attachment(attachment) + ActiveModelSerializers::SerializableResource.new( + attachment, + serializer: REST::MediaAttachmentSerializer + ).as_json + end end diff --git a/app/views/admin/reports/_media_attachments.html.haml b/app/views/admin/reports/_media_attachments.html.haml index 3c52d69178..45cc4c5aa3 100644 --- a/app/views/admin/reports/_media_attachments.html.haml +++ b/app/views/admin/reports/_media_attachments.html.haml @@ -12,6 +12,6 @@ = react_component :media_gallery, height: 343, lang: status.language, - media: status.ordered_media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json }, + media: serialized_media_attachments(status.ordered_media_attachments), sensitive: status.sensitive?, visible: false From cf42eba0f997aa8065beac853b79d993e8a2495b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 14:31:54 +0100 Subject: [PATCH 34/42] Update dependency brakeman to v6.1.2 (#29062) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 57ad96437f..b76f449b26 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -146,7 +146,7 @@ GEM blurhash (0.1.7) bootsnap (1.18.3) msgpack (~> 1.2) - brakeman (6.1.1) + brakeman (6.1.2) racc browser (5.3.1) brpoplpush-redis_script (0.1.3) From 93a5b3f9df7dcf1965525ee2a1202e5f1e07bf05 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 6 Feb 2024 08:33:42 -0500 Subject: [PATCH 35/42] Move status serializer chooser to private method (#29030) --- app/controllers/api/v1/statuses_controller.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb index 064e7632a8..702896db24 100644 --- a/app/controllers/api/v1/statuses_controller.rb +++ b/app/controllers/api/v1/statuses_controller.rb @@ -71,7 +71,7 @@ class Api::V1::StatusesController < Api::BaseController with_rate_limit: true ) - render json: @status, serializer: @status.is_a?(ScheduledStatus) ? REST::ScheduledStatusSerializer : REST::StatusSerializer + render json: @status, serializer: serializer_for_status rescue PostStatusService::UnexpectedMentionsError => e unexpected_accounts = ActiveModel::Serializer::CollectionSerializer.new( e.accounts, @@ -155,6 +155,10 @@ class Api::V1::StatusesController < Api::BaseController ) end + def serializer_for_status + @status.is_a?(ScheduledStatus) ? REST::ScheduledStatusSerializer : REST::StatusSerializer + end + def pagination_params(core_params) params.slice(:limit).permit(:limit).merge(core_params) end From 0df86d77fd5f57fc88cfd00a2cf2c265215a2839 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 6 Feb 2024 09:36:04 -0500 Subject: [PATCH 36/42] Reduce `RSpec/ExampleLength` in PostStatusService spec example (#29105) --- spec/services/post_status_service_spec.rb | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb index 1e5c420a63..d10a82607e 100644 --- a/spec/services/post_status_service_spec.rb +++ b/spec/services/post_status_service_spec.rb @@ -228,13 +228,7 @@ RSpec.describe PostStatusService, type: :service do subject.call( account, text: 'test status update', - media_ids: [ - Fabricate(:media_attachment, account: account), - Fabricate(:media_attachment, account: account), - Fabricate(:media_attachment, account: account), - Fabricate(:media_attachment, account: account), - Fabricate(:media_attachment, account: account), - ].map(&:id) + media_ids: Array.new(5) { Fabricate(:media_attachment, account: account) }.map(&:id) ) end.to raise_error( Mastodon::ValidationError, From 2f19ddd1fa1c14db1edaedc93f29bb4f66ab2cf0 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 6 Feb 2024 09:54:26 -0500 Subject: [PATCH 37/42] Move status serializer error handling to private method (#29031) --- app/controllers/api/v1/statuses_controller.rb | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb index 702896db24..01c3718763 100644 --- a/app/controllers/api/v1/statuses_controller.rb +++ b/app/controllers/api/v1/statuses_controller.rb @@ -73,11 +73,7 @@ class Api::V1::StatusesController < Api::BaseController render json: @status, serializer: serializer_for_status rescue PostStatusService::UnexpectedMentionsError => e - unexpected_accounts = ActiveModel::Serializer::CollectionSerializer.new( - e.accounts, - serializer: REST::AccountSerializer - ) - render json: { error: e.message, unexpected_accounts: unexpected_accounts }, status: 422 + render json: unexpected_accounts_error_json(e), status: 422 end def update @@ -159,6 +155,17 @@ class Api::V1::StatusesController < Api::BaseController @status.is_a?(ScheduledStatus) ? REST::ScheduledStatusSerializer : REST::StatusSerializer end + def unexpected_accounts_error_json(error) + { + error: error.message, + unexpected_accounts: serialized_accounts(error.accounts), + } + end + + def serialized_accounts(accounts) + ActiveModel::Serializer::CollectionSerializer.new(accounts, serializer: REST::AccountSerializer) + end + def pagination_params(core_params) params.slice(:limit).permit(:limit).merge(core_params) end From 64300e0fe344b9dee015e65423c327742db246af Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 6 Feb 2024 16:32:09 +0100 Subject: [PATCH 38/42] Fix self-destruct schedule not actually replacing initial schedule (#29049) --- config/initializers/sidekiq.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 9a2743ed5b..53b02edc40 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -26,6 +26,7 @@ Sidekiq.configure_server do |config| 'queue' => 'scheduler', }, } + SidekiqScheduler::Scheduler.instance.reload_schedule! end end From 1e0b0a3486cf04666b7cbd67a4a72cf7f8068c97 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 6 Feb 2024 11:42:25 -0500 Subject: [PATCH 39/42] Use SQL heredoc on long statement lines in migrations (#29112) --- ...0317193015_add_search_index_to_accounts.rb | 12 +++++++- ...5042_add_case_insensitive_index_to_tags.rb | 29 +++++++++++++++++-- ..._fix_canonical_email_blocks_foreign_key.rb | 17 +++++++++-- .../20220309213005_fix_reblog_deleted_at.rb | 11 ++++++- 4 files changed, 62 insertions(+), 7 deletions(-) diff --git a/db/migrate/20170317193015_add_search_index_to_accounts.rb b/db/migrate/20170317193015_add_search_index_to_accounts.rb index e29da61b15..0edc381549 100644 --- a/db/migrate/20170317193015_add_search_index_to_accounts.rb +++ b/db/migrate/20170317193015_add_search_index_to_accounts.rb @@ -2,7 +2,17 @@ class AddSearchIndexToAccounts < ActiveRecord::Migration[5.0] def up - execute 'CREATE INDEX search_index ON accounts USING gin((setweight(to_tsvector(\'simple\', accounts.display_name), \'A\') || setweight(to_tsvector(\'simple\', accounts.username), \'B\') || setweight(to_tsvector(\'simple\', coalesce(accounts.domain, \'\')), \'C\')));' + execute <<~SQL.squish + CREATE INDEX search_index + ON accounts + USING gin( + ( + setweight(to_tsvector('simple', accounts.display_name), 'A') || + setweight(to_tsvector('simple', accounts.username), 'B') || + setweight(to_tsvector('simple', coalesce(accounts.domain, '')), 'C') + ) + ) + SQL end def down diff --git a/db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb b/db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb index f2d3aa8ee8..02f073e14f 100644 --- a/db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb +++ b/db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb @@ -9,9 +9,32 @@ class AddCaseInsensitiveIndexToTags < ActiveRecord::Migration[5.2] redundant_tag_ids = row['ids'].split(',')[1..] safety_assured do - execute "UPDATE accounts_tags AS t0 SET tag_id = #{canonical_tag_id} WHERE tag_id IN (#{redundant_tag_ids.join(', ')}) AND NOT EXISTS (SELECT t1.tag_id FROM accounts_tags AS t1 WHERE t1.tag_id = #{canonical_tag_id} AND t1.account_id = t0.account_id)" - execute "UPDATE statuses_tags AS t0 SET tag_id = #{canonical_tag_id} WHERE tag_id IN (#{redundant_tag_ids.join(', ')}) AND NOT EXISTS (SELECT t1.tag_id FROM statuses_tags AS t1 WHERE t1.tag_id = #{canonical_tag_id} AND t1.status_id = t0.status_id)" - execute "UPDATE featured_tags AS t0 SET tag_id = #{canonical_tag_id} WHERE tag_id IN (#{redundant_tag_ids.join(', ')}) AND NOT EXISTS (SELECT t1.tag_id FROM featured_tags AS t1 WHERE t1.tag_id = #{canonical_tag_id} AND t1.account_id = t0.account_id)" + execute <<~SQL.squish + UPDATE accounts_tags + AS t0 + SET tag_id = #{canonical_tag_id} + WHERE + tag_id IN (#{redundant_tag_ids.join(', ')}) + AND NOT EXISTS (SELECT t1.tag_id FROM accounts_tags AS t1 WHERE t1.tag_id = #{canonical_tag_id} AND t1.account_id = t0.account_id) + SQL + + execute <<~SQL.squish + UPDATE statuses_tags + AS t0 + SET tag_id = #{canonical_tag_id} + WHERE + tag_id IN (#{redundant_tag_ids.join(', ')}) + AND NOT EXISTS (SELECT t1.tag_id FROM statuses_tags AS t1 WHERE t1.tag_id = #{canonical_tag_id} AND t1.status_id = t0.status_id) + SQL + + execute <<~SQL.squish + UPDATE featured_tags + AS t0 + SET tag_id = #{canonical_tag_id} + WHERE + tag_id IN (#{redundant_tag_ids.join(', ')}) + AND NOT EXISTS (SELECT t1.tag_id FROM featured_tags AS t1 WHERE t1.tag_id = #{canonical_tag_id} AND t1.account_id = t0.account_id) + SQL end Tag.where(id: redundant_tag_ids).in_batches.delete_all diff --git a/db/migrate/20210630000137_fix_canonical_email_blocks_foreign_key.rb b/db/migrate/20210630000137_fix_canonical_email_blocks_foreign_key.rb index 9b475966bb..90a1b1a5cf 100644 --- a/db/migrate/20210630000137_fix_canonical_email_blocks_foreign_key.rb +++ b/db/migrate/20210630000137_fix_canonical_email_blocks_foreign_key.rb @@ -3,13 +3,26 @@ class FixCanonicalEmailBlocksForeignKey < ActiveRecord::Migration[6.1] def up safety_assured do - execute 'ALTER TABLE canonical_email_blocks DROP CONSTRAINT fk_rails_1ecb262096, ADD CONSTRAINT fk_rails_1ecb262096 FOREIGN KEY (reference_account_id) REFERENCES accounts(id) ON DELETE CASCADE;' + execute <<~SQL.squish + ALTER TABLE canonical_email_blocks + DROP CONSTRAINT fk_rails_1ecb262096, + ADD CONSTRAINT fk_rails_1ecb262096 + FOREIGN KEY (reference_account_id) + REFERENCES accounts(id) + ON DELETE CASCADE + SQL end end def down safety_assured do - execute 'ALTER TABLE canonical_email_blocks DROP CONSTRAINT fk_rails_1ecb262096, ADD CONSTRAINT fk_rails_1ecb262096 FOREIGN KEY (reference_account_id) REFERENCES accounts(id);' + execute <<~SQL.squish + ALTER TABLE canonical_email_blocks + DROP CONSTRAINT fk_rails_1ecb262096, + ADD CONSTRAINT fk_rails_1ecb262096 + FOREIGN KEY (reference_account_id) + REFERENCES accounts(id) + SQL end end end diff --git a/db/migrate/20220309213005_fix_reblog_deleted_at.rb b/db/migrate/20220309213005_fix_reblog_deleted_at.rb index e3474beeb1..7fb9bff26c 100644 --- a/db/migrate/20220309213005_fix_reblog_deleted_at.rb +++ b/db/migrate/20220309213005_fix_reblog_deleted_at.rb @@ -4,7 +4,16 @@ class FixReblogDeletedAt < ActiveRecord::Migration[6.1] disable_ddl_transaction! def up - safety_assured { execute 'UPDATE statuses s SET deleted_at = r.deleted_at FROM statuses r WHERE s.reblog_of_id = r.id AND r.deleted_at IS NOT NULL' } + safety_assured do + execute <<~SQL.squish + UPDATE statuses s + SET deleted_at = r.deleted_at + FROM statuses r + WHERE + s.reblog_of_id = r.id + AND r.deleted_at IS NOT NULL + SQL + end end def down; end From 7ee93b74317c0b51516146fbe32e72cd9bbb151c Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 6 Feb 2024 18:10:17 +0100 Subject: [PATCH 40/42] Change `source` attribute of `Suggestion` entity in `/api/v2/suggestions` back to a string (#29108) --- .../components/inline_follow_suggestions.jsx | 8 ++++---- app/models/account_suggestions.rb | 4 ++-- app/models/account_suggestions/suggestion.rb | 2 +- app/serializers/rest/suggestion_serializer.rb | 15 +++++++++++++- spec/requests/api/v2/suggestions_spec.rb | 20 ++++++++++++++++++- .../rest/suggestion_serializer_spec.rb | 2 +- 6 files changed, 41 insertions(+), 10 deletions(-) diff --git a/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.jsx b/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.jsx index ac414d04d6..f76526e045 100644 --- a/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.jsx +++ b/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.jsx @@ -59,7 +59,7 @@ Source.propTypes = { id: PropTypes.oneOf(['friends_of_friends', 'similar_to_recently_followed', 'featured', 'most_followed', 'most_interactions']), }; -const Card = ({ id, source }) => { +const Card = ({ id, sources }) => { const intl = useIntl(); const account = useSelector(state => state.getIn(['accounts', id])); const relationship = useSelector(state => state.getIn(['relationships', id])); @@ -89,7 +89,7 @@ const Card = ({ id, source }) => {
- {firstVerifiedField ? : } + {firstVerifiedField ? : }
diff --git a/app/models/account_suggestions.rb b/app/models/account_suggestions.rb index 25c8b04d50..98ccf4ad4f 100644 --- a/app/models/account_suggestions.rb +++ b/app/models/account_suggestions.rb @@ -31,12 +31,12 @@ class AccountSuggestions account_ids = account_ids_with_sources[offset, limit] accounts_map = Account.where(id: account_ids.map(&:first)).includes(:account_stat, :user).index_by(&:id) - account_ids.filter_map do |(account_id, source)| + account_ids.filter_map do |(account_id, sources)| next unless accounts_map.key?(account_id) AccountSuggestions::Suggestion.new( account: accounts_map[account_id], - source: source + sources: sources ) end end diff --git a/app/models/account_suggestions/suggestion.rb b/app/models/account_suggestions/suggestion.rb index 2c6f4d27f5..8a5888069a 100644 --- a/app/models/account_suggestions/suggestion.rb +++ b/app/models/account_suggestions/suggestion.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class AccountSuggestions::Suggestion < ActiveModelSerializers::Model - attributes :account, :source + attributes :account, :sources delegate :id, to: :account, prefix: true end diff --git a/app/serializers/rest/suggestion_serializer.rb b/app/serializers/rest/suggestion_serializer.rb index 3d697fd9f1..c60f343ba4 100644 --- a/app/serializers/rest/suggestion_serializer.rb +++ b/app/serializers/rest/suggestion_serializer.rb @@ -1,7 +1,20 @@ # frozen_string_literal: true class REST::SuggestionSerializer < ActiveModel::Serializer - attributes :source + attributes :source, :sources has_one :account, serializer: REST::AccountSerializer + + LEGACY_SOURCE_TYPE_MAP = { + featured: 'staff', + most_followed: 'global', + most_interactions: 'global', + # NOTE: Those are not completely accurate, but those are personalized interactions + similar_to_recently_followed: 'past_interactions', + friends_of_friends: 'past_interactions', + }.freeze + + def source + LEGACY_SOURCE_TYPE_MAP[object.sources.first] + end end diff --git a/spec/requests/api/v2/suggestions_spec.rb b/spec/requests/api/v2/suggestions_spec.rb index 5f1c97b8ae..a7d6a0864f 100644 --- a/spec/requests/api/v2/suggestions_spec.rb +++ b/spec/requests/api/v2/suggestions_spec.rb @@ -9,10 +9,28 @@ describe 'Suggestions API' do let(:headers) { { 'Authorization' => "Bearer #{token.token}" } } describe 'GET /api/v2/suggestions' do - it 'returns http success' do + let(:bob) { Fabricate(:account) } + let(:jeff) { Fabricate(:account) } + let(:params) { {} } + + before do + Setting.bootstrap_timeline_accounts = [bob, jeff].map(&:acct).join(',') + end + + it 'returns the expected suggestions' do get '/api/v2/suggestions', headers: headers expect(response).to have_http_status(200) + + expect(body_as_json).to match_array( + [bob, jeff].map do |account| + hash_including({ + source: 'staff', + sources: ['featured'], + account: hash_including({ id: account.id.to_s }), + }) + end + ) end end end diff --git a/spec/serializers/rest/suggestion_serializer_spec.rb b/spec/serializers/rest/suggestion_serializer_spec.rb index 60420d8023..b5efba082d 100644 --- a/spec/serializers/rest/suggestion_serializer_spec.rb +++ b/spec/serializers/rest/suggestion_serializer_spec.rb @@ -7,7 +7,7 @@ describe REST::SuggestionSerializer do let(:record) do AccountSuggestions::Suggestion.new( account: account, - source: 'SuggestionSource' + sources: ['SuggestionSource'] ) end let(:account) { Fabricate(:account) } From 90ccf7beb2d56f723014b9a05ed20f94c7875e58 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 19:47:44 +0100 Subject: [PATCH 41/42] New Crowdin Translations (automated) (#28965) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/af.json | 25 ++- app/javascript/mastodon/locales/ar.json | 47 +++++- app/javascript/mastodon/locales/ast.json | 6 + app/javascript/mastodon/locales/be.json | 30 +++- app/javascript/mastodon/locales/bg.json | 17 +- app/javascript/mastodon/locales/br.json | 10 +- app/javascript/mastodon/locales/ca.json | 21 ++- app/javascript/mastodon/locales/cs.json | 39 ++++- app/javascript/mastodon/locales/cy.json | 28 +++- app/javascript/mastodon/locales/da.json | 11 +- app/javascript/mastodon/locales/de.json | 12 +- app/javascript/mastodon/locales/el.json | 5 - app/javascript/mastodon/locales/en-GB.json | 30 +++- app/javascript/mastodon/locales/eo.json | 4 - app/javascript/mastodon/locales/es-AR.json | 30 ++-- app/javascript/mastodon/locales/es-MX.json | 12 +- app/javascript/mastodon/locales/es.json | 15 +- app/javascript/mastodon/locales/et.json | 6 - app/javascript/mastodon/locales/eu.json | 16 +- app/javascript/mastodon/locales/fa.json | 6 - app/javascript/mastodon/locales/fi.json | 158 ++++++++++--------- app/javascript/mastodon/locales/fil.json | 84 +++++++++- app/javascript/mastodon/locales/fo.json | 12 +- app/javascript/mastodon/locales/fr-CA.json | 22 ++- app/javascript/mastodon/locales/fr.json | 22 ++- app/javascript/mastodon/locales/fy.json | 28 +++- app/javascript/mastodon/locales/ga.json | 6 + app/javascript/mastodon/locales/gd.json | 43 ++++- app/javascript/mastodon/locales/gl.json | 28 +++- app/javascript/mastodon/locales/he.json | 15 +- app/javascript/mastodon/locales/hi.json | 2 - app/javascript/mastodon/locales/hr.json | 1 - app/javascript/mastodon/locales/hu.json | 30 ++-- app/javascript/mastodon/locales/ia.json | 60 +++++++ app/javascript/mastodon/locales/id.json | 2 - app/javascript/mastodon/locales/ie.json | 6 - app/javascript/mastodon/locales/io.json | 4 - app/javascript/mastodon/locales/is.json | 16 +- app/javascript/mastodon/locales/it.json | 12 +- app/javascript/mastodon/locales/ja.json | 25 ++- app/javascript/mastodon/locales/kab.json | 4 + app/javascript/mastodon/locales/ko.json | 20 +-- app/javascript/mastodon/locales/lad.json | 149 ++++++++++------- app/javascript/mastodon/locales/lt.json | 71 ++++++++- app/javascript/mastodon/locales/lv.json | 4 - app/javascript/mastodon/locales/ms.json | 4 - app/javascript/mastodon/locales/my.json | 4 - app/javascript/mastodon/locales/nl.json | 28 ++-- app/javascript/mastodon/locales/nn.json | 31 ++-- app/javascript/mastodon/locales/no.json | 6 - app/javascript/mastodon/locales/oc.json | 2 - app/javascript/mastodon/locales/pa.json | 30 ++++ app/javascript/mastodon/locales/pl.json | 19 ++- app/javascript/mastodon/locales/pt-BR.json | 12 +- app/javascript/mastodon/locales/pt-PT.json | 12 +- app/javascript/mastodon/locales/ro.json | 1 - app/javascript/mastodon/locales/ru.json | 30 +++- app/javascript/mastodon/locales/si.json | 3 - app/javascript/mastodon/locales/sk.json | 24 ++- app/javascript/mastodon/locales/sl.json | 28 +++- app/javascript/mastodon/locales/sq.json | 12 +- app/javascript/mastodon/locales/sr-Latn.json | 28 +++- app/javascript/mastodon/locales/sr.json | 12 +- app/javascript/mastodon/locales/sv.json | 13 +- app/javascript/mastodon/locales/th.json | 28 +++- app/javascript/mastodon/locales/tr.json | 28 +++- app/javascript/mastodon/locales/uk.json | 29 +++- app/javascript/mastodon/locales/vi.json | 28 +++- app/javascript/mastodon/locales/zh-CN.json | 12 +- app/javascript/mastodon/locales/zh-HK.json | 12 +- app/javascript/mastodon/locales/zh-TW.json | 12 +- config/locales/activerecord.eu.yml | 2 +- config/locales/activerecord.fi.yml | 6 +- config/locales/activerecord.lad.yml | 2 +- config/locales/af.yml | 10 +- config/locales/ar.yml | 102 ++++++++---- config/locales/be.yml | 30 +++- config/locales/bg.yml | 68 ++++---- config/locales/cy.yml | 12 +- config/locales/devise.ar.yml | 11 +- config/locales/devise.be.yml | 9 ++ config/locales/devise.en-GB.yml | 9 ++ config/locales/devise.fi.yml | 48 +++--- config/locales/devise.ga.yml | 14 ++ config/locales/devise.ia.yml | 17 ++ config/locales/devise.lad.yml | 16 +- config/locales/devise.nl.yml | 2 +- config/locales/devise.uk.yml | 9 ++ config/locales/doorkeeper.be.yml | 2 +- config/locales/doorkeeper.ia.yml | 10 ++ config/locales/doorkeeper.lad.yml | 2 +- config/locales/doorkeeper.tr.yml | 10 +- config/locales/en-GB.yml | 17 ++ config/locales/es-MX.yml | 2 +- config/locales/et.yml | 3 + config/locales/eu.yml | 6 +- config/locales/fi.yml | 20 +-- config/locales/fy.yml | 3 + config/locales/gd.yml | 1 + config/locales/hu.yml | 2 +- config/locales/ia.yml | 139 ++++++++++++++++ config/locales/ko.yml | 2 +- config/locales/lad.yml | 80 +++++++--- config/locales/lt.yml | 21 +++ config/locales/nl.yml | 4 +- config/locales/simple_form.af.yml | 2 + config/locales/simple_form.eu.yml | 4 +- config/locales/simple_form.fi.yml | 68 ++++---- config/locales/simple_form.gd.yml | 6 +- config/locales/simple_form.ja.yml | 2 +- config/locales/simple_form.lad.yml | 2 +- config/locales/simple_form.sr-Latn.yml | 2 +- config/locales/simple_form.sr.yml | 2 +- config/locales/simple_form.tr.yml | 12 +- config/locales/sk.yml | 1 + config/locales/sl.yml | 9 ++ config/locales/sr.yml | 4 +- config/locales/th.yml | 11 +- config/locales/tr.yml | 50 +++--- config/locales/uk.yml | 12 +- 120 files changed, 1804 insertions(+), 716 deletions(-) diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json index d2ac2f8f27..baa7e7bf70 100644 --- a/app/javascript/mastodon/locales/af.json +++ b/app/javascript/mastodon/locales/af.json @@ -33,6 +33,7 @@ "account.follows.empty": "Die gebruiker volg nog niemand.", "account.go_to_profile": "Gaan na profiel", "account.hide_reblogs": "Versteek plasings wat deur @{name} aangestuur is", + "account.in_memoriam": "Ter nagedagtenis.", "account.joined_short": "Aangesluit", "account.link_verified_on": "Eienaarskap van hierdie skakel is nagegaan op {date}", "account.locked_info": "Die rekening se privaatheidstatus is gesluit. Die eienaar hersien handmatig wie hom/haar kan volg.", @@ -71,6 +72,7 @@ "bundle_column_error.network.title": "Netwerkfout", "bundle_column_error.retry": "Probeer weer", "bundle_column_error.return": "Keer terug na die tuisblad", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Sluit", "bundle_modal_error.message": "Die laai van die komponent het iewers skeefgeloop.", "bundle_modal_error.retry": "Probeer weer", @@ -149,6 +151,8 @@ "emoji_button.food": "Eet- en drinkgoed", "emoji_button.nature": "Natuur", "emoji_button.not_found": "Geen passende emoji gevind nie", + "emoji_button.objects": "Voorwerpe", + "emoji_button.people": "Mense", "emoji_button.search": "Soek...", "emoji_button.search_results": "Soekresultate", "empty_column.account_timeline": "Geen plasings hier nie!", @@ -161,7 +165,12 @@ "empty_column.lists": "Jy het nog geen lyste nie. Wanneer jy een skep, sal dit hier vertoon.", "empty_column.notifications": "Jy het nog geen kennisgewings nie. Interaksie van ander mense met jou, sal hier vertoon.", "explore.search_results": "Soekresultate", + "explore.suggested_follows": "Mense", + "explore.trending_links": "Nuus", + "filter_modal.added.settings_link": "instellings bladsy", "filter_modal.select_filter.search": "Soek of skep", + "firehose.local": "Hierdie bediener", + "firehose.remote": "Ander bedieners", "footer.about": "Oor", "footer.directory": "Profielgids", "footer.get_app": "Kry die app", @@ -170,14 +179,21 @@ "footer.privacy_policy": "Privaatheidsbeleid", "footer.source_code": "Wys bronkode", "getting_started.heading": "Kom aan die gang", + "hashtag.column_header.tag_mode.all": "en {additional}", + "hashtag.column_header.tag_mode.any": "of {additional}", + "hashtag.column_header.tag_mode.none": "sonder {additional}", "hashtag.column_settings.select.placeholder": "Voer hutsetikette in…", "hashtag.column_settings.tag_toggle": "Voeg meer etikette by hierdie kolom", "hashtag.follow": "Volg hutsetiket", "home.column_settings.show_reblogs": "Wys aangestuurde plasings", "interaction_modal.description.reblog": "Met 'n rekening op Mastodon kan jy hierdie plasing aanstuur om dit met jou volgers te deel.", "interaction_modal.description.reply": "Met 'n rekening op Mastodon kan jy op hierdie plasing reageer.", + "interaction_modal.title.follow": "Volg {name}", "interaction_modal.title.reblog": "Stuur {name} se plasing aan", "interaction_modal.title.reply": "Reageer op {name} se plasing", + "intervals.full.days": "{number, plural, one {# dag} other {# dae}}", + "intervals.full.hours": "{number, plural, one {# uur} other {# uur}}", + "intervals.full.minutes": "{number, plural, one {# minuut} other {# minute}}", "keyboard_shortcuts.back": "Navigeer terug", "keyboard_shortcuts.blocked": "Vertoon lys van geblokkeerde gebruikers", "keyboard_shortcuts.boost": "Stuur aan", @@ -209,8 +225,11 @@ "keyboard_shortcuts.toot": "Begin ’n nuwe plasing", "keyboard_shortcuts.unfocus": "Fokus uit van teksveld/soekveld", "keyboard_shortcuts.up": "Beweeg opwaarts in die lys", + "lightbox.next": "Volgende", + "lightbox.previous": "Vorige", "limited_account_hint.action": "Vertoon profiel in elk geval", "limited_account_hint.title": "Hierdie profiel is deur moderators van {domain} versteek.", + "link_preview.author": "Deur {name}", "lists.account.add": "Voeg by lys", "lists.account.remove": "Verwyder vanaf lys", "lists.delete": "Verwyder lys", @@ -237,6 +256,7 @@ "notification.reblog": "{name} het jou plasing aangestuur", "notifications.column_settings.push": "Stootkennisgewings", "notifications.column_settings.reblog": "Aangestuurde plasings:", + "notifications.column_settings.sound": "Speel klank", "notifications.column_settings.status": "Nuwe plasings:", "notifications.column_settings.unread_notifications.highlight": "Lig ongelese kennisgewings uit", "notifications.filter.boosts": "Aangestuurde plasings", @@ -300,5 +320,8 @@ "upload_form.audio_description": "Describe for people with hearing loss", "upload_form.description": "Describe for the visually impaired", "upload_form.video_description": "Describe for people with hearing loss or visual impairment", - "upload_progress.label": "Uploading…" + "upload_progress.label": "Uploading…", + "video.fullscreen": "Volskerm", + "video.mute": "Klank afskakel", + "video.unmute": "Klank aanskakel" } diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 5f2d151fae..790a971cdf 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -21,6 +21,7 @@ "account.blocked": "محظور", "account.browse_more_on_origin_server": "تصفح المزيد في الملف الشخصي الأصلي", "account.cancel_follow_request": "إلغاء طلب المتابعة", + "account.copy": "نسخ الرابط إلى الملف الشخصي", "account.direct": "إشارة خاصة لـ @{name}", "account.disable_notifications": "توقف عن إشعاري عندما ينشر @{name}", "account.domain_blocked": "اسم النِّطاق محظور", @@ -31,6 +32,7 @@ "account.featured_tags.last_status_never": "لا توجد رسائل", "account.featured_tags.title": "وسوم {name} المميَّزة", "account.follow": "متابعة", + "account.follow_back": "تابعه بدورك", "account.followers": "مُتابِعون", "account.followers.empty": "لا أحدَ يُتابع هذا المُستخدم إلى حد الآن.", "account.followers_counter": "{count, plural, zero{لا مُتابع} one {مُتابعٌ واحِد} two {مُتابعانِ اِثنان} few {{counter} مُتابِعين} many {{counter} مُتابِعًا} other {{counter} مُتابع}}", @@ -51,6 +53,7 @@ "account.mute_notifications_short": "كتم الإشعارات", "account.mute_short": "اكتم", "account.muted": "مَكتوم", + "account.mutual": "متبادل", "account.no_bio": "لم يتم تقديم وصف.", "account.open_original_page": "افتح الصفحة الأصلية", "account.posts": "منشورات", @@ -143,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "مُقفَل", "compose_form.placeholder": "فِيمَ تُفكِّر؟", "compose_form.poll.duration": "مُدَّة اِستطلاع الرأي", + "compose_form.poll.multiple": "متعدد الخيارات", + "compose_form.poll.option_placeholder": "الخيار {number}", + "compose_form.poll.single": "اختر واحدا", "compose_form.poll.switch_to_multiple": "تغيِير الاستطلاع للسماح باِخيارات مُتعدِّدة", "compose_form.poll.switch_to_single": "تغيِير الاستطلاع للسماح باِخيار واحد فقط", + "compose_form.poll.type": "الأسلوب", + "compose_form.publish": "نشر", "compose_form.publish_form": "منشور جديد", + "compose_form.reply": "ردّ", + "compose_form.save_changes": "تحديث", "compose_form.spoiler.marked": "إزالة تحذير المحتوى", "compose_form.spoiler.unmarked": "إضافة تحذير للمحتوى", + "compose_form.spoiler_placeholder": "تحذير المحتوى (اختياري)", "confirmation_modal.cancel": "إلغاء", "confirmations.block.block_and_report": "حظره والإبلاغ عنه", "confirmations.block.confirm": "حظر", @@ -179,6 +190,7 @@ "conversation.mark_as_read": "اعتبرها كمقروءة", "conversation.open": "اعرض المحادثة", "conversation.with": "مع {names}", + "copy_icon_button.copied": "نُسِخ إلى الحافظة", "copypaste.copied": "تم نسخه", "copypaste.copy_to_clipboard": "نسخ إلى الحافظة", "directory.federated": "مِن الفديفرس المعروف", @@ -210,6 +222,7 @@ "emoji_button.search_results": "نتائج البحث", "emoji_button.symbols": "رموز", "emoji_button.travel": "الأماكن والسفر", + "empty_column.account_hides_collections": "اختار هذا المستخدم عدم إتاحة هذه المعلومات للعامة", "empty_column.account_suspended": "حساب معلق", "empty_column.account_timeline": "لا توجد منشورات هنا!", "empty_column.account_unavailable": "الملف التعريفي غير متوفر", @@ -264,6 +277,12 @@ "follow_request.authorize": "ترخيص", "follow_request.reject": "رفض", "follow_requests.unlocked_explanation": "حتى وإن كان حسابك غير مقفل، يعتقد فريق {domain} أنك قد ترغب في مراجعة طلبات المتابعة من هذه الحسابات يدوياً.", + "follow_suggestions.curated_suggestion": "خيار المحرر", + "follow_suggestions.dismiss": "لا تُظهرها مجدّدًا", + "follow_suggestions.personalized_suggestion": "توصية مخصصة", + "follow_suggestions.popular_suggestion": "توصية رائجة", + "follow_suggestions.view_all": "عرض الكل", + "follow_suggestions.who_to_follow": "حسابات للمُتابَعة", "followed_tags": "الوسوم المتابَعة", "footer.about": "عن", "footer.directory": "دليل الصفحات التعريفية", @@ -290,13 +309,9 @@ "hashtag.follow": "اتبع الوسم", "hashtag.unfollow": "ألغِ متابعة الوسم", "hashtags.and_other": "…و {count, plural, zero {} one {# واحد آخر} two {# اثنان آخران} few {# آخرون} many {# آخَرًا}other {# آخرون}}", - "home.actions.go_to_explore": "اطّلع على ما هو رائج حاليا", - "home.actions.go_to_suggestions": "ابحث عن أشخاص لِمُتابعتهم", "home.column_settings.basic": "الأساسية", "home.column_settings.show_reblogs": "اعرض المعاد نشرها", "home.column_settings.show_replies": "اعرض الردود", - "home.explore_prompt.body": "سوف يحتوي خيط أخبارك الرئيسي على مزيج من المنشورات مِنها التي تحتوي على وسوم اخترتَ متابعتها، وأشخاص اخترتَ متابعتهم والمنشورات التي أعادوا نشرها. ومع ذلك، إن لا زال خيط أخبارك يبدو هادئا جدا، ماذا لو:", - "home.explore_prompt.title": "هذه هي صفحتك الرئيسة في ماستدون.", "home.hide_announcements": "إخفاء الإعلانات", "home.pending_critical_update.body": "يرجى تحديث خادم ماستدون في أقرب وقت ممكن!", "home.pending_critical_update.link": "اطّلع على التحديثات", @@ -377,6 +392,7 @@ "lists.search": "إبحث في قائمة الحسابات التي تُتابِعها", "lists.subheading": "قوائمك", "load_pending": "{count, plural, one {# عنصر جديد} other {# عناصر جديدة}}", + "loading_indicator.label": "جاري التحميل…", "media_gallery.toggle_visible": "{number, plural, zero {} one {اخف الصورة} two {اخف الصورتين} few {اخف الصور} many {اخف الصور} other {اخف الصور}}", "moved_to_account_banner.text": "حسابك {disabledAccount} معطل حاليًا لأنك انتقلت إلى {movedToAccount}.", "mute_modal.duration": "المدة", @@ -464,6 +480,17 @@ "onboarding.follows.empty": "نأسف، لا يمكن عرض نتائج في الوقت الحالي. جرب البحث أو انتقل لصفحة الاستكشاف لإيجاد أشخاص للمتابعة، أو حاول مرة أخرى.", "onboarding.follows.lead": "مقتطفات خيطك الرئيس هي الطريقة الأساسية لتجربة ماستدون. كلما زاد عدد الأشخاص الذين تتبعهم، كلما زاد خيط أخبارك نشاطا وإثارة للاهتمام. بداية، إليك بعض الاقتراحات:", "onboarding.follows.title": "أضفِ طابعا شخصيا على موجزات خيطك الرئيس", + "onboarding.profile.discoverable": "اجعل ملفي الشخصي قابلاً للاكتشاف", + "onboarding.profile.discoverable_hint": "عندما تختار تفعيل إمكانية الاكتشاف على ماستدون، قد تظهر منشوراتك في نتائج البحث والمواضيع الرائجة، وقد يتم اقتراح ملفك الشخصي لأشخاص ذوي اهتمامات مماثلة معك.", + "onboarding.profile.display_name": "الاسم العلني", + "onboarding.profile.display_name_hint": "اسمك الكامل أو اسمك المرح…", + "onboarding.profile.lead": "يمكنك دائمًا إكمال ذلك لاحقًا في الإعدادات، حيث يتوفر المزيد من خيارات التخصيص.", + "onboarding.profile.note": "نبذة عنك", + "onboarding.profile.note_hint": "يمكنك @ذِكر أشخاص آخرين أو استعمال #الوسوم…", + "onboarding.profile.save_and_continue": "حفظ و إستمرار", + "onboarding.profile.title": "إعداد الملف الشخصي", + "onboarding.profile.upload_avatar": "تحميل صورة الملف الشخصي", + "onboarding.profile.upload_header": "تحميل رأسية الملف الشخصي", "onboarding.share.lead": "اسمح للأشخاص بمعرفة إمكانية الوصول إليك على ماستدون!", "onboarding.share.message": "أنا {username} في #Mastodon! تعال لمتابعتي على {url}", "onboarding.share.next_steps": "الخطوات المحتملة التالية:", @@ -497,9 +524,18 @@ "poll_button.add_poll": "إضافة استطلاع للرأي", "poll_button.remove_poll": "إزالة استطلاع الرأي", "privacy.change": "اضبط خصوصية المنشور", + "privacy.direct.long": "كل من ذُكر في المنشور", + "privacy.direct.short": "أشخاص محددون", + "privacy.private.long": "متابعيك فقط", + "privacy.private.short": "للمتابِعين", + "privacy.public.long": "أي شخص على أو خارج ماستدون", "privacy.public.short": "للعامة", + "privacy.unlisted.additional": "هذا يتصرف بالضبط مثل النشر للعامة، باستثناء أن المنشور لن يظهر في الموجزات الحية أو في الوسوم أو في الإستكشاف، أو في نتائج بحث ماستدون، حتى وإن قمت بتفعيله على مستوى الحساب.", + "privacy.unlisted.long": "خوارزميات أقل", + "privacy.unlisted.short": "للعامة دون صخب", "privacy_policy.last_updated": "آخر تحديث {date}", "privacy_policy.title": "سياسة الخصوصية", + "recommended": "موصى به", "refresh": "أنعِش", "regeneration_indicator.label": "جارٍ التحميل…", "regeneration_indicator.sublabel": "جارٍ تجهيز موجزات خيطك الرئيس!", @@ -514,7 +550,9 @@ "relative_time.minutes": "{number}د", "relative_time.seconds": "{number}ثا", "relative_time.today": "اليوم", + "reply_indicator.attachments": "{count, plural, zero {}one {# مرفق} two {# المرفقات} few {# مرفقات} many {# مرفقات} other {# مرفقًا}}", "reply_indicator.cancel": "إلغاء", + "reply_indicator.poll": "استطلاع رأي", "report.block": "حظر", "report.block_explanation": "لن ترى منشوراته ولن يمكنه متابعتك أو رؤية منشوراتك، سيكون بديهيا له أنه مكتوم.", "report.categories.legal": "إشعارات قانونية", @@ -570,6 +608,7 @@ "search.quick_action.status_search": "المنشورات المطابقة لـ {x}", "search.search_or_paste": "ابحث أو أدخل رابطا تشعبيا URL", "search_popout.full_text_search_disabled_message": "غير متوفر على {domain}.", + "search_popout.full_text_search_logged_out_message": "متاح فقط عند تسجيل الدخول.", "search_popout.language_code": "رمز لغة ISO", "search_popout.options": "خيارات البحث", "search_popout.quick_actions": "الإجراءات السريعة", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index 479c9c9243..18bba99117 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -199,6 +199,12 @@ "follow_request.authorize": "Autorizar", "follow_request.reject": "Refugar", "follow_requests.unlocked_explanation": "Magar que la to cuenta nun seya privada, el personal del dominiu «{domain}» pensó qu'a lo meyor quies revisar manualmente les solicitúes de siguimientu d'estes cuentes.", + "follow_suggestions.curated_suggestion": "Escoyeta del sirvidor", + "follow_suggestions.dismiss": "Nun volver amosar", + "follow_suggestions.personalized_suggestion": "Suxerencia personalizada", + "follow_suggestions.popular_suggestion": "Suxerencia popular", + "follow_suggestions.view_all": "Ver too", + "follow_suggestions.who_to_follow": "A quién siguir", "footer.about": "Tocante a", "footer.directory": "Direutoriu de perfiles", "footer.get_app": "Consiguir l'aplicación", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index e069515109..daff6563e8 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -146,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "закрыты", "compose_form.placeholder": "Што здарылася?", "compose_form.poll.duration": "Працягласць апытання", + "compose_form.poll.multiple": "Множны выбар", + "compose_form.poll.option_placeholder": "Варыянт {number}", + "compose_form.poll.single": "Адзін варыянт", "compose_form.poll.switch_to_multiple": "Змяніце апытанне, каб дазволіць некалькі варыянтаў адказу", "compose_form.poll.switch_to_single": "Змяніце апытанне, каб дазволіць адзіны варыянт адказу", + "compose_form.poll.type": "Стыль", + "compose_form.publish": "Допіс", "compose_form.publish_form": "Апублікаваць", + "compose_form.reply": "Адказаць", + "compose_form.save_changes": "Абнавіць", "compose_form.spoiler.marked": "Выдаліць папярэджанне аб змесціве", "compose_form.spoiler.unmarked": "Дадаць папярэджанне аб змесціве", + "compose_form.spoiler_placeholder": "Папярэджанне аб змесціве (неабавязкова)", "confirmation_modal.cancel": "Скасаваць", "confirmations.block.block_and_report": "Заблакіраваць і паскардзіцца", "confirmations.block.confirm": "Заблакіраваць", @@ -269,6 +277,12 @@ "follow_request.authorize": "Аўтарызацыя", "follow_request.reject": "Адхіліць", "follow_requests.unlocked_explanation": "Ваш акаўнт не схаваны, аднак прадстаўнікі {domain} палічылі, што вы можаце захацець праглядзець запыты на падпіску з гэтых профіляў уручную.", + "follow_suggestions.curated_suggestion": "Выбар сервера", + "follow_suggestions.dismiss": "Не паказваць зноў", + "follow_suggestions.personalized_suggestion": "Персаналізаваная прапанова", + "follow_suggestions.popular_suggestion": "Папулярная прапанова", + "follow_suggestions.view_all": "Праглядзець усё", + "follow_suggestions.who_to_follow": "На каго падпісацца", "followed_tags": "Падпіскі", "footer.about": "Пра нас", "footer.directory": "Дырэкторыя профіляў", @@ -295,13 +309,9 @@ "hashtag.follow": "Падпісацца на хэштэг", "hashtag.unfollow": "Адпісацца ад хэштэга", "hashtags.and_other": "…і яшчэ {count, plural, other {#}}", - "home.actions.go_to_explore": "Паглядзіце, што ў трэндзе", - "home.actions.go_to_suggestions": "Знайсці людзей, каб падпісацца", "home.column_settings.basic": "Асноўныя", "home.column_settings.show_reblogs": "Паказаць пашырэнні", "home.column_settings.show_replies": "Паказваць адказы", - "home.explore_prompt.body": "Ваша галоўная стужка змяшчае сумесь допісаў з хэштэгамі, за якімі вы вырашылі сачыць, допісаў ад людзей, за якімі вы вырашылі сачыць, і допісаў, якія яны пашыраюць. Зараз усё выглядае даволі ціха, так што як наконт:", - "home.explore_prompt.title": "Гэта ваша апорная кропка ў Mastodon.", "home.hide_announcements": "Схаваць аб'явы", "home.pending_critical_update.body": "Калі ласка, абнавіце свой сервер Mastodon як мага хутчэй!", "home.pending_critical_update.link": "Прагледзець абнаўленні", @@ -514,7 +524,15 @@ "poll_button.add_poll": "Дадаць апытанне", "poll_button.remove_poll": "Выдаліць апытанне", "privacy.change": "Змяніць прыватнасць допісу", + "privacy.direct.long": "Усе згаданыя ў допісе", + "privacy.direct.short": "Канкрэтныя людзі", + "privacy.private.long": "Толькі вашыя падпісчыкі", + "privacy.private.short": "Падпісчыкі", + "privacy.public.long": "Усе, хто ёсць і каго няма ў Mastodon", "privacy.public.short": "Публічны", + "privacy.unlisted.additional": "Паводзіць сябе гэтак жа, як і публічны, за выключэннем таго, што пост не будзе адлюстроўвацца ў жывой стужцы, хэштэгах, аглядзе або ў пошуку Mastodon, нават калі вы ўключылі бачнасць у пошуку ў наладах.", + "privacy.unlisted.long": "Менш фанфар ад алгарытмаў", + "privacy.unlisted.short": "Ціхі публічны", "privacy_policy.last_updated": "Адноўлена {date}", "privacy_policy.title": "Палітыка канфідэнцыйнасці", "recommended": "Рэкамендуем", @@ -532,7 +550,9 @@ "relative_time.minutes": "{number} хв", "relative_time.seconds": "{number} с", "relative_time.today": "сёння", + "reply_indicator.attachments": "{count, plural, one {# далучэнне} few {# далучэнні} many {# далучэнняў} other {# далучэння}}", "reply_indicator.cancel": "Скасаваць", + "reply_indicator.poll": "Апытанне", "report.block": "Заблакіраваць", "report.block_explanation": "Вы перастанеце бачыць допісы гэтага карыстальніка. Ён не зможа сачыць за вамі і бачыць вашы допісы. Ён зможа зразумець, што яго заблакіравалі.", "report.categories.legal": "Права", @@ -664,7 +684,7 @@ "status.show_more": "Паказаць болей", "status.show_more_all": "Разгарнуць усё", "status.show_original": "Паказаць арыгінал", - "status.title.with_attachments": "{user} апублікаваў {attachmentCount, plural, one {укладанне} other {{attachmentCount} укладанні}}", + "status.title.with_attachments": "{user} апублікаваў {attachmentCount, plural, one {далучэнне} few {{attachmentCount} далучэнні} many {{attachmentCount} далучэнняў} other {{attachmentCount} далучэння}}", "status.translate": "Перакласці", "status.translated_from_with": "Перакладзена з {lang} з дапамогай {provider}", "status.uncached_media_warning": "Перадпрагляд недаступны", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 213ac090a7..99c0f8b102 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -8,7 +8,7 @@ "about.domain_blocks.silenced.title": "Ограничено", "about.domain_blocks.suspended.explanation": "Никакви данни от този сървър няма да се обработват, съхраняват или обменят, правещи невъзможно всяко взаимодействие или комуникация с потребители от тези сървъри.", "about.domain_blocks.suspended.title": "Спряно", - "about.not_available": "Тази информация не е била направена налична на този сървър.", + "about.not_available": "Тази информация не е публична на този сървър.", "about.powered_by": "Децентрализирана социална мрежа, захранвана от {mastodon}", "about.rules": "Правила на сървъра", "account.account_note_header": "Бележка", @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "Вашият акаунт не е в положение {locked}. Всеки може да ви последва, за да разглежда публикациите ви само за последователи.", "compose_form.lock_disclaimer.lock": "заключено", "compose_form.placeholder": "Какво мислите?", - "compose_form.poll.add_option": "Добавяне на избор", "compose_form.poll.duration": "Времетраене на анкетата", "compose_form.poll.multiple": "Множествен избор", "compose_form.poll.option_placeholder": "Избор {number}", - "compose_form.poll.remove_option": "Премахване на тази възможност", "compose_form.poll.single": "Подберете нещо", "compose_form.poll.switch_to_multiple": "Промяна на анкетата, за да се позволят множество възможни избора", "compose_form.poll.switch_to_single": "Промяна на анкетата, за да се позволи един възможен избор", @@ -224,7 +222,7 @@ "emoji_button.search_results": "Резултати от търсене", "emoji_button.symbols": "Символи", "emoji_button.travel": "Пътуване и места", - "empty_column.account_hides_collections": "Този потребител е избрал да не прави това сведение достъпно", + "empty_column.account_hides_collections": "Този потребител е избрал да не дава тази информация", "empty_column.account_suspended": "Спрян акаунт", "empty_column.account_timeline": "Тук няма публикации!", "empty_column.account_unavailable": "Профилът не е наличен", @@ -279,6 +277,12 @@ "follow_request.authorize": "Упълномощаване", "follow_request.reject": "Отхвърляне", "follow_requests.unlocked_explanation": "Въпреки че акаунтът ви не е заключен, служителите на {domain} помислиха, че може да искате да преглеждате ръчно заявките за последване на тези профили.", + "follow_suggestions.curated_suggestion": "Избор от редакторите", + "follow_suggestions.dismiss": "Без ново показване", + "follow_suggestions.personalized_suggestion": "Персонализирано предложение", + "follow_suggestions.popular_suggestion": "Популярно предложение", + "follow_suggestions.view_all": "Преглед на всички", + "follow_suggestions.who_to_follow": "Кого да се следва", "followed_tags": "Последвани хаштагове", "footer.about": "Относно", "footer.directory": "Директория на профилите", @@ -305,13 +309,9 @@ "hashtag.follow": "Следване на хаштаг", "hashtag.unfollow": "Спиране на следване на хаштаг", "hashtags.and_other": "…и {count, plural, other {# още}}", - "home.actions.go_to_explore": "Вижте какво изгрява", - "home.actions.go_to_suggestions": "Намиране на хора за следване", "home.column_settings.basic": "Основно", "home.column_settings.show_reblogs": "Показване на подсилванията", "home.column_settings.show_replies": "Показване на отговорите", - "home.explore_prompt.body": "Вашият начален инфоканал ще е смес на публикации от хаштаговете, които сте избрали да следвате, избраните хора да следвате, а и публикациите, които са подсилили. Ако изглежда твърде тихо в момента, то може да искате да:", - "home.explore_prompt.title": "Това е началната ви база с Mastodon.", "home.hide_announcements": "Скриване на оповестяванията", "home.pending_critical_update.body": "Обновете сървъра си в Mastodon възможно най-скоро!", "home.pending_critical_update.link": "Преглед на обновяванията", @@ -530,6 +530,7 @@ "privacy.private.short": "Последователи", "privacy.public.long": "Всеки във и извън Mastodon", "privacy.public.short": "Публично", + "privacy.unlisted.additional": "Това поведение е точно като публичното, с изключение на това, че публикацията няма да се появява в каналите на живо, хаштаговете, проучването или търсенето в Mastodon, дори ако сте се включили в целия акаунт.", "privacy.unlisted.long": "По-малко алгоритмични фанфари", "privacy.unlisted.short": "Тиха публика", "privacy_policy.last_updated": "Последно осъвременяване на {date}", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index 5e83ab4e6d..8cbe4591d5 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -143,9 +143,14 @@ "compose_form.lock_disclaimer.lock": "prennet", "compose_form.placeholder": "Petra emaoc'h o soñjal e-barzh ?", "compose_form.poll.duration": "Pad ar sontadeg", + "compose_form.poll.single": "Dibabit unan", "compose_form.poll.switch_to_multiple": "Kemmañ ar sontadeg evit aotren meur a zibab", "compose_form.poll.switch_to_single": "Kemmañ ar sontadeg evit aotren un dibab hepken", + "compose_form.poll.type": "Neuz", + "compose_form.publish": "Embann", "compose_form.publish_form": "Embann", + "compose_form.reply": "Respont", + "compose_form.save_changes": "Hizivadur", "compose_form.spoiler.marked": "Kuzhet eo an destenn a-dreñv ur c'hemenn", "compose_form.spoiler.unmarked": "N'eo ket kuzhet an destenn", "confirmation_modal.cancel": "Nullañ", @@ -280,12 +285,9 @@ "hashtag.follow": "Heuliañ ar ger-klik", "hashtag.unfollow": "Paouez heuliañ an hashtag", "hashtags.and_other": "…{count, plural, one {hag # all} other {ha # all}}", - "home.actions.go_to_explore": "Gwelet petra zo diouzh ar c'hiz", - "home.actions.go_to_suggestions": "Kavout tud da heuliañ", "home.column_settings.basic": "Diazez", "home.column_settings.show_reblogs": "Diskouez ar skignadennoù", "home.column_settings.show_replies": "Diskouez ar respontoù", - "home.explore_prompt.title": "Homañ eo ho pajenn degemer e-barzh Mastodon.", "home.hide_announcements": "Kuzhat ar c'hemennoù", "home.pending_critical_update.body": "Hizivait ho servijer Mastodon kerkent ha ma c'hallit mar plij!", "home.pending_critical_update.link": "Gwelet an hizivadennoù", @@ -475,6 +477,7 @@ "poll_button.add_poll": "Ouzhpennañ ur sontadeg", "poll_button.remove_poll": "Dilemel ar sontadeg", "privacy.change": "Cheñch prevezded an toud", + "privacy.private.short": "Heulierien", "privacy.public.short": "Publik", "privacy_policy.last_updated": "Hizivadenn ziwezhañ {date}", "privacy_policy.title": "Reolennoù Prevezded", @@ -494,6 +497,7 @@ "relative_time.seconds": "{number}eil", "relative_time.today": "hiziv", "reply_indicator.cancel": "Nullañ", + "reply_indicator.poll": "Sontadeg", "report.block": "Stankañ", "report.block_explanation": "Ne vo ket gwelet toudoù ar gont-se ken. Ne welo ket ho toudoù ha ne c'hello ket ho heuliañ ken. Gouzout a raio eo bet stanket ganeoc'h.", "report.categories.legal": "Lezennel", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 0d089bf8b8..0ae471e023 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -145,18 +145,16 @@ "compose_form.lock_disclaimer": "El teu compte no està {locked}. Tothom pot seguir-te i veure els tuts de només per a seguidors.", "compose_form.lock_disclaimer.lock": "blocat", "compose_form.placeholder": "Què tens al cap?", - "compose_form.poll.add_option": "Afegiu una opció", "compose_form.poll.duration": "Durada de l'enquesta", "compose_form.poll.multiple": "Opcions múltiples", "compose_form.poll.option_placeholder": "Opció {number}", - "compose_form.poll.remove_option": "Treu aquesta opció", "compose_form.poll.single": "Trieu-ne una", "compose_form.poll.switch_to_multiple": "Canvia l’enquesta per a permetre múltiples opcions", "compose_form.poll.switch_to_single": "Canvia l’enquesta per a permetre una única opció", "compose_form.poll.type": "Estil", "compose_form.publish": "Publica", "compose_form.publish_form": "Nou tut", - "compose_form.reply": "Responeu", + "compose_form.reply": "Respon", "compose_form.save_changes": "Actualitza", "compose_form.spoiler.marked": "Elimina l'avís de contingut", "compose_form.spoiler.unmarked": "Afegeix avís de contingut", @@ -279,6 +277,12 @@ "follow_request.authorize": "Autoritza", "follow_request.reject": "Rebutja", "follow_requests.unlocked_explanation": "Tot i que el teu compte no està blocat, el personal de {domain} ha pensat que és possible que vulguis revisar manualment les sol·licituds de seguiment d’aquests comptes.", + "follow_suggestions.curated_suggestion": "Tria de l'editor", + "follow_suggestions.dismiss": "No ho tornis a mostrar", + "follow_suggestions.personalized_suggestion": "Suggeriment personalitzat", + "follow_suggestions.popular_suggestion": "Suggeriment popular", + "follow_suggestions.view_all": "Mostra-ho tot", + "follow_suggestions.who_to_follow": "A qui seguir", "followed_tags": "Etiquetes seguides", "footer.about": "Quant a", "footer.directory": "Directori de perfils", @@ -305,13 +309,9 @@ "hashtag.follow": "Segueix l'etiqueta", "hashtag.unfollow": "Deixa de seguir l'etiqueta", "hashtags.and_other": "…i {count, plural, other {# més}}", - "home.actions.go_to_explore": "Mira què és tendència", - "home.actions.go_to_suggestions": "Troba persones a seguir", "home.column_settings.basic": "Bàsic", "home.column_settings.show_reblogs": "Mostra els impulsos", "home.column_settings.show_replies": "Mostra les respostes", - "home.explore_prompt.body": "La teva línia de temps Inici tindrà una barreja dels tuts de les etiquetes que has triat seguir, de les persones que has triat seguir i dels tuts que s'impulsen. Ara mateix es veu força tranquil·la, què et sembla si:", - "home.explore_prompt.title": "Aquesta és la teva base inicial a Mastodon.", "home.hide_announcements": "Amaga els anuncis", "home.pending_critical_update.body": "Si us plau actualitza el teu servidor Mastodon tant aviat com sigui possible!", "home.pending_critical_update.link": "Veure actualitzacions", @@ -524,12 +524,15 @@ "poll_button.add_poll": "Afegeix una enquesta", "poll_button.remove_poll": "Elimina l'enquesta", "privacy.change": "Canvia la privacitat del tut", - "privacy.direct.long": "Tothom mencionat en aquesta publicació", + "privacy.direct.long": "Tothom mencionat a la publicació", "privacy.direct.short": "Persones concretes", "privacy.private.long": "Només els vostres seguidors", "privacy.private.short": "Seguidors", "privacy.public.long": "Tothom dins o fora Mastodon", "privacy.public.short": "Públic", + "privacy.unlisted.additional": "Es comporta igual que públic, excepte que la publicació no apareixerà als canals en directe o etiquetes, l'explora o a la cerca de Mastodon, fins i tot si ho heu activat a nivell de compte.", + "privacy.unlisted.long": "Menys fanfàrries algorísmiques", + "privacy.unlisted.short": "Públic tranquil", "privacy_policy.last_updated": "Darrera actualització {date}", "privacy_policy.title": "Política de Privacitat", "recommended": "Recomanat", @@ -547,7 +550,9 @@ "relative_time.minutes": "{number}min", "relative_time.seconds": "{number}s", "relative_time.today": "avui", + "reply_indicator.attachments": "{count, plural, one {# adjunt} other {# adjunts}}", "reply_indicator.cancel": "Cancel·la", + "reply_indicator.poll": "Enquesta", "report.block": "Bloca", "report.block_explanation": "No veuràs els seus tuts. Ells no podran veure els teus tuts ni et podran seguir. Podran saber que estan blocats.", "report.categories.legal": "Legal", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 7d91670de0..24248db15c 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -32,6 +32,7 @@ "account.featured_tags.last_status_never": "Žádné příspěvky", "account.featured_tags.title": "Hlavní hashtagy uživatele {name}", "account.follow": "Sledovat", + "account.follow_back": "Také sledovat", "account.followers": "Sledující", "account.followers.empty": "Tohoto uživatele zatím nikdo nesleduje.", "account.followers_counter": "{count, plural, one {{counter} Sledující} few {{counter} Sledující} many {{counter} Sledujících} other {{counter} Sledujících}}", @@ -52,6 +53,7 @@ "account.mute_notifications_short": "Ztlumit upozornění", "account.mute_short": "Ztlumit", "account.muted": "Skrytý", + "account.mutual": "Vzájemné", "account.no_bio": "Nebyl poskytnut žádný popis.", "account.open_original_page": "Otevřít původní stránku", "account.posts": "Příspěvky", @@ -144,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "zamčený", "compose_form.placeholder": "Co se vám honí hlavou?", "compose_form.poll.duration": "Doba trvání ankety", + "compose_form.poll.multiple": "Výběr z více možností", + "compose_form.poll.option_placeholder": "Volba {number}", + "compose_form.poll.single": "Vyber jednu", "compose_form.poll.switch_to_multiple": "Povolit u ankety výběr více voleb", "compose_form.poll.switch_to_single": "Povolit u ankety výběr pouze jedné volby", + "compose_form.poll.type": "Styl", + "compose_form.publish": "Odeslat", "compose_form.publish_form": "Zveřejnit", + "compose_form.reply": "Odpovědět", + "compose_form.save_changes": "Aktualizovat", "compose_form.spoiler.marked": "Odebrat varování o obsahu", "compose_form.spoiler.unmarked": "Přidat varování o obsahu", + "compose_form.spoiler_placeholder": "Upozornění na obsah (nepovinné)", "confirmation_modal.cancel": "Zrušit", "confirmations.block.block_and_report": "Blokovat a nahlásit", "confirmations.block.confirm": "Blokovat", @@ -267,6 +277,9 @@ "follow_request.authorize": "Autorizovat", "follow_request.reject": "Zamítnout", "follow_requests.unlocked_explanation": "Přestože váš účet není zamčený, administrátor {domain} usoudil, že byste mohli chtít tyto žádosti o sledování zkontrolovat ručně.", + "follow_suggestions.dismiss": "Znovu nezobrazovat", + "follow_suggestions.popular_suggestion": "Populární návrh", + "follow_suggestions.who_to_follow": "Koho sledovat", "followed_tags": "Sledované hashtagy", "footer.about": "O aplikaci", "footer.directory": "Adresář profilů", @@ -289,13 +302,9 @@ "hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci další štítky", "hashtag.follow": "Sledovat hashtag", "hashtag.unfollow": "Přestat sledovat hashtag", - "home.actions.go_to_explore": "Podívejte se, co frčí", - "home.actions.go_to_suggestions": "Najít lidi ke sledování", "home.column_settings.basic": "Základní", "home.column_settings.show_reblogs": "Zobrazit boosty", "home.column_settings.show_replies": "Zobrazit odpovědi", - "home.explore_prompt.body": "Váš domovský kanál bude obsahovat směs příspěvků z hashtagů, které jste se rozhodli sledovat, lidí, které jste se rozhodli sledovat, a příspěvků, které boostují. Pokud vám to připadá příliš klidné, možná budete chtít:", - "home.explore_prompt.title": "Toto je vaše domovská základna uvnitř Mastodonu.", "home.hide_announcements": "Skrýt oznámení", "home.pending_critical_update.body": "Aktualizujte, prosím, svůj Mastodon server co nejdříve!", "home.pending_critical_update.link": "Zobrazit aktualizace", @@ -376,6 +385,7 @@ "lists.search": "Hledejte mezi lidmi, které sledujete", "lists.subheading": "Vaše seznamy", "load_pending": "{count, plural, one {# nová položka} few {# nové položky} many {# nových položek} other {# nových položek}}", + "loading_indicator.label": "Načítání…", "media_gallery.toggle_visible": "{number, plural, one {Skrýt obrázek} few {Skrýt obrázky} many {Skrýt obrázky} other {Skrýt obrázky}}", "moved_to_account_banner.text": "Váš účet {disabledAccount} je momentálně deaktivován, protože jste se přesunul/a na {movedToAccount}.", "mute_modal.duration": "Trvání", @@ -463,6 +473,17 @@ "onboarding.follows.empty": "Bohužel, žádné výsledky nelze momentálně zobrazit. Můžete zkusit vyhledat nebo procházet stránku s průzkumem a najít lidi, kteří budou sledovat, nebo to zkuste znovu později.", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.title": "Populární na Mastodonu", + "onboarding.profile.discoverable": "Udělat svůj profil vyhledatelným", + "onboarding.profile.discoverable_hint": "Když se rozhodnete být vyhledatelný na Mastodonu, vaše příspěvky se mohou objevit ve výsledcích vyhledávání a v populárních, a váš profil může být navrhován lidem s podobnými zájmy.", + "onboarding.profile.display_name": "Zobrazované jméno", + "onboarding.profile.display_name_hint": "Vaše celé jméno nebo přezdívka…", + "onboarding.profile.lead": "Toto můžete vždy dokončit později v nastavení, kde je k dispozici ještě více možností přizpůsobení.", + "onboarding.profile.note": "O vás", + "onboarding.profile.note_hint": "Můžete @zmínit jiné osoby nebo #hashtagy…", + "onboarding.profile.save_and_continue": "Uložit a pokračovat", + "onboarding.profile.title": "Nastavení profilu", + "onboarding.profile.upload_avatar": "Nahrát profilový obrázek", + "onboarding.profile.upload_header": "Nahrát hlavičku profilu", "onboarding.share.lead": "Dejte lidem vědět, jak vás mohou najít na Mastodonu!", "onboarding.share.message": "Jsem {username} na #Mastodonu! Pojď mě sledovat na {url}", "onboarding.share.next_steps": "Možné další kroky:", @@ -496,9 +517,17 @@ "poll_button.add_poll": "Přidat anketu", "poll_button.remove_poll": "Odebrat anketu", "privacy.change": "Změnit soukromí příspěvku", + "privacy.direct.long": "Všichni zmínění v příspěvku", + "privacy.direct.short": "Vybraní lidé", + "privacy.private.long": "Jen vaši sledující", + "privacy.private.short": "Sledující", + "privacy.public.long": "Kdokoliv na Mastodonu i mimo něj", "privacy.public.short": "Veřejné", + "privacy.unlisted.additional": "Chová se stejně jako veřejný, až na to, že se příspěvek neobjeví v živých kanálech nebo hashtazích, v objevování nebo vyhledávání na Mastodonu, a to i když je účet nastaven tak, aby se zde všude tyto příspěvky zobrazovaly.", + "privacy.unlisted.long": "Méně algoritmických fanfár", "privacy_policy.last_updated": "Naposledy aktualizováno {date}", "privacy_policy.title": "Zásady ochrany osobních údajů", + "recommended": "Doporučeno", "refresh": "Obnovit", "regeneration_indicator.label": "Načítání…", "regeneration_indicator.sublabel": "Váš domovský kanál se připravuje!", @@ -514,6 +543,7 @@ "relative_time.seconds": "{number} s", "relative_time.today": "dnes", "reply_indicator.cancel": "Zrušit", + "reply_indicator.poll": "Anketa", "report.block": "Blokovat", "report.block_explanation": "Neuvidíte příspěvky tohoto uživatele. On neuvidí vaše příspěvky, ani vás nebude moci sledovat. Pozná, že je blokován.", "report.categories.legal": "Právní ustanovení", @@ -569,6 +599,7 @@ "search.quick_action.status_search": "Příspěvky odpovídající {x}", "search.search_or_paste": "Hledat nebo vložit URL", "search_popout.full_text_search_disabled_message": "Nedostupné na {domain}.", + "search_popout.full_text_search_logged_out_message": "Dostupné pouze po přihlášení.", "search_popout.language_code": "Kód jazyka podle ISO", "search_popout.options": "Možnosti hledání", "search_popout.quick_actions": "Rychlé akce", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 3cd090e186..f023c5a2a7 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -146,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "wedi ei gloi", "compose_form.placeholder": "Beth sydd ar eich meddwl?", "compose_form.poll.duration": "Cyfnod pleidlais", + "compose_form.poll.multiple": "Dewis lluosog", + "compose_form.poll.option_placeholder": "Dewis {number}", + "compose_form.poll.single": "Ddewis un", "compose_form.poll.switch_to_multiple": "Newid pleidlais i adael mwy nag un dewis", "compose_form.poll.switch_to_single": "Newid pleidlais i gyfyngu i un dewis", + "compose_form.poll.type": "Arddull", + "compose_form.publish": "Postiad", "compose_form.publish_form": "Cyhoeddi", + "compose_form.reply": "Ateb", + "compose_form.save_changes": "Diweddariad", "compose_form.spoiler.marked": "Dileu rhybudd cynnwys", "compose_form.spoiler.unmarked": "Ychwanegu rhybudd cynnwys", + "compose_form.spoiler_placeholder": "Rhybudd cynnwys (dewisol)", "confirmation_modal.cancel": "Diddymu", "confirmations.block.block_and_report": "Rhwystro ac Adrodd", "confirmations.block.confirm": "Blocio", @@ -269,6 +277,12 @@ "follow_request.authorize": "Awdurdodi", "follow_request.reject": "Gwrthod", "follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, roedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.", + "follow_suggestions.curated_suggestion": "Dewis y Golygydd", + "follow_suggestions.dismiss": "Peidio â dangos hwn eto", + "follow_suggestions.personalized_suggestion": "Awgrym personol", + "follow_suggestions.popular_suggestion": "Awgrym poblogaidd", + "follow_suggestions.view_all": "Gweld y cyfan", + "follow_suggestions.who_to_follow": "Pwy i ddilyn", "followed_tags": "Hashnodau rydych yn eu dilyn", "footer.about": "Ynghylch", "footer.directory": "Cyfeiriadur proffiliau", @@ -295,13 +309,9 @@ "hashtag.follow": "Dilyn hashnod", "hashtag.unfollow": "Dad-ddilyn hashnod", "hashtags.and_other": "…a {count, plural, other {# more}}", - "home.actions.go_to_explore": "Gweld beth yw'r tuedd", - "home.actions.go_to_suggestions": "Ffeindio pobl i'w dilyn", "home.column_settings.basic": "Syml", "home.column_settings.show_reblogs": "Dangos hybiau", "home.column_settings.show_replies": "Dangos atebion", - "home.explore_prompt.body": "Bydd eich llif cartref yn cynnwys cymysgedd o bostiadau o'r hashnodau rydych chi wedi dewis eu dilyn, y bobl rydych chi wedi dewis eu dilyn, a'r postiadau maen nhw'n rhoi hwb iddyn nhw. Os yw hynny'n teimlo'n rhy dawel, efallai y byddwch eisiau:", - "home.explore_prompt.title": "Dyma'ch cartref o fewn Mastodon.", "home.hide_announcements": "Cuddio cyhoeddiadau", "home.pending_critical_update.body": "Diweddarwch eich gweinydd Mastodon cyn gynted â phosibl!", "home.pending_critical_update.link": "Gweld y diweddariadau", @@ -514,7 +524,15 @@ "poll_button.add_poll": "Ychwanegu pleidlais", "poll_button.remove_poll": "Tynnu pleidlais", "privacy.change": "Addasu preifatrwdd y post", + "privacy.direct.long": "Pawb sydd â son amdanyn nhw yn y postiad", + "privacy.direct.short": "Pobl benodol", + "privacy.private.long": "Eich dilynwyr yn unig", + "privacy.private.short": "Dilynwyr", + "privacy.public.long": "Unrhyw ar ac oddi ar Mastodon", "privacy.public.short": "Cyhoeddus", + "privacy.unlisted.additional": "Mae hwn yn ymddwyn yn union fel y cyhoeddus, ac eithrio na fydd y postiad yn ymddangos mewn ffrydiau byw neu hashnodau, archwilio, neu chwiliad Mastodon, hyd yn oed os ydych wedi eich cynnwys ar draws y cyfrif.", + "privacy.unlisted.long": "Llai o ddathliadau algorithmig", + "privacy.unlisted.short": "Tewi'r cyhoeddus", "privacy_policy.last_updated": "Diweddarwyd ddiwethaf ar {date}", "privacy_policy.title": "Polisi Preifatrwydd", "recommended": "Argymhellwyd", @@ -532,7 +550,9 @@ "relative_time.minutes": "{number} munud", "relative_time.seconds": "{number} eiliad", "relative_time.today": "heddiw", + "reply_indicator.attachments": "{count, plural, one {# attachment} arall {# attachments}}", "reply_indicator.cancel": "Canslo", + "reply_indicator.poll": "Arolwg", "report.block": "Blocio", "report.block_explanation": "Ni welwch chi eu postiadau. Ni allan nhw weld eich postiadau na'ch dilyn. Byddan nhw'n gallu gweld eu bod nhw wedi'u rhwystro.", "report.categories.legal": "Cyfreithiol", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 5d6cac69d8..548421b3c0 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "Din konto er ikke {locked}. Enhver kan følge dig og se indlæg kun beregnet for følgere.", "compose_form.lock_disclaimer.lock": "låst", "compose_form.placeholder": "Hvad tænker du på?", - "compose_form.poll.add_option": "Tilføj mulighed", "compose_form.poll.duration": "Afstemningens varighed", "compose_form.poll.multiple": "Multivalg", "compose_form.poll.option_placeholder": "Valgmulighed {number}", - "compose_form.poll.remove_option": "Fjern denne valgmulighed", "compose_form.poll.single": "Vælg én", "compose_form.poll.switch_to_multiple": "Ændr afstemning til flervalgstype", "compose_form.poll.switch_to_single": "Ændr afstemning til enkeltvalgstype", @@ -279,6 +277,11 @@ "follow_request.authorize": "Godkend", "follow_request.reject": "Afvis", "follow_requests.unlocked_explanation": "Selvom din konto ikke er låst, synes {domain}-personalet, du måske bør gennemgå disse anmodninger manuelt.", + "follow_suggestions.dismiss": "Vis ikke igen", + "follow_suggestions.personalized_suggestion": "Personligt forslag", + "follow_suggestions.popular_suggestion": "Populært forslag", + "follow_suggestions.view_all": "Vis alle", + "follow_suggestions.who_to_follow": "Hvem, som skal følges", "followed_tags": "Hashtag, som følges", "footer.about": "Om", "footer.directory": "Profiloversigt", @@ -305,13 +308,9 @@ "hashtag.follow": "Følg hashtag", "hashtag.unfollow": "Stop med at følge hashtag", "hashtags.and_other": "…og {count, plural, one {}other {# flere}}", - "home.actions.go_to_explore": "Se, hvad som trender", - "home.actions.go_to_suggestions": "Find nogle personer at følge", "home.column_settings.basic": "Grundlæggende", "home.column_settings.show_reblogs": "Vis boosts", "home.column_settings.show_replies": "Vis svar", - "home.explore_prompt.body": "Dit hjemmefeed vil have en blanding af indlæg fra de hashtags, du har valgt at følge, de personer, du har valgt at følge, og de indlæg, de booster. Hvis her virker for stille, kan du prøve:", - "home.explore_prompt.title": "Dette er din hjemmebase i Mastodon.", "home.hide_announcements": "Skjul bekendtgørelser", "home.pending_critical_update.body": "Opdater din Mastodon-server snarest muligt!", "home.pending_critical_update.link": "Se opdateringer", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index a6dd098bb2..cb90252c7f 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Andere können dir folgen und deine Beiträge sehen, die nur für Follower bestimmt sind.", "compose_form.lock_disclaimer.lock": "geschützt", "compose_form.placeholder": "Was gibt’s Neues?", - "compose_form.poll.add_option": "Auswahl hinzufügen", "compose_form.poll.duration": "Umfragedauer", "compose_form.poll.multiple": "Mehrfachauswahl", "compose_form.poll.option_placeholder": "{number}. Auswahlmöglichkeit", - "compose_form.poll.remove_option": "Dieses Auswahlfeld entfernen", "compose_form.poll.single": "Einfachauswahl", "compose_form.poll.switch_to_multiple": "Mehrfachauswahl erlauben", "compose_form.poll.switch_to_single": "Nur Einfachauswahl erlauben", @@ -279,6 +277,12 @@ "follow_request.authorize": "Genehmigen", "follow_request.reject": "Ablehnen", "follow_requests.unlocked_explanation": "Auch wenn dein Konto öffentlich bzw. nicht geschützt ist, haben die Moderator*innen von {domain} gedacht, dass du diesen Follower lieber manuell bestätigen solltest.", + "follow_suggestions.curated_suggestion": "Vom Server empfohlen", + "follow_suggestions.dismiss": "Nicht mehr anzeigen", + "follow_suggestions.personalized_suggestion": "Personalisierte Empfehlung", + "follow_suggestions.popular_suggestion": "Beliebte Empfehlung", + "follow_suggestions.view_all": "Alle anzeigen", + "follow_suggestions.who_to_follow": "Empfohlene Profile", "followed_tags": "Gefolgte Hashtags", "footer.about": "Über", "footer.directory": "Profilverzeichnis", @@ -305,13 +309,9 @@ "hashtag.follow": "Hashtag folgen", "hashtag.unfollow": "Hashtag entfolgen", "hashtags.and_other": "… und {count, plural, one{# weiterer} other {# weitere}}", - "home.actions.go_to_explore": "Trends ansehen", - "home.actions.go_to_suggestions": "Profile zum Folgen finden", "home.column_settings.basic": "Allgemein", "home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen", "home.column_settings.show_replies": "Antworten anzeigen", - "home.explore_prompt.body": "Deine Startseite wird eine Mischung aus Beiträgen mit Hashtags und den Profilen, denen du folgst sowie den Beiträgen, die sie teilen, enthalten. Sollte es sich zu still anfühlen:", - "home.explore_prompt.title": "Das ist dein Zuhause bei Mastodon.", "home.hide_announcements": "Ankündigungen ausblenden", "home.pending_critical_update.body": "Bitte aktualisiere deinen Mastodon-Server so schnell wie möglich!", "home.pending_critical_update.link": "Updates ansehen", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 068d228906..a5ed320831 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -140,11 +140,9 @@ "compose_form.lock_disclaimer": "Ο λογαριασμός σου δεν είναι {locked}. Οποιοσδήποτε μπορεί να σε ακολουθήσει για να δει τις δημοσιεύσεις σου προς τους ακολούθους σου.", "compose_form.lock_disclaimer.lock": "κλειδωμένο", "compose_form.placeholder": "Τι σκέφτεσαι;", - "compose_form.poll.add_option": "Προσθήκη επιλογής", "compose_form.poll.duration": "Διάρκεια δημοσκόπησης", "compose_form.poll.multiple": "Πολλαπλή επιλογή", "compose_form.poll.option_placeholder": "Επιλογή {number}", - "compose_form.poll.remove_option": "Αφαίρεση επιλογής", "compose_form.poll.switch_to_multiple": "Ενημέρωση δημοσκόπησης με πολλαπλές επιλογές", "compose_form.poll.switch_to_single": "Ενημέρωση δημοσκόπησης με μοναδική επιλογή", "compose_form.poll.type": "Στυλ", @@ -291,12 +289,9 @@ "hashtag.column_settings.tag_toggle": "Προσθήκη επιπλέον ταμπελών για την κολώνα", "hashtag.follow": "Παρακολούθηση ετικέτας", "hashtag.unfollow": "Διακοπή παρακολούθησης ετικέτας", - "home.actions.go_to_suggestions": "Βρείτε άτομα για να ακολουθήσετε", "home.column_settings.basic": "Βασικές ρυθμίσεις", "home.column_settings.show_reblogs": "Εμφάνιση προωθήσεων", "home.column_settings.show_replies": "Εμφάνιση απαντήσεων", - "home.explore_prompt.body": "Your home feed will have a mix of posts from the hashtags you've chosen to follow, the people you've chosen to follow, and the posts they boost. If that feels too quiet, you may want to:\nΗ τροφοδοσία της αρχικής σελίδας σας είναι ένα μίγμα από αναρτήσεις με τις ετικέτες και τα άτομα που επιλέξατε να ακολουθείτε, και τις αναρτήσεις που προωθούν. Εάν αυτό σας φαίνεται πολύ ήσυχο, μπορεί να θέλετε:", - "home.explore_prompt.title": "Αυτό είναι το σπίτι σας στο Mastodon.", "home.hide_announcements": "Απόκρυψη ανακοινώσεων", "home.pending_critical_update.link": "Δείτε ενημερώσεις", "home.pending_critical_update.title": "Κρίσιμη ενημέρωση ασφαλείας διαθέσιμη!", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 2cf1b4dbae..3431d95cb6 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -32,6 +32,7 @@ "account.featured_tags.last_status_never": "No posts", "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Follow", + "account.follow_back": "Follow back", "account.followers": "Followers", "account.followers.empty": "No one follows this user yet.", "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}", @@ -52,6 +53,7 @@ "account.mute_notifications_short": "Mute notifications", "account.mute_short": "Mute", "account.muted": "Muted", + "account.mutual": "Mutual", "account.no_bio": "No description provided.", "account.open_original_page": "Open original page", "account.posts": "Posts", @@ -144,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "locked", "compose_form.placeholder": "What's on your mind?", "compose_form.poll.duration": "Poll duration", + "compose_form.poll.multiple": "Multiple choice", + "compose_form.poll.option_placeholder": "Option {number}", + "compose_form.poll.single": "Pick one", "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", + "compose_form.poll.type": "Style", + "compose_form.publish": "Post", "compose_form.publish_form": "New post", + "compose_form.reply": "Reply", + "compose_form.save_changes": "Update", "compose_form.spoiler.marked": "Remove content warning", "compose_form.spoiler.unmarked": "Add content warning", + "compose_form.spoiler_placeholder": "Content warning (optional)", "confirmation_modal.cancel": "Cancel", "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", @@ -267,6 +277,12 @@ "follow_request.authorize": "Authorise", "follow_request.reject": "Reject", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", + "follow_suggestions.curated_suggestion": "Editors' Choice", + "follow_suggestions.dismiss": "Don't show again", + "follow_suggestions.personalized_suggestion": "Personalised suggestion", + "follow_suggestions.popular_suggestion": "Popular suggestion", + "follow_suggestions.view_all": "View all", + "follow_suggestions.who_to_follow": "Who to follow", "followed_tags": "Followed hashtags", "footer.about": "About", "footer.directory": "Profiles directory", @@ -293,13 +309,9 @@ "hashtag.follow": "Follow hashtag", "hashtag.unfollow": "Unfollow hashtag", "hashtags.and_other": "…and {count, plural, one {}other {# more}}", - "home.actions.go_to_explore": "See what's trending", - "home.actions.go_to_suggestions": "Find people to follow", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", - "home.explore_prompt.body": "Your home feed will have a mix of posts from the hashtags you've chosen to follow, the people you've chosen to follow, and the posts they boost. If that feels too quiet, you may want to:", - "home.explore_prompt.title": "This is your home base within Mastodon.", "home.hide_announcements": "Hide announcements", "home.pending_critical_update.body": "Please update your Mastodon server as soon as possible!", "home.pending_critical_update.link": "See updates", @@ -512,7 +524,15 @@ "poll_button.add_poll": "Add a poll", "poll_button.remove_poll": "Remove poll", "privacy.change": "Change post privacy", + "privacy.direct.long": "Everyone mentioned in the post", + "privacy.direct.short": "Specific people", + "privacy.private.long": "Only your followers", + "privacy.private.short": "Followers", + "privacy.public.long": "Anyone on and off Mastodon", "privacy.public.short": "Public", + "privacy.unlisted.additional": "This behaves exactly like public, except the post will not appear in live feeds or hashtags, explore, or Mastodon search, even if you are opted-in account-wide.", + "privacy.unlisted.long": "Fewer algorithmic fanfares", + "privacy.unlisted.short": "Quiet public", "privacy_policy.last_updated": "Last updated {date}", "privacy_policy.title": "Privacy Policy", "recommended": "Recommended", @@ -530,7 +550,9 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "relative_time.today": "today", + "reply_indicator.attachments": "{count, plural, one {# attachment} other {# attachments}}", "reply_indicator.cancel": "Cancel", + "reply_indicator.poll": "Poll", "report.block": "Block", "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", "report.categories.legal": "Legal", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 907a918af0..887d754a40 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -295,13 +295,9 @@ "hashtag.follow": "Sekvi la kradvorton", "hashtag.unfollow": "Ne plu sekvi la kradvorton", "hashtags.and_other": "…kaj {count, plural,other {# pli}}", - "home.actions.go_to_explore": "Vidi kio populariĝas", - "home.actions.go_to_suggestions": "Trovi homojn por sekvi", "home.column_settings.basic": "Bazaj agordoj", "home.column_settings.show_reblogs": "Montri diskonigojn", "home.column_settings.show_replies": "Montri respondojn", - "home.explore_prompt.body": "Via hejmafiŝaro havos miksitajn afiŝojn de kradvortoj kiujn vi elektis sekvi, personoj kiujn vi elektis sekvi, kaj afiŝoj kiujn ili suprenigis.", - "home.explore_prompt.title": "Ĉi tio estas via hejma paĝo en Mastodon.", "home.hide_announcements": "Kaŝi la anoncojn", "home.pending_critical_update.body": "Ĝisdatigu vian servilon de Mastodon kiel eble plej baldau!", "home.pending_critical_update.link": "Vidi ĝisdatigojn", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 8816f18af6..87ab62cda2 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -146,14 +146,13 @@ "compose_form.lock_disclaimer.lock": "privada", "compose_form.placeholder": "¿Qué onda?", "compose_form.poll.duration": "Duración de la encuesta", - "compose_form.poll.multiple": "Selección múltiple", + "compose_form.poll.multiple": "Múltiples opciones", "compose_form.poll.option_placeholder": "Opción {number}", - "compose_form.poll.remove_option": "Quitar esta opción", - "compose_form.poll.single": "Elige uno", + "compose_form.poll.single": "Elegí una", "compose_form.poll.switch_to_multiple": "Cambiar encuesta para permitir opciones múltiples", "compose_form.poll.switch_to_single": "Cambiar encuesta para permitir una sola opción", "compose_form.poll.type": "Estilo", - "compose_form.publish": "Publicar", + "compose_form.publish": "Enviar", "compose_form.publish_form": "Nuevo mensaje", "compose_form.reply": "Responder", "compose_form.save_changes": "Actualizar", @@ -278,6 +277,12 @@ "follow_request.authorize": "Autorizar", "follow_request.reject": "Rechazar", "follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el equipo de {domain} pensó que podrías querer revisar manualmente las solicitudes de seguimiento de estas cuentas.", + "follow_suggestions.curated_suggestion": "Cuentas elegidas del servidor", + "follow_suggestions.dismiss": "No mostrar de nuevo", + "follow_suggestions.personalized_suggestion": "Sugerencia personalizada", + "follow_suggestions.popular_suggestion": "Sugerencia popular", + "follow_suggestions.view_all": "Ver todo", + "follow_suggestions.who_to_follow": "A quién seguir", "followed_tags": "Etiquetas seguidas", "footer.about": "Información", "footer.directory": "Directorio de perfiles", @@ -304,13 +309,9 @@ "hashtag.follow": "Seguir etiqueta", "hashtag.unfollow": "Dejar de seguir etiqueta", "hashtags.and_other": "…y {count, plural, other {# más}}", - "home.actions.go_to_explore": "Ver qué está en tendencia", - "home.actions.go_to_suggestions": "Encontrar cuentas para seguir", "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar adhesiones", "home.column_settings.show_replies": "Mostrar respuestas", - "home.explore_prompt.body": "Tu línea temporal principal tendrá una mezcla de mensajes de etiquetas que hayás decidido seguir, cuentas que hayás seguido y mensajes a los que éstas adhieran. Si está muy tranquilo por acá, quizás quieras:", - "home.explore_prompt.title": "Este es tu inicio en Mastodon.", "home.hide_announcements": "Ocultar anuncios", "home.pending_critical_update.body": "Por favor, ¡actualizá tu servidor de Mastodon lo antes posible!", "home.pending_critical_update.link": "Ver actualizaciones", @@ -523,10 +524,15 @@ "poll_button.add_poll": "Agregar encuesta", "poll_button.remove_poll": "Quitar encuesta", "privacy.change": "Configurar privacidad del mensaje", - "privacy.direct.short": "Personas específicas", + "privacy.direct.long": "Todas las cuentas mencionadas en el mensaje", + "privacy.direct.short": "Cuentas específicas", "privacy.private.long": "Solo tus seguidores", "privacy.private.short": "Seguidores", + "privacy.public.long": "Cualquier persona dentro y fuera de Mastodon", "privacy.public.short": "Público", + "privacy.unlisted.additional": "Esto se comporta exactamente igual que con la configuración de privacidad de mensaje \"Público\", excepto que el mensaje no aparecerá en los líneas temporales en vivo, ni en las etiquetas, ni en la línea temporal \"Explorá\", ni en la búsqueda de Mastodon; incluso si optaste por hacer tu cuenta visible.", + "privacy.unlisted.long": "Menos fanfarrias algorítmicas", + "privacy.unlisted.short": "Público silencioso", "privacy_policy.last_updated": "Última actualización: {date}", "privacy_policy.title": "Política de privacidad", "recommended": "Opción recomendada", @@ -544,7 +550,9 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "relative_time.today": "hoy", + "reply_indicator.attachments": "{count, plural,one {# adjunto} other {# adjuntos}}", "reply_indicator.cancel": "Cancelar", + "reply_indicator.poll": "Encuesta", "report.block": "Bloquear", "report.block_explanation": "No verás sus mensajes. No podrán ver tus mensajes ni seguirte. Se van a dar cuentra de que están bloqueados.", "report.categories.legal": "Legales", @@ -644,8 +652,8 @@ "status.filter": "Filtrar este mensaje", "status.filtered": "Filtrado", "status.hide": "Ocultar mensaje", - "status.history.created": "Creado por {name} el {date}", - "status.history.edited": "Editado por {name} el {date}", + "status.history.created": "Creado por {name}, {date}", + "status.history.edited": "Editado por {name}, {date}", "status.load_more": "Cargar más", "status.media.open": "Clic para abrir", "status.media.show": "Clic para mostrar", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index fdc57ac6d6..95b87b26dd 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.", "compose_form.lock_disclaimer.lock": "bloqueado", "compose_form.placeholder": "¿En qué estás pensando?", - "compose_form.poll.add_option": "Agregar opción", "compose_form.poll.duration": "Duración de la encuesta", "compose_form.poll.multiple": "Selección múltiple", "compose_form.poll.option_placeholder": "Opción {number}", - "compose_form.poll.remove_option": "Eliminar esta opción", "compose_form.poll.single": "Seleccione uno", "compose_form.poll.switch_to_multiple": "Modificar encuesta para permitir múltiples opciones", "compose_form.poll.switch_to_single": "Modificar encuesta para permitir una única opción", @@ -279,6 +277,12 @@ "follow_request.authorize": "Autorizar", "follow_request.reject": "Rechazar", "follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizás deberías revisar manualmente las solicitudes de seguimiento de estas cuentas.", + "follow_suggestions.curated_suggestion": "Recomendaciones del equipo", + "follow_suggestions.dismiss": "No mostrar de nuevo", + "follow_suggestions.personalized_suggestion": "Sugerencia personalizada", + "follow_suggestions.popular_suggestion": "Sugerencia popular", + "follow_suggestions.view_all": "Ver todo", + "follow_suggestions.who_to_follow": "A quién seguir", "followed_tags": "Hashtags seguidos", "footer.about": "Acerca de", "footer.directory": "Directorio de perfiles", @@ -305,13 +309,9 @@ "hashtag.follow": "Seguir etiqueta", "hashtag.unfollow": "Dejar de seguir etiqueta", "hashtags.and_other": "…y {count, plural, other {# más}}", - "home.actions.go_to_explore": "Ver tendencias", - "home.actions.go_to_suggestions": "Encuentra gente a la que seguir", "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar retoots", "home.column_settings.show_replies": "Mostrar respuestas", - "home.explore_prompt.body": "Tu cronología de inicio tendrá una mezcla de publicaciones de los hashtags que has escogido seguir, las personas que has decidido seguir y las publicaciones que impulsen. Si crees que está demasiado tranquila, quizás quieras:", - "home.explore_prompt.title": "Este es tu punto de partida en Mastodon.", "home.hide_announcements": "Ocultar anuncios", "home.pending_critical_update.body": "¡Por favor actualiza tu servidor Mastodon lo antes posible!", "home.pending_critical_update.link": "Ver actualizaciones", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 2e4ea93177..d5e8f4239e 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -148,7 +148,6 @@ "compose_form.poll.duration": "Duración de la encuesta", "compose_form.poll.multiple": "Selección múltiple", "compose_form.poll.option_placeholder": "Opción {number}", - "compose_form.poll.remove_option": "Quitar esta opción", "compose_form.poll.single": "Elige uno", "compose_form.poll.switch_to_multiple": "Modificar encuesta para permitir múltiples opciones", "compose_form.poll.switch_to_single": "Modificar encuesta para permitir una única opción", @@ -278,6 +277,12 @@ "follow_request.authorize": "Autorizar", "follow_request.reject": "Rechazar", "follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizás deberías revisar manualmente las solicitudes de seguimiento de estas cuentas.", + "follow_suggestions.curated_suggestion": "Recomendaciones del equipo", + "follow_suggestions.dismiss": "No mostrar de nuevo", + "follow_suggestions.personalized_suggestion": "Sugerencia personalizada", + "follow_suggestions.popular_suggestion": "Sugerencia popular", + "follow_suggestions.view_all": "Ver todo", + "follow_suggestions.who_to_follow": "A quién seguir", "followed_tags": "Etiquetas seguidas", "footer.about": "Acerca de", "footer.directory": "Directorio de perfiles", @@ -304,13 +309,9 @@ "hashtag.follow": "Seguir etiqueta", "hashtag.unfollow": "Dejar de seguir etiqueta", "hashtags.and_other": "…y {count, plural, other {# más}}", - "home.actions.go_to_explore": "Ver tendencias", - "home.actions.go_to_suggestions": "Encuentra personas a las que seguir", "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar impulsos", "home.column_settings.show_replies": "Mostrar respuestas", - "home.explore_prompt.body": "Tu cronología de inicio tendrá una mezcla de publicaciones de las etiquetas que has escogido seguir, las personas que has decidido seguir y las publicaciones que impulsen. Si crees que está demasiado tranquila, quizás quieras:", - "home.explore_prompt.title": "Este es tu punto de partida en Mastodon.", "home.hide_announcements": "Ocultar anuncios", "home.pending_critical_update.body": "Por favor, ¡actualiza tu servidor Mastodon lo antes posible!", "home.pending_critical_update.link": "Ver actualizaciones", @@ -523,10 +524,13 @@ "poll_button.add_poll": "Añadir una encuesta", "poll_button.remove_poll": "Eliminar encuesta", "privacy.change": "Ajustar privacidad", + "privacy.direct.long": "Todos los mencionados en el post", "privacy.direct.short": "Personas específicas", "privacy.private.long": "Solo tus seguidores", "privacy.private.short": "Seguidores", + "privacy.public.long": "Cualquiera dentro y fuera de Mastodon", "privacy.public.short": "Público", + "privacy.unlisted.short": "Público tranquilo", "privacy_policy.last_updated": "Actualizado por última vez {date}", "privacy_policy.title": "Política de Privacidad", "recommended": "Recomendado", @@ -545,6 +549,7 @@ "relative_time.seconds": "{number} s", "relative_time.today": "hoy", "reply_indicator.cancel": "Cancelar", + "reply_indicator.poll": "Encuesta", "report.block": "Bloquear", "report.block_explanation": "No verás sus publicaciones. No podrán ver tus publicaciones ni seguirte. Podrán saber que están bloqueados.", "report.categories.legal": "Legal", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 5034c25541..be8bec616d 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "Su konto ei ole {locked}. Igaüks saab sind jälgida, et näha su ainult-jälgijatele postitusi.", "compose_form.lock_disclaimer.lock": "lukus", "compose_form.placeholder": "Millest mõtled?", - "compose_form.poll.add_option": "Lisa valik", "compose_form.poll.duration": "Küsitluse kestus", "compose_form.poll.multiple": "Valikvastustega", "compose_form.poll.option_placeholder": "Valik {number}", - "compose_form.poll.remove_option": "Eemalda see valik", "compose_form.poll.single": "Vali üks", "compose_form.poll.switch_to_multiple": "Muuda küsitlust mitmikvaliku lubamiseks", "compose_form.poll.switch_to_single": "Muuda küsitlust ainult ühe valiku lubamiseks", @@ -305,13 +303,9 @@ "hashtag.follow": "Jälgi silti", "hashtag.unfollow": "Lõpeta sildi jälgimine", "hashtags.and_other": "…ja {count, plural, one {}other {# veel}}", - "home.actions.go_to_explore": "Vaata, mis on populaarne", - "home.actions.go_to_suggestions": "Leia inimesi, keda jälgida", "home.column_settings.basic": "Peamine", "home.column_settings.show_reblogs": "Näita jagamisi", "home.column_settings.show_replies": "Näita vastuseid", - "home.explore_prompt.body": "Sinu koduvoos on koos jälgimiseks valitud siltidega postitused, sinu jälgitavate inimeste postitused ja postitused, mida nad jagavad. Kui see tundub liiga vaikne, võid sa soovida:", - "home.explore_prompt.title": "See on sinu kodubaas Mastodonis.", "home.hide_announcements": "Peida teadaanded", "home.pending_critical_update.body": "Palun uuenda oma Mastodoni server nii ruttu kui võimalik!", "home.pending_critical_update.link": "Vaata uuendusi", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index cee18e7a51..e80e7fcf46 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -132,7 +132,7 @@ "column_header.unpin": "Desfinkatu", "column_subheading.settings": "Ezarpenak", "community.column_settings.local_only": "Lokala soilik", - "community.column_settings.media_only": "Multimedia besterik ez", + "community.column_settings.media_only": "Edukiak soilik", "community.column_settings.remote_only": "Urrunekoa soilik", "compose.language.change": "Aldatu hizkuntza", "compose.language.search": "Bilatu hizkuntzak...", @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "Zure kontua ez dago {locked}. Edonork jarraitu zaitzake zure jarraitzaileentzako soilik diren bidalketak ikusteko.", "compose_form.lock_disclaimer.lock": "giltzapetuta", "compose_form.placeholder": "Zer duzu buruan?", - "compose_form.poll.add_option": "Gehitu aukera", "compose_form.poll.duration": "Inkestaren iraupena", "compose_form.poll.multiple": "Aukera aniza", "compose_form.poll.option_placeholder": "{number}. aukera", - "compose_form.poll.remove_option": "Kendu aukera hau", "compose_form.poll.single": "Hautatu bat", "compose_form.poll.switch_to_multiple": "Aldatu inkesta hainbat aukera onartzeko", "compose_form.poll.switch_to_single": "Aldatu inkesta aukera bakarra onartzeko", @@ -279,6 +277,12 @@ "follow_request.authorize": "Baimendu", "follow_request.reject": "Ukatu", "follow_requests.unlocked_explanation": "Zure kontua blokeatuta ez badago ere, {domain} domeinuko arduradunek uste dute kontu hauetako jarraipen eskaerak agian eskuz begiratu nahiko dituzula.", + "follow_suggestions.curated_suggestion": "Zerbitzariaren iradokizunak", + "follow_suggestions.dismiss": "Ez erakutsi berriro", + "follow_suggestions.personalized_suggestion": "Iradokizun pertsonalizatua", + "follow_suggestions.popular_suggestion": "Iradokizun ezaguna", + "follow_suggestions.view_all": "Ikusi denak", + "follow_suggestions.who_to_follow": "Zein jarraitu", "followed_tags": "Jarraitutako traolak", "footer.about": "Honi buruz", "footer.directory": "Profil-direktorioa", @@ -305,13 +309,9 @@ "hashtag.follow": "Jarraitu traolari", "hashtag.unfollow": "Utzi traola jarraitzeari", "hashtags.and_other": "…eta {count, plural, one {}other {# gehiago}}", - "home.actions.go_to_explore": "Ikusi zer dagoen pil-pilean", - "home.actions.go_to_suggestions": "Aurkitu jendea jarraitzeko", "home.column_settings.basic": "Oinarrizkoa", "home.column_settings.show_reblogs": "Erakutsi bultzadak", "home.column_settings.show_replies": "Erakutsi erantzunak", - "home.explore_prompt.body": "Zure hasierako jarioak jarraitzeko aukeratu dituzun traolen, jarraitzeko aukeratu duzun jendearen eta beraiek bultzatutako argitalpenen nahasketa bat edukiko du. Nahiko isila dirudi oraintxe, beraz, zergatik ez:", - "home.explore_prompt.title": "Hau zure hasiera da Mastodonen.", "home.hide_announcements": "Ezkutatu iragarpenak", "home.pending_critical_update.body": "Eguneratu zure Mastodoneko zerbitzaria leheinbailehen!", "home.pending_critical_update.link": "Ikusi eguneraketak", @@ -356,7 +356,7 @@ "keyboard_shortcuts.muted": "mutututako erabiltzaileen zerrenda irekitzeko", "keyboard_shortcuts.my_profile": "zure profila irekitzeko", "keyboard_shortcuts.notifications": "jakinarazpenen zutabea irekitzeko", - "keyboard_shortcuts.open_media": "media zabaltzeko", + "keyboard_shortcuts.open_media": "Ireki edukia", "keyboard_shortcuts.pinned": "Ireki finkatutako bidalketen zerrenda", "keyboard_shortcuts.profile": "egilearen profila irekitzeko", "keyboard_shortcuts.reply": "Erantzun bidalketari", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 0b078d1ab3..4050ca9f9f 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "حسابتان {locked} نیست. هر کسی می‌تواند پی‌گیرتان شده و فرسته‌های ویژهٔ پی‌گیرانتان را ببیند.", "compose_form.lock_disclaimer.lock": "قفل‌شده", "compose_form.placeholder": "تازه چه خبر؟", - "compose_form.poll.add_option": "افزودن گزینه", "compose_form.poll.duration": "مدت نظرسنجی", "compose_form.poll.multiple": "چند گزینه‌ای", "compose_form.poll.option_placeholder": "گزینهٔ {number}", - "compose_form.poll.remove_option": "برداشتن این گزینه", "compose_form.poll.single": "گزینش یکی", "compose_form.poll.switch_to_multiple": "تغییر نظرسنجی برای اجازه به چندین گزینه", "compose_form.poll.switch_to_single": "تبدیل به نظرسنجی تک‌گزینه‌ای", @@ -305,13 +303,9 @@ "hashtag.follow": "پی‌گرفتن برچسب", "hashtag.unfollow": "پی‌نگرفتن برچسب", "hashtags.and_other": "…و {count, plural, other {# بیش‌تر}}", - "home.actions.go_to_explore": "ببینید چه داغ است", - "home.actions.go_to_suggestions": "یافتن افراد برای پی‌گیری", "home.column_settings.basic": "پایه‌ای", "home.column_settings.show_reblogs": "نمایش تقویت‌ها", "home.column_settings.show_replies": "نمایش پاسخ‌ها", - "home.explore_prompt.body": "خوراک خانگیتان ترکیبی از فرسته‌ها از برچسب‌هایی که برای پی‌گیری گزیده‌اید، افرادی که پی می‌گیرید و فرسته‌هایی که تقویت می‌کنند را خواهد داشت. اگر خیلی خلوت به نظر می‌رسد،‌ شاید بخواهید:", - "home.explore_prompt.title": "این پایگاه خانگیتان در ماستودون است.", "home.hide_announcements": "نهفتن اعلامیه‌ها", "home.pending_critical_update.body": "لطفاً کارساز ماستودونتان را در نخستین فرصت به‌روز کنید!", "home.pending_critical_update.link": "دیدن به‌روز رسانی‌ها", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 7b98f99836..277f0f2e72 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -2,8 +2,8 @@ "about.blocks": "Moderoidut palvelimet", "about.contact": "Ota yhteys:", "about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.", - "about.domain_blocks.no_reason_available": "Syytä ei ole ilmoitettu", - "about.domain_blocks.preamble": "Mastodonin avulla voidaan yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältöä ja vuorovaikuttaa eri palvelinten käyttäjien kanssa. Nämä ovat tälle palvelimelle määritetyt poikkeukset.", + "about.domain_blocks.no_reason_available": "Syy ei ole tiedossa", + "about.domain_blocks.preamble": "Mastodonin avulla voidaan yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältöä, ja olla yhteyksissä eri palvelinten käyttäjien kanssa. Nämä poikkeukset koskevat yksin tätä palvelinta.", "about.domain_blocks.silenced.explanation": "Et yleensä näe tämän palvelimen profiileja ja sisältöä, jollet erityisesti etsi juuri sitä tai liity siihen seuraamalla.", "about.domain_blocks.silenced.title": "Rajoitettu", "about.domain_blocks.suspended.explanation": "Mitään tämän palvelimen tietoja ei käsitellä, tallenneta tai vaihdeta, mikä tekee vuorovaikutuksesta ja viestinnästä sen käyttäjien kanssa mahdotonta.", @@ -19,7 +19,7 @@ "account.block_domain": "Estä verkkotunnus {domain}", "account.block_short": "Estä", "account.blocked": "Estetty", - "account.browse_more_on_origin_server": "Selaile lisää alkuperäisellä palvelimella", + "account.browse_more_on_origin_server": "Selaile kattavampaa alkuperäprofiilia", "account.cancel_follow_request": "Peruuta seurantapyyntö", "account.copy": "Kopioi linkki profiiliin", "account.direct": "Mainitse @{name} yksityisesti", @@ -27,7 +27,7 @@ "account.domain_blocked": "Verkkotunnus estetty", "account.edit_profile": "Muokkaa profiilia", "account.enable_notifications": "Ilmoita minulle, kun @{name} julkaisee", - "account.endorse": "Pidä esillä profiilissa", + "account.endorse": "Suosittele profiilissasi", "account.featured_tags.last_status_at": "Viimeisin julkaisu {date}", "account.featured_tags.last_status_never": "Ei julkaisuja", "account.featured_tags.title": "Käyttäjän {name} esillä pidettävät aihetunnisteet", @@ -39,7 +39,7 @@ "account.following": "Seuratut", "account.following_counter": "{count, plural, one {{counter} seurattu} other {{counter} seurattua}}", "account.follows.empty": "Tämä käyttäjä ei vielä seuraa ketään.", - "account.go_to_profile": "Avaa profiili", + "account.go_to_profile": "Mene profiiliin", "account.hide_reblogs": "Piilota käyttäjän @{name} tehostukset", "account.in_memoriam": "Muistoissamme.", "account.joined_short": "Liittynyt", @@ -64,10 +64,10 @@ "account.share": "Jaa käyttäjän @{name} profiili", "account.show_reblogs": "Näytä käyttäjän @{name} tehostukset", "account.statuses_counter": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}", - "account.unblock": "Poista käyttäjän @{name} esto", - "account.unblock_domain": "Poista verkkotunnuksen {domain} esto", + "account.unblock": "Kumoa käyttäjän @{name} esto", + "account.unblock_domain": "Kumoa verkkotunnuksen {domain} esto", "account.unblock_short": "Poista esto", - "account.unendorse": "Älä pidä esillä profiilissa", + "account.unendorse": "Kumoa suosittelu profiilissasi", "account.unfollow": "Lopeta seuraaminen", "account.unmute": "Poista käyttäjän @{name} mykistys", "account.unmute_notifications_short": "Poista ilmoitusten mykistys", @@ -75,7 +75,7 @@ "account_note.placeholder": "Lisää muistiinpano napsauttamalla", "admin.dashboard.daily_retention": "Käyttäjien pysyvyys rekisteröitymisen jälkeen päivittäin", "admin.dashboard.monthly_retention": "Käyttäjien pysyvyys rekisteröitymisen jälkeen kuukausittain", - "admin.dashboard.retention.average": "Keskimäärin", + "admin.dashboard.retention.average": "Keskiarvo", "admin.dashboard.retention.cohort": "Rekisteröitymis-kk.", "admin.dashboard.retention.cohort_size": "Uusia käyttäjiä", "admin.impact_report.instance_accounts": "Tilien profiilit, jotka tämä poistaisi", @@ -86,7 +86,7 @@ "alert.rate_limited.title": "Pyyntömäärää rajoitettu", "alert.unexpected.message": "Tapahtui odottamaton virhe.", "alert.unexpected.title": "Hups!", - "announcement.announcement": "Ilmoitus", + "announcement.announcement": "Tiedote", "attachments_list.unprocessed": "(käsittelemätön)", "audio.hide": "Piilota ääni", "boost_modal.combo": "Ensi kerralla voit ohittaa tämän painamalla {combo}", @@ -145,14 +145,12 @@ "compose_form.lock_disclaimer": "Tilisi ei ole {locked}. Kuka tahansa voi seurata tiliäsi ja nähdä vain seuraajille rajaamasi julkaisut.", "compose_form.lock_disclaimer.lock": "lukittu", "compose_form.placeholder": "Mitä mietit?", - "compose_form.poll.add_option": "Lisää vaihtoehto", "compose_form.poll.duration": "Äänestyksen kesto", "compose_form.poll.multiple": "Monivalinta", "compose_form.poll.option_placeholder": "Vaihtoehto {number}", - "compose_form.poll.remove_option": "Poista tämä vaihtoehto", "compose_form.poll.single": "Valitse yksi", - "compose_form.poll.switch_to_multiple": "Muuta äänestys monivalinnaksi", - "compose_form.poll.switch_to_single": "Muuta äänestys sallimaan vain yksi valinta", + "compose_form.poll.switch_to_multiple": "Muuta kysely monivalinnaksi", + "compose_form.poll.switch_to_single": "Muuta kysely sallimaan vain yksi valinta", "compose_form.poll.type": "Tyyli", "compose_form.publish": "Julkaise", "compose_form.publish_form": "Uusi julkaisu", @@ -166,13 +164,13 @@ "confirmations.block.confirm": "Estä", "confirmations.block.message": "Haluatko varmasti estää käyttäjän {name}?", "confirmations.cancel_follow_request.confirm": "Peruuta pyyntö", - "confirmations.cancel_follow_request.message": "Haluatko varmasti peruuttaa pyyntösi seurata profiilia {name}?", + "confirmations.cancel_follow_request.message": "Haluatko varmasti perua pyyntösi seurata käyttäjätiliä {name}?", "confirmations.delete.confirm": "Poista", "confirmations.delete.message": "Haluatko varmasti poistaa tämän julkaisun?", "confirmations.delete_list.confirm": "Poista", "confirmations.delete_list.message": "Haluatko varmasti poistaa tämän listan pysyvästi?", "confirmations.discard_edit_media.confirm": "Hylkää", - "confirmations.discard_edit_media.message": "Sinulla on tallentamattomia muutoksia median kuvaukseen tai esikatseluun, hylätäänkö ne silti?", + "confirmations.discard_edit_media.message": "Sinulla on tallentamattomia muutoksia median kuvaukseen tai esikatseluun. Hylätäänkö ne silti?", "confirmations.domain_block.confirm": "Estä koko verkkotunnus", "confirmations.domain_block.message": "Haluatko aivan varmasti estää koko verkkotunnuksen {domain}? Useimmiten muutama kohdistettu esto tai mykistys on riittävä ja suositeltava toimi. Et näe sisältöä tästä verkkotunnuksesta millään julkisilla aikajanoilla tai ilmoituksissa. Tähän verkkotunnukseen kuuluvat seuraajasi poistetaan.", "confirmations.edit.confirm": "Muokkaa", @@ -182,12 +180,12 @@ "confirmations.mute.confirm": "Mykistä", "confirmations.mute.explanation": "Tämä toiminto piilottaa heidän julkaisunsa sinulta – mukaan lukien ne, joissa heidät mainitaan – sallien heidän yhä nähdä julkaisusi ja seurata sinua.", "confirmations.mute.message": "Haluatko varmasti mykistää käyttäjän {name}?", - "confirmations.redraft.confirm": "Poista & palauta muokattavaksi", + "confirmations.redraft.confirm": "Poista ja palauta muokattavaksi", "confirmations.redraft.message": "Haluatko varmasti poistaa julkaisun ja tehdä siitä luonnoksen? Suosikit ja tehostukset menetetään, ja alkuperäisen julkaisun vastaukset jäävät orvoiksi.", "confirmations.reply.confirm": "Vastaa", "confirmations.reply.message": "Jos vastaat nyt, vastaus korvaa parhaillaan työstämäsi viestin. Haluatko varmasti jatkaa?", "confirmations.unfollow.confirm": "Lopeta seuraaminen", - "confirmations.unfollow.message": "Haluatko varmasti lakata seuraamasta profiilia {name}?", + "confirmations.unfollow.message": "Haluatko varmasti lopettaa profiilin {name} seuraamisen?", "conversation.delete": "Poista keskustelu", "conversation.mark_as_read": "Merkitse luetuksi", "conversation.open": "Näytä keskustelu", @@ -201,10 +199,10 @@ "directory.recently_active": "Hiljattain aktiiviset", "disabled_account_banner.account_settings": "Tilin asetukset", "disabled_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä.", - "dismissable_banner.community_timeline": "Nämä ovat viimeisimpiä julkaisuja käyttäjiltä, joiden tili sijaitsee palvelimella {domain}.", + "dismissable_banner.community_timeline": "Nämä ovat tuoreimpia julkaisuja käyttäjiltä, joiden tili on palvelimella {domain}.", "dismissable_banner.dismiss": "Hylkää", "dismissable_banner.explore_links": "Näitä uutisia jaetaan tänään sosiaalisessa verkossa eniten. Uusimmat ja eri käyttäjien eniten lähettämät uutiset nousevat listauksessa korkeimmalle.", - "dismissable_banner.explore_statuses": "Nämä sosiaalisen verkon julkaisut keräävät tänään eniten huomiota. Uusimmat, tehostetuimmat ja suosikiksi lisätyimmät nousevat listauksessa korkeimmalle.", + "dismissable_banner.explore_statuses": "Tänään nämä sosiaalisen verkon julkaisut keräävät eniten huomiota. Uusimmat, tehostetuimmat ja suosikeiksi lisätyimmät julkaisut nousevat listauksessa korkeammalle.", "dismissable_banner.explore_tags": "Nämä sosiaalisen verkon aihetunnisteet keräävät tänään eniten huomiota. Useimman käyttäjän käyttämät aihetunnisteet nousevat listauksessa korkeimmalle.", "dismissable_banner.public_timeline": "Nämä ovat viimeisimpiä julkaisuja sosiaalisen verkon käyttäjiltä, joita seurataan palvelimella {domain}.", "embed.instructions": "Upota julkaisu verkkosivullesi kopioimalla alla oleva koodi.", @@ -216,18 +214,18 @@ "emoji_button.food": "Ruoka ja juoma", "emoji_button.label": "Lisää emoji", "emoji_button.nature": "Luonto", - "emoji_button.not_found": "Vastaavia emojeja ei löytynyt", + "emoji_button.not_found": "Vastaavia emojeita ei löytynyt", "emoji_button.objects": "Esineet", "emoji_button.people": "Ihmiset", "emoji_button.recent": "Usein käytetyt", - "emoji_button.search": "Hae...", + "emoji_button.search": "Etsi...", "emoji_button.search_results": "Hakutulokset", "emoji_button.symbols": "Symbolit", "emoji_button.travel": "Matkailu ja paikat", - "empty_column.account_hides_collections": "Käyttäjä on päättänyt olla julkaisematta näitä tietoja", + "empty_column.account_hides_collections": "Käyttäjä on päättänyt pitää nämä tiedot yksityisinä", "empty_column.account_suspended": "Tili jäädytetty", "empty_column.account_timeline": "Ei viestejä täällä.", - "empty_column.account_unavailable": "Profiilia ei löydy", + "empty_column.account_unavailable": "Profiilia ei ole saatavilla", "empty_column.blocks": "Et ole vielä estänyt käyttäjiä.", "empty_column.bookmarked_statuses": "Et ole vielä lisännyt julkaisuja kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.", "empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!", @@ -238,17 +236,17 @@ "empty_column.favourites": "Kukaan ei ole vielä lisännyt tätä julkaisua suosikkeihinsa. Kun joku tekee niin, tulee hän tähän näkyviin.", "empty_column.follow_requests": "Et ole vielä vastaanottanut seuraamispyyntöjä. Saamasi pyynnöt näkyvät täällä.", "empty_column.followed_tags": "Et seuraa vielä yhtäkään aihetunnistetta. Kun alat seurata, ne tulevat tähän näkyviin.", - "empty_column.hashtag": "Tällä aihetunnisteella ei ole vielä mitään.", + "empty_column.hashtag": "Tällä aihetunnisteella ei löydy vielä sisältöä.", "empty_column.home": "Kotiaikajanasi on tyhjä! Seuraa useampia henkilöjä, niin näet enemmän sisältöä.", "empty_column.list": "Tällä listalla ei ole vielä mitään. Kun tämän listan jäsenet lähettävät uusia julkaisuja, ne näkyvät tässä.", "empty_column.lists": "Sinulla ei ole vielä yhtään listaa. Kun luot sellaisen, näkyy se tässä.", "empty_column.mutes": "Et ole mykistänyt vielä yhtään käyttäjää.", "empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun keskustelet muille, näet sen täällä.", "empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti. Voit myös seurata muiden palvelimien käyttäjiä", - "error.unexpected_crash.explanation": "Sivua ei voi näyttää oikein, johtuen bugista tai ongelmasta selaimen yhteensopivuudessa.", + "error.unexpected_crash.explanation": "Sivua ei voida näyttää oikein ohjelmointivirheen tai selaimen yhteensopivuusvajeen vuoksi.", "error.unexpected_crash.explanation_addons": "Sivua ei voitu näyttää oikein. Tämä virhe johtuu todennäköisesti selaimen lisäosasta tai automaattisista käännöstyökaluista.", "error.unexpected_crash.next_steps": "Kokeile päivittää sivu. Jos se ei auta, voi Mastodonin käyttö ehkä onnistua eri selaimella tai natiivisovelluksella.", - "error.unexpected_crash.next_steps_addons": "Yritä poistaa ne käytöstä ja päivittää sivu. Jos se ei auta, voit silti käyttää Mastodonia eri selaimen tai sovelluksen kautta.", + "error.unexpected_crash.next_steps_addons": "Yritä poistaa ne käytöstä, ja virkistä sitten sivunlataus. Mikäli ongelma jatkuu, voit mahdollisesti käyttää Mastodonia eri selaimella tai natiivilla sovelluksella.", "errors.unexpected_crash.copy_stacktrace": "Kopioi pinon jäljitys leikepöydälle", "errors.unexpected_crash.report_issue": "Ilmoita ongelmasta", "explore.search_results": "Hakutulokset", @@ -257,13 +255,13 @@ "explore.trending_links": "Uutiset", "explore.trending_statuses": "Julkaisut", "explore.trending_tags": "Aihetunnisteet", - "filter_modal.added.context_mismatch_explanation": "Tämä suodatinluokka ei koske kontekstia, jossa olet tarkastellut tätä julkaisua. Jos haluat, että julkaisu suodatetaan myös tässä kontekstissa, sinun pitää muokata suodatinta.", - "filter_modal.added.context_mismatch_title": "Konteksti ei täsmää!", - "filter_modal.added.expired_explanation": "Tämä suodatinluokka on vanhentunut, joten sinun on muutettava viimeistä voimassaolopäivää, jotta suodatin on voimassa.", + "filter_modal.added.context_mismatch_explanation": "Tämä suodatinluokka ei koske asiayhteyttä, jossa olet tarkastellut tätä julkaisua. Jos haluat julkaisun suodatettavan myös tässä asiayhteydessä, muokkaa suodatinta.", + "filter_modal.added.context_mismatch_title": "Asiayhteys ei täsmää!", + "filter_modal.added.expired_explanation": "Tämä suodatinluokka on vanhentunut, joten sinun on muutettava viimeistä voimassaolopäivää, jotta suodatusta käytettäisiin.", "filter_modal.added.expired_title": "Vanhentunut suodatin!", - "filter_modal.added.review_and_configure": "Voit tarkastella tätä suodatinluokkaa ja määrittää sen tarkemmin kohdassa {settings_link}.", + "filter_modal.added.review_and_configure": "Voit tarkastella tätä suodatinluokkaa ja määrittää sen tarkemmin {settings_link}.", "filter_modal.added.review_and_configure_title": "Suodattimen asetukset", - "filter_modal.added.settings_link": "asetukset-sivulle", + "filter_modal.added.settings_link": "asetussivulla", "filter_modal.added.short_explanation": "Tämä julkaisu on lisätty seuraavaan suodatinluokkaan: {title}.", "filter_modal.added.title": "Suodatin lisätty!", "filter_modal.select_filter.context_mismatch": "ei sovellu tähän kontekstiin", @@ -279,6 +277,12 @@ "follow_request.authorize": "Valtuuta", "follow_request.reject": "Hylkää", "follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelimen {domain} ylläpito on arvioinut, että saatat olla halukas tarkistamaan nämä seuraamispyynnöt erikseen.", + "follow_suggestions.curated_suggestion": "Päätoimittajan valinta", + "follow_suggestions.dismiss": "Älä näytä uudelleen", + "follow_suggestions.personalized_suggestion": "Personoitu ehdotus", + "follow_suggestions.popular_suggestion": "Suosittu ehdotus", + "follow_suggestions.view_all": "Näytä kaikki", + "follow_suggestions.who_to_follow": "Ehdotuksia seurattavaksi", "followed_tags": "Seuratut aihetunnisteet", "footer.about": "Tietoja", "footer.directory": "Profiilihakemisto", @@ -305,15 +309,11 @@ "hashtag.follow": "Seuraa aihetunnistetta", "hashtag.unfollow": "Lopeta aihetunnisteen seuraaminen", "hashtags.and_other": "…ja {count, plural, other {# lisää}}", - "home.actions.go_to_explore": "Katso, mikä on suosittua", - "home.actions.go_to_suggestions": "Löydä seurattavia käyttäjiä", "home.column_settings.basic": "Perusasetukset", "home.column_settings.show_reblogs": "Näytä tehostukset", "home.column_settings.show_replies": "Näytä vastaukset", - "home.explore_prompt.body": "Kotisyötteesi on sekoitus seuraamiasi aihetunnisteita ja käyttäjiä sekä heidän tehostamiaan julkaisuja. Jos se tuntuu liian hiljaiselta, saatat haluta:", - "home.explore_prompt.title": "Tämä on tukikohtasi Mastodonissa.", "home.hide_announcements": "Piilota tiedotteet", - "home.pending_critical_update.body": "Päivitäthän Mastodon-palvelimen mahdollisimman pian!", + "home.pending_critical_update.body": "Päivitäthän Mastodon-palvelinohjelmistosi mahdollisimman pian!", "home.pending_critical_update.link": "Tutustu päivityssisältöihin", "home.pending_critical_update.title": "Kriittinen tietoturvapäivitys saatavilla!", "home.show_announcements": "Näytä tiedotteet", @@ -352,7 +352,7 @@ "keyboard_shortcuts.hotkey": "Pikanäppäin", "keyboard_shortcuts.legend": "Näytä tämä ohje", "keyboard_shortcuts.local": "Avaa paikallinen aikajana", - "keyboard_shortcuts.mention": "Mainitse kirjoittaja", + "keyboard_shortcuts.mention": "Mainitse julkaisija", "keyboard_shortcuts.muted": "Avaa mykistettyjen käyttäjien luettelo", "keyboard_shortcuts.my_profile": "Avaa profiilisi", "keyboard_shortcuts.notifications": "Avaa ilmoitussarake", @@ -370,12 +370,12 @@ "keyboard_shortcuts.unfocus": "Poistu teksti-/hakukentästä", "keyboard_shortcuts.up": "Siirry listassa ylöspäin", "lightbox.close": "Sulje", - "lightbox.compress": "Pakkaa kuvan näkymälaatikko", - "lightbox.expand": "Laajenna kuvan näkymälaatikko", + "lightbox.compress": "Tiivis kuvankatselunäkymä", + "lightbox.expand": "Laajennettu kuvankatselunäkymä", "lightbox.next": "Seuraava", "lightbox.previous": "Edellinen", "limited_account_hint.action": "Näytä profiili joka tapauksessa", - "limited_account_hint.title": "Palvelun {domain} valvojat ovat piilottaneet tämän profiilin.", + "limited_account_hint.title": "Palvelimen {domain} valvojat ovat piilottaneet tämän käyttäjätilin.", "link_preview.author": "Julkaissut {name}", "lists.account.add": "Lisää listalle", "lists.account.remove": "Poista listalta", @@ -389,21 +389,21 @@ "lists.replies_policy.list": "Listan jäsenille", "lists.replies_policy.none": "Ei kellekään", "lists.replies_policy.title": "Näytä vastaukset:", - "lists.search": "Etsi seuraamistasi henkilöistä", + "lists.search": "Etsi seuraamiesi henkilöiden keskuudesta", "lists.subheading": "Omat listasi", "load_pending": "{count, plural, one {# uusi kohde} other {# uutta kohdetta}}", "loading_indicator.label": "Ladataan…", "media_gallery.toggle_visible": "{number, plural, one {Piilota kuva} other {Piilota kuvat}}", "moved_to_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä, koska teit siirron tiliin {movedToAccount}.", "mute_modal.duration": "Kesto", - "mute_modal.hide_notifications": "Piilota tältä käyttäjältä tulevat ilmoitukset?", + "mute_modal.hide_notifications": "Piilotetaanko tältä käyttäjältä tulevat ilmoitukset?", "mute_modal.indefinite": "Ikuisesti", "navigation_bar.about": "Tietoja", "navigation_bar.advanced_interface": "Avaa edistyneessä selainkäyttöliittymässä", "navigation_bar.blocks": "Estetyt käyttäjät", "navigation_bar.bookmarks": "Kirjanmerkit", "navigation_bar.community_timeline": "Paikallinen aikajana", - "navigation_bar.compose": "Kirjoita uusi julkaisu", + "navigation_bar.compose": "Luo uusi julkaisu", "navigation_bar.direct": "Yksityiset maininnat", "navigation_bar.discover": "Löydä uutta", "navigation_bar.domain_blocks": "Estetyt verkkotunnukset", @@ -428,10 +428,10 @@ "notification.admin.sign_up": "{name} rekisteröityi", "notification.favourite": "{name} lisäsi julkaisusi suosikkeihinsa", "notification.follow": "{name} seurasi sinua", - "notification.follow_request": "{name} haluaa seurata sinua", + "notification.follow_request": "{name} on pyytänyt lupaa saada seurata sinua", "notification.mention": "{name} mainitsi sinut", "notification.own_poll": "Äänestyksesi on päättynyt", - "notification.poll": "Äänestys, johon osallistuit, on päättynyt", + "notification.poll": "Kysely, johon osallistuit, on päättynyt", "notification.reblog": "{name} tehosti julkaisuasi", "notification.status": "{name} julkaisi juuri", "notification.update": "{name} muokkasi julkaisua", @@ -478,7 +478,7 @@ "onboarding.actions.go_to_home": "Siirry kotisyötteeseeni", "onboarding.compose.template": "Tervehdys #Mastodon!", "onboarding.follows.empty": "Valitettavasti tuloksia ei voida näyttää juuri nyt. Voit kokeilla hakua tai selata tutustumissivua löytääksesi seurattavaa tai yrittää myöhemmin uudelleen.", - "onboarding.follows.lead": "Kokoat oman kotisyötteesi itse. Mitä enemmän ihmisiä seuraat, sitä aktiivisempi ja kiinnostavampi syöte on. Nämä profiilit voivat olla alkuun hyvä lähtökohta — voit aina lopettaa niiden seuraamisen myöhemmin!", + "onboarding.follows.lead": "Kokoat oman kotisyötteesi itse. Mitä enemmän ihmisiä seuraat, sitä aktiivisempi ja kiinnostavampi syöte on. Nämä profiilit voivat olla alkuun hyvä lähtökohta – voit milloin tahansa myös lopettaa niiden seuraamisen:", "onboarding.follows.title": "Mukauta kotisyötettäsi", "onboarding.profile.discoverable": "Aseta profiilini löydettäväksi", "onboarding.profile.discoverable_hint": "Kun olet määrittänyt itsesi löydettäväksi Mastodonista, julkaisusi voivat näkyä hakutuloksissa ja suosituissa kohteissa. Lisäksi profiiliasi voidaan ehdottaa käyttäjille, jotka ovat kiinnostuneita kanssasi samoista aiheista.", @@ -506,7 +506,7 @@ "onboarding.steps.setup_profile.title": "Mukauta profiiliasi", "onboarding.steps.share_profile.body": "Kerro kavereillesi, kuinka sinut löytää Mastodonista", "onboarding.steps.share_profile.title": "Jaa Mastodon-profiilisi", - "onboarding.tips.2fa": "Tiesitkö? Voit suojata tilisi ottamalla kaksivaiheisen todennuksen käyttöön tilisi asetuksista. Se toimii millä tahansa TOTP-sovelluksella, eikä sen käyttö edellytä puhelinnumeroa!", + "onboarding.tips.2fa": "Tiesitkö? Voit suojata tilisi ottamalla kaksivaiheisen todennuksen käyttöön tilisi asetuksista. Se toimii millä tahansa TOTP-sovelluksella, eikä sen käyttö edellytä puhelinnumeron antoa!", "onboarding.tips.accounts_from_other_servers": "Tiesitkö? Koska Mastodon on hajautettu, osa kohtaamistasi profiileista sijaitsee muilla kuin sinun palvelimellasi. Voit silti viestiä saumattomasti heidän kanssaan! Heidän palvelimensa mainitaan käyttäjänimen jälkiosassa!", "onboarding.tips.migration": "Tiesitkö? Jos koet, ettei {domain} ole jatkossa itsellesi hyvä palvelinvalinta, voit siirtyä toiselle Mastodon-palvelimelle menettämättä seuraajiasi. Voit jopa isännöidä omaa palvelintasi!", "onboarding.tips.verification": "Tiesitkö? Voit vahvistaa tilisi lisäämällä omalle verkkosivustollesi linkin Mastodon-profiiliisi ja lisäämällä sitten verkkosivustosi osoitteen Mastodon-profiilisi lisäkenttään. Tämä ei maksa mitään, eikä sinun tarvitse lähetellä asiakirjoja!", @@ -521,8 +521,8 @@ "poll.vote": "Äänestä", "poll.voted": "Äänestit tätä vastausta", "poll.votes": "{votes, plural, one {# ääni} other {# ääntä}}", - "poll_button.add_poll": "Lisää äänestys", - "poll_button.remove_poll": "Poista äänestys", + "poll_button.add_poll": "Lisää kysely", + "poll_button.remove_poll": "Poista kysely", "privacy.change": "Muuta julkaisun näkyvyyttä", "privacy.direct.long": "Kaikki tässä julkaisussa mainitut", "privacy.direct.short": "Tietyt henkilöt", @@ -530,7 +530,9 @@ "privacy.private.short": "Seuraajat", "privacy.public.long": "Kuka tahansa Mastodonissa ja sen ulkopuolella", "privacy.public.short": "Julkinen", - "privacy.unlisted.additional": "Tämä toimii kuten julkinen, paitsi että julkaisu ei näy livesyötteissä, aihetunnisteissa, selaa-näkymässä tai Mastodon-haussa, vaikka olisit sallinut ne käyttäjätilin laajuisesti.", + "privacy.unlisted.additional": "Tämä on muutoin kuin julkinen julkaisu, mutta sitä ei näytetä livesyöte-, aihetunniste- tai selailunäkymissä eikä Mastodon-hakutuloksissakaan, vaikka ne olisivat käyttäjätililläsi yleisesti sallittuina.", + "privacy.unlisted.long": "Vähemmän algoritmiperusteista sisältöä", + "privacy.unlisted.short": "Vaivihkaisesti julkinen", "privacy_policy.last_updated": "Viimeksi päivitetty {date}", "privacy_policy.title": "Tietosuojakäytäntö", "recommended": "Suositeltu", @@ -553,16 +555,16 @@ "reply_indicator.poll": "Kysely", "report.block": "Estä", "report.block_explanation": "Et näe hänen viestejään, eikä hän voi nähdä viestejäsi tai seurata sinua. Hän näkee, että olet estänyt hänet.", - "report.categories.legal": "Lakiasiat", + "report.categories.legal": "Juridiset tiedot", "report.categories.other": "Muu", "report.categories.spam": "Roskaposti", - "report.categories.violation": "Sisältö rikkoo yhtä tai useampaa palvelimen sääntöä", + "report.categories.violation": "Sisältö rikkoo yhtä tai useampaa palvelimen säännöistä", "report.category.subtitle": "Valitse sopivin", "report.category.title": "Kerro meille, miksi tämä {type} pitää raportoida", - "report.category.title_account": "profiili", - "report.category.title_status": "julkaisu", + "report.category.title_account": "profiilissa", + "report.category.title_status": "julkaisussa", "report.close": "Valmis", - "report.comment.title": "Olisiko jotain muuta, mitä meidän pitäisi tietää?", + "report.comment.title": "Onko vielä jotain muuta, mitä meidän pitäisi tietää?", "report.forward": "Välitä kohteeseen {target}", "report.forward_hint": "Tämä tili on toisella palvelimella. Haluatko lähettää nimettömän raportin myös sinne?", "report.mute": "Mykistä", @@ -570,18 +572,18 @@ "report.next": "Seuraava", "report.placeholder": "Lisäkommentit", "report.reasons.dislike": "En pidä siitä", - "report.reasons.dislike_description": "Et halua nähdä sitä", + "report.reasons.dislike_description": "Sisältö on sen tyyppistä, ettet halua nähdä sitä", "report.reasons.legal": "Se on laitonta", "report.reasons.legal_description": "Katsot sisällön rikkovan maasi tai palvelimen kotimaan lakeja", "report.reasons.other": "Jotain muuta", - "report.reasons.other_description": "Ongelma ei sovi muihin kategorioihin", + "report.reasons.other_description": "Muut raportointisyyt eivät kuvaa ongelmaa", "report.reasons.spam": "Se on roskapostia", - "report.reasons.spam_description": "Haitalliset linkit, väärennetyt sitoutumiset tai toistuvat vastaukset", + "report.reasons.spam_description": "Haitalliset linkit, henkilöväärennökset tai itseään toistavat vastaukset", "report.reasons.violation": "Se rikkoo palvelimen sääntöjä", - "report.reasons.violation_description": "Tiedät, että se rikkoo tiettyjä sääntöjä", + "report.reasons.violation_description": "Tiedät sisällön rikkovan tiettyjä sääntöjä", "report.rules.subtitle": "Valitse kaikki sopivat", "report.rules.title": "Mitä sääntöjä rikotaan?", - "report.statuses.subtitle": "Valitse kaikki sopivat", + "report.statuses.subtitle": "Valitse kaikki soveltuvat julkaisut", "report.statuses.title": "Onko julkaisuja, jotka tukevat tätä raporttia?", "report.submit": "Lähetä", "report.target": "Raportoidaan {target}", @@ -595,14 +597,14 @@ "report_notification.categories.legal": "Laillinen", "report_notification.categories.other": "Muu", "report_notification.categories.spam": "Roskaposti", - "report_notification.categories.violation": "Sääntöjen rikkominen", + "report_notification.categories.violation": "Sääntörikkomus", "report_notification.open": "Avaa raportti", "search.no_recent_searches": "Ei viimeaikaisia hakuja", "search.placeholder": "Hae", "search.quick_action.account_search": "Profiilit haulla {x}", "search.quick_action.go_to_account": "Siirry profiiliin {x}", "search.quick_action.go_to_hashtag": "Siirry aihetunnisteeseen {x}", - "search.quick_action.open_url": "Avaa URL-osoite Mastodonissa", + "search.quick_action.open_url": "Avaa verkko-osoite Mastodonissa", "search.quick_action.status_search": "Julkaisut haulla {x}", "search.search_or_paste": "Hae tai liitä URL-osoite", "search_popout.full_text_search_disabled_message": "Ei saatavilla palvelimella {domain}.", @@ -611,16 +613,16 @@ "search_popout.options": "Hakuvalinnat", "search_popout.quick_actions": "Pikatoiminnot", "search_popout.recent": "Viimeaikaiset haut", - "search_popout.specific_date": "tarkka päiväys", + "search_popout.specific_date": "tietty päivämäärä", "search_popout.user": "käyttäjä", "search_results.accounts": "Profiilit", "search_results.all": "Kaikki", "search_results.hashtags": "Aihetunnisteet", - "search_results.nothing_found": "Näille hakusanoille ei löytynyt mitään", + "search_results.nothing_found": "Hakusi ei tuottanut tuloksia", "search_results.see_all": "Näytä kaikki", "search_results.statuses": "Julkaisut", "search_results.title": "Hae {q}", - "server_banner.about_active_users": "Palvelinta käyttäneet ihmiset viimeisen 30 päivän aikana (kuukauden aktiiviset käyttäjät)", + "server_banner.about_active_users": "Palvelimen käyttäjät viimeisten 30 päivän ajalta (kuukauden aktiiviset käyttäjät)", "server_banner.active_users": "aktiivista käyttäjää", "server_banner.administered_by": "Ylläpitäjä:", "server_banner.introduction": "{domain} kuuluu hajautettuun sosiaaliseen verkostoon, jonka voimanlähde on {mastodon}.", @@ -657,7 +659,7 @@ "status.media.show": "Napsauta näyttääksesi", "status.media_hidden": "Media piilotettu", "status.mention": "Mainitse @{name}", - "status.more": "Lisää", + "status.more": "Enemmän", "status.mute": "Mykistä @{name}", "status.mute_conversation": "Mykistä keskustelu", "status.open": "Laajenna julkaisu", @@ -679,14 +681,14 @@ "status.show_filter_reason": "Näytä joka tapauksessa", "status.show_less": "Näytä vähemmän", "status.show_less_all": "Näytä kaikista vähemmän", - "status.show_more": "Näytä lisää", + "status.show_more": "Näytä enemmän", "status.show_more_all": "Näytä kaikista enemmän", "status.show_original": "Näytä alkuperäinen", "status.title.with_attachments": "{user} liitti {attachmentCount, plural, one {{attachmentCount} tiedoston} other {{attachmentCount} tiedostoa}}", "status.translate": "Käännä", - "status.translated_from_with": "Käännetty kielestä {lang} käyttäen {provider}", + "status.translated_from_with": "Käännetty kielestä {lang} käyttäen palvelua {provider}", "status.uncached_media_warning": "Esikatselu ei ole käytettävissä", - "status.unmute_conversation": "Poista keskustelun mykistys", + "status.unmute_conversation": "Kumoa keskustelun mykistys", "status.unpin": "Irrota profiilista", "subscribed_languages.lead": "Vain valituilla kielillä kirjoitetut julkaisut näkyvät koti- ja lista-aikajanoillasi muutoksen jälkeen. Älä valitse mitään, jos haluat nähdä julkaisuja kaikilla kielillä.", "subscribed_languages.save": "Tallenna muutokset", @@ -696,9 +698,9 @@ "time_remaining.days": "{number, plural, one {# päivä} other {# päivää}} jäljellä", "time_remaining.hours": "{number, plural, one {# tunti} other {# tuntia}} jäljellä", "time_remaining.minutes": "{number, plural, one {# minuutti} other {# minuuttia}} jäljellä", - "time_remaining.moments": "Hetki jäljellä", + "time_remaining.moments": "Hetkiä jäljellä", "time_remaining.seconds": "{number, plural, one {# sekunti} other {# sekuntia}} jäljellä", - "timeline_hint.remote_resource_not_displayed": "{resource} muilta palvelimilta ei näytetä.", + "timeline_hint.remote_resource_not_displayed": "Muiden palvelinten {resource}-tietoa ei näytetä täällä.", "timeline_hint.resources.followers": "Seuraajat", "timeline_hint.resources.follows": "seurattua", "timeline_hint.resources.statuses": "Vanhemmat julkaisut", @@ -711,23 +713,23 @@ "upload_area.title": "Lataa raahaamalla ja pudottamalla tähän", "upload_button.label": "Lisää kuvia, video tai äänitiedosto", "upload_error.limit": "Tiedostolatauksien rajoitus ylitetty.", - "upload_error.poll": "Tiedoston lataaminen ei ole sallittua äänestyksissä.", + "upload_error.poll": "Tiedostojen lisääminen ei ole sallittua kyselyjen ohessa.", "upload_form.audio_description": "Kuvaile sisältöä kuuroille ja kuulorajoitteisille", "upload_form.description": "Kuvaile sisältöä sokeille ja näkörajoitteisille", "upload_form.edit": "Muokkaa", - "upload_form.thumbnail": "Vaihda pikkukuva", + "upload_form.thumbnail": "Vaihda pienoiskuva", "upload_form.video_description": "Kuvaile sisältöä kuuroille, kuulorajoitteisille, sokeille tai näkörajoitteisille", "upload_modal.analyzing_picture": "Analysoidaan kuvaa…", "upload_modal.apply": "Käytä", - "upload_modal.applying": "Asetetaan…", + "upload_modal.applying": "Otetaan käyttöön…", "upload_modal.choose_image": "Valitse kuva", "upload_modal.description_placeholder": "Nopea ruskea kettu hyppää laiskan koiran yli", "upload_modal.detect_text": "Tunnista teksti kuvasta", "upload_modal.edit_media": "Muokkaa mediaa", - "upload_modal.hint": "Klikkaa tai vedä ympyrä esikatselussa valitaksesi keskipiste, joka näkyy aina pienoiskuvissa.", + "upload_modal.hint": "Napsauta tai vedä ympyrä esikatselussa valitaksesi keskipiste, joka näkyy aina pienoiskuvissa.", "upload_modal.preparing_ocr": "Valmistellaan tekstintunnistusta…", "upload_modal.preview_label": "Esikatselu ({ratio})", - "upload_progress.label": "Ladataan...", + "upload_progress.label": "Tallennetaan...", "upload_progress.processing": "Käsitellään…", "username.taken": "Käyttäjänimi on jo varattu. Kokeile toista", "video.close": "Sulje video", @@ -737,7 +739,7 @@ "video.fullscreen": "Koko näyttö", "video.hide": "Piilota video", "video.mute": "Mykistä ääni", - "video.pause": "Keskeytä", + "video.pause": "Tauko", "video.play": "Toista", "video.unmute": "Palauta ääni" } diff --git a/app/javascript/mastodon/locales/fil.json b/app/javascript/mastodon/locales/fil.json index ec27c8f60e..b677f9d197 100644 --- a/app/javascript/mastodon/locales/fil.json +++ b/app/javascript/mastodon/locales/fil.json @@ -27,6 +27,7 @@ "account.featured_tags.last_status_never": "Walang mga post", "account.featured_tags.title": "Nakatampok na hashtag ni {name}", "account.follow": "Sundan", + "account.follow_back": "Sundan pabalik", "account.followers": "Mga tagasunod", "account.followers.empty": "Wala pang sumusunod sa tagagamit na ito.", "account.following": "Sinusundan", @@ -41,6 +42,11 @@ "account.media": "Medya", "account.mention": "Banggitin si @{name}", "account.moved_to": "Ipinahihiwatig ni {name} na ang kanilang bagong account ngayon ay:", + "account.open_original_page": "Buksan ang pinagmulang pahina", + "account.report": "I-ulat si/ang @{name}", + "account.requested_follow": "Hinihiling ni {name} na sundan ka", + "account.show_reblogs": "Ipakita ang mga pagpapalakas mula sa/kay {name}", + "admin.dashboard.retention.cohort_size": "Mga bagong tagagamit", "bundle_column_error.error.title": "Naku!", "bundle_column_error.network.body": "Nagkaroon ng kamalian habang sinusubukang i-karga ang pahinang ito. Maaaring dahil ito sa pansamantalang problema ng iyong koneksyon sa internet o ang server na ito.", "bundle_column_error.network.title": "Kamaliang network", @@ -91,6 +97,19 @@ "compose_form.direct_message_warning_learn_more": "Matuto pa", "compose_form.encryption_warning": "Ang mga post sa Mastodon ay hindi naka-encrypt nang dulo-dulo. Huwag magbahagi ng anumang sensitibong impormasyon sa Mastodon.", "compose_form.hashtag_warning": "Hindi maililista ang post na ito sa anumang hashtag dahil hindi ito nakapubliko. Mga nakapublikong post lamang ang mahahanap ayon sa hashtag.", + "compose_form.placeholder": "Anong nangyari?", + "compose_form.poll.single": "Piliin ang isa", + "compose_form.reply": "Tumugon", + "compose_form.spoiler.unmarked": "Idagdag ang babala sa nilalaman", + "confirmation_modal.cancel": "Pagpaliban", + "confirmations.block.block_and_report": "Harangan at i-ulat", + "confirmations.block.confirm": "Harangan", + "confirmations.block.message": "Sigurado ka bang gusto mong harangan si {name}?", + "confirmations.cancel_follow_request.confirm": "Bawiin ang kahilingan", + "confirmations.cancel_follow_request.message": "Sigurdo ka bang gusto mong bawiin ang kahilingang sundan si/ang {name}?", + "confirmations.domain_block.confirm": "Harangan ang buong domain", + "confirmations.edit.confirm": "Baguhin", + "confirmations.reply.confirm": "Tumugon", "copy_icon_button.copied": "Sinipi sa clipboard", "copypaste.copied": "Sinipi", "copypaste.copy_to_clipboard": "I-sipi sa clipboard", @@ -140,5 +159,68 @@ "empty_column.hashtag": "Wala pang laman ang hashtag na ito.", "empty_column.home": "Walang laman ang timeline ng tahanan mo! Sumunod sa marami pang tao para mapunan ito.", "empty_column.list": "Wala pang laman ang listahang ito. Kapag naglathala ng mga bagong post ang mga miyembro ng listahang ito, makikita iyon dito.", - "empty_column.lists": "Wala ka pang mga listahan. Kapag gumawa ka ng isa, makikita yun dito." + "empty_column.lists": "Wala ka pang mga listahan. Kapag gumawa ka ng isa, makikita yun dito.", + "explore.search_results": "Mga resulta ng paghahanap", + "firehose.all": "Lahat", + "firehose.local": "Itong serbiro", + "firehose.remote": "Ibang mga serbiro", + "follow_request.authorize": "Tanggapin", + "follow_request.reject": "Tanggihan", + "follow_suggestions.dismiss": "Huwag nang ipakita muli", + "follow_suggestions.view_all": "Tingnan lahat", + "follow_suggestions.who_to_follow": "Sinong maaaring sundan", + "footer.about": "Tungkol dito", + "footer.get_app": "Kunin ang app", + "generic.saved": "Nakaimbak", + "hashtag.column_header.tag_mode.all": "at {additional}", + "hashtag.column_header.tag_mode.any": "o {additional}", + "home.pending_critical_update.body": "Mangyaring i-update ang iyong serbiro ng Mastodon sa lalong madaling panahon!", + "interaction_modal.no_account_yet": "Wala sa Mastodon?", + "interaction_modal.on_another_server": "Sa ibang serbiro", + "interaction_modal.on_this_server": "Sa serbirong ito", + "interaction_modal.title.follow": "Sundan si {name}", + "keyboard_shortcuts.description": "Paglalarawan", + "keyboard_shortcuts.down": "Ilipat pababa sa talaan", + "keyboard_shortcuts.requests": "Buksan ang talaan ng mga kahilingan sa pagsunod", + "keyboard_shortcuts.up": "Ilipat pataas sa talaan", + "lightbox.close": "Isara", + "lightbox.next": "Susunod", + "lightbox.previous": "Nakaraan", + "lists.new.create": "Idagdag sa talaan", + "lists.new.title_placeholder": "Bagong pangalan ng talaan", + "lists.replies_policy.title": "Ipakita ang mga tugon sa:", + "lists.subheading": "Iyong mga talaan", + "navigation_bar.about": "Tungkol dito", + "navigation_bar.blocks": "Nakaharang na mga tagagamit", + "navigation_bar.favourites": "Mga paborito", + "navigation_bar.lists": "Mga listahan", + "notification.admin.report": "Iniulat ni {name} si {target}", + "notification.follow": "Sinundan ka ni {name}", + "notification.follow_request": "Hinihiling ni {name} na sundan ka", + "notifications.column_settings.admin.report": "Mga bagong ulat:", + "notifications.column_settings.favourite": "Mga paborito:", + "notifications.column_settings.follow": "Mga bagong tagasunod:", + "notifications.filter.all": "Lahat", + "onboarding.action.back": "Ibalik mo ako", + "onboarding.actions.back": "Ibalik mo ako", + "onboarding.share.next_steps": "Mga posibleng susunod na hakbang:", + "poll.voted": "Binoto mo para sa sagot na ito", + "relative_time.full.just_now": "ngayon lang", + "relative_time.just_now": "ngayon", + "reply_indicator.cancel": "Ipagpaliban", + "report.block": "Harangan", + "report.categories.other": "Iba pa", + "report.close": "Tapos na", + "report.next": "Sunod", + "server_banner.learn_more": "Matuto nang higit pa", + "status.more": "Higit pa", + "status.reply": "Tumugon", + "status.share": "Ibahagi", + "status.show_less": "Magpakita ng mas kaunti", + "status.show_less_all": "Magpakita ng mas kaunti para sa lahat", + "status.show_more": "Magpakita ng higit pa", + "status.show_more_all": "Magpakita ng higit pa para sa lahat", + "status.translate": "Isalin", + "status.translated_from_with": "Isalin mula sa {lang} gamit ang {provider}", + "status.uncached_media_warning": "Hindi makuha ang paunang tigin" } diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index a4c5296086..abd2ab2681 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "Kontoin hjá tær er ikki {locked}. Øll kunnu fylgja tær og lesa tað, tú bert letur fyljgarar lesa.", "compose_form.lock_disclaimer.lock": "læst", "compose_form.placeholder": "Hvat hevur tú í huga?", - "compose_form.poll.add_option": "Legg valmøguleika afturat", "compose_form.poll.duration": "Atkvøðugreiðslutíð", "compose_form.poll.multiple": "Fleiri valmøguleikar", "compose_form.poll.option_placeholder": "Valmøguleiki {number}", - "compose_form.poll.remove_option": "Strika hendan valmøguleikan", "compose_form.poll.single": "Vel ein", "compose_form.poll.switch_to_multiple": "Broyt atkvøðugreiðslu til at loyva fleiri svarum", "compose_form.poll.switch_to_single": "Broyt atkvøðugreiðslu til einstakt svar", @@ -279,6 +277,12 @@ "follow_request.authorize": "Veit myndugleika", "follow_request.reject": "Nokta", "follow_requests.unlocked_explanation": "Sjálvt um konta tín ikki er læst, so hugsa {domain} starvsfólkini, at tú kanska hevur hug at kanna umbønir um at fylgja frá hesum kontum við hond.", + "follow_suggestions.curated_suggestion": "Val umsjónarfólksins", + "follow_suggestions.dismiss": "Lat vera við at vísa", + "follow_suggestions.personalized_suggestion": "Persónligt uppskot", + "follow_suggestions.popular_suggestion": "Vælumtókt uppskot", + "follow_suggestions.view_all": "Vís øll", + "follow_suggestions.who_to_follow": "Hvørji tú átti at fylgt", "followed_tags": "Fylgd frámerki", "footer.about": "Um", "footer.directory": "Vangaskrá", @@ -305,13 +309,9 @@ "hashtag.follow": "Fylg frámerki", "hashtag.unfollow": "Gevst at fylgja frámerki", "hashtags.and_other": "…og {count, plural, other {# afturat}}", - "home.actions.go_to_explore": "Sí rákið", - "home.actions.go_to_suggestions": "Finn fólk at fylgja", "home.column_settings.basic": "Grundleggjandi", "home.column_settings.show_reblogs": "Vís lyft", "home.column_settings.show_replies": "Vís svar", - "home.explore_prompt.body": "Heimarásin fer at hava eitt bland av postum frá frámerkjunum, sum tú hevur valt at fylgja, brúkarunum, tú hevur valt at fylgja, og postunum, sum tey stimbra. Um tað kennist ov friðarligt, so kanst tú:", - "home.explore_prompt.title": "Hetta er tín heimastøð í Mastodon.", "home.hide_announcements": "Fjal kunngerðir", "home.pending_critical_update.body": "Vinarliga dagfør Mastodon ambætaran hjá tær so skjótt sum møguligt!", "home.pending_critical_update.link": "Sí dagføringar", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index 66a7da6d15..49db30d75e 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -146,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "verrouillé", "compose_form.placeholder": "À quoi pensez-vous?", "compose_form.poll.duration": "Durée du sondage", + "compose_form.poll.multiple": "Choix multiple", + "compose_form.poll.option_placeholder": "Option {number}", + "compose_form.poll.single": "Choisissez-en un", "compose_form.poll.switch_to_multiple": "Changer le sondage pour autoriser plusieurs choix", "compose_form.poll.switch_to_single": "Changer le sondage pour n'autoriser qu'un seul choix", + "compose_form.poll.type": "Style", + "compose_form.publish": "Publier", "compose_form.publish_form": "Publier", + "compose_form.reply": "Répondre", + "compose_form.save_changes": "Mis à jour", "compose_form.spoiler.marked": "Enlever l'avertissement de contenu", "compose_form.spoiler.unmarked": "Ajouter un avertissement de contenu", + "compose_form.spoiler_placeholder": "Avertissement de contenu (optionnel)", "confirmation_modal.cancel": "Annuler", "confirmations.block.block_and_report": "Bloquer et signaler", "confirmations.block.confirm": "Bloquer", @@ -295,13 +303,9 @@ "hashtag.follow": "Suivre ce hashtag", "hashtag.unfollow": "Ne plus suivre ce hashtag", "hashtags.and_other": "…et {count, plural, other {# de plus}}", - "home.actions.go_to_explore": "Voir les tendances", - "home.actions.go_to_suggestions": "Trouver des personnes à suivre", "home.column_settings.basic": "Basique", "home.column_settings.show_reblogs": "Afficher boosts", "home.column_settings.show_replies": "Afficher réponses", - "home.explore_prompt.body": "Votre fil d'actualité aura un mélange de messages depuis les hashtags que vous avez choisi de suivre, les personnes que vous avez choisi de suivre, et les messages qu'elles boostent. Si ça vous semble trop calme à votre goût, n’hésitez pas à :", - "home.explore_prompt.title": "C'est votre page d'accueil dans Mastodon.", "home.hide_announcements": "Masquer les annonces", "home.pending_critical_update.body": "Veuillez mettre à jour votre serveur Mastodon dès que possible !", "home.pending_critical_update.link": "Voir les mises à jour", @@ -514,7 +518,15 @@ "poll_button.add_poll": "Ajouter un sondage", "poll_button.remove_poll": "Supprimer le sondage", "privacy.change": "Changer la confidentialité des messages", + "privacy.direct.long": "Toutes les personnes mentionnées dans le post", + "privacy.direct.short": "Personnes spécifiques", + "privacy.private.long": "Seulement vos abonnés", + "privacy.private.short": "Abonnés", + "privacy.public.long": "Tout le monde sur et en dehors de Mastodon", "privacy.public.short": "Public", + "privacy.unlisted.additional": "Cette option se comporte exactement comme l'option publique, sauf que le message n'apparaîtra pas dans les flux en direct, les hashtags, l'exploration ou la recherche Mastodon, même si vous avez opté pour l'option publique pour l'ensemble de votre compte.", + "privacy.unlisted.long": "Moins de fanfares algorithmiques", + "privacy.unlisted.short": "Public calme", "privacy_policy.last_updated": "Dernière mise à jour {date}", "privacy_policy.title": "Politique de confidentialité", "recommended": "Recommandé", @@ -532,7 +544,9 @@ "relative_time.minutes": "{number} min", "relative_time.seconds": "{number} s", "relative_time.today": "aujourd’hui", + "reply_indicator.attachments": "{count, plural, one {# pièce jointe} other {# pièces jointes}}", "reply_indicator.cancel": "Annuler", + "reply_indicator.poll": "Sondage", "report.block": "Bloquer", "report.block_explanation": "Vous ne verrez plus les publications de ce compte. Il ne pourra ni vous suivre ni voir vos publications. Il pourra savoir qu'il a été bloqué.", "report.categories.legal": "Légal", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 2d0fa3b7dd..1f657c8185 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -146,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "verrouillé", "compose_form.placeholder": "Qu’avez-vous en tête ?", "compose_form.poll.duration": "Durée du sondage", + "compose_form.poll.multiple": "Choix multiple", + "compose_form.poll.option_placeholder": "Option {number}", + "compose_form.poll.single": "Choisissez-en un", "compose_form.poll.switch_to_multiple": "Changer le sondage pour autoriser plusieurs choix", "compose_form.poll.switch_to_single": "Modifier le sondage pour autoriser qu'un seul choix", + "compose_form.poll.type": "Style", + "compose_form.publish": "Publier", "compose_form.publish_form": "Nouvelle publication", + "compose_form.reply": "Répondre", + "compose_form.save_changes": "Mis à jour", "compose_form.spoiler.marked": "Enlever l’avertissement de contenu", "compose_form.spoiler.unmarked": "Ajouter un avertissement de contenu", + "compose_form.spoiler_placeholder": "Avertissement de contenu (optionnel)", "confirmation_modal.cancel": "Annuler", "confirmations.block.block_and_report": "Bloquer et signaler", "confirmations.block.confirm": "Bloquer", @@ -295,13 +303,9 @@ "hashtag.follow": "Suivre le hashtag", "hashtag.unfollow": "Ne plus suivre le hashtag", "hashtags.and_other": "…et {count, plural, other {# de plus}}", - "home.actions.go_to_explore": "Voir les tendances", - "home.actions.go_to_suggestions": "Trouver des personnes à suivre", "home.column_settings.basic": "Basique", "home.column_settings.show_reblogs": "Afficher les partages", "home.column_settings.show_replies": "Afficher les réponses", - "home.explore_prompt.body": "Votre fil d'actualité aura un mélange de messages depuis les hashtags que vous avez choisi de suivre, les personnes que vous avez choisi de suivre, et les messages qu'elles boostent. Si ça vous semble trop calme à votre goût, n’hésitez pas à :", - "home.explore_prompt.title": "C'est votre page d'accueil dans Mastodon.", "home.hide_announcements": "Masquer les annonces", "home.pending_critical_update.body": "Veuillez mettre à jour votre serveur Mastodon dès que possible !", "home.pending_critical_update.link": "Voir les mises à jour", @@ -514,7 +518,15 @@ "poll_button.add_poll": "Ajouter un sondage", "poll_button.remove_poll": "Supprimer le sondage", "privacy.change": "Ajuster la confidentialité du message", + "privacy.direct.long": "Toutes les personnes mentionnées dans le post", + "privacy.direct.short": "Personnes spécifiques", + "privacy.private.long": "Seulement vos abonnés", + "privacy.private.short": "Abonnés", + "privacy.public.long": "Tout le monde sur et en dehors de Mastodon", "privacy.public.short": "Public", + "privacy.unlisted.additional": "Cette option se comporte exactement comme l'option publique, sauf que le message n'apparaîtra pas dans les flux en direct, les hashtags, l'exploration ou la recherche Mastodon, même si vous avez opté pour l'option publique pour l'ensemble de votre compte.", + "privacy.unlisted.long": "Moins de fanfares algorithmiques", + "privacy.unlisted.short": "Public calme", "privacy_policy.last_updated": "Dernière mise à jour {date}", "privacy_policy.title": "Politique de confidentialité", "recommended": "Recommandé", @@ -532,7 +544,9 @@ "relative_time.minutes": "{number} min", "relative_time.seconds": "{number} s", "relative_time.today": "aujourd’hui", + "reply_indicator.attachments": "{count, plural, one {# pièce jointe} other {# pièces jointes}}", "reply_indicator.cancel": "Annuler", + "reply_indicator.poll": "Sondage", "report.block": "Bloquer", "report.block_explanation": "Vous ne verrez plus les messages de ce profil, et il ne pourra ni vous suivre ni voir vos messages. Il pourra savoir qu'il a été bloqué.", "report.categories.legal": "Légal", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index d5f22d2ee1..9bd5327c8f 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -146,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "beskoattele", "compose_form.placeholder": "Wat wolle jo kwyt?", "compose_form.poll.duration": "Doer fan de enkête", + "compose_form.poll.multiple": "Mearkar", + "compose_form.poll.option_placeholder": "Opsje {number}", + "compose_form.poll.single": "Kies ien", "compose_form.poll.switch_to_multiple": "Enkête wizigje om meardere karren ta te stean", "compose_form.poll.switch_to_single": "Enkête wizigje om in inkelde kar ta te stean", + "compose_form.poll.type": "Styl", + "compose_form.publish": "Toot", "compose_form.publish_form": "Publisearje", + "compose_form.reply": "Reagearje", + "compose_form.save_changes": "Bywurkje", "compose_form.spoiler.marked": "Ynhâldswarskôging fuortsmite", "compose_form.spoiler.unmarked": "Ynhâldswarskôging tafoegje", + "compose_form.spoiler_placeholder": "Ynhâldswarskôging (opsjoneel)", "confirmation_modal.cancel": "Annulearje", "confirmations.block.block_and_report": "Blokkearje en rapportearje", "confirmations.block.confirm": "Blokkearje", @@ -269,6 +277,12 @@ "follow_request.authorize": "Goedkarre", "follow_request.reject": "Wegerje", "follow_requests.unlocked_explanation": "Ek al is jo account net besletten, de meiwurkers fan {domain} tinke dat jo miskien de folgjende folchfersiken hânmjittich kontrolearje.", + "follow_suggestions.curated_suggestion": "Kar fan de moderator", + "follow_suggestions.dismiss": "Net mear werjaan", + "follow_suggestions.personalized_suggestion": "Personalisearre suggestje", + "follow_suggestions.popular_suggestion": "Populêre suggestje", + "follow_suggestions.view_all": "Alles werjaan", + "follow_suggestions.who_to_follow": "Wa te folgjen", "followed_tags": "Folge hashtags", "footer.about": "Oer", "footer.directory": "Profylmap", @@ -295,13 +309,9 @@ "hashtag.follow": "Hashtag folgje", "hashtag.unfollow": "Hashtag ûntfolgje", "hashtags.and_other": "…en {count, plural, one {}other {# mear}}", - "home.actions.go_to_explore": "De aktuele trends besjen", - "home.actions.go_to_suggestions": "Sykje minsken om te folgjen", "home.column_settings.basic": "Algemien", "home.column_settings.show_reblogs": "Boosts toane", "home.column_settings.show_replies": "Reaksjes toane", - "home.explore_prompt.body": "Jo starttiidline befettet in miks fan berjochten mei hashtags dy’t jo keazen hawwe om te folgjen, fan minsken dy’t jo keazen hawwe om te folgjen en berjochten dy’t se booste. As jo dit te rêstich fine, kinne jo:", - "home.explore_prompt.title": "Dit is jo thúsbasis op Mastodon.", "home.hide_announcements": "Meidielingen ferstopje", "home.pending_critical_update.body": "Fernij sa gau as mooglik jo Mastodon-server!", "home.pending_critical_update.link": "Fernijingen besjen", @@ -514,7 +524,15 @@ "poll_button.add_poll": "Poll tafoegje", "poll_button.remove_poll": "Enkête fuortsmite", "privacy.change": "Sichtberheid fan berjocht oanpasse", + "privacy.direct.long": "Elkenien dy’ yn it berjocht fermeld wurdt", + "privacy.direct.short": "Bepaalde minsken", + "privacy.private.long": "Allinnich jo folgers", + "privacy.private.short": "Folgers", + "privacy.public.long": "Elkenien op Mastodon en dêrbûten", "privacy.public.short": "Iepenbier", + "privacy.unlisted.additional": "Dit is fergelykber mei iepenbier, útsein dat it berjocht net ferskynt op iepenbiere tiidlijnen of hashtags, ûnder ferkenne of Mastodon sykje, sels as jo jo account dêrfoar ynsteld hawwe.", + "privacy.unlisted.long": "Minder algoritmyske fanfare", + "privacy.unlisted.short": "Minder iepenbier", "privacy_policy.last_updated": "Lêst bywurke op {date}", "privacy_policy.title": "Privacybelied", "recommended": "Oanrekommandearre", @@ -532,7 +550,9 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "relative_time.today": "hjoed", + "reply_indicator.attachments": "{count, plural, one {# bylage} other {# bylagen}}", "reply_indicator.cancel": "Annulearje", + "reply_indicator.poll": "Peiling", "report.block": "Blokkearje", "report.block_explanation": "Jo sille harren berjochten net sjen kinne. Se sille jo berjochten net sjen kinne en jo net folgje kinne. Se sille wol sjen kinne dat se blokkearre binne.", "report.categories.legal": "Juridysk", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 855a27d057..329286277d 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -226,6 +226,12 @@ "follow_request.authorize": "Ceadaigh", "follow_request.reject": "Diúltaigh", "follow_requests.unlocked_explanation": "Cé nach bhfuil do chuntas faoi ghlas, cheap foireann {domain} gur mhaith leat súil siar ar iarratais leanúnaí as na cuntais seo.", + "follow_suggestions.curated_suggestion": "Rogha an eagarthóra", + "follow_suggestions.dismiss": "Ná taispeáin arís", + "follow_suggestions.personalized_suggestion": "Nod pearsantaithe", + "follow_suggestions.popular_suggestion": "Nod coiteann", + "follow_suggestions.view_all": "Féach uile", + "follow_suggestions.who_to_follow": "Cé le leanúint", "footer.about": "Maidir le", "footer.directory": "Eolaire próifílí", "footer.get_app": "Faigh an aip", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index 0c7ef79cd8..47b1e23192 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -21,6 +21,7 @@ "account.blocked": "’Ga bhacadh", "account.browse_more_on_origin_server": "Rùraich barrachd dheth air a’ phròifil thùsail", "account.cancel_follow_request": "Sguir dhen leantainn", + "account.copy": "Dèan lethbhreac dhen cheangal dhan phròifil", "account.direct": "Thoir iomradh air @{name} gu prìobhaideach", "account.disable_notifications": "Na cuir brath thugam tuilleadh nuair a chuireas @{name} post ris", "account.domain_blocked": "Chaidh an àrainn a bhacadh", @@ -31,6 +32,7 @@ "account.featured_tags.last_status_never": "Gun phost", "account.featured_tags.title": "Na tagaichean hais brosnaichte aig {name}", "account.follow": "Lean", + "account.follow_back": "Lean air ais", "account.followers": "Luchd-leantainn", "account.followers.empty": "Chan eil neach sam bith a’ leantainn air a’ chleachdaiche seo fhathast.", "account.followers_counter": "{count, plural, one {{counter} neach-leantainn} two {{counter} neach-leantainn} few {{counter} luchd-leantainn} other {{counter} luchd-leantainn}}", @@ -51,6 +53,7 @@ "account.mute_notifications_short": "Mùch na brathan", "account.mute_short": "Mùch", "account.muted": "’Ga mhùchadh", + "account.mutual": "Co-dhàimh", "account.no_bio": "Cha deach tuairisgeul a sholar.", "account.open_original_page": "Fosgail an duilleag thùsail", "account.posts": "Postaichean", @@ -143,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "glaiste", "compose_form.placeholder": "Dè tha air d’ aire?", "compose_form.poll.duration": "Faide a’ chunntais-bheachd", + "compose_form.poll.multiple": "Iomadh roghainn", + "compose_form.poll.option_placeholder": "Roghainn {number}", + "compose_form.poll.single": "Tagh aonan", "compose_form.poll.switch_to_multiple": "Atharraich an cunntas-bheachd ach an gabh iomadh roghainn a thaghadh", "compose_form.poll.switch_to_single": "Atharraich an cunntas-bheachd gus nach gabh ach aon roghainn a thaghadh", + "compose_form.poll.type": "Stoidhle", + "compose_form.publish": "Postaich", "compose_form.publish_form": "Post ùr", + "compose_form.reply": "Freagair", + "compose_form.save_changes": "Ùraich", "compose_form.spoiler.marked": "Thoir air falbh an rabhadh susbainte", "compose_form.spoiler.unmarked": "Cuir rabhadh susbainte ris", + "compose_form.spoiler_placeholder": "Rabhadh susbainte (roghainneil)", "confirmation_modal.cancel": "Sguir dheth", "confirmations.block.block_and_report": "Bac ⁊ dèan gearan", "confirmations.block.confirm": "Bac", @@ -179,6 +190,7 @@ "conversation.mark_as_read": "Cuir comharra gun deach a leughadh", "conversation.open": "Seall an còmhradh", "conversation.with": "Còmhla ri {names}", + "copy_icon_button.copied": "Chaidh lethbhreac dheth a chur air an stòr-bhòrd", "copypaste.copied": "Chaidh lethbhreac dheth a dhèanamh", "copypaste.copy_to_clipboard": "Cuir lethbhreac dheth air an stòr-bhòrd", "directory.federated": "On cho-shaoghal aithnichte", @@ -210,6 +222,7 @@ "emoji_button.search_results": "Toraidhean an luirg", "emoji_button.symbols": "Samhlaidhean", "emoji_button.travel": "Siubhal ⁊ àitichean", + "empty_column.account_hides_collections": "Chuir an cleachdaiche seo roimhe nach eil am fiosrachadh seo ri fhaighinn", "empty_column.account_suspended": "Chaidh an cunntas a chur à rèim", "empty_column.account_timeline": "Chan eil post an-seo!", "empty_column.account_unavailable": "Chan eil a’ phròifil ri làimh", @@ -264,6 +277,12 @@ "follow_request.authorize": "Ùghdarraich", "follow_request.reject": "Diùlt", "follow_requests.unlocked_explanation": "Ged nach eil an cunntas agad glaiste, tha sgioba {domain} dhen bheachd gum b’ fheàirrde thu lèirmheas a dhèanamh air na h-iarrtasan leantainn o na cunntasan seo a làimh.", + "follow_suggestions.curated_suggestion": "Roghainn an deasaiche", + "follow_suggestions.dismiss": "Na seall seo a-rithist", + "follow_suggestions.personalized_suggestion": "Moladh pearsanaichte", + "follow_suggestions.popular_suggestion": "Moladh air a bheil fèill mhòr", + "follow_suggestions.view_all": "Seall na h-uile", + "follow_suggestions.who_to_follow": "Cò a leanas tu", "followed_tags": "Tagaichean hais ’gan leantainn", "footer.about": "Mu dhèidhinn", "footer.directory": "Eòlaire nam pròifil", @@ -290,13 +309,9 @@ "hashtag.follow": "Lean an taga hais", "hashtag.unfollow": "Na lean an taga hais tuilleadh", "hashtags.and_other": "…agus {count, plural, one {# eile} two {# eile} few {# eile} other {# eile}}", - "home.actions.go_to_explore": "Faic na tha a’ treandadh", - "home.actions.go_to_suggestions": "Lorg daoine gus an leantainn", "home.column_settings.basic": "Bunasach", "home.column_settings.show_reblogs": "Seall na brosnachaidhean", "home.column_settings.show_replies": "Seall na freagairtean", - "home.explore_prompt.body": "Bidh measgachadh de phostaichean o na tagaichean hais a leanas tu, na daoine a leanas tu is na postaichean a bhrosnaicheas iad air do dhachaigh. Ma tha cùisean ro shàmhach dhut, seo nas urrainn dhut a dhèanamh:", - "home.explore_prompt.title": "Seo do dhachaigh am broinn Mastodon.", "home.hide_announcements": "Falaich na brathan-fios", "home.pending_critical_update.body": "Ùraich am frithealaiche Mastodon agad cho luath ’s a ghabhas!", "home.pending_critical_update.link": "Faic na h-ùrachaidhean", @@ -377,6 +392,7 @@ "lists.search": "Lorg am measg nan daoine a leanas tu", "lists.subheading": "Na liostaichean agad", "load_pending": "{count, plural, one {# nì ùr} two {# nì ùr} few {# nithean ùra} other {# nì ùr}}", + "loading_indicator.label": "’Ga luchdadh…", "media_gallery.toggle_visible": "{number, plural, 1 {Falaich an dealbh} one {Falaich na dealbhan} two {Falaich na dealbhan} few {Falaich na dealbhan} other {Falaich na dealbhan}}", "moved_to_account_banner.text": "Tha an cunntas {disabledAccount} agad à comas on a rinn thu imrich gu {movedToAccount}.", "mute_modal.duration": "Faide", @@ -464,6 +480,15 @@ "onboarding.follows.empty": "Gu mì-fhortanach, chan urrainn dhuinn toradh a shealltainn an-dràsta. Feuch gleus an luirg no duilleag an rùrachaidh airson daoine ri leantainn a lorg no feuch ris a-rithist an ceann tamaill.", "onboarding.follows.lead": "’S e do prìomh-doras do Mhastodon a th’ ann san dachaigh. Mar as motha an t-uiread de dhaoine a leanas tu ’s ann nas beòthaile inntinniche a bhios i. Seo moladh no dhà dhut airson tòiseachadh:", "onboarding.follows.title": "Cuir dreach pearsanta air do dhachaigh", + "onboarding.profile.discoverable": "Bu mhath leam gun gabh a’ phròifil agam a lorg", + "onboarding.profile.display_name": "Ainm-taisbeanaidh", + "onboarding.profile.display_name_hint": "D’ ainm slàn no spòrsail…", + "onboarding.profile.note": "Cunntas-beatha", + "onboarding.profile.note_hint": "’S urrainn dhut @iomradh a thoirt air càch no air #tagaicheanHais…", + "onboarding.profile.save_and_continue": "Sàbhail ’s lean air adhart", + "onboarding.profile.title": "Suidheachadh na pròifile", + "onboarding.profile.upload_avatar": "Luchdaich suas dealbh na pròifil", + "onboarding.profile.upload_header": "Luchdaich suas bann-cinn na pròifil", "onboarding.share.lead": "Innis do dhaoine mar a gheibh iad grèim ort air Mastodon!", "onboarding.share.message": "Is mise {username} air #Mastodon! Thig ’gam leantainn air {url}", "onboarding.share.next_steps": "Ceuman eile as urrainn dhut gabhail:", @@ -497,9 +522,16 @@ "poll_button.add_poll": "Cuir cunntas-bheachd ris", "poll_button.remove_poll": "Thoir air falbh an cunntas-bheachd", "privacy.change": "Cuir gleus air prìobhaideachd a’ phuist", + "privacy.direct.long": "A h-uile duine air a bheil iomradh sa phost", + "privacy.direct.short": "Daoine àraidh", + "privacy.private.long": "An luchd-leantainn agad a-mhàin", + "privacy.private.short": "Luchd-leantainn", + "privacy.public.long": "Duine sam bith taobh a-staigh no a-muigh Mhastodon", "privacy.public.short": "Poblach", + "privacy.unlisted.short": "Poblach ach sàmhach", "privacy_policy.last_updated": "An t-ùrachadh mu dheireadh {date}", "privacy_policy.title": "Poileasaidh prìobhaideachd", + "recommended": "Molta", "refresh": "Ath-nuadhaich", "regeneration_indicator.label": "’Ga luchdadh…", "regeneration_indicator.sublabel": "Tha do dhachaigh ’ga ullachadh!", @@ -514,7 +546,9 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}d", "relative_time.today": "an-diugh", + "reply_indicator.attachments": "{count, plural, one {# cheanglachan} two {# cheanglachan} few {# ceanglachain} other {# ceanglachan}}", "reply_indicator.cancel": "Sguir dheth", + "reply_indicator.poll": "Cunntas-bheachd", "report.block": "Bac", "report.block_explanation": "Chan fhaic thu na postaichean aca. Chan fhaic iad na postaichean agad is chan urrainn dhaibh do leantainn. Bheir iad an aire gun deach am bacadh.", "report.categories.legal": "Laghail", @@ -570,6 +604,7 @@ "search.quick_action.status_search": "Postaichean a fhreagras ri {x}", "search.search_or_paste": "Dèan lorg no cuir a-steach URL", "search_popout.full_text_search_disabled_message": "Chan eil seo ri fhaighinn air {domain}.", + "search_popout.full_text_search_logged_out_message": "Chan eil seo ri fhaighinn ach nuair a bhios tu air do chlàradh a-steach.", "search_popout.language_code": "Còd cànain ISO", "search_popout.options": "Roghainnean luirg", "search_popout.quick_actions": "Grad-ghnìomhan", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index ffd01a547d..7512740c5e 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -146,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "bloqueada", "compose_form.placeholder": "Que contas?", "compose_form.poll.duration": "Duración da enquisa", + "compose_form.poll.multiple": "Escolla múltiple", + "compose_form.poll.option_placeholder": "Opción {number}", + "compose_form.poll.single": "Elixe unha", "compose_form.poll.switch_to_multiple": "Mudar a enquisa para permitir múltiples escollas", "compose_form.poll.switch_to_single": "Mudar a enquisa para permitir unha soa opción", + "compose_form.poll.type": "Estilo", + "compose_form.publish": "Publicar", "compose_form.publish_form": "Publicar", + "compose_form.reply": "Responder", + "compose_form.save_changes": "Actualizar", "compose_form.spoiler.marked": "Retirar o aviso sobre o contido", "compose_form.spoiler.unmarked": "Engadir aviso sobre o contido", + "compose_form.spoiler_placeholder": "Aviso sobre o contido (optativo)", "confirmation_modal.cancel": "Cancelar", "confirmations.block.block_and_report": "Bloquear e denunciar", "confirmations.block.confirm": "Bloquear", @@ -269,6 +277,12 @@ "follow_request.authorize": "Autorizar", "follow_request.reject": "Rexeitar", "follow_requests.unlocked_explanation": "Malia que a túa conta non é privada, a administración de {domain} pensou que quizabes terías que revisar de xeito manual as solicitudes de seguiminto.", + "follow_suggestions.curated_suggestion": "O servidor suxíreche", + "follow_suggestions.dismiss": "Non mostrar máis", + "follow_suggestions.personalized_suggestion": "Suxestión personalizada", + "follow_suggestions.popular_suggestion": "Suxestión popular", + "follow_suggestions.view_all": "Ver todas", + "follow_suggestions.who_to_follow": "A quen seguir", "followed_tags": "Cancelos seguidos", "footer.about": "Acerca de", "footer.directory": "Directorio de perfís", @@ -295,13 +309,9 @@ "hashtag.follow": "Seguir cancelo", "hashtag.unfollow": "Deixar de seguir cancelo", "hashtags.and_other": "…e {count, plural, one {}other {# máis}}", - "home.actions.go_to_explore": "Mira do que se está a falar", - "home.actions.go_to_suggestions": "Atopa persoas ás que seguir", "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Amosar compartidos", "home.column_settings.show_replies": "Amosar respostas", - "home.explore_prompt.body": "A túa cronoloxía de inicio vai ter unha mistura de publicacións procedentes dos cancelos que segues, das persoas que elexiches seguir e das publicacións que elas promoven. Se non tes moito que ler, podes probar a:", - "home.explore_prompt.title": "Iste é o teu fogar en Mastodon.", "home.hide_announcements": "Agochar anuncios", "home.pending_critical_update.body": "Por favor actualiza o antes posible o teu servidor Mastodon!", "home.pending_critical_update.link": "Mira as actualizacións", @@ -514,7 +524,15 @@ "poll_button.add_poll": "Engadir unha enquisa", "poll_button.remove_poll": "Eliminar enquisa", "privacy.change": "Axustar privacidade", + "privacy.direct.long": "Todas as mencionadas na publicación", + "privacy.direct.short": "Persoas concretas", + "privacy.private.long": "Só para seguidoras", + "privacy.private.short": "Seguidoras", + "privacy.public.long": "Para todas dentro e fóra de Mastodon", "privacy.public.short": "Público", + "privacy.unlisted.additional": "Do mesmo xeito que público, menos que a publicación non aparecerá nas cronoloxías en directo ou nos cancelos, en descubrir ou nas buscas de Mastodon, incluso se estivese establecido nas opcións xerais da conta.", + "privacy.unlisted.long": "Menor implicación dos algoritmos", + "privacy.unlisted.short": "Público limitado", "privacy_policy.last_updated": "Actualizado por última vez no {date}", "privacy_policy.title": "Política de Privacidade", "recommended": "Aconsellable", @@ -532,7 +550,9 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "relative_time.today": "hoxe", + "reply_indicator.attachments": "{count, plural, one {# adxunto} other {# adxuntos}}", "reply_indicator.cancel": "Desbotar", + "reply_indicator.poll": "Enquisa", "report.block": "Bloquear", "report.block_explanation": "Non vas ver as súas publicacións. Nin verá as túas publicacións nin poderá seguirte. Poderá comprobar que as bloqueaches.", "report.categories.legal": "Legal", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index d88a8c49c3..bf182a1657 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "חשבונך אינו {locked}. כל אחד יוכל לעקוב אחריך כדי לקרוא את הודעותיך המיועדות לעוקבים בלבד.", "compose_form.lock_disclaimer.lock": "נעול", "compose_form.placeholder": "על מה את.ה חושב.ת?", - "compose_form.poll.add_option": "הוספת אפשרות", "compose_form.poll.duration": "משך הסקר", "compose_form.poll.multiple": "בחירה מרובה", "compose_form.poll.option_placeholder": "אפשרות {number}", - "compose_form.poll.remove_option": "הסרת אפשרות זו", "compose_form.poll.single": "נא לבחור", "compose_form.poll.switch_to_multiple": "אפשרו בחירה מרובה בסקר", "compose_form.poll.switch_to_single": "אפשרו בחירה בודדת בסקר", @@ -279,6 +277,12 @@ "follow_request.authorize": "הרשאה", "follow_request.reject": "דחיה", "follow_requests.unlocked_explanation": "למרות שחשבונך אינו נעול, צוות {domain} חושב שאולי כדאי לוודא את בקשות המעקב האלה ידנית.", + "follow_suggestions.curated_suggestion": "בחירת העורכים", + "follow_suggestions.dismiss": "לא להציג שוב", + "follow_suggestions.personalized_suggestion": "הצעות מותאמות אישית", + "follow_suggestions.popular_suggestion": "הצעה פופולרית", + "follow_suggestions.view_all": "צפיה בכל", + "follow_suggestions.who_to_follow": "אחרי מי לעקוב", "followed_tags": "התגיות שהחשבון שלך עוקב אחריהן", "footer.about": "אודות", "footer.directory": "ספריית פרופילים", @@ -305,13 +309,9 @@ "hashtag.follow": "לעקוב אחרי תגית", "hashtag.unfollow": "להפסיק לעקוב אחרי תגית", "hashtags.and_other": "…{count, plural,other {ועוד #}}", - "home.actions.go_to_explore": "הצגת מגמות", - "home.actions.go_to_suggestions": "למצוא א.נשים לעקוב אחריהן.ם", "home.column_settings.basic": "למתחילים", "home.column_settings.show_reblogs": "הצגת הדהודים", "home.column_settings.show_replies": "הצגת תגובות", - "home.explore_prompt.body": "פיד הבית שלך יכיל תערובת של הודעות מהתגיות והאנשים שבחרת למעקב, וההודעות שהנעקבים בוחרים להדהד. אם זה נראה שקט מדי כרגע אז מה לגבי:", - "home.explore_prompt.title": "זהו בסיס הבית שלך בתוך מסטודון.", "home.hide_announcements": "הסתר הכרזות", "home.pending_critical_update.body": "יש לעדכן את תוכנת מסטודון בהקדם האפשרי!", "home.pending_critical_update.link": "צפיה בעדכונים", @@ -530,6 +530,9 @@ "privacy.private.short": "עוקבים", "privacy.public.long": "כל הגולשים, מחוברים למסטודון או לא", "privacy.public.short": "פומבי", + "privacy.unlisted.additional": "ההתנהגות דומה להודעה ציבורית, מלבד שההודעה לא תופיע בפיד החי המקומי או בתגיות, תגליות או חיפוש מסטודון, אפילו אם ביקשת שהחשבון כולו יהיה פומבי.", + "privacy.unlisted.long": "פחות חשיפה לאלגוריתמים", + "privacy.unlisted.short": "ציבורי שקט", "privacy_policy.last_updated": "עודכן לאחרונה {date}", "privacy_policy.title": "מדיניות פרטיות", "recommended": "מומלץ", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index 42f4ca4efa..f88fe19569 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -277,8 +277,6 @@ "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "hashtag.follow": "हैशटैग को फॉलो करें", "hashtag.unfollow": "हैशटैग को उनफ़ोल्लोव करें", - "home.actions.go_to_explore": "देखिए क्या पक रहा है", - "home.actions.go_to_suggestions": "अनुसरने के लिए लोगो को ढूंढे", "home.column_settings.basic": "बुनियादी", "home.column_settings.show_reblogs": "बूस्ट दिखाए", "home.column_settings.show_replies": "जवाबों को दिखाए", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index cada365fc8..9fe15f5a2d 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -261,7 +261,6 @@ "hashtag.column_settings.tag_toggle": "Uključi dodatne oznake za ovaj stupac", "hashtag.follow": "Prati hashtag", "hashtag.unfollow": "Prestani pratiti hashtag", - "home.actions.go_to_explore": "Vidi trendove", "home.column_settings.basic": "Osnovno", "home.column_settings.show_reblogs": "Pokaži boostove", "home.column_settings.show_replies": "Pokaži odgovore", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 31bca5652b..8f979e5558 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -145,12 +145,10 @@ "compose_form.lock_disclaimer": "A fiókod nincs {locked}. Bárki követni tud, hogy megtekintse a kizárólag követőknek szánt bejegyzéseket.", "compose_form.lock_disclaimer.lock": "zárolva", "compose_form.placeholder": "Mi jár a fejedben?", - "compose_form.poll.add_option": "Opció hozzáadása", "compose_form.poll.duration": "Szavazás időtartama", - "compose_form.poll.multiple": "Több választás", - "compose_form.poll.option_placeholder": "Opció {number}", - "compose_form.poll.remove_option": "Opció eltávolítása", - "compose_form.poll.single": "Egy választása", + "compose_form.poll.multiple": "Több lehetőség", + "compose_form.poll.option_placeholder": "Válasz {number}", + "compose_form.poll.single": "Egyetlen válasz", "compose_form.poll.switch_to_multiple": "Szavazás megváltoztatása több választásosra", "compose_form.poll.switch_to_single": "Szavazás megváltoztatása egyetlen választásosra", "compose_form.poll.type": "Stílus", @@ -160,7 +158,7 @@ "compose_form.save_changes": "Frissítés", "compose_form.spoiler.marked": "Tartalmi figyelmeztetés eltávolítása", "compose_form.spoiler.unmarked": "Tartalmi figyelmeztetés hozzáadása", - "compose_form.spoiler_placeholder": "Tartalom figyelmeztetés (opcionális)", + "compose_form.spoiler_placeholder": "Tartalmi figyelmeztetés (opcionális)", "confirmation_modal.cancel": "Mégsem", "confirmations.block.block_and_report": "Letiltás és jelentés", "confirmations.block.confirm": "Letiltás", @@ -279,6 +277,12 @@ "follow_request.authorize": "Hitelesítés", "follow_request.reject": "Elutasítás", "follow_requests.unlocked_explanation": "Bár a fiókod nincs zárolva, a(z) {domain} csapata úgy gondolta, hogy talán kézzel szeretnéd ellenőrizni ezen fiókok követési kéréseit.", + "follow_suggestions.curated_suggestion": "Szerkesztői ajánlat", + "follow_suggestions.dismiss": "Ne jelenjen meg újra", + "follow_suggestions.personalized_suggestion": "Személyre szabott javaslat", + "follow_suggestions.popular_suggestion": "Népszerű javaslat", + "follow_suggestions.view_all": "Összes megtekintése", + "follow_suggestions.who_to_follow": "Kit érdemes követni", "followed_tags": "Követett hashtagek", "footer.about": "Névjegy", "footer.directory": "Profiltár", @@ -305,13 +309,9 @@ "hashtag.follow": "Hashtag követése", "hashtag.unfollow": "Hashtag követésének megszüntetése", "hashtags.and_other": "…és {count, plural, other {# további}}", - "home.actions.go_to_explore": "Felkapottak megtekintése", - "home.actions.go_to_suggestions": "Követhetők keresése", "home.column_settings.basic": "Általános", "home.column_settings.show_reblogs": "Megtolások megjelenítése", "home.column_settings.show_replies": "Válaszok megjelenítése", - "home.explore_prompt.body": "A saját hírfolyam a követésre kiválasztott hashtagek, a követésre kiválasztott személyek és az általuk népszerűsített bejegyzések keverékét tartalmazza. Ha csendesnek tűnik, akkor megpróbálhatod ezeket:", - "home.explore_prompt.title": "Ez a kezdőpontod a Mastodonon belül.", "home.hide_announcements": "Közlemények elrejtése", "home.pending_critical_update.body": "A lehető leghamarabb frissítsd a Mastodon kiszolgálódat!", "home.pending_critical_update.link": "Frissítések megtekintése", @@ -524,15 +524,15 @@ "poll_button.add_poll": "Új szavazás", "poll_button.remove_poll": "Szavazás eltávolítása", "privacy.change": "Bejegyzés láthatóságának módosítása", - "privacy.direct.long": "Mindenki, akit a bejegyzésben említettek", - "privacy.direct.short": "Adott személyek", - "privacy.private.long": "Csak a követők", + "privacy.direct.long": "Mindenki, akit a bejegyzés említ", + "privacy.direct.short": "Megadott személyek", + "privacy.private.long": "Csak a követőid", "privacy.private.short": "Követők", "privacy.public.long": "Bárki a Mastodonon és azon kívül", "privacy.public.short": "Nyilvános", - "privacy.unlisted.additional": "Ez pontosan úgy viselkedik, mint a nyilvános, kivéve, hogy a bejegyzés nem jelenik meg élő hírcsatornákban vagy hashtagokban, felfedezésben vagy a Mastodon keresésben, még akkor sem, ha az egész fiókra bejelentkezetünk.", + "privacy.unlisted.additional": "Ez pontosan úgy viselkedik, mint a nyilvános, kivéve, hogy a bejegyzés nem jelenik meg élő hírfolyamokban, hashtagekben, felfedezésben vagy a Mastodonos keresésben, még akkor sem, ha ezt az egész fiókra engedélyezted.", "privacy.unlisted.long": "Kevesebb algoritmikus fanfár", - "privacy.unlisted.short": "Csendes nyilvánosság", + "privacy.unlisted.short": "Csendes nyilvános", "privacy_policy.last_updated": "Utoljára frissítve: {date}", "privacy_policy.title": "Adatvédelmi szabályzat", "recommended": "Ajánlott", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index 14b75a17f4..7b9ab3742b 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -7,10 +7,12 @@ "account.add_or_remove_from_list": "Adder o remover ab listas", "account.badges.group": "Gruppo", "account.block": "Blocar @{name}", + "account.block_domain": "Blocar dominio {domain}", "account.block_short": "Blocar", "account.blocked": "Blocate", "account.browse_more_on_origin_server": "Navigar plus sur le profilo original", "account.copy": "Copiar ligamine a profilo", + "account.disable_notifications": "Stoppar le notificationes quando @{name} publica", "account.domain_blocked": "Dominio blocate", "account.edit_profile": "Modificar profilo", "account.enable_notifications": "Notifica me quando @{name} publica", @@ -24,8 +26,10 @@ "account.followers.empty": "Iste usator ancora non ha sequitores.", "account.followers_counter": "{count, plural, one {{counter} sequitor} other {{counter} sequitores}}", "account.following": "Sequente", + "account.follows.empty": "Iste usator ancora non seque nemo.", "account.go_to_profile": "Vader al profilo", "account.hide_reblogs": "Celar boosts de @{name}", + "account.in_memoriam": "In Memoriam.", "account.languages": "Cambiar le linguas subscribite", "account.link_verified_on": "Le proprietate de iste ligamine esseva verificate le {date}", "account.locked_info": "Le stato de confidentialitate de iste conto es definite a blocate. Le proprietario revisa manualmente qui pote sequer lo.", @@ -39,12 +43,16 @@ "account.open_original_page": "Aperir le pagina original", "account.posts": "Messages", "account.posts_with_replies": "Messages e responsas", + "account.requested": "Attendente le approbation. Clicca pro cancellar le requesta de sequer", + "account.requested_follow": "{name} habeva requestate sequer te", "account.share": "Compartir profilo de @{name}", "account.show_reblogs": "Monstrar responsas de @{name}", + "account.statuses_counter": "{count, plural, one {{counter} message} other {{counter} messages}}", "account.unblock": "Disblocar @{name}", "account.unblock_domain": "Disblocar dominio {domain}", "account.unblock_short": "Disblocar", "account.unendorse": "Non evidentiar sur le profilo", + "account.unfollow": "Non plus sequer", "account.unmute": "Non plus silentiar @{name}", "account.unmute_notifications_short": "Non plus silentiar le notificationes", "account.unmute_short": "Non plus silentiar", @@ -76,11 +84,14 @@ "column.mutes": "Usatores silentiate", "column.notifications": "Notificationes", "column.public": "Chronologia federate", + "column_back_button.label": "Retro", "column_header.hide_settings": "Celar le parametros", "column_header.moveLeft_settings": "Mover columna al sinistra", "column_header.moveRight_settings": "Mover columna al dextra", "column_header.show_settings": "Monstrar le parametros", "column_subheading.settings": "Parametros", + "community.column_settings.local_only": "Solmente local", + "community.column_settings.media_only": "Solmente medios", "compose.language.change": "Cambiar le lingua", "compose.language.search": "Cercar linguas...", "compose.published.body": "Message publicate.", @@ -89,11 +100,23 @@ "compose_form.direct_message_warning_learn_more": "Apprender plus", "compose_form.lock_disclaimer": "Tu conto non es {locked}. Quicunque pote sequer te pro vider tu messages solo pro sequitores.", "compose_form.lock_disclaimer.lock": "blocate", + "compose_form.poll.duration": "Duration del inquesta", + "compose_form.poll.multiple": "Selection multiple", + "compose_form.poll.option_placeholder": "Option {number}", + "compose_form.poll.single": "Seliger un", + "compose_form.poll.switch_to_multiple": "Cambiar inquesta pro permitter selectiones multiple", + "compose_form.poll.type": "Stylo", + "compose_form.publish": "Publicar", "compose_form.publish_form": "Nove message", + "compose_form.reply": "Responder", + "compose_form.save_changes": "Actualisar", "compose_form.spoiler.marked": "Remover advertimento de contento", "compose_form.spoiler.unmarked": "Adder advertimento de contento", + "compose_form.spoiler_placeholder": "Advertimento de contento (optional)", "confirmation_modal.cancel": "Cancellar", + "confirmations.block.block_and_report": "Blocar e signalar", "confirmations.block.confirm": "Blocar", + "confirmations.block.message": "Es tu secur que tu vole blocar {name}?", "confirmations.delete.confirm": "Deler", "confirmations.delete.message": "Es tu secur que tu vole deler iste message?", "confirmations.delete_list.confirm": "Deler", @@ -105,6 +128,8 @@ "confirmations.mute.confirm": "Silentiar", "confirmations.mute.message": "Es tu secur que tu vole silentiar {name}?", "confirmations.reply.confirm": "Responder", + "confirmations.unfollow.confirm": "Non plus sequer", + "confirmations.unfollow.message": "Es tu secur que tu vole non plus sequer {name}?", "conversation.delete": "Deler conversation", "conversation.mark_as_read": "Marcar como legite", "conversation.open": "Vider conversation", @@ -114,6 +139,7 @@ "copypaste.copy_to_clipboard": "Copiar al area de transferentia", "directory.federated": "Ab le fediverso cognoscite", "directory.local": "Solmente ab {domain}", + "directory.new_arrivals": "Nove arrivatas", "directory.recently_active": "Recentemente active", "disabled_account_banner.account_settings": "Parametros de conto", "disabled_account_banner.text": "Tu conto {disabledAccount} es actualmente disactivate.", @@ -121,15 +147,24 @@ "emoji_button.activity": "Activitate", "emoji_button.clear": "Rader", "emoji_button.custom": "Personalisate", + "emoji_button.flags": "Bandieras", + "emoji_button.food": "Alimentos e bibitas", + "emoji_button.label": "Inserer emoji", + "emoji_button.nature": "Natura", + "emoji_button.people": "Personas", "emoji_button.recent": "Frequentemente usate", "emoji_button.search": "Cercar...", "emoji_button.search_results": "Resultatos de recerca", + "emoji_button.symbols": "Symbolos", + "emoji_button.travel": "Viages e locos", + "empty_column.account_hides_collections": "Le usator ha seligite non facer iste information disponibile", "empty_column.account_suspended": "Conto suspendite", "empty_column.account_timeline": "Nulle messages hic!", "empty_column.account_unavailable": "Profilo non disponibile", "empty_column.blocks": "Tu non ha blocate alcun usator ancora.", "errors.unexpected_crash.report_issue": "Signalar un defecto", "explore.search_results": "Resultatos de recerca", + "explore.suggested_follows": "Personas", "explore.title": "Explorar", "explore.trending_links": "Novas", "explore.trending_statuses": "Messages", @@ -145,6 +180,11 @@ "firehose.all": "Toto", "firehose.local": "Iste servitor", "firehose.remote": "Altere servitores", + "follow_suggestions.curated_suggestion": "Selection del editores", + "follow_suggestions.dismiss": "Non monstrar novemente", + "follow_suggestions.personalized_suggestion": "Suggestion personalisate", + "follow_suggestions.popular_suggestion": "Suggestion personalisate", + "follow_suggestions.view_all": "Vider toto", "footer.about": "A proposito de", "footer.directory": "Directorio de profilos", "footer.get_app": "Obtene le application", @@ -156,15 +196,20 @@ "getting_started.heading": "Prime passos", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", + "hashtag.column_header.tag_mode.none": "sin {additional}", "hashtag.column_settings.select.no_options_message": "Nulle suggestiones trovate", "hashtag.column_settings.select.placeholder": "Insere hashtags…", "hashtag.follow": "Sequer hashtag", + "hashtag.unfollow": "Non sequer plus le hashtag", + "hashtags.and_other": "…e {count, plural, one {}other {# plus}}", "home.column_settings.show_reblogs": "Monstrar boosts", "home.column_settings.show_replies": "Monstrar responsas", "home.hide_announcements": "Celar annuncios", "home.pending_critical_update.body": "Actualisa tu servitor de Mastodon le plus tosto possibile!", "home.pending_critical_update.link": "Vider actualisationes", + "home.pending_critical_update.title": "Actualisation de securitate critic disponibile!", "home.show_announcements": "Monstrar annuncios", + "interaction_modal.login.prompt": "Dominio de tu servitor, p.e. mastodon.social", "interaction_modal.no_account_yet": "Non sur Mstodon?", "interaction_modal.on_another_server": "In un servitor differente", "interaction_modal.on_this_server": "In iste servitor", @@ -183,8 +228,10 @@ "keyboard_shortcuts.muted": "Aperir lista de usatores silentiate", "keyboard_shortcuts.my_profile": "Aperir tu profilo", "keyboard_shortcuts.notifications": "Aperir columna de notificationes", + "keyboard_shortcuts.profile": "Aperir le profilo del autor", "keyboard_shortcuts.reply": "Responder al message", "keyboard_shortcuts.spoilers": "Monstrar/celar le campo CW", + "keyboard_shortcuts.toggle_sensitivity": "Monstrar/celar medios", "keyboard_shortcuts.toot": "Initiar un nove message", "lightbox.close": "Clauder", "lightbox.next": "Sequente", @@ -198,8 +245,11 @@ "lists.exclusive": "Celar iste messages ab le initio", "lists.new.create": "Adder lista", "lists.new.title_placeholder": "Nove titulo del lista", + "lists.replies_policy.none": "Nemo", "lists.replies_policy.title": "Monstrar responsas a:", "lists.subheading": "Tu listas", + "loading_indicator.label": "Cargante…", + "media_gallery.toggle_visible": "{number, plural, one {Celar imagine} other {Celar imagines}}", "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Celar notificationes de iste usator?", "navigation_bar.about": "A proposito de", @@ -215,24 +265,34 @@ "navigation_bar.lists": "Listas", "navigation_bar.logout": "Clauder le session", "navigation_bar.mutes": "Usatores silentiate", + "navigation_bar.opened_in_classic_interface": "Messages, contos e altere paginas specific es aperite per predefinition in le interfacie web classic.", + "navigation_bar.personal": "Personal", "navigation_bar.preferences": "Preferentias", "navigation_bar.public_timeline": "Chronologia federate", "navigation_bar.search": "Cercar", "navigation_bar.security": "Securitate", + "notification.own_poll": "Tu inquesta finiva", "notification.update": "{name} modificava un message", "notifications.clear": "Rader notificationes", "notifications.column_settings.alert": "Notificationes de scriptorio", + "notifications.column_settings.favourite": "Favoritos:", "notifications.column_settings.filter_bar.advanced": "Monstrar tote le categorias", "notifications.column_settings.follow": "Nove sequitores:", "notifications.column_settings.mention": "Mentiones:", + "notifications.column_settings.poll": "Resultatos del inquesta:", "notifications.column_settings.push": "Notificationes push", + "notifications.column_settings.show": "Monstrar in columna", "notifications.column_settings.sound": "Reproducer sono", "notifications.column_settings.status": "Nove messages:", + "notifications.column_settings.unread_notifications.category": "Notificationes non legite", "notifications.filter.all": "Toto", "notifications.filter.favourites": "Favoritos", "notifications.filter.mentions": "Mentiones", + "notifications.filter.polls": "Resultatos del inquesta", + "notifications.filter.statuses": "Actualisationes de personas que tu seque", "notifications.grant_permission": "Conceder permission.", "notifications.group": "{count} notificationes", + "notifications_permission_banner.enable": "Activar notificationes de scriptorio", "onboarding.compose.template": "Salute #Mastodon!", "onboarding.profile.save_and_continue": "Salvar e continuar", "onboarding.share.next_steps": "Sequente passos possibile:", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 1670d616fb..88e99a7086 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -270,8 +270,6 @@ "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "hashtag.follow": "Ikuti tagar", "hashtag.unfollow": "Batalkan pengikutan tagar", - "home.actions.go_to_explore": "Lihat apa yang lagi tranding", - "home.actions.go_to_suggestions": "Temukan Orang untuk Diikuti", "home.column_settings.basic": "Dasar", "home.column_settings.show_reblogs": "Tampilkan boost", "home.column_settings.show_replies": "Tampilkan balasan", diff --git a/app/javascript/mastodon/locales/ie.json b/app/javascript/mastodon/locales/ie.json index 5188d137e3..d39aa6cf61 100644 --- a/app/javascript/mastodon/locales/ie.json +++ b/app/javascript/mastodon/locales/ie.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "Tui conto ne es {locked}. Quicunc posse sequer te por vider tui postas solmen por sequitores.", "compose_form.lock_disclaimer.lock": "cludet", "compose_form.placeholder": "Quo es in tui spiritu?", - "compose_form.poll.add_option": "Adjunter option", "compose_form.poll.duration": "Duration del balotation", "compose_form.poll.multiple": "Selection multiplic", "compose_form.poll.option_placeholder": "Option {number}", - "compose_form.poll.remove_option": "Remover ti-ci option", "compose_form.poll.single": "Selecter un", "compose_form.poll.switch_to_multiple": "Changea li balotation por permisser multiplic selectiones", "compose_form.poll.switch_to_single": "Changea li balotation por permisser un singul selection", @@ -304,13 +302,9 @@ "hashtag.follow": "Sequer hashtag", "hashtag.unfollow": "Dessequer hashtag", "hashtags.and_other": "…e {count, plural, other {# in plu}}", - "home.actions.go_to_explore": "Vider lu populari", - "home.actions.go_to_suggestions": "Trovar gente por sequer", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Monstrar boosts", "home.column_settings.show_replies": "Monstrar responses", - "home.explore_prompt.body": "Tui hemal témpor-linea have un mixtura del hashtags queles tu selectet sequer, li gente quem tu selectet sequer, e li postas queles ili boosta. Si to sembla tro quiet, tu fórsan vole:", - "home.explore_prompt.title": "To-ci es tui hemal págine in Mastodon.", "home.hide_announcements": "Celar proclamationes", "home.pending_critical_update.body": "Ples actualisar tui Mastodon-servitor tam rapid quam es possibil!", "home.pending_critical_update.link": "Vider actualisationes", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index a9dd32c06c..c468f689ab 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -292,13 +292,9 @@ "hashtag.follow": "Sequez hashtago", "hashtag.unfollow": "Desequez hashtago", "hashtags.and_other": "…e {count, plural, one {# plusa}other {# plusa}}", - "home.actions.go_to_explore": "Videz quo es populara nun", - "home.actions.go_to_suggestions": "Trovez personi por sequar", "home.column_settings.basic": "Simpla", "home.column_settings.show_reblogs": "Montrar repeti", "home.column_settings.show_replies": "Montrar respondi", - "home.explore_prompt.body": "Vua hemala fluo havos mixuro de la hashtagi quin vu selektis sequar, la personi quin vu selektis sequar, e la posti quin ili repetis. Se to semblas tro tacanta, vu darfas volar:", - "home.explore_prompt.title": "Co es vua hemo en Mastodon.", "home.hide_announcements": "Celez anunci", "home.pending_critical_update.body": "Voluntez aktualigar vua Mastodon-servilo tam balde kam es posibla!", "home.pending_critical_update.link": "Vidar aktualigaji", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index dfece102bb..3c2337efd2 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "Aðgangurinn þinn er ekki {locked}. Hver sem er getur fylgst með þér til að sjá þær færslur sem einungis eru til fylgjenda þinna.", "compose_form.lock_disclaimer.lock": "læstur", "compose_form.placeholder": "Hvað liggur þér á hjarta?", - "compose_form.poll.add_option": "Bæta við valkosti", "compose_form.poll.duration": "Tímalengd könnunar", "compose_form.poll.multiple": "Margir valkostir", "compose_form.poll.option_placeholder": "Valkostur {number}", - "compose_form.poll.remove_option": "Fjarlægja þennan valkost", "compose_form.poll.single": "Veldu eitt", "compose_form.poll.switch_to_multiple": "Breyta könnun svo hægt sé að hafa marga valkosti", "compose_form.poll.switch_to_single": "Breyta könnun svo hægt sé að hafa einn stakan valkost", @@ -279,13 +277,19 @@ "follow_request.authorize": "Heimila", "follow_request.reject": "Hafna", "follow_requests.unlocked_explanation": "Jafnvel þótt aðgangurinn þinn sé ekki læstur, hafa umsjónarmenn {domain} ímyndað sér að þú gætir viljað yfirfara handvirkt fylgjendabeiðnir frá þessum notendum.", + "follow_suggestions.curated_suggestion": "Úrval umsjónarfólks", + "follow_suggestions.dismiss": "Ekki birta þetta aftur", + "follow_suggestions.personalized_suggestion": "Persónuaðlöguð tillaga", + "follow_suggestions.popular_suggestion": "Vinsæl tillaga", + "follow_suggestions.view_all": "Skoða allt", + "follow_suggestions.who_to_follow": "Hverjum á að fylgjast með", "followed_tags": "Myllumerki sem fylgst er með", "footer.about": "Nánari upplýsingar", "footer.directory": "Notandasniðamappa", "footer.get_app": "Ná í forritið", "footer.invite": "Bjóða fólki", "footer.keyboard_shortcuts": "Flýtileiðir á lyklaborði", - "footer.privacy_policy": "Persónuverndarstefna", + "footer.privacy_policy": "Meðferð persónuupplýsinga", "footer.source_code": "Skoða frumkóða", "footer.status": "Staða", "generic.saved": "Vistað", @@ -305,13 +309,9 @@ "hashtag.follow": "Fylgjast með myllumerki", "hashtag.unfollow": "Hætta að fylgjast með myllumerki", "hashtags.and_other": "…og {count, plural, other {# til viðbótar}}", - "home.actions.go_to_explore": "Sjá hvað er í umræðunni", - "home.actions.go_to_suggestions": "Finna fólk til að fylgjast með", "home.column_settings.basic": "Einfalt", "home.column_settings.show_reblogs": "Sýna endurbirtingar", "home.column_settings.show_replies": "Birta svör", - "home.explore_prompt.body": "Heimastreymið þitt verður með blöndu af færslum úr myllumerkjunum sem þú hefur valið að fylgja, færslum frá fólki sem þú hefur valið að fylgja og færslum sem þau endurbirta. Ef þér finnst þetta allt of kyrrlátt, gætirðu viljað:", - "home.explore_prompt.title": "Þetta er bækistöð þín innan samfélagsins.", "home.hide_announcements": "Fela auglýsingar", "home.pending_critical_update.body": "Uppfærðu Mastodon-þjóninn þinn eins fljótt og mögulegt er!", "home.pending_critical_update.link": "Skoða uppfærslur", @@ -672,7 +672,7 @@ "status.reblogs.empty": "Enginn hefur ennþá endurbirt þessa færslu. Þegar einhver gerir það, mun það birtast hér.", "status.redraft": "Eyða og endurvinna drög", "status.remove_bookmark": "Fjarlægja bókamerki", - "status.replied_to": "Svaraði {name}", + "status.replied_to": "Svaraði til {name}", "status.reply": "Svara", "status.replyAll": "Svara þræði", "status.report": "Kæra @{name}", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 920b80d5a6..db8e88bd2a 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "Il tuo profilo non è {locked}. Chiunque può seguirti per visualizzare i tuoi post per soli seguaci.", "compose_form.lock_disclaimer.lock": "bloccato", "compose_form.placeholder": "Cos'hai in mente?", - "compose_form.poll.add_option": "Aggiungi opzione", "compose_form.poll.duration": "Durata del sondaggio", "compose_form.poll.multiple": "Scelta multipla", "compose_form.poll.option_placeholder": "Opzione {number}", - "compose_form.poll.remove_option": "Rimuovi questa opzione", "compose_form.poll.single": "Scegli uno", "compose_form.poll.switch_to_multiple": "Modifica il sondaggio per consentire scelte multiple", "compose_form.poll.switch_to_single": "Modifica il sondaggio per consentire una singola scelta", @@ -279,6 +277,12 @@ "follow_request.authorize": "Autorizza", "follow_request.reject": "Rifiuta", "follow_requests.unlocked_explanation": "Anche se il tuo profilo non è privato, lo staff di {domain} ha pensato che potresti voler revisionare manualmente le richieste di seguirti da questi profili.", + "follow_suggestions.curated_suggestion": "Scelta dell'editore", + "follow_suggestions.dismiss": "Non visualizzare più", + "follow_suggestions.personalized_suggestion": "Suggerimenti personalizzati", + "follow_suggestions.popular_suggestion": "Suggerimento frequente", + "follow_suggestions.view_all": "Vedi tutto", + "follow_suggestions.who_to_follow": "Chi seguire", "followed_tags": "Hashtag seguiti", "footer.about": "Info", "footer.directory": "Cartella dei profili", @@ -305,13 +309,9 @@ "hashtag.follow": "Segui l'hashtag", "hashtag.unfollow": "Smetti di seguire l'hashtag", "hashtags.and_other": "…e {count, plural, other {# in più}}", - "home.actions.go_to_explore": "Scopri cosa sia di tendenza", - "home.actions.go_to_suggestions": "Trova persone da seguire", "home.column_settings.basic": "Base", "home.column_settings.show_reblogs": "Mostra reblog", "home.column_settings.show_replies": "Mostra risposte", - "home.explore_prompt.body": "La tua home feed conterrà un mix di post degli hashtag che hai scelto di seguire, delle persone che hai scelto di seguire e dei post che condividono. Sembra abbastanza tranquillo in questo momento, quindi che ne dici di:", - "home.explore_prompt.title": "Questa è la tua base all'interno di Mastodon.", "home.hide_announcements": "Nascondi annunci", "home.pending_critical_update.body": "Ti preghiamo di aggiornare il tuo server di Mastodon, il prima possibile!", "home.pending_critical_update.link": "Visualizza aggiornamenti", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index e0cc96d571..180963e9e6 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -146,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "承認制", "compose_form.placeholder": "今なにしてる?", "compose_form.poll.duration": "アンケート期間", + "compose_form.poll.multiple": "複数選択", + "compose_form.poll.option_placeholder": "項目{number}", + "compose_form.poll.single": "単一選択", "compose_form.poll.switch_to_multiple": "複数選択に変更", "compose_form.poll.switch_to_single": "単一選択に変更", + "compose_form.poll.type": "スタイル", + "compose_form.publish": "投稿", "compose_form.publish_form": "投稿", + "compose_form.reply": "返信", + "compose_form.save_changes": "更新", "compose_form.spoiler.marked": "本文は警告の後ろに隠されます", "compose_form.spoiler.unmarked": "本文は隠されていません", + "compose_form.spoiler_placeholder": "閲覧注意 (オプション)", "confirmation_modal.cancel": "キャンセル", "confirmations.block.block_and_report": "ブロックし通報", "confirmations.block.confirm": "ブロック", @@ -269,6 +277,7 @@ "follow_request.authorize": "許可", "follow_request.reject": "拒否", "follow_requests.unlocked_explanation": "あなたのアカウントは承認制ではありませんが、{domain}のスタッフはこれらのアカウントからのフォローリクエストの確認が必要であると判断しました。", + "follow_suggestions.view_all": "すべて表示", "followed_tags": "フォロー中のハッシュタグ", "footer.about": "概要", "footer.directory": "ディレクトリ", @@ -291,17 +300,13 @@ "hashtag.column_settings.tag_toggle": "このカラムに追加のタグを含める", "hashtag.counter_by_accounts": "{count, plural, other {{counter}人投稿}}", "hashtag.counter_by_uses": "{count, plural, other {{counter}件}}", - "hashtag.counter_by_uses_today": "今日{count, plural, other {{counter}件}}", + "hashtag.counter_by_uses_today": "本日{count, plural, other {#件}}", "hashtag.follow": "ハッシュタグをフォローする", "hashtag.unfollow": "ハッシュタグのフォローを解除", "hashtags.and_other": "ほか{count, plural, other {#個}}", - "home.actions.go_to_explore": "話題をさがす", - "home.actions.go_to_suggestions": "フォローするユーザーを検索", "home.column_settings.basic": "基本設定", "home.column_settings.show_reblogs": "ブースト表示", "home.column_settings.show_replies": "返信表示", - "home.explore_prompt.body": "ユーザーやハッシュタグをフォローすると、この「ホーム」タイムラインに投稿やブーストが流れるようになります。タイムラインをもう少しにぎやかにしてみませんか?", - "home.explore_prompt.title": "Mastodonのタイムラインへようこそ。", "home.hide_announcements": "お知らせを隠す", "home.pending_critical_update.body": "速やかにMastodonサーバーをアップデートしてください。", "home.pending_critical_update.link": "詳細", @@ -514,7 +519,15 @@ "poll_button.add_poll": "アンケートを追加", "poll_button.remove_poll": "アンケートを削除", "privacy.change": "公開範囲を変更", + "privacy.direct.long": "本文で指定した相手のみ", + "privacy.direct.short": "特定の人", + "privacy.private.long": "フォロワーのみ", + "privacy.private.short": "フォロワー", + "privacy.public.long": "すべての人 (Mastodon以外も含む)", "privacy.public.short": "公開", + "privacy.unlisted.additional": "「公開」とほとんど同じですが、リアルタイムフィードやハッシュタグ、探索機能、Mastodon検索などに投稿が表示されない点で「公開」と異なります。また、アカウント設定で投稿の検索や表示を許可している場合でも、この公開範囲を設定した投稿は前述の機能には表示されません。", + "privacy.unlisted.long": "より表示機会の少ない公開", + "privacy.unlisted.short": "ひかえめな公開", "privacy_policy.last_updated": "{date}に更新", "privacy_policy.title": "プライバシーポリシー", "recommended": "おすすめ", @@ -532,7 +545,9 @@ "relative_time.minutes": "{number}分前", "relative_time.seconds": "{number}秒前", "relative_time.today": "今日", + "reply_indicator.attachments": "{count, plural, other {#件のメディア}}", "reply_indicator.cancel": "キャンセル", + "reply_indicator.poll": "アンケート", "report.block": "ブロック", "report.block_explanation": "相手の投稿が表示されなくなります。相手はあなたの投稿を見ることやフォローすることができません。相手はブロックされていることがわかります。", "report.categories.legal": "法令違反", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index d9388c7048..7fb617518c 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -22,6 +22,7 @@ "account.followers_counter": "{count, plural, one {{count} n umeḍfar} other {{count} n imeḍfaren}}", "account.following_counter": "{count, plural, one {{counter} yettwaḍfaren} other {{counter} yettwaḍfaren}}", "account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.", + "account.go_to_profile": "Ddu ɣer umaɣnu", "account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}", "account.link_verified_on": "Taɣara n useɣwen-a tettwasenqed ass n {date}", "account.locked_info": "Amiḍan-agi uslig isekweṛ. D bab-is kan i izemren ad yeǧǧ, s ufus-is, win ara t-iḍefṛen.", @@ -99,6 +100,7 @@ "compose_form.lock_disclaimer.lock": "yettwacekkel", "compose_form.placeholder": "D acu i itezzin deg wallaɣ?", "compose_form.poll.duration": "Tanzagt n tefrant", + "compose_form.poll.single": "Fren yiwen", "compose_form.publish_form": "Suffeɣ", "compose_form.spoiler.marked": "Kkes aḍris yettwaffren deffir n walɣu", "compose_form.spoiler.unmarked": "Rnu aḍris yettwaffren deffir n walɣu", @@ -368,7 +370,9 @@ "report.close": "Immed", "report.forward": "Bren-it ɣeṛ {target}", "report.mute": "Sgugem", + "report.next": "Uḍfiṛ", "report.placeholder": "Iwenniten-nniḍen", + "report.reasons.dislike": "Ur t-ḥemmleɣ ara", "report.reasons.spam": "D aspam", "report.submit": "Azen", "report.target": "Mmel {target}", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index eae7f8faea..50d9959994 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "이 계정은 {locked}상태가 아닙니다. 누구나 이 계정을 팔로우 하여 팔로워 전용의 게시물을 볼 수 있습니다.", "compose_form.lock_disclaimer.lock": "비공개", "compose_form.placeholder": "지금 무슨 생각을 하고 있나요?", - "compose_form.poll.add_option": "항목 추가", "compose_form.poll.duration": "투표 기간", "compose_form.poll.multiple": "다중 선택", "compose_form.poll.option_placeholder": "{option}번째 항목", - "compose_form.poll.remove_option": "이 항목 삭제", "compose_form.poll.single": "단일 선택", "compose_form.poll.switch_to_multiple": "다중 선택이 가능한 투표로 변경", "compose_form.poll.switch_to_single": "단일 선택 투표로 변경", @@ -160,7 +158,7 @@ "compose_form.save_changes": "수정", "compose_form.spoiler.marked": "열람주의 제거", "compose_form.spoiler.unmarked": "열람 주의 문구 추가", - "compose_form.spoiler_placeholder": "열람 주의 (옵션)", + "compose_form.spoiler_placeholder": "내용 경고 (선택사항)", "confirmation_modal.cancel": "취소", "confirmations.block.block_and_report": "차단하고 신고하기", "confirmations.block.confirm": "차단", @@ -279,6 +277,12 @@ "follow_request.authorize": "허가", "follow_request.reject": "거부", "follow_requests.unlocked_explanation": "귀하의 계정이 잠긴 계정이 아닐지라도, {domain} 스태프는 이 계정들의 팔로우 요청을 수동으로 처리해 주시면 좋겠다고 생각했습니다.", + "follow_suggestions.curated_suggestion": "중재자의 추천", + "follow_suggestions.dismiss": "다시 보지 않기", + "follow_suggestions.personalized_suggestion": "개인화된 추천", + "follow_suggestions.popular_suggestion": "인기있는 추천", + "follow_suggestions.view_all": "모두 보기", + "follow_suggestions.who_to_follow": "팔로우할 만한 사람", "followed_tags": "팔로우 중인 해시태그", "footer.about": "정보", "footer.directory": "프로필 책자", @@ -305,13 +309,9 @@ "hashtag.follow": "팔로우", "hashtag.unfollow": "팔로우 해제", "hashtags.and_other": "…그리고 {count, plural,other {#개 더}}", - "home.actions.go_to_explore": "무엇이 유행인지 보기", - "home.actions.go_to_suggestions": "팔로우할 사람 찾기", "home.column_settings.basic": "기본", "home.column_settings.show_reblogs": "부스트 표시", "home.column_settings.show_replies": "답글 표시", - "home.explore_prompt.body": "홈 피드에는 내가 팔로우한 해시태그 그리고 팔로우한 사람과 부스트가 함께 나타납니다. 너무 고요하게 느껴진다면, 다음 것들을 살펴볼 수 있습니다.", - "home.explore_prompt.title": "이곳은 마스토돈의 내 본거지입니다.", "home.hide_announcements": "공지사항 숨기기", "home.pending_critical_update.body": "서둘러 마스토돈 서버를 업데이트 하세요!", "home.pending_critical_update.link": "업데이트 보기", @@ -477,7 +477,7 @@ "onboarding.actions.go_to_explore": "무엇이 유행인지 보러 가기", "onboarding.actions.go_to_home": "홈 피드로 가기", "onboarding.compose.template": "안녕 #마스토돈!", - "onboarding.follows.empty": "안타깝지만 아직은 아무 것도 보여드릴 수 없습니다. 검색을 이용하거나 발견하기 페이지에서 팔로우 할 사람을 찾을 수 있습니다. 아니면 잠시 후에 다시 시도하세요.", + "onboarding.follows.empty": "안타깝지만 아직은 아무 것도 보여드릴 수 없습니다. 검색을 이용하거나 둘러보기 페이지에서 팔로우 할 사람을 찾을 수 있습니다. 아니면 잠시 후에 다시 시도하세요.", "onboarding.follows.lead": "홈 피드는 마스토돈을 경험하는 주된 경로입니다. 더 많은 사람들을 팔로우 할수록 더 활발하고 흥미로워질 것입니다. 여기 시작을 위한 몇몇 추천을 드립니다:", "onboarding.follows.title": "내게 맞는 홈 피드 꾸미기", "onboarding.profile.discoverable": "내 프로필을 발견 가능하도록 설정", @@ -526,11 +526,11 @@ "privacy.change": "게시물의 프라이버시 설정을 변경", "privacy.direct.long": "이 게시물에서 언급된 모두", "privacy.direct.short": "특정 인물", - "privacy.private.long": "내 팔로워들에게만", + "privacy.private.long": "내 팔로워만", "privacy.private.short": "팔로워", "privacy.public.long": "마스토돈 내외 모두", "privacy.public.short": "공개", - "privacy.unlisted.additional": "공개와 똑같지만 게시물이 라이브 피드나 해시태그, 발견하기, (계정 설정에서 허용했더라도) 마스토돈 검색에서 제외됩니다.", + "privacy.unlisted.additional": "공개와 똑같지만 게시물이 실시간 피드나 해시태그, 둘러보기, (계정 설정에서 허용했더라도) 마스토돈 검색에서 제외됩니다.", "privacy.unlisted.long": "더 적은 알고리즘 팡파레", "privacy.unlisted.short": "조용한 공개", "privacy_policy.last_updated": "{date}에 마지막으로 업데이트됨", diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json index ba99f5cd30..3ec3b6af1b 100644 --- a/app/javascript/mastodon/locales/lad.json +++ b/app/javascript/mastodon/locales/lad.json @@ -4,16 +4,16 @@ "about.disclaimer": "Mastodon es un programario libero, kon kodiche avierto i una marka komersiala de Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Razon no desponivle", "about.domain_blocks.preamble": "Mastodon djeneralmente te permete ver kontenido de i enteraktuar kon utilizadores de kualseker otro sirvidor en el fediverso. Estas son las eksepsiones en este sirvidor en partikolar.", - "about.domain_blocks.silenced.explanation": "\"Djeneralmente no veras profiles i kontenido de este sirvidor, salvo ke eksplisitamente lo bushkes o sigas algun kuento de el.", + "about.domain_blocks.silenced.explanation": "Djeneralmente no veras profiles i kontenido de este sirvidor, salvo ke eksplisitamente lo bushkes o sigas algun kuento de el.", "about.domain_blocks.silenced.title": "Limitado", - "about.domain_blocks.suspended.explanation": "Dingunos datos de este sirvidor sera prosesado, magazinado o enterkambiado kon este sirvidor. Enteraksyon o komunikasyon kon sus utilizadores sera imposivle.", + "about.domain_blocks.suspended.explanation": "Dingunos datos de este sirvidor seran prosesados, magazinados o enterkambiados. Enteraksyon o komunikasyon kon sus utilizadores sera imposivle.", "about.domain_blocks.suspended.title": "Suspendido", "about.not_available": "Esta enformasyon no esta desponivle en este sirvidor.", "about.powered_by": "Redes sosyalas desentralizadas kon uzo de {mastodon}", "about.rules": "Reglas del sirvidor", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Adjusta a o kita de listas", - "account.badges.bot": "Bot", + "account.badges.bot": "Otomatizado", "account.badges.group": "Grupo", "account.block": "Bloka @{name}", "account.block_domain": "Bloka el domeno {domain}", @@ -23,13 +23,13 @@ "account.cancel_follow_request": "Anula solisitud de segir", "account.copy": "Kopia atadijo de profil", "account.direct": "Enmenta a @{name} en privado", - "account.disable_notifications": "No me avizes mas sovre publikasyones de @{name}", + "account.disable_notifications": "Desha de avizarme sovre publikasyones de @{name}", "account.domain_blocked": "Domeno blokado", "account.edit_profile": "Edita profil", "account.enable_notifications": "Avizame kuando @{name} publike", "account.endorse": "Avalia en profil", "account.featured_tags.last_status_at": "Ultima publikasyon de {date}", - "account.featured_tags.last_status_never": "\"No ay publikasyones", + "account.featured_tags.last_status_never": "No ay publikasyones", "account.featured_tags.title": "Etiketas avaliadas de {name}", "account.follow": "Sige", "account.follow_back": "Sige tamyen", @@ -38,19 +38,19 @@ "account.followers_counter": "{count, plural, one {{counter} suivante} other {{counter} suivantes}}", "account.following": "Sigiendo", "account.following_counter": "{count, plural, other {Sigiendo a {counter}}}", - "account.follows.empty": "Este utilizador ainda no sige a ningun.", + "account.follows.empty": "Este utilizador ainda no sige a dingun.", "account.go_to_profile": "Va al profil", "account.hide_reblogs": "Eskonde repartajasyones de @{name}", "account.in_memoriam": "De bendicha memoria.", "account.joined_short": "Adjunto", - "account.languages": "Troka linguas suskrividas", + "account.languages": "Troka linguas abonadas", "account.link_verified_on": "La propriedad de este atadijo fue verifikada el {date}", "account.locked_info": "El estado de privasita de este konto esta konfigurado komo serado. El proprietario reviza manualmente kien le puede segir.", "account.media": "Multimedia", "account.mention": "Enmenta a @{name}", "account.moved_to": "{name} tiene endikado ke su muevo kuento agora es:", "account.mute": "Silensia a @{name}", - "account.mute_notifications_short": "Silensia avizos de @{name}", + "account.mute_notifications_short": "Silensia avizos", "account.mute_short": "Silensia", "account.muted": "Silensiado", "account.mutual": "Mutual", @@ -64,7 +64,7 @@ "account.share": "Partaja el profil de @{name}", "account.show_reblogs": "Amostra repartajasyones de @{name}", "account.statuses_counter": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}}", - "account.unblock": "Dezbloka @{name}", + "account.unblock": "Dezbloka a @{name}", "account.unblock_domain": "Dezbloka domeno {domain}", "account.unblock_short": "Dezbloka", "account.unendorse": "No avalia en profil", @@ -79,8 +79,8 @@ "admin.dashboard.retention.cohort": "Mez de enrejistrasyon", "admin.dashboard.retention.cohort_size": "Muevos utilizadores", "admin.impact_report.instance_accounts": "Profiles de kuentos esto efasaria", - "admin.impact_report.instance_followers": "Suivantes a los kualos nuestros utilizadores perderian", - "admin.impact_report.instance_follows": "Suivantes a los kualos sus utilizadores perderian", + "admin.impact_report.instance_followers": "Suivantes a los kualos nuestros utilizadores pedrerian", + "admin.impact_report.instance_follows": "Suivantes a los kualos sus utilizadores pedrerian", "admin.impact_report.title": "Rezumen de impakto", "alert.rate_limited.message": "Por favor aprova dempues de {retry_time, time, medium}.", "alert.rate_limited.title": "Trafiko limitado", @@ -88,7 +88,7 @@ "alert.unexpected.title": "Atyo!", "announcement.announcement": "Pregon", "attachments_list.unprocessed": "(no prosesado)", - "audio.hide": "Eskonder audio", + "audio.hide": "Eskonde audio", "boost_modal.combo": "Puedes klikar {combo} para ometer esto la proksima vez", "bundle_column_error.copy_stacktrace": "Kopia el raporto de yerro", "bundle_column_error.error.body": "La pajina solisitada no pudo ser renderada. Podria ser por un yerro en muestro kodiche o un problem de kompatibilita kon el navigador.", @@ -110,7 +110,7 @@ "column.about": "Sovre mozotros", "column.blocks": "Utilizadores blokados", "column.bookmarks": "Markadores", - "column.community": "Linya de tiempo lokala", + "column.community": "Linya lokala", "column.direct": "Enmentaduras privadas", "column.directory": "Eksplora profiles", "column.domain_blocks": "Domenos blokados", @@ -122,7 +122,7 @@ "column.mutes": "Utilizadores silensiados", "column.notifications": "Avizos", "column.pins": "Publikasyones fiksadas", - "column.public": "Linya de tiempo federada", + "column.public": "Linya federada", "column_back_button.label": "Atras", "column_header.hide_settings": "Eskonde opsyones", "column_header.moveLeft_settings": "Move kolumna a la siedra", @@ -146,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "serrado", "compose_form.placeholder": "Ke haber?", "compose_form.poll.duration": "Durasion de anketa", - "compose_form.poll.switch_to_multiple": "Trokar anketa para permeter a eskojer mas ke una opsyon", - "compose_form.poll.switch_to_single": "Trokar anketa para permeter a eskojer solo una opsyon", + "compose_form.poll.multiple": "Multiples opsyones", + "compose_form.poll.option_placeholder": "Opsyon {number}", + "compose_form.poll.single": "Eskoje uno", + "compose_form.poll.switch_to_multiple": "Troka anketa para permeter a eskojer mas ke una opsyon", + "compose_form.poll.switch_to_single": "Troka anketa para permeter a eskojer solo una opsyon", + "compose_form.poll.type": "Estilo", + "compose_form.publish": "Publika", "compose_form.publish_form": "Mueva publikasyon", + "compose_form.reply": "Arisponde", + "compose_form.save_changes": "Aktualiza", "compose_form.spoiler.marked": "Kita avertensya de kontenido", "compose_form.spoiler.unmarked": "Adjusta avertensya de kontenido", + "compose_form.spoiler_placeholder": "Avertensya de kontenido (opsyonal)", "confirmation_modal.cancel": "Anula", "confirmations.block.block_and_report": "Bloka i raporta", "confirmations.block.confirm": "Bloka", @@ -166,16 +174,16 @@ "confirmations.domain_block.confirm": "Bloka domeno entero", "confirmations.domain_block.message": "Estas totalmente siguro ke keres blokar todo el domeno {domain}? En djeneral unos kuantos blokos o silensiamientos son sufisientes i preferavles. No veras kontenido de akel domeno en dinguna linya de tiempo publika ni ent tus avizos. Tus suivantes de akel domeno seran kitados.", "confirmations.edit.confirm": "Edita", - "confirmations.edit.message": "Editar agora kitara el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?", + "confirmations.edit.message": "Si edites agora, kitaras el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?", "confirmations.logout.confirm": "Sal", "confirmations.logout.message": "Estas siguro ke keres salir de tu kuento?", "confirmations.mute.confirm": "Silensia", "confirmations.mute.explanation": "Esto eskondera las publikasyones de este kuento i publikasyones ke lo enmentan, pero ainda les permetera segirte.", "confirmations.mute.message": "Estas siguro ke keres silensiar a {name}?", - "confirmations.redraft.confirm": "Efasar i reeskrivir", + "confirmations.redraft.confirm": "Efasa i reeskrive", "confirmations.redraft.message": "Estas siguro ke keres efasar esta publikasyon i reeskrivirla? Pedreras todos los favoritos i repartajasyones asosiados kon esta publikasyon i repuestas a eya seran guerfanadas.", "confirmations.reply.confirm": "Arisponde", - "confirmations.reply.message": "Arispondir agora kitara el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?", + "confirmations.reply.message": "Si arispondas agora, kitaras el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?", "confirmations.unfollow.confirm": "Desige", "confirmations.unfollow.message": "Estas siguro ke keres deshar de segir a {name}?", "conversation.delete": "Efasa konversasyon", @@ -198,13 +206,13 @@ "dismissable_banner.explore_tags": "Estas etiketas estan agora popularas en la red sosyala. Etiketas uzadas por mas djente aparesen primero.", "dismissable_banner.public_timeline": "Estas son las publikasyones publikas mas resientes de personas en la red sosyala a las kualas la djente de {domain} sige.", "embed.instructions": "Enkrusta esta publikasyon en tu sitio internetiko kopiando este kodiche.", - "embed.preview": "Ansi paresera:", + "embed.preview": "Paresera ansina:", "emoji_button.activity": "Aktivita", "emoji_button.clear": "Alimpia", "emoji_button.custom": "Personalizado", "emoji_button.flags": "Bandieras", "emoji_button.food": "Kumidas i beverajes", - "emoji_button.label": "Adjustar emoji", + "emoji_button.label": "Adjusta emoji", "emoji_button.nature": "Natura", "emoji_button.not_found": "Emojis no topados", "emoji_button.objects": "Objektos", @@ -214,7 +222,7 @@ "emoji_button.search_results": "Rizultados de bushkeda", "emoji_button.symbols": "Simbolos", "emoji_button.travel": "Viajes i lugares", - "empty_column.account_hides_collections": "Este utilizador desidio no mostrar esta enformasyon", + "empty_column.account_hides_collections": "Este utilizador desidio no amostrar esta enformasyon", "empty_column.account_suspended": "Kuento suspendido", "empty_column.account_timeline": "No ay publikasyones aki!", "empty_column.account_unavailable": "Profil no desponivle", @@ -225,9 +233,9 @@ "empty_column.domain_blocks": "Ainda no ay domenos blokados.", "empty_column.explore_statuses": "No ay dingunos trendes agora. Mira mas tadre!", "empty_column.favourited_statuses": "Ainda no tienes publikasyones favoritas. Kuando indikes ke una te plaze, se amostrara aki.", - "empty_column.favourites": "Nadie tiene indikado ke le plaze una de tus publikasyones. Kuando algun lo aga, se amostrara aki.", + "empty_column.favourites": "Dingun no tiene indikado ke le plaze una de tus publikasyones. Kuando algun lo ayga, se amostrara aki.", "empty_column.follow_requests": "No tienes dinguna solisitud de suivante. Kuando risivas una, se amostrara aki.", - "empty_column.followed_tags": "Ainda no tienes segido dinguna etiketa. Kuando lo agas, se amostraran aki.", + "empty_column.followed_tags": "Ainda no tienes segido dinguna etiketa. Kuando lo aygas, se amostraran aki.", "empty_column.hashtag": "Ainda no ay niente en esta etiketa.", "empty_column.home": "Tu linya de tiempo esta vaziya! Sige a mas personas para inchirla.", "empty_column.list": "Ainda no ay niente en esta lista. Kuando miembros de esta lista publiken muevas publikasyones, se amostraran aki.", @@ -236,14 +244,14 @@ "empty_column.notifications": "Ainda no tienes dingun avizo. Kuando otras personas enteraktuen kontigo, se amostraran aki.", "empty_column.public": "No ay niente aki! Eskrive algo publikamente o manualmente sige utilizadores de otros sirvidores para inchirlo", "error.unexpected_crash.explanation": "Por un yerro en muestro kodiche o un problem de kompatibilita kon el navigador, no se puede amostrar esta pajina djustamente.", - "error.unexpected_crash.explanation_addons": "No se puede amostrar esta pajina djustamente. Este yerro probavlemente fue kauzado por un komplimento del navigador o por un enstrumento de traduksion.", + "error.unexpected_crash.explanation_addons": "No se puede amostrar esta pajina djustamente. Este yerro probavlemente fue kauzado por un komplimento del navigador o por un enstrumento de traduksyon.", "error.unexpected_crash.next_steps": "Aprova arefreskar la pajina. Si esto no ayuda, es posivle ke ainda puedas kulaenar Mastodon kon otro navigador u otra aplikasyon nativa.", - "error.unexpected_crash.next_steps_addons": "Aprova inkapasitarlos i arefreskar la pajina. Si esto no ayuda, es posivle ke ainda puedas kulanear Mastodon kon otro navigador u otra aplikasyon nativa.", - "errors.unexpected_crash.copy_stacktrace": "Kopiar stacktrace al portapapeles", - "errors.unexpected_crash.report_issue": "Raportar problema", + "error.unexpected_crash.next_steps_addons": "Aprova inkapasitarlos i arefreskar la pajina. Si esto no te ayuda, es posivle ke ainda puedas kulanear Mastodon kon otro navigador u otra aplikasyon nativa.", + "errors.unexpected_crash.copy_stacktrace": "Kopia stacktrace al portapapeles", + "errors.unexpected_crash.report_issue": "Raporta problema", "explore.search_results": "Rizultados de bushkeda", "explore.suggested_follows": "Djente", - "explore.title": "Eksplorar", + "explore.title": "Eksplora", "explore.trending_links": "Haberes", "explore.trending_statuses": "Publikasyones", "explore.trending_tags": "Etiketas", @@ -259,22 +267,28 @@ "filter_modal.select_filter.context_mismatch": "no se aplika a este konteksto", "filter_modal.select_filter.expired": "kadukado", "filter_modal.select_filter.prompt_new": "Mueva kategoria: {name}", - "filter_modal.select_filter.search": "Bushkar o kriyar", - "filter_modal.select_filter.subtitle": "Kulanear una kategoria egzistente o kriya mueva", - "filter_modal.select_filter.title": "Filtrar esta publikasyon", - "filter_modal.title.status": "Filtrar una publikasyon", + "filter_modal.select_filter.search": "Bushka o kriya", + "filter_modal.select_filter.subtitle": "Kulanea una kategoria egzistente o kriya mueva", + "filter_modal.select_filter.title": "Filtra esta publikasyon", + "filter_modal.title.status": "Filtra una publikasyon", "firehose.all": "Todo", "firehose.local": "Este sirvidor", "firehose.remote": "Otros sirvidores", "follow_request.authorize": "Autoriza", "follow_request.reject": "Refuza", "follow_requests.unlocked_explanation": "Aunke tu kuento no esta serrado, la taifa de {domain} kreye ke talvez keres revizar manualmente las solisitudes de segimento de estos kuentos.", + "follow_suggestions.curated_suggestion": "Sujestion del sirvidor", + "follow_suggestions.dismiss": "No amostra mas", + "follow_suggestions.personalized_suggestion": "Sujestion personalizada", + "follow_suggestions.popular_suggestion": "Sujestion populara", + "follow_suggestions.view_all": "Ve todos", + "follow_suggestions.who_to_follow": "A ken segir", "followed_tags": "Etiketas segidas", "footer.about": "Sovre mozotros", "footer.directory": "Katalogo de profiles", "footer.get_app": "Abasha aplikasyon", - "footer.invite": "Envitar a djente", - "footer.keyboard_shortcuts": "Akortamientos de klavye", + "footer.invite": "Envita a djente", + "footer.keyboard_shortcuts": "Akortamientos de klaviatura", "footer.privacy_policy": "Politika de privasita", "footer.source_code": "Ve kodiche fuente", "footer.status": "Estado", @@ -284,24 +298,20 @@ "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "sin {additional}", "hashtag.column_settings.select.no_options_message": "Rekomendasyones no topadas", - "hashtag.column_settings.select.placeholder": "Meter etiketas…", + "hashtag.column_settings.select.placeholder": "Mete etiketas…", "hashtag.column_settings.tag_mode.all": "Todos estos", "hashtag.column_settings.tag_mode.any": "Kualsekera de estos", "hashtag.column_settings.tag_mode.none": "Dinguno de estos", - "hashtag.column_settings.tag_toggle": "Inkluir etiketas adisionalas en esta kolumna", + "hashtag.column_settings.tag_toggle": "Inkluye etiketas adisionalas en esta kolumna", "hashtag.counter_by_accounts": "{count, plural, one {{counter} partisipante} other {{counter} partisipantes}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}} oy", - "hashtag.follow": "Segir etiketa", - "hashtag.unfollow": "Desegir etiketa", + "hashtag.follow": "Sige etiketa", + "hashtag.unfollow": "Desige etiketa", "hashtags.and_other": "…i {count, plural, one {}other {# mas}}", - "home.actions.go_to_explore": "Ve los trendes", - "home.actions.go_to_suggestions": "Topa a djente para segir", "home.column_settings.basic": "Opsyones bazikas", - "home.column_settings.show_reblogs": "Amostrar repartajasyones", - "home.column_settings.show_replies": "Amostrar repuestas", - "home.explore_prompt.body": "Tu linya prinsipala es una mikstura de publikasyones kon etiketas a las kualas eskojites a segir, la djente a la kuala eskojites a segir i las publikasyones ke eyos repartajan. Si esta demaziado trankila, puedes:", - "home.explore_prompt.title": "Esta es tu baza prinsipala en Mastodon.", + "home.column_settings.show_reblogs": "Amostra repartajasyones", + "home.column_settings.show_replies": "Amostra repuestas", "home.hide_announcements": "Eskonde pregones", "home.pending_critical_update.body": "Por favor aktualiza tu sirvidor de Mastodon pishin!", "home.pending_critical_update.link": "Ve aktualizasyones", @@ -337,7 +347,7 @@ "keyboard_shortcuts.favourite": "Endika ke te plaze una publikasyon", "keyboard_shortcuts.favourites": "Avre lista de favoritos", "keyboard_shortcuts.federated": "Avre linya federada", - "keyboard_shortcuts.heading": "Akortamientos de klavye", + "keyboard_shortcuts.heading": "Akortamientos de klaviatura", "keyboard_shortcuts.home": "Avre linya prinsipala", "keyboard_shortcuts.hotkey": "Klave rapido", "keyboard_shortcuts.legend": "Amostra esta lejenda", @@ -397,7 +407,7 @@ "navigation_bar.direct": "Enmentaduras privadas", "navigation_bar.discover": "Diskuvre", "navigation_bar.domain_blocks": "Domenos blokados", - "navigation_bar.explore": "Eksplorar", + "navigation_bar.explore": "Eksplora", "navigation_bar.favourites": "Te plazen", "navigation_bar.filters": "Biervos silensiados", "navigation_bar.follow_requests": "Solisitudes de segimiento", @@ -410,7 +420,7 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Publikasyones fiksadas", "navigation_bar.preferences": "Preferensyas", - "navigation_bar.public_timeline": "Linya de tiempo federada", + "navigation_bar.public_timeline": "Linya federada", "navigation_bar.search": "Bushka", "navigation_bar.security": "Segurita", "not_signed_in_indicator.not_signed_in": "Nesesitas konektarse kon tu kuento para akseder este rekurso.", @@ -425,7 +435,7 @@ "notification.reblog": "{name} repartajo tu publikasyon", "notification.status": "{name} publiko algo", "notification.update": "{name} edito una publikasyon", - "notifications.clear": "Efasar avizos", + "notifications.clear": "Efasa avizos", "notifications.clear_confirmation": "Estas siguro ke keres permanentemente efasar todos tus avizos?", "notifications.column_settings.admin.report": "Muveos raportos:", "notifications.column_settings.admin.sign_up": "Muevas enrejistrasyones:", @@ -441,10 +451,10 @@ "notifications.column_settings.push": "Avizos arrepushados", "notifications.column_settings.reblog": "Repartajasyones:", "notifications.column_settings.show": "Amostra en kolumna", - "notifications.column_settings.sound": "Reproduzir son", + "notifications.column_settings.sound": "Reproduse son", "notifications.column_settings.status": "Publikasyones muevas:", "notifications.column_settings.unread_notifications.category": "Avizos no meldados", - "notifications.column_settings.unread_notifications.highlight": "Avaliar avizos no meldados", + "notifications.column_settings.unread_notifications.highlight": "Avalia avizos no meldados", "notifications.column_settings.update": "Edisyones:", "notifications.filter.all": "Todos", "notifications.filter.boosts": "Repartajasyones", @@ -459,17 +469,19 @@ "notifications.permission_denied": "Avizos de ensimameza no estan desponivles porke ya se tiene refuzado el permiso", "notifications.permission_denied_alert": "\"No se pueden kapasitar los avizos de ensimameza, porke ya se tiene refuzado el permiso de navigador", "notifications.permission_required": "Avizos de ensimameza no estan desponivles porke los nesesarios permisos no tienen sido risividos.", - "notifications_permission_banner.enable": "Kapasitar avizos de ensimameza", + "notifications_permission_banner.enable": "Kapasita avizos de ensimameza", "notifications_permission_banner.how_to_control": "Para risivir avizos kuando Mastodon no esta avierto, kapasita avizos de ensimameza. Puedes kontrolar presizamente kualos tipos de enteraksiones djeneren avizos de ensimameza kon el boton {icon} arriva kuando esten kapasitadas.", - "notifications_permission_banner.title": "Nunka te piedres niente", + "notifications_permission_banner.title": "Nunkua te piedres niente", "onboarding.action.back": "Va atras", "onboarding.actions.back": "Va atras", "onboarding.actions.go_to_explore": "Va a los trendes", "onboarding.actions.go_to_home": "Va a tu linya prinsipala", "onboarding.compose.template": "Ke haber, #Mastodon?", "onboarding.follows.empty": "Malorozamente, no se pueden amostrar rezultados en este momento. Puedes aprovar uzar la bushkeda o navigar por la pajina de eksplorasyon para topar personas a las que segir, o aprovarlo de muevo mas tadre.", + "onboarding.follows.lead": "Tu linya prinsipala es la forma prinsipala de eksperiensa de Mastodon. Kuantas mas personas sigas, sera mas aktiva o interesante. Para ampesar, aki ay algunas sujestyones:", "onboarding.follows.title": "Personaliza tu linya prinsipala", "onboarding.profile.discoverable": "Faz ke mi profil apareska en bushkedas", + "onboarding.profile.discoverable_hint": "Kuando permites ke tu profil sea diskuvriravle en Mastodon, tus publikasyones podran apareser en rezultados de bushkedas i trendes i tu profil podra ser sujerido a personas kon intereses similares a los tuyos.", "onboarding.profile.display_name": "Nombre amostrado", "onboarding.profile.display_name_hint": "Tu nombre para amostrar.", "onboarding.profile.lead": "Siempre puedes kompletar esto mas tadre en las preferensyas, ande tambien ay mas opsyones de personalizasyon.", @@ -483,16 +495,21 @@ "onboarding.share.message": "Soy {username} en #Mastodon! Segidme en {url}", "onboarding.share.next_steps": "Posivles sigientes pasos:", "onboarding.share.title": "Partaja tu profil", + "onboarding.start.lead": "Agora eres parte de Mastodon, una red sosyala unika y desentralizada ande tu, no un algoritmo, puedes personalizar tu propya eksperyensya. Te entrodiziramos a esta mueva frontera sosyala:", "onboarding.start.skip": "No nesesitas ayudo para ampesar?", "onboarding.start.title": "Lo logrates!", "onboarding.steps.follow_people.body": "El buto de Mastodon es segir a djente interesante.", "onboarding.steps.follow_people.title": "Personaliza tu linya prinsipala", - "onboarding.steps.publish_status.body": "Puedes introdusirte al mundo con teksto, fotos, videos o anketas {emoji}", + "onboarding.steps.publish_status.body": "Puedes introdusirte al mundo kon teksto, fotos, videos o anketas {emoji}", "onboarding.steps.publish_status.title": "Eskrive tu primera publikasyon", "onboarding.steps.setup_profile.body": "Kompleta tu profil para aumentar tus enteraksyones.", "onboarding.steps.setup_profile.title": "Personaliza tu profil", - "onboarding.steps.share_profile.body": "Informe a tus amigos komo toparte en Mastodon", + "onboarding.steps.share_profile.body": "Informa a tus amigos komo toparte en Mastodon", "onboarding.steps.share_profile.title": "Partaja tu profil de Mastodon", + "onboarding.tips.2fa": "Saviyas? Puedes protejar tu kuento konfigurando la autentifikasyon de dos pasos en la konfigurasyon de tu kuento. Funksyona kon kualsekera aplikasyon de TOTP ke eskojas. No ay menester de uzar tu numero de telefon!", + "onboarding.tips.accounts_from_other_servers": "Saviyas? komo Mastodon es desentralizado, algunos profiles que topas estan lokalizados en sirvidores distinktos del tuyo. I malgrado esto, puedes enteraktuar kon eyos! Sus sirvidor forma la sigunda mitad de sus nombres de utilizador!", + "onboarding.tips.migration": "Savias? Si en el avenir pensas ke {domain} no es el sirvidor adekuado para ti, puedes moverte a otruno sirvidor de Mastodon sir pedrer a tus suivantes. Inkluzo puedes ser el balabay de tu propyo sirvidor!", + "onboarding.tips.verification": "Savias? Puedes verifikar tu kuento ponyendo un atadijo a tu profil de Mastodon en tu propio sitio web i adjustando el sitio a tu profil. No ay menester de pagamyentos o dokumentos!", "password_confirmation.exceeds_maxlength": "La konfirmasyon de kod es demaziado lunga", "password_confirmation.mismatching": "Los dos kodes son desferentes", "picture_in_picture.restore": "Restora", @@ -507,7 +524,15 @@ "poll_button.add_poll": "Adjusta anketa", "poll_button.remove_poll": "Kita anketa", "privacy.change": "Troka privasita de publikasyon", + "privacy.direct.long": "Todos enmentados en la publikasyon", + "privacy.direct.short": "Djente espesifika", + "privacy.private.long": "Solo para tus suivantes", + "privacy.private.short": "Suivantes", + "privacy.public.long": "Todos en i afuera de Mastodon", "privacy.public.short": "Publiko", + "privacy.unlisted.additional": "Esto funksyona exaktamente komo publiko, eksepto ke la publikasyon no aparesera en linyas publikas o etiketas, la eksplorasyon o bushkedas de Mastodon, inkluzo si kapasites esto para tu kuento.", + "privacy.unlisted.long": "Vizivle para todos, ama no en trendes, etiketas o linyas publikas", + "privacy.unlisted.short": "Publiko i silensyozo", "privacy_policy.last_updated": "Ultima aktualizasyon: {date}", "privacy_policy.title": "Politika de privasita", "recommended": "Rekomendado", @@ -525,7 +550,9 @@ "relative_time.minutes": "{number} m", "relative_time.seconds": "{number} s", "relative_time.today": "oy", + "reply_indicator.attachments": "{count, plural, one {# anekso} other {# aneksos}}", "reply_indicator.cancel": "Anula", + "reply_indicator.poll": "Anketa", "report.block": "Bloka", "report.block_explanation": "No veras sus publikasyones. No podra ver tus publikasyones ni segirte. Podra saver ke le blokates.", "report.categories.legal": "Legal", @@ -538,7 +565,7 @@ "report.category.title_status": "publikasyon", "report.close": "Fecho", "report.comment.title": "Ay algo mas ke deveriamos saver?", - "report.forward": "Reembiar a {target}", + "report.forward": "Reembia a {target}", "report.forward_hint": "Este kuento es de otro sirvidor. Embiar una kopia anonimizada del raporto ayi tamyen?", "report.mute": "Silensia", "report.mute_explanation": "No veras sus publikasyones. Ainda pueden segirte i no va saver ke le silensiates.", @@ -558,19 +585,19 @@ "report.rules.title": "Kualas reglas estan violadas?", "report.statuses.subtitle": "Eskoje todas ke korespondan", "report.statuses.title": "Ay alguna publikasyon ke suporta este raporto?", - "report.submit": "Embiar", + "report.submit": "Embia", "report.target": "Raportando a {target}", "report.thanks.take_action": "Aki estan tus opsyones para kontrolar lo ke ves en Mastodon:", "report.thanks.take_action_actionable": "Mientres revizamos esto, puedes tomar aksyones kontra @{name}:", "report.thanks.title": "No keres ver esto?", "report.thanks.title_actionable": "Mersi por raportarlo, vamos revizarlo.", - "report.unfollow": "Desegir a @{name}", + "report.unfollow": "Desige a @{name}", "report.unfollow_explanation": "Estas sigiendo este kuento. Para no ver sus publikasyones en tu linya de tiempo, puedes deshar de segirlo.", "report_notification.attached_statuses": "{count, plural, one {{count} publikasyon} other {{count} publikasyones}} atadas", "report_notification.categories.legal": "Legal", "report_notification.categories.other": "Otros", "report_notification.categories.spam": "Spam", - "report_notification.categories.violation": "Violasion de reglas", + "report_notification.categories.violation": "Violasyon de reglas", "report_notification.open": "Avre raporto", "search.no_recent_searches": "No ay bushkedas resientes", "search.placeholder": "Bushka", @@ -584,7 +611,7 @@ "search_popout.full_text_search_logged_out_message": "Solo desponivle kuando estas konektado kon tu kuento.", "search_popout.language_code": "kodiche ISO de lingua", "search_popout.options": "Opsyones de bushkeda", - "search_popout.quick_actions": "Aksiones rapidas", + "search_popout.quick_actions": "Aksyones rapidas", "search_popout.recent": "Bushkedas resientes", "search_popout.specific_date": "dato espesifiko", "search_popout.user": "utilizador", @@ -661,7 +688,7 @@ "status.translate": "Trezlada", "status.translated_from_with": "Trezladado dizde {lang} kon {provider}", "status.uncached_media_warning": "Vista previa no desponivle", - "status.unmute_conversation": "Desilensiar konversasyon", + "status.unmute_conversation": "Desilensia konversasyon", "status.unpin": "Defiksar del profil", "subscribed_languages.lead": "Solo publikasyones en linguas eskojidas se amostraran en tus linya de tiempo prinsipala i listas dempues del trokamiento. Eskoje dinguna para risivir publikasyones en todas las linguas.", "subscribed_languages.save": "Guadra trokamientos", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 14fa09e973..0923a10065 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "Tavo paskyra nėra {locked}. Bet kas gali sekti tave ir peržiūrėti tik sekėjams skirtus įrašus.", "compose_form.lock_disclaimer.lock": "užrakinta", "compose_form.placeholder": "Kas tavo mintyse?", - "compose_form.poll.add_option": "Pridėti pasirinkimą", "compose_form.poll.duration": "Apklausos trukmė", "compose_form.poll.multiple": "Keli pasirinkimai", "compose_form.poll.option_placeholder": "{number} pasirinkimas", - "compose_form.poll.remove_option": "Pašalinti šį pasirinkimą", "compose_form.poll.single": "Pasirinkti vieną", "compose_form.poll.switch_to_multiple": "Keisti apklausą, kad būtų galima pasirinkti kelis pasirinkimus", "compose_form.poll.switch_to_single": "Pakeisti apklausą, kad būtų galima pasirinkti vieną variantą", @@ -271,6 +269,12 @@ "follow_request.authorize": "Autorizuoti", "follow_request.reject": "Atmesti", "follow_requests.unlocked_explanation": "Nors tavo paskyra neužrakinta, {domain} personalas mano, kad galbūt norėsi rankiniu būdu patikrinti šių paskyrų sekimo užklausas.", + "follow_suggestions.curated_suggestion": "Redaktorių pasirinkimas", + "follow_suggestions.dismiss": "Daugiau nerodyti", + "follow_suggestions.personalized_suggestion": "Suasmenintas pasiūlymas", + "follow_suggestions.popular_suggestion": "Populiarus pasiūlymas", + "follow_suggestions.view_all": "Peržiūrėti viską", + "follow_suggestions.who_to_follow": "Ką sekti", "followed_tags": "Sekamos saitažodžiai", "footer.about": "Apie", "footer.directory": "Profilių katalogas", @@ -297,18 +301,19 @@ "hashtag.follow": "Sekti grotažymę", "hashtag.unfollow": "Nesekti grotažymės", "hashtags.and_other": "…ir{count, plural,other {#daugiau}}", - "home.actions.go_to_explore": "Žiūrėti kas populiaru", - "home.actions.go_to_suggestions": "Rasti žmonių sekimui", "home.column_settings.basic": "Pagrindinis", "home.column_settings.show_reblogs": "Rodyti \"boosts\"", "home.column_settings.show_replies": "Rodyti atsakymus", "home.hide_announcements": "Slėpti skelbimus", + "home.pending_critical_update.link": "Žiūrėti atnaujinimus", + "home.pending_critical_update.title": "Galimas kritinis saugumo atnaujinimas!", "interaction_modal.no_account_yet": "Nesi Mastodon?", "interaction_modal.on_another_server": "Kitame serveryje", "interaction_modal.on_this_server": "Šiame serveryje", "interaction_modal.sign_in": "Nesi prisijungęs (-usi) prie šio serverio. Kur yra laikoma tavo paskyra?", "interaction_modal.sign_in_hint": "Patarimas: tai svetainė, kurioje užsiregistravai. Jei neprisimeni, ieškok sveikinimo el. laiško savo pašto dėžutėje. Taip pat gali įvesti visą savo naudotojo vardą (pvz., @Mastodon@mastodon.social).", "interaction_modal.title.favourite": "Mėgstamiausias {name} įrašas", + "interaction_modal.title.follow": "Sekti {name}", "keyboard_shortcuts.back": "to navigate back", "keyboard_shortcuts.blocked": "to open blocked users list", "keyboard_shortcuts.boost": "to boost", @@ -341,7 +346,24 @@ "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", "keyboard_shortcuts.up": "to move up in the list", "lightbox.close": "Uždaryti", + "lightbox.next": "Kitas", + "lightbox.previous": "Ankstesnis", + "limited_account_hint.action": "Vis tiek rodyti profilį", + "limited_account_hint.title": "Šį profilį paslėpė {domain} moderatoriai.", + "link_preview.author": "Sukūrė {name}", + "lists.account.add": "Pridėti į sąrašą", + "lists.account.remove": "Pašalinti iš sąrašo", + "lists.delete": "Ištrinti sąrašą", + "lists.edit": "Redaguoti sąrašą", + "lists.edit.submit": "Prierašo pakeitimas", "lists.new.create": "Pridėti sąrašą", + "lists.new.title_placeholder": "Naujas sąrašo pavadinimas", + "lists.replies_policy.followed": "Bet kuris sekamas naudotojas", + "lists.replies_policy.list": "Sąrašo nariai", + "lists.replies_policy.none": "Nei vienas", + "lists.replies_policy.title": "Rodyti atsakymus:", + "lists.search": "Ieškoti tarp sekamų žmonių", + "lists.subheading": "Jūsų sąrašai", "loading_indicator.label": "Kraunama…", "media_gallery.toggle_visible": "{number, plural, one {Slėpti vaizdą} few {Slėpti vaizdus} many {Slėpti vaizdo} other {Slėpti vaizdų}}", "moved_to_account_banner.text": "Tavo paskyra {disabledAccount} šiuo metu yra išjungta, nes persikėlei į {movedToAccount}.", @@ -506,6 +528,11 @@ "report.reasons.legal": "Tai nelegalu", "report.reasons.legal_description": "Manai, kad tai pažeidžia tavo arba serverio šalies įstatymus", "report.reasons.other": "Tai kažkas kita", + "report.reasons.other_description": "Šis klausimas neatitinka kitų kategorijų", + "report.reasons.spam": "Tai šlamštas", + "report.reasons.spam_description": "Kenkėjiškos nuorodos, netikras įsitraukimas arba pasikartojantys atsakymai", + "report.reasons.violation": "Tai pažeidžia serverio taisykles", + "report.reasons.violation_description": "Žinai, kad tai pažeidžia konkrečias taisykles", "report.rules.subtitle": "Pasirink viską, kas tinka", "report.rules.title": "Kokios taisyklės pažeidžiamos?", "report.statuses.subtitle": "Pasirinkti viską, kas tinka", @@ -519,35 +546,71 @@ "report.unfollow": "Nebesekti @{name}", "report.unfollow_explanation": "Jūs sekate šią paskyrą. Norėdami nebematyti jų įrašų savo pagrindiniame kanale, panaikinkite jų sekimą.", "report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached", + "report_notification.categories.legal": "Legalus", + "report_notification.categories.other": "Kita", + "report_notification.categories.spam": "Šlamštas", + "report_notification.categories.violation": "Taisyklės pažeidimas", + "search.no_recent_searches": "Paieškos įrašų nėra", "search.placeholder": "Paieška", + "search.quick_action.account_search": "Profiliai, atitinkantys {x}", + "search.quick_action.go_to_account": "Eiti į profilį {x}", + "search.quick_action.go_to_hashtag": "Eiti į hashtag {x}", + "search.quick_action.open_url": "Atidaryti URL adresą Mastodon", + "search.quick_action.status_search": "Pranešimai, atitinkantys {x}", "search.search_or_paste": "Ieškok arba įklijuok URL", "search_popout.full_text_search_disabled_message": "Nepasiekima {domain}.", "search_popout.full_text_search_logged_out_message": "Pasiekiama tik prisijungus.", "search_popout.language_code": "ISO kalbos kodas", + "search_popout.options": "Paieškos nustatymai", + "search_popout.quick_actions": "Greiti veiksmai", + "search_popout.recent": "Naujausios paieškos", "search_popout.specific_date": "konkreti data", "search_popout.user": "naudotojas", "search_results.accounts": "Profiliai", "search_results.all": "Visi", "search_results.hashtags": "Saitažodžiai", "search_results.nothing_found": "Nepavyko rasti nieko pagal šiuos paieškos terminus.", + "search_results.see_all": "Žiūrėti viską", "search_results.statuses": "Toots", + "search_results.title": "Ieškoti {q}", "server_banner.about_active_users": "Žmonės, kurie naudojosi šiuo serveriu per pastarąsias 30 dienų (mėnesio aktyvūs naudotojai)", "server_banner.active_users": "aktyvūs naudotojai", + "server_banner.administered_by": "Administruoja:", + "server_banner.introduction": "{domain} yra decentralizuoto socialinio tinklo, kurį valdo {mastodon}, dalis.", + "server_banner.learn_more": "Sužinoti daugiau", + "server_banner.server_stats": "Serverio statistika:", + "sign_in_banner.create_account": "Sukurti paskyrą", "sign_in_banner.sign_in": "Prisijungimas", + "sign_in_banner.sso_redirect": "Prisijungti arba Registruotis", "sign_in_banner.text": "Prisijunk, kad galėtum sekti profilius arba saitažodžius, mėgsti, bendrinti ir atsakyti į įrašus. Taip pat gali bendrauti iš savo paskyros kitame serveryje.", + "status.admin_account": "Atvira moderavimo sąsaja @{name}", + "status.admin_domain": "Atvira moderavimo sąsaja {domain}", "status.admin_status": "Open this status in the moderation interface", + "status.block": "Blokuoti @{name}", + "status.bookmark": "Žymė", "status.copy": "Kopijuoti nuorodą į įrašą", "status.delete": "Ištrinti", + "status.detailed_status": "Išsami pokalbio peržiūra", + "status.direct": "Privačiai paminėti @{name}", + "status.direct_indicator": "Privatus paminėjimas", "status.edit": "Redaguoti", "status.edited": "Redaguota {date}", "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", + "status.embed": "Įterptas", + "status.favourite": "Mėgstamiausias", + "status.filter": "Filtruoti šį įrašą", + "status.filtered": "Filtruota", "status.hide": "Slėpti įrašą", + "status.history.created": "{name} sukurtas {date}", + "status.history.edited": "{name} redaguotas {date}", "status.load_more": "Pakrauti daugiau", "status.media.open": "Spausk, kad atidaryti", "status.media.show": "Spausk, kad matyti", "status.media_hidden": "Paslėpta medija", "status.mention": "Paminėti @{name}", "status.more": "Daugiau", + "status.mute": "Nutildyti @{name}", + "status.mute_conversation": "Nutildyti pokalbį", "status.open": "Expand this status", "status.pin": "Prisegti prie profilio", "status.pinned": "Prisegtas įrašas", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index b4426b4c45..07a7b25a79 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -291,13 +291,9 @@ "hashtag.follow": "Sekot tēmturim", "hashtag.unfollow": "Pārstāt sekot tēmturim", "hashtags.and_other": "..un {count, plural, other {# vairāk}}", - "home.actions.go_to_explore": "Skatīt tendences", - "home.actions.go_to_suggestions": "Atrodi cilvēkus kam sekot", "home.column_settings.basic": "Pamata", "home.column_settings.show_reblogs": "Rādīt pastiprinātos ierakstus", "home.column_settings.show_replies": "Rādīt atbildes", - "home.explore_prompt.body": "Tavā mājas plūsmā būs dažādu ziņu sajaukums no atsaucēm, kurām esi izvēlējies sekot, personām, kurām esi izvēlējies sekot, un ziņām, kuras tās izceļ. Ja tas šķiet pārāk kluss, iespējams, vēlēsies:", - "home.explore_prompt.title": "Šī ir tava Mastodon mājvieta.", "home.hide_announcements": "Slēpt paziņojumus", "home.pending_critical_update.body": "Lūdzu, pēc iespējas ātrāk atjaunini savu Mastodon serveri!", "home.pending_critical_update.link": "Skatīt jauninājumus", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index 8c1ff63376..2c3221cfdd 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -287,13 +287,9 @@ "hashtag.follow": "Ikuti hashtag", "hashtag.unfollow": "Nyahikut tanda pagar", "hashtags.and_other": "…dan {count, plural, other {# more}}", - "home.actions.go_to_explore": "Lihat apa yand sedang tren", - "home.actions.go_to_suggestions": "Cari orang untuk diikuti", "home.column_settings.basic": "Asas", "home.column_settings.show_reblogs": "Tunjukkan galakan", "home.column_settings.show_replies": "Tunjukkan balasan", - "home.explore_prompt.body": "Suapan rumah anda akan mempunyai gabungan pos daripada hashtag yang telah anda pilih untuk diikuti, orang yang telah anda pilih untuk diikuti dan pos yang mereka tingkatkan. Jika itu terasa terlalu senyap, anda mungkin mahu:", - "home.explore_prompt.title": "Ini adalah pusat operasi anda dalam Mastodon.", "home.hide_announcements": "Sembunyikan pengumuman", "home.pending_critical_update.body": "Sila kemas kini pelayan Mastodon anda secepat yang mungkin!", "home.pending_critical_update.link": "Lihat pengemaskinian", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index 396a72ac45..0d5985b1ce 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -292,13 +292,9 @@ "hashtag.follow": "Hashtag ကို စောင့်ကြည့်မယ်", "hashtag.unfollow": "Hashtag ကို မစောင့်ကြည့်ပါ", "hashtags.and_other": "{count, plural, other {# more}} နှင့်", - "home.actions.go_to_explore": "ခေတ်စားနေသည်များကို ကြည့်ပါ", - "home.actions.go_to_suggestions": "စောင့်ကြည့်သူများရှာပါ", "home.column_settings.basic": "အခြေခံ", "home.column_settings.show_reblogs": "Boost များကို ပြပါ", "home.column_settings.show_replies": "ပြန်စာများကို ပြပါ", - "home.explore_prompt.body": "သင့်ရဲ့သတင်းစဥ် မှာ သင် စောင့်ကြည့်​နေတယ့် ခေါင်းစဥ်​တွေ၊သင်​စောင့်ကြည့်​နေတယ့်အ​ကောင့်​တွေ နဲ့ အဆိုပါ အ​ကောင့်​တွေပြန်မျှ​ဝေထားတယ့် ပိုစ့်​တွေကို မြင်ရမှာပါ။:", - "home.explore_prompt.title": "ဤသည်မှာ Mastodon ရှိ သင့်ပင်မစာမျက်နှာဖြစ်သည်။", "home.hide_announcements": "ကြေညာချက်များကို ဖျောက်ပါ", "home.pending_critical_update.body": "သင့် Mastodon ဆာဗာ အမြန်ဆုံး အပ်ဒိတ်လုပ်ပါ။", "home.pending_critical_update.link": "အပ်ဒိတ်များကြည့်ရန်", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index e38f8fd0ba..24099f2d33 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -145,22 +145,20 @@ "compose_form.lock_disclaimer": "Jouw account is niet {locked}. Iedereen kan jou volgen en kan de berichten zien die je alleen aan jouw volgers hebt gericht.", "compose_form.lock_disclaimer.lock": "vergrendeld", "compose_form.placeholder": "Wat wil je kwijt?", - "compose_form.poll.add_option": "Optie toevoegen", "compose_form.poll.duration": "Duur van de peiling", "compose_form.poll.multiple": "Meerkeuze", "compose_form.poll.option_placeholder": "Optie {number}", - "compose_form.poll.remove_option": "Deze optie verwijderen", - "compose_form.poll.single": "Kies een", + "compose_form.poll.single": "Enkele keuze", "compose_form.poll.switch_to_multiple": "Peiling wijzigen om meerdere keuzes toe te staan", "compose_form.poll.switch_to_single": "Peiling wijzigen om een enkele keuze toe te staan", "compose_form.poll.type": "Stijl", - "compose_form.publish": "Plaatsen", + "compose_form.publish": "Toot", "compose_form.publish_form": "Nieuw bericht", "compose_form.reply": "Reageren", "compose_form.save_changes": "Bijwerken", "compose_form.spoiler.marked": "Inhoudswaarschuwing verwijderen", "compose_form.spoiler.unmarked": "Inhoudswaarschuwing toevoegen", - "compose_form.spoiler_placeholder": "Waarschuwing inhoud (optioneel)", + "compose_form.spoiler_placeholder": "Inhoudswaarschuwing (optioneel)", "confirmation_modal.cancel": "Annuleren", "confirmations.block.block_and_report": "Blokkeren en rapporteren", "confirmations.block.confirm": "Blokkeren", @@ -279,6 +277,12 @@ "follow_request.authorize": "Goedkeuren", "follow_request.reject": "Afwijzen", "follow_requests.unlocked_explanation": "Ook al is jouw account niet besloten, de medewerkers van {domain} denken dat jij misschien de volgende volgverzoeken handmatig wil controleren.", + "follow_suggestions.curated_suggestion": "Keuze van de moderator(en)", + "follow_suggestions.dismiss": "Niet meer weergeven", + "follow_suggestions.personalized_suggestion": "Gepersonaliseerde aanbeveling", + "follow_suggestions.popular_suggestion": "Populaire aanbeveling", + "follow_suggestions.view_all": "Alles weergeven", + "follow_suggestions.who_to_follow": "Wie te volgen", "followed_tags": "Gevolgde hashtags", "footer.about": "Over", "footer.directory": "Gebruikersgids", @@ -305,13 +309,9 @@ "hashtag.follow": "Hashtag volgen", "hashtag.unfollow": "Hashtag ontvolgen", "hashtags.and_other": "…en {count, plural, one {}other {# meer}}", - "home.actions.go_to_explore": "De huidige trends bekijken", - "home.actions.go_to_suggestions": "Zoek mensen om te volgen", "home.column_settings.basic": "Algemeen", "home.column_settings.show_reblogs": "Boosts tonen", "home.column_settings.show_replies": "Reacties tonen", - "home.explore_prompt.body": "Jouw starttijdlijn bevat een mix van berichten met hashtags die je volgt, van accounts die je volgt en van berichten die deze accounts boosten. Wanneer je dit te stil vind, kun je:", - "home.explore_prompt.title": "Dit is jouw thuisbasis op Mastodon.", "home.hide_announcements": "Mededelingen verbergen", "home.pending_critical_update.body": "Update alstublieft zo snel mogelijk jouw Mastodon-server!", "home.pending_critical_update.link": "Bekijk updates", @@ -524,15 +524,15 @@ "poll_button.add_poll": "Peiling toevoegen", "poll_button.remove_poll": "Peiling verwijderen", "privacy.change": "Zichtbaarheid van bericht aanpassen", - "privacy.direct.long": "Iedereen genoemd in de post", - "privacy.direct.short": "Specifieke mensen", + "privacy.direct.long": "Iedereen die in het bericht wordt vermeld", + "privacy.direct.short": "Bepaalde mensen", "privacy.private.long": "Alleen jouw volgers", "privacy.private.short": "Volgers", "privacy.public.long": "Iedereen op Mastodon en daarbuiten", "privacy.public.short": "Openbaar", - "privacy.unlisted.additional": "Dit is vergelijkbaar met publiek, behalve dat de post niet zal verschijnen in live feeds of hashtags, verkennen of Mastodon zoeken, zelfs als je gekozen hebt voor account-breed.", - "privacy.unlisted.long": "Minder algoritmische fanfare", - "privacy.unlisted.short": "Stil publiek", + "privacy.unlisted.additional": "Dit is vergelijkbaar met openbaar, behalve dat het beticht niet verschijnt op openbare tijdlijnen of hashtags, onder verkennen of Mastodon zoeken, zelfs als je je account daarvoor hebt ingesteld.", + "privacy.unlisted.long": "Voor iedereen zichtbaar, maar niet onder trends, hashtags en op openbare tijdlijnen", + "privacy.unlisted.short": "Minder openbaar", "privacy_policy.last_updated": "Laatst bijgewerkt op {date}", "privacy_policy.title": "Privacybeleid", "recommended": "Aanbevolen", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 9bb4f59197..2118eb5739 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -145,12 +145,10 @@ "compose_form.lock_disclaimer": "Kontoen din er ikkje {locked}. Kven som helst kan fylgja deg for å sjå innlegga dine.", "compose_form.lock_disclaimer.lock": "låst", "compose_form.placeholder": "Kva har du på hjarta?", - "compose_form.poll.add_option": "Legg til alternativ", "compose_form.poll.duration": "Varigheit for rundspørjing", - "compose_form.poll.multiple": "Flervalg", - "compose_form.poll.option_placeholder": "Valg {number}", - "compose_form.poll.remove_option": "Fjern dette valget", - "compose_form.poll.single": "Velg en", + "compose_form.poll.multiple": "Fleirval", + "compose_form.poll.option_placeholder": "Alternativ {number}", + "compose_form.poll.single": "Vel ein", "compose_form.poll.switch_to_multiple": "Endre rundspørjinga til å tillate fleire val", "compose_form.poll.switch_to_single": "Endre rundspørjinga til å tillate berre eitt val", "compose_form.poll.type": "Stil", @@ -160,7 +158,7 @@ "compose_form.save_changes": "Oppdater", "compose_form.spoiler.marked": "Fjern innhaldsåtvaring", "compose_form.spoiler.unmarked": "Legg til innhaldsåtvaring", - "compose_form.spoiler_placeholder": "Innholdsadvarsel (valgfritt)", + "compose_form.spoiler_placeholder": "Innhaldsåtvaring (valfritt)", "confirmation_modal.cancel": "Avbryt", "confirmations.block.block_and_report": "Blokker & rapporter", "confirmations.block.confirm": "Blokker", @@ -279,6 +277,11 @@ "follow_request.authorize": "Autoriser", "follow_request.reject": "Avvis", "follow_requests.unlocked_explanation": "Sjølv om kontoen din ikkje er låst tenkte dei som driv {domain} at du kanskje ville gå gjennom førespurnadar frå desse kontoane manuelt.", + "follow_suggestions.dismiss": "Ikkje vis igjen", + "follow_suggestions.personalized_suggestion": "Personleg forslag", + "follow_suggestions.popular_suggestion": "Populært forslag", + "follow_suggestions.view_all": "Vis alle", + "follow_suggestions.who_to_follow": "Kven som skal følgjast", "followed_tags": "Fylgde emneknaggar", "footer.about": "Om", "footer.directory": "Profilmappe", @@ -305,13 +308,9 @@ "hashtag.follow": "Fylg emneknagg", "hashtag.unfollow": "Slutt å fylgje emneknaggen", "hashtags.and_other": "…og {count, plural, one {}other {# fleire}}", - "home.actions.go_to_explore": "Sjå kva som er populært", - "home.actions.go_to_suggestions": "Finn folk å følgje", "home.column_settings.basic": "Grunnleggjande", "home.column_settings.show_reblogs": "Vis framhevingar", "home.column_settings.show_replies": "Vis svar", - "home.explore_prompt.body": "Tidslinja di vil ha ei blanding av innlegg frå emneknaggar du har vald å følgje, personane du har vald å følgje, og innlegga dei framhevar. Om det ser ganske stille ut akkurat no, så kan du:", - "home.explore_prompt.title": "Dette er heimen din i Mastodon.", "home.hide_announcements": "Skjul kunngjeringar", "home.pending_critical_update.body": "Oppdater mastodontenaren din så snart som mogleg!", "home.pending_critical_update.link": "Sjå oppdateringar", @@ -523,14 +522,14 @@ "poll_button.add_poll": "Lag ei rundspørjing", "poll_button.remove_poll": "Fjern rundspørjing", "privacy.change": "Endre personvernet på innlegg", - "privacy.direct.long": "Alle nevnt i innlegget", + "privacy.direct.long": "Alle nemnde i innlegget", "privacy.direct.short": "Spesifikke folk", - "privacy.private.long": "Bare følgerne dine", - "privacy.private.short": "Følgere", - "privacy.public.long": "Alle på og utenfor Mastodon", + "privacy.private.long": "Berre dine følgjarar", + "privacy.private.short": "Følgjarar", + "privacy.public.long": "Kven som helst på og av Mastodon", "privacy.public.short": "Offentleg", - "privacy.unlisted.long": "Færre algoritmiske fanfarer", - "privacy.unlisted.short": "Stille offentlig", + "privacy.unlisted.long": "Færre algoritmiske fanfarar", + "privacy.unlisted.short": "Stille offentleg", "privacy_policy.last_updated": "Sist oppdatert {date}", "privacy_policy.title": "Personvernsreglar", "recommended": "Anbefalt", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 8da9853bee..27ca611722 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "Din konto er ikke {locked}. Hvem som helst kan følge deg og se dine private poster.", "compose_form.lock_disclaimer.lock": "låst", "compose_form.placeholder": "Hva har du på hjertet?", - "compose_form.poll.add_option": "Legg til alternativ", "compose_form.poll.duration": "Avstemningens varighet", "compose_form.poll.multiple": "Flervalg", "compose_form.poll.option_placeholder": "Valg {number}", - "compose_form.poll.remove_option": "Fjern dette valget", "compose_form.poll.single": "Velg en", "compose_form.poll.switch_to_multiple": "Endre avstemning til å tillate flere valg", "compose_form.poll.switch_to_single": "Endre avstemning til å tillate ett valg", @@ -305,13 +303,9 @@ "hashtag.follow": "Følg emneknagg", "hashtag.unfollow": "Slutt å følge emneknagg", "hashtags.and_other": "…og {count, plural, one{en til} other {# til}}", - "home.actions.go_to_explore": "Se hva som er populært", - "home.actions.go_to_suggestions": "Finn folk å følge", "home.column_settings.basic": "Enkelt", "home.column_settings.show_reblogs": "Vis fremhevinger", "home.column_settings.show_replies": "Vis svar", - "home.explore_prompt.body": "Tidslinjen din inneholder en blanding av innlegg fra emneknagger du har valgt å følge, personene du har valgt å følge, og innleggene de fremhever. Hvis det føles for stille, kan det være lurt å:", - "home.explore_prompt.title": "Dette er hjemmet ditt i Mastodon.", "home.hide_announcements": "Skjul kunngjøring", "home.pending_critical_update.body": "Vennligst oppdater Mastodon-serveren din så snart som mulig!", "home.pending_critical_update.link": "Se oppdateringer", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 8660a3bc05..5e122064fc 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -262,8 +262,6 @@ "hashtag.follow": "Sègre l’etiqueta", "hashtag.unfollow": "Quitar de sègre l’etiqueta", "hashtags.and_other": "…e {count, plural, one {}other {# de mai}}", - "home.actions.go_to_explore": "Agachatz las tendéncias", - "home.actions.go_to_suggestions": "Trobatz de monde de sègre", "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Mostrar los partatges", "home.column_settings.show_replies": "Mostrar las responsas", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index de085cf985..ee47c1872d 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -1,5 +1,6 @@ { "about.contact": "ਸੰਪਰਕ:", + "about.domain_blocks.no_reason_available": "ਕਾਰਨ ਮੌਜੂਦ ਨਹੀਂ ਹੈ", "about.domain_blocks.silenced.title": "ਸੀਮਿਤ", "about.domain_blocks.suspended.title": "ਮੁਅੱਤਲ ਕੀਤੀ", "about.rules": "ਸਰਵਰ ਨਿਯਮ", @@ -12,12 +13,17 @@ "account.block_short": "ਪਾਬੰਦੀ", "account.blocked": "ਪਾਬੰਦੀਸ਼ੁਦਾ", "account.cancel_follow_request": "ਫ਼ਾਲੋ ਕਰਨ ਨੂੰ ਰੱਦ ਕਰੋ", + "account.copy": "ਪਰੋਫਾਇਲ ਲਈ ਲਿੰਕ ਕਾਪੀ ਕਰੋ", + "account.direct": "ਨਿੱਜੀ ਜ਼ਿਕਰ @{name}", "account.edit_profile": "ਪਰੋਫਾਈਲ ਨੂੰ ਸੋਧੋ", + "account.featured_tags.last_status_at": "{date} ਨੂੰ ਆਖਰੀ ਪੋਸਟ", + "account.featured_tags.last_status_never": "ਕੋਈ ਪੋਸਟ ਨਹੀਂ", "account.follow": "ਫ਼ਾਲੋ", "account.followers": "ਫ਼ਾਲੋਅਰ", "account.followers.empty": "ਇਸ ਵਰਤੋਂਕਾਰ ਨੂੰ ਹਾਲੇ ਕੋਈ ਫ਼ਾਲੋ ਨਹੀਂ ਕਰਦਾ ਹੈ।", "account.following": "ਫ਼ਾਲੋ ਕੀਤਾ", "account.follows.empty": "ਇਹ ਵਰਤੋਂਕਾਰ ਹਾਲੇ ਕਿਸੇ ਨੂੰ ਫ਼ਾਲੋ ਨਹੀਂ ਕਰਦਾ ਹੈ।", + "account.go_to_profile": "ਪਰੋਫਾਇਲ ਉੱਤੇ ਜਾਓ", "account.media": "ਮੀਡੀਆ", "account.muted": "ਮੌਨ ਕੀਤੀਆਂ", "account.posts": "ਪੋਸਟਾਂ", @@ -35,9 +41,13 @@ "admin.dashboard.retention.cohort_size": "ਨਵੇਂ ਵਰਤੋਂਕਾਰ", "alert.unexpected.title": "ਓਹੋ!", "announcement.announcement": "ਹੋਕਾ", + "bundle_column_error.error.title": "ਓਹ ਹੋ!", "bundle_column_error.network.title": "ਨੈੱਟਵਰਕ ਦੀ ਸਮੱਸਿਆ", "bundle_column_error.retry": "ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ", + "bundle_column_error.return": "ਵਾਪਸ ਮੁੱਖ ਸਫ਼ੇ ਉੱਤੇ ਜਾਓ", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "ਬੰਦ ਕਰੋ", + "bundle_modal_error.message": "ਭਾਗ ਲੋਡ ਕਰਨ ਦੌਰਾਨ ਕੁਝ ਗਲਤ ਵਾਪਰਿਆ ਹੈ।", "bundle_modal_error.retry": "ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ", "column.about": "ਸਾਡੇ ਬਾਰੇ", "column.blocks": "ਪਾਬੰਦੀ ਲਾਏ ਵਰਤੋਂਕਾਰ", @@ -67,10 +77,16 @@ "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.lock_disclaimer.lock": "ਲਾਕ ਹੈ", "compose_form.placeholder": "What is on your mind?", + "compose_form.poll.type": "ਸਟਾਈਲ", + "compose_form.publish": "ਪੋਸਟ", "compose_form.publish_form": "Publish", + "compose_form.reply": "ਜਵਾਬ ਦਿਓ", + "compose_form.save_changes": "ਅੱਪਡੇਟ", "compose_form.spoiler.marked": "ਸਮੱਗਰੀ ਚੇਤਾਵਨੀ ਨੂੰ ਹਟਾਓ", "compose_form.spoiler.unmarked": "ਸਮੱਗਰੀ ਬਾਰੇ ਚੇਤਾਵਨੀ ਜੋੜੋ", + "compose_form.spoiler_placeholder": "ਸਮੱਗਰੀ ਬਾਰੇ ਚੇਤਾਵਨੀ (ਚੋਣਵਾਂ)", "confirmation_modal.cancel": "ਰੱਦ ਕਰੋ", + "confirmations.block.block_and_report": "ਰੋਕ ਲਾਓ ਤੇ ਰਿਪੋਰਟ ਕਰੋ", "confirmations.block.confirm": "ਪਾਬੰਦੀ", "confirmations.delete.confirm": "ਹਟਾਓ", "confirmations.delete.message": "ਕੀ ਤੁਸੀਂ ਇਹ ਪੋਸਟ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?", @@ -116,7 +132,10 @@ "firehose.local": "ਇਹ ਸਰਵਰ", "firehose.remote": "ਹੋਰ ਸਰਵਰ", "follow_request.reject": "ਰੱਦ ਕਰੋ", + "follow_suggestions.dismiss": "ਮੁੜ ਨਾ ਵੇਖਾਓ", + "follow_suggestions.view_all": "ਸਭ ਵੇਖੋ", "footer.about": "ਸਾਡੇ ਬਾਰੇ", + "footer.directory": "ਪਰੋਫਾਇਲ ਡਾਇਰੈਕਟਰੀ", "footer.get_app": "ਐਪ ਲਵੋ", "footer.invite": "ਲੋਕਾਂ ਨੂੰ ਸੱਦਾ ਭੇਜੋ", "footer.keyboard_shortcuts": "ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ", @@ -128,12 +147,14 @@ "hashtag.column_header.tag_mode.all": "ਅਤੇ {additional}", "hashtag.column_header.tag_mode.any": "ਜਾਂ {additional}", "hashtag.column_header.tag_mode.none": "{additional} ਬਿਨਾਂ", + "hashtag.column_settings.select.no_options_message": "ਕੋਈ ਸੁਝਾਅ ਨਹੀਂ ਲੱਭਾ", "hashtag.column_settings.tag_mode.any": "ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ", "hashtag.column_settings.tag_mode.none": "ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਨਹੀਂ", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "hashtag.follow": "ਹੈਸ਼ਟੈਗ ਨੂੰ ਫ਼ਾਲੋ ਕਰੋ", "hashtag.unfollow": "ਹੈਸ਼ਟੈਗ ਨੂੰ ਅਣ-ਫ਼ਾਲੋ ਕਰੋ", "home.column_settings.basic": "ਆਮ", + "home.pending_critical_update.link": "ਅੱਪਡੇਟ ਵੇਖੋ", "interaction_modal.title.follow": "{name} ਨੂੰ ਫ਼ਾਲੋ ਕਰੋ", "keyboard_shortcuts.back": "ਪਿੱਛੇ ਜਾਓ", "keyboard_shortcuts.blocked": "ਪਾਬੰਦੀ ਲਾਏ ਵਰਤੋਂਕਾਰਾਂ ਦੀ ਸੂਚੀ ਖੋਲ੍ਹੋ", @@ -188,11 +209,13 @@ "navigation_bar.domain_blocks": "ਪਾਬੰਦੀ ਲਾਏ ਡੋਮੇਨ", "navigation_bar.explore": "ਪੜਚੋਲ ਕਰੋ", "navigation_bar.favourites": "ਮਨਪਸੰਦ", + "navigation_bar.filters": "ਮੌਨ ਕੀਤੇ ਸ਼ਬਦ", "navigation_bar.follow_requests": "ਫ਼ਾਲੋ ਦੀਆਂ ਬੇਨਤੀਆਂ", "navigation_bar.followed_tags": "ਫ਼ਾਲੋ ਕੀਤੇ ਹੈਸ਼ਟੈਗ", "navigation_bar.follows_and_followers": "ਫ਼ਾਲੋ ਅਤੇ ਫ਼ਾਲੋ ਕਰਨ ਵਾਲੇ", "navigation_bar.lists": "ਸੂਚੀਆਂ", "navigation_bar.logout": "ਲਾਗ ਆਉਟ", + "navigation_bar.mutes": "ਮੌਨ ਕੀਤੇ ਵਰਤੋਂਕਾਰ", "navigation_bar.personal": "ਨਿੱਜੀ", "navigation_bar.pins": "ਟੰਗੀਆਂ ਪੋਸਟਾਂ", "navigation_bar.preferences": "ਪਸੰਦਾਂ", @@ -202,6 +225,8 @@ "notification.follow": "{name} ਨੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕੀਤਾ", "notification.follow_request": "{name} ਨੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕਰਨ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਹੈ", "notification.reblog": "{name} boosted your status", + "notifications.column_settings.alert": "ਡੈਸਕਟਾਪ ਸੂਚਨਾਵਾਂ", + "notifications.column_settings.favourite": "ਮਨਪਸੰਦ:", "notifications.column_settings.follow": "ਨਵੇਂ ਫ਼ਾਲੋਅਰ:", "notifications.column_settings.follow_request": "ਨਵੀਆਂ ਫ਼ਾਲੋ ਬੇਨਤੀਆਂ:", "notifications.column_settings.status": "ਨਵੀਆਂ ਪੋਸਟਾਂ:", @@ -261,9 +286,11 @@ "report.target": "{target} ਰਿਪੋਰਟ", "report.unfollow": "@{name} ਨੂੰ ਅਣ-ਫ਼ਾਲੋ ਕਰੋ", "report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached", + "report_notification.categories.legal": "ਕਨੂੰਨੀ", "report_notification.categories.other": "ਬਾਕੀ", "report_notification.categories.spam": "ਸਪੈਮ", "report_notification.categories.violation": "ਨਿਯਮ ਦੀ ਉਲੰਘਣਾ", + "report_notification.open": "ਰਿਪੋਰਟ ਨੂੰ ਖੋਲ੍ਹੋ", "search.placeholder": "ਖੋਜੋ", "search_popout.quick_actions": "ਫੌਰੀ ਕਾਰਵਾਈਆਂ", "search_popout.specific_date": "ਖਾਸ ਤਾਰੀਖ", @@ -271,10 +298,13 @@ "search_results.accounts": "ਪਰੋਫਾਈਲ", "search_results.all": "ਸਭ", "search_results.hashtags": "ਹੈਸ਼ਟੈਗ", + "search_results.see_all": "ਸਭ ਵੇਖੋ", "search_results.statuses": "ਪੋਸਟਾਂ", + "search_results.title": "{q} ਲਈ ਖੋਜ", "server_banner.learn_more": "ਹੋਰ ਜਾਣੋ", "sign_in_banner.create_account": "ਖਾਤਾ ਬਣਾਓ", "sign_in_banner.sign_in": "ਲਾਗਇਨ", + "sign_in_banner.sso_redirect": "ਲਾਗਇਨ ਜਾਂ ਰਜਿਸਟਰ ਕਰੋ", "status.admin_status": "", "status.block": "@{name} ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਓ", "status.bookmark": "ਬੁੱਕਮਾਰਕ", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 2eaeeaab55..814d0f2de0 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "Twoje konto nie jest {locked}. Każdy, kto Cię obserwuje, może wyświetlać Twoje wpisy przeznaczone tylko dla obserwujących.", "compose_form.lock_disclaimer.lock": "zablokowane", "compose_form.placeholder": "Co chodzi ci po głowie?", - "compose_form.poll.add_option": "Dodaj opcję", "compose_form.poll.duration": "Czas trwania głosowania", "compose_form.poll.multiple": "Wielokrotny wybór", "compose_form.poll.option_placeholder": "Opcja {number}", - "compose_form.poll.remove_option": "Usuń tę opcję", "compose_form.poll.single": "Wybierz jedną", "compose_form.poll.switch_to_multiple": "Pozwól na wybranie wielu opcji", "compose_form.poll.switch_to_single": "Pozwól na wybranie tylko jednej opcji", @@ -160,6 +158,7 @@ "compose_form.save_changes": "Aktualizuj", "compose_form.spoiler.marked": "Usuń ostrzeżenie o treści", "compose_form.spoiler.unmarked": "Dodaj ostrzeżenie o treści", + "compose_form.spoiler_placeholder": "Ostrzeżenie o treści (opcjonalne)", "confirmation_modal.cancel": "Anuluj", "confirmations.block.block_and_report": "Zablokuj i zgłoś", "confirmations.block.confirm": "Zablokuj", @@ -278,6 +277,12 @@ "follow_request.authorize": "Autoryzuj", "follow_request.reject": "Odrzuć", "follow_requests.unlocked_explanation": "Mimo że Twoje konto nie jest zablokowane, zespół {domain} uznał że możesz chcieć ręcznie przejrzeć prośby o możliwość obserwacji.", + "follow_suggestions.curated_suggestion": "Wybór redakcji", + "follow_suggestions.dismiss": "Nie pokazuj ponownie", + "follow_suggestions.personalized_suggestion": "Sugestia spersonalizowana", + "follow_suggestions.popular_suggestion": "Sugestia popularna", + "follow_suggestions.view_all": "Pokaż wszystkie", + "follow_suggestions.who_to_follow": "Kogo obserwować", "followed_tags": "Obserwowane hasztagi", "footer.about": "O serwerze", "footer.directory": "Katalog profilów", @@ -304,13 +309,9 @@ "hashtag.follow": "Obserwuj hasztag", "hashtag.unfollow": "Przestań obserwować hashtag", "hashtags.and_other": "…i {count, plural, other {jeszcze #}}", - "home.actions.go_to_explore": "Zobacz, co jest teraz popularne", - "home.actions.go_to_suggestions": "Znajdź ludzi wartych obserwowania", "home.column_settings.basic": "Podstawowe", "home.column_settings.show_reblogs": "Pokazuj podbicia", "home.column_settings.show_replies": "Pokazuj odpowiedzi", - "home.explore_prompt.body": "Twój kanał główny będzie zawierał kombinację postów z tagów i osób które obserwujesz oraz wpisów przezeń podbitych. Jeżeli wydaje się to za spokojnym, spróbuj czegoś poniżej.", - "home.explore_prompt.title": "To twój punkt podparcia w Mastodonie.", "home.hide_announcements": "Ukryj ogłoszenia", "home.pending_critical_update.body": "Zaktualizuj serwer jak tylko będzie to możliwe!", "home.pending_critical_update.link": "Pokaż aktualizacje", @@ -523,11 +524,15 @@ "poll_button.add_poll": "Dodaj głosowanie", "poll_button.remove_poll": "Usuń głosowanie", "privacy.change": "Dostosuj widoczność wpisów", + "privacy.direct.long": "Wszyscy wspomnieni w tym wpisie", "privacy.direct.short": "Konkretni ludzie", "privacy.private.long": "Tylko ci, którzy cię obserwują", "privacy.private.short": "Obserwujący", "privacy.public.long": "Ktokolwiek na i poza Mastodonem", "privacy.public.short": "Publiczny", + "privacy.unlisted.additional": "Taki sam jak \"Publiczny\", ale wpis nie pojawi się w kanałach na żywo, hasztagach, odkrywaniu, ani w wyszukiwaniu w Mastodonie, nawet jeżeli jest to włączone w ustawieniach konta.", + "privacy.unlisted.long": "Widoczne dla każdego, z wyłączeniem funkcji odkrywania", + "privacy.unlisted.short": "Niewidoczny", "privacy_policy.last_updated": "Data ostatniej aktualizacji: {date}", "privacy_policy.title": "Polityka prywatności", "recommended": "Zalecane", @@ -545,7 +550,9 @@ "relative_time.minutes": "{number} min.", "relative_time.seconds": "{number} s.", "relative_time.today": "dzisiaj", + "reply_indicator.attachments": "{count, plural, one {# załącznik} few {# załączniki} many {# załączników} other {# załączniku}}", "reply_indicator.cancel": "Anuluj", + "reply_indicator.poll": "Ankieta", "report.block": "Zablokuj", "report.block_explanation": "Nie zobaczysz ich wpisów. Nie będą mogli zobaczyć Twoich postów ani cię obserwować. Będą mogli domyślić się, że są zablokowani.", "report.categories.legal": "Prawne", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index bb009239d4..eced6ca7ad 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "Seu perfil não está {locked}. Qualquer um pode te seguir e ver os toots privados.", "compose_form.lock_disclaimer.lock": "trancado", "compose_form.placeholder": "No que você está pensando?", - "compose_form.poll.add_option": "Adicionar opção", "compose_form.poll.duration": "Duração da enquete", "compose_form.poll.multiple": "Múltipla escolha", "compose_form.poll.option_placeholder": "Opção {number}", - "compose_form.poll.remove_option": "Remover esta opção", "compose_form.poll.single": "Escolha uma", "compose_form.poll.switch_to_multiple": "Permitir múltiplas escolhas", "compose_form.poll.switch_to_single": "Opção única", @@ -279,6 +277,12 @@ "follow_request.authorize": "Aprovar", "follow_request.reject": "Recusar", "follow_requests.unlocked_explanation": "Apesar de seu perfil não ser trancado, {domain} exige que você revise a solicitação para te seguir destes perfis manualmente.", + "follow_suggestions.curated_suggestion": "Escolha dos editores", + "follow_suggestions.dismiss": "Não mostrar novamente", + "follow_suggestions.personalized_suggestion": "Sugestão personalizada", + "follow_suggestions.popular_suggestion": "Sugestão popular", + "follow_suggestions.view_all": "Visualizar tudo", + "follow_suggestions.who_to_follow": "Quem seguir", "followed_tags": "Hashtags seguidas", "footer.about": "Sobre", "footer.directory": "Diretório de perfis", @@ -305,13 +309,9 @@ "hashtag.follow": "Seguir hashtag", "hashtag.unfollow": "Parar de seguir hashtag", "hashtags.and_other": "…e {count, plural, one {}other {outros #}}", - "home.actions.go_to_explore": "Veja o que está acontecendo", - "home.actions.go_to_suggestions": "Encontre pessoas para seguir", "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar boosts", "home.column_settings.show_replies": "Mostrar respostas", - "home.explore_prompt.body": "Seu feed inicial terá uma mistura de publicações das hashtags que você escolheu seguir, das pessoas que você escolheu seguir e das publicações que elas impulsionam. Se está parecendo tranquilo demais, então que tal:", - "home.explore_prompt.title": "Esta é a sua base principal dentro do Mastodon.", "home.hide_announcements": "Ocultar comunicados", "home.pending_critical_update.body": "Por favor, atualize o seu servidor Mastodon o mais rápido possível!", "home.pending_critical_update.link": "Ver atualizações", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 22bb1bbfd2..3674126144 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "A sua conta não é {locked}. Qualquer pessoa pode segui-lo e ver as publicações direcionadas apenas a seguidores.", "compose_form.lock_disclaimer.lock": "fechada", "compose_form.placeholder": "Em que está a pensar?", - "compose_form.poll.add_option": "Adicionar opção", "compose_form.poll.duration": "Duração do inquérito", "compose_form.poll.multiple": "Escolha múltipla", "compose_form.poll.option_placeholder": "Opção {number}", - "compose_form.poll.remove_option": "Eliminar esta opção", "compose_form.poll.single": "Escolha uma", "compose_form.poll.switch_to_multiple": "Alterar o inquérito para permitir várias respostas", "compose_form.poll.switch_to_single": "Alterar o inquérito para permitir uma única resposta", @@ -279,6 +277,12 @@ "follow_request.authorize": "Autorizar", "follow_request.reject": "Rejeitar", "follow_requests.unlocked_explanation": "Apesar de a sua não ser privada, a administração de {domain} pensa que poderá querer rever manualmente os pedidos de seguimento dessas contas.", + "follow_suggestions.curated_suggestion": "Escolha dos Editores", + "follow_suggestions.dismiss": "Não mostrar novamente", + "follow_suggestions.personalized_suggestion": "Sugestão personalizada", + "follow_suggestions.popular_suggestion": "Sugestão popular", + "follow_suggestions.view_all": "Ver tudo", + "follow_suggestions.who_to_follow": "Quem seguir", "followed_tags": "Hashtags seguidas", "footer.about": "Sobre", "footer.directory": "Diretório de perfis", @@ -305,13 +309,9 @@ "hashtag.follow": "Seguir #etiqueta", "hashtag.unfollow": "Deixar de seguir #etiqueta", "hashtags.and_other": "…e {count, plural, other {mais #}}", - "home.actions.go_to_explore": "Veja as tendências atuais", - "home.actions.go_to_suggestions": "Encontrar pessoas para seguir", "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar impulsos", "home.column_settings.show_replies": "Mostrar respostas", - "home.explore_prompt.body": "A sua página inicial terá uma mistura de publicações com as hashtags que escolheu seguir, das pessoas que escolheu seguir e as publicações que elas partilham. Parece bastante sossegado por agora, talvez queira:", - "home.explore_prompt.title": "Esta é a sua base principal dentro do Mastodon.", "home.hide_announcements": "Ocultar comunicações", "home.pending_critical_update.body": "Por favor, atualize o seu servidor Mastodon assim que possível!", "home.pending_critical_update.link": "Ver atualizações", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index e6d881a986..d236ba4969 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -266,7 +266,6 @@ "hashtag.column_settings.tag_toggle": "Adaugă etichete suplimentare pentru această coloană", "hashtag.follow": "Urmărește haștagul", "hashtag.unfollow": "Nu mai urmări haștagul", - "home.actions.go_to_suggestions": "Găsește persoane de urmărit", "home.column_settings.basic": "De bază", "home.column_settings.show_reblogs": "Afișează distribuirile", "home.column_settings.show_replies": "Afișează răspunsurile", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index eefa9c7298..623b403832 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -146,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "не закрыта", "compose_form.placeholder": "О чём думаете?", "compose_form.poll.duration": "Продолжительность опроса", + "compose_form.poll.multiple": "Несколько вариантов ответа", + "compose_form.poll.option_placeholder": "Вариант {number}", + "compose_form.poll.single": "Выберите один", "compose_form.poll.switch_to_multiple": "Разрешить выбор нескольких вариантов", "compose_form.poll.switch_to_single": "Переключить в режим выбора одного ответа", + "compose_form.poll.type": "Стиль", + "compose_form.publish": "Опубликовать", "compose_form.publish_form": "Опубликовать", + "compose_form.reply": "Ответить", + "compose_form.save_changes": "Сохранить", "compose_form.spoiler.marked": "Текст скрыт за предупреждением", "compose_form.spoiler.unmarked": "Текст не скрыт", + "compose_form.spoiler_placeholder": "Предупреждение о контенте (опционально)", "confirmation_modal.cancel": "Отмена", "confirmations.block.block_and_report": "Заблокировать и пожаловаться", "confirmations.block.confirm": "Заблокировать", @@ -229,7 +237,7 @@ "empty_column.follow_requests": "Вам ещё не приходили запросы на подписку. Все новые запросы будут показаны здесь.", "empty_column.followed_tags": "Вы еще не подписались ни на один хэштег. Когда вы это сделаете, они появятся здесь.", "empty_column.hashtag": "С этим хэштегом пока ещё ничего не постили.", - "empty_column.home": "Ваша лента совсем пуста! Подпишитесь на других, чтобы заполнить её. {suggestions}", + "empty_column.home": "Ваша лента совсем пуста! Подписывайтесь на других, чтобы заполнить её.", "empty_column.list": "В этом списке пока ничего нет.", "empty_column.lists": "У вас ещё нет списков. Созданные вами списки будут показаны здесь.", "empty_column.mutes": "Вы ещё никого не добавляли в список игнорируемых.", @@ -269,6 +277,12 @@ "follow_request.authorize": "Авторизовать", "follow_request.reject": "Отказать", "follow_requests.unlocked_explanation": "Хотя ваша учетная запись не закрыта, команда {domain} подумала, что вы захотите просмотреть запросы от этих учетных записей вручную.", + "follow_suggestions.curated_suggestion": "Выбор редакции", + "follow_suggestions.dismiss": "Больше не показывать", + "follow_suggestions.personalized_suggestion": "Персонализированное предложение", + "follow_suggestions.popular_suggestion": "Популярное предложение", + "follow_suggestions.view_all": "Посмотреть все", + "follow_suggestions.who_to_follow": "На кого подписаться", "followed_tags": "Отслеживаемые хэштеги", "footer.about": "О проекте", "footer.directory": "Каталог профилей", @@ -295,13 +309,9 @@ "hashtag.follow": "Подписаться на новые посты", "hashtag.unfollow": "Отписаться", "hashtags.and_other": "...и {count, plural, other {# ещё}}", - "home.actions.go_to_explore": "Посмотреть, что актуально", - "home.actions.go_to_suggestions": "Подпишитесь на людей", "home.column_settings.basic": "Основные", "home.column_settings.show_reblogs": "Показывать продвижения", "home.column_settings.show_replies": "Показывать ответы", - "home.explore_prompt.body": "В вашем доме появятся сообщения из хэштегов, на которые вы хотите подписаться, люди, которых вы выбрали подписаться, и сообщения, которые они увеличили. Сейчас выглядит спокойно, так что:", - "home.explore_prompt.title": "Это ваша домашняя база в Мастодоне.", "home.hide_announcements": "Скрыть объявления", "home.pending_critical_update.body": "Пожалуйста, обновите свой сервер Mastodon как можно скорее!", "home.pending_critical_update.link": "Посмотреть обновления", @@ -514,7 +524,15 @@ "poll_button.add_poll": "Добавить опрос", "poll_button.remove_poll": "Удалить опрос", "privacy.change": "Изменить видимость поста", + "privacy.direct.long": "Все упомянутые в посте", + "privacy.direct.short": "Определённые люди", + "privacy.private.long": "Только ваши подписчики", + "privacy.private.short": "Подписчики", + "privacy.public.long": "Любой, находящийся на Mastodon и вне его", "privacy.public.short": "Публичный", + "privacy.unlisted.additional": "Работает точно так же, как public, за исключением того, что пост не будет отображаться в прямых лентах, хэштегах, исследованиях или поиске Mastodon, даже если ваш аккаунт подписан на это на уровне всего аккаунта.", + "privacy.unlisted.long": "Меньше алгоритмических фанфар", + "privacy.unlisted.short": "Тихий публичный", "privacy_policy.last_updated": "Последнее обновление {date}", "privacy_policy.title": "Политика конфиденциальности", "recommended": "Рекомендуется", @@ -532,7 +550,9 @@ "relative_time.minutes": "{number} мин", "relative_time.seconds": "{number} с", "relative_time.today": "сегодня", + "reply_indicator.attachments": "{count, plural, one {# вложение} other {# вложения}}", "reply_indicator.cancel": "Отмена", + "reply_indicator.poll": "Опрос", "report.block": "Заблокировать", "report.block_explanation": "Вы перестанете видеть посты этого пользователя, и он(а) больше не сможет подписаться на вас и читать ваши посты. Он(а) сможет понять, что вы заблокировали его/её.", "report.categories.legal": "Правовая информация", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index 1b2eb17633..2058d1415b 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -201,11 +201,8 @@ "hashtag.column_settings.tag_mode.all": "මේ සියල්ලම", "hashtag.column_settings.tag_mode.none": "මේ කිසිවක් නැත", "hashtag.column_settings.tag_toggle": "මෙම තීරුවේ අමතර ටැග් ඇතුළත් කරන්න", - "home.actions.go_to_explore": "නැගී එන දෑ බලන්න", - "home.actions.go_to_suggestions": "පුද්ගලයින් සොයන්න", "home.column_settings.basic": "මූලික", "home.column_settings.show_replies": "පිළිතුරු පෙන්වන්න", - "home.explore_prompt.title": "මෙය ඔබගේ මාස්ටඩන් මුල් පිටුවයි.", "home.hide_announcements": "නිවේදන සඟවන්න", "home.pending_critical_update.link": "යාවත්කාල බලන්න", "home.show_announcements": "නිවේදන පෙන්වන්න", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 5b1203aeea..b91c45bb29 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -35,7 +35,7 @@ "account.follow_back": "Nasleduj späť", "account.followers": "Sledovatelia", "account.followers.empty": "Tohto používateľa ešte nikto nenasleduje.", - "account.followers_counter": "{count, plural, one {{counter} Sledujúci} few {{counter} Sledujúci} many {{counter} Sledujúcich} other {{counter} Sledujúcich}}", + "account.followers_counter": "{count, plural, one {{counter} Sledujúci} other {{counter} Sledujúci}}", "account.following": "Sledujem", "account.following_counter": "{count, plural, one {{counter} Sledovaných} other {{counter} Sledujúcich}}", "account.follows.empty": "Tento používateľ ešte nikoho nesleduje.", @@ -142,15 +142,23 @@ "compose_form.direct_message_warning_learn_more": "Zisti viac", "compose_form.encryption_warning": "Príspevky na Mastodon nie sú end-to-end šifrované. Nezdieľajte cez Mastodon žiadne citlivé informácie.", "compose_form.hashtag_warning": "Tento príspevok nebude zobrazený pod žiadným haštagom, lebo nieje verejne listovaný. Iba verejné príspevky môžu byť nájdené podľa haštagu.", - "compose_form.lock_disclaimer": "Tvoj účet nie je {locked}. Ktokoľvek ťa môže nasledovať a vidieť tvoje správy pre sledujúcich.", + "compose_form.lock_disclaimer": "Tvoj účet nie je {locked}. Ktokoľvek ťa môže nasledovať a vidieť tvoje príspevky pre sledujúcich.", "compose_form.lock_disclaimer.lock": "zamknutý", "compose_form.placeholder": "Čo máš na mysli?", "compose_form.poll.duration": "Trvanie ankety", + "compose_form.poll.multiple": "Viacero možností", + "compose_form.poll.option_placeholder": "Voľba {number}", + "compose_form.poll.single": "Vyber jednu", "compose_form.poll.switch_to_multiple": "Zmeň anketu pre povolenie viacerých možností", "compose_form.poll.switch_to_single": "Zmeň anketu na takú s jedinou voľbou", + "compose_form.poll.type": "Typ", + "compose_form.publish": "Prispej", "compose_form.publish_form": "Zverejniť", + "compose_form.reply": "Odpovedz", + "compose_form.save_changes": "Aktualizácia", "compose_form.spoiler.marked": "Text je ukrytý za varovaním", "compose_form.spoiler.unmarked": "Text nieje ukrytý", + "compose_form.spoiler_placeholder": "Varovanie o obsahu (voliteľné)", "confirmation_modal.cancel": "Zruš", "confirmations.block.block_and_report": "Zablokuj a nahlás", "confirmations.block.confirm": "Blokuj", @@ -269,6 +277,10 @@ "follow_request.authorize": "Povoľ prístup", "follow_request.reject": "Odmietni", "follow_requests.unlocked_explanation": "Síce Váš učet nie je uzamknutý, ale {domain} tím si myslel že môžete chcieť skontrolovať žiadosti o sledovanie z týchto účtov manuálne.", + "follow_suggestions.dismiss": "Znovu nezobrazuj", + "follow_suggestions.personalized_suggestion": "Prispôsobené odporúčania", + "follow_suggestions.view_all": "Zobraz všetky", + "follow_suggestions.who_to_follow": "Koho nasledovať", "followed_tags": "Nasledované haštagy", "footer.about": "O", "footer.directory": "Adresár profilov", @@ -289,19 +301,15 @@ "hashtag.column_settings.tag_mode.any": "Hociktorý z týchto", "hashtag.column_settings.tag_mode.none": "Žiaden z týchto", "hashtag.column_settings.tag_toggle": "Vlož dodatočné haštagy pre tento stĺpec", - "hashtag.counter_by_accounts": "{count, plural, one {{counter} sledujúci} few {{counter} sledujúci} many {{counter} sledujúcich} other {{counter} sledujúcich}}", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} účastník} other {{counter} účastníci}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} príspevok} few {{counter} príspevky} many {{counter} príspevkov} other {{counter} príspevkov}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} príspevok} few {{counter} príspevky} many {{counter} príspevkov} other {{counter} príspevkov}} dnes", "hashtag.follow": "Sleduj haštag", "hashtag.unfollow": "Nesleduj haštag", "hashtags.and_other": "…a {count, plural, one {} few {# ďalšie} many {# ďalších}other {# ďalších}}", - "home.actions.go_to_explore": "Pozrieť, čo je trendy", - "home.actions.go_to_suggestions": "Nájdi ľudí na sledovanie", "home.column_settings.basic": "Základné", "home.column_settings.show_reblogs": "Ukáž vyzdvihnuté", "home.column_settings.show_replies": "Ukáž odpovede", - "home.explore_prompt.body": "Váš domovský informačný kanál bude obsahovať mix príspevkov z mriežok, ktoré ste sa rozhodli sledovať, ľudí, ktorých ste sa rozhodli sledovať, a príspevkov, ktoré preferujú. Ak sa vám to zdá príliš málo, možno budete chcieť:", - "home.explore_prompt.title": "Toto je tvoja domovina v rámci Mastodonu.", "home.hide_announcements": "Skry oznámenia", "home.pending_critical_update.body": "Prosím aktualizuj si svoj Mastodon server, ako náhle to bude možné!", "home.pending_critical_update.link": "Pozri aktualizácie", @@ -513,6 +521,7 @@ "poll_button.add_poll": "Pridaj anketu", "poll_button.remove_poll": "Odstráň anketu", "privacy.change": "Uprav súkromie príspevku", + "privacy.private.short": "Sledovatelia", "privacy.public.short": "Verejné", "privacy_policy.last_updated": "Posledná úprava {date}", "privacy_policy.title": "Zásady súkromia", @@ -532,6 +541,7 @@ "relative_time.seconds": "{number}sek", "relative_time.today": "dnes", "reply_indicator.cancel": "Zrušiť", + "reply_indicator.poll": "Anketa", "report.block": "Blokuj", "report.block_explanation": "Ich príspevky neuvidíte. Nebudú môcť vidieť vaše príspevky ani vás sledovať. Budú môcť zistiť, že sú zablokovaní.", "report.categories.legal": "Právne ujednania", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index 559b05db72..3aae75dc36 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -146,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "zaklenjen", "compose_form.placeholder": "O čem razmišljate?", "compose_form.poll.duration": "Trajanje ankete", + "compose_form.poll.multiple": "Več možnosti", + "compose_form.poll.option_placeholder": "Možnost {number}", + "compose_form.poll.single": "Izberite eno možnost", "compose_form.poll.switch_to_multiple": "Spremenite anketo, da omogočite več izbir", "compose_form.poll.switch_to_single": "Spremenite anketo, da omogočite eno izbiro", + "compose_form.poll.type": "Slog", + "compose_form.publish": "Objavi", "compose_form.publish_form": "Objavi", + "compose_form.reply": "Odgovori", + "compose_form.save_changes": "Posodobi", "compose_form.spoiler.marked": "Odstrani opozorilo o vsebini", "compose_form.spoiler.unmarked": "Dodaj opozorilo o vsebini", + "compose_form.spoiler_placeholder": "Opozorilo o vsebini (ni obvezno)", "confirmation_modal.cancel": "Prekliči", "confirmations.block.block_and_report": "Blokiraj in prijavi", "confirmations.block.confirm": "Blokiraj", @@ -269,6 +277,12 @@ "follow_request.authorize": "Overi", "follow_request.reject": "Zavrni", "follow_requests.unlocked_explanation": "Čeprav vaš račun ni zaklenjen, zaposleni pri {domain} menijo, da bi morda želeli pregledati zahteve za sledenje teh računov ročno.", + "follow_suggestions.curated_suggestion": "Izbor urednikov", + "follow_suggestions.dismiss": "Ne pokaži več", + "follow_suggestions.personalized_suggestion": "Osebno prilagojen predlog", + "follow_suggestions.popular_suggestion": "Priljubljen predlog", + "follow_suggestions.view_all": "Pokaži vse", + "follow_suggestions.who_to_follow": "Komu slediti", "followed_tags": "Sledeni ključniki", "footer.about": "O Mastodonu", "footer.directory": "Imenik profilov", @@ -295,13 +309,9 @@ "hashtag.follow": "Sledi ključniku", "hashtag.unfollow": "Nehaj slediti ključniku", "hashtags.and_other": "…in še {count, plural, other {#}}", - "home.actions.go_to_explore": "Poglejte, kaj je v trendu", - "home.actions.go_to_suggestions": "Poiščite osebe, ki jim želite slediti", "home.column_settings.basic": "Osnovno", "home.column_settings.show_reblogs": "Pokaži izpostavitve", "home.column_settings.show_replies": "Pokaži odgovore", - "home.explore_prompt.body": "Vaš domači vir bo vseboval mešanico objav ključnikov, ki ste jih izbrali za sledenje, oseb, ki ste jih izbrali za sledenje, in objav, ki jih ti izpostavljajo. Če se vam to zdi preveč tiho, morda želite:", - "home.explore_prompt.title": "To je vaš dom v okviru Mastodona.", "home.hide_announcements": "Skrij obvestila", "home.pending_critical_update.body": "Čim prej posodobite svoj strežnik Mastodon!", "home.pending_critical_update.link": "Glejte posodobitve", @@ -514,7 +524,15 @@ "poll_button.add_poll": "Dodaj anketo", "poll_button.remove_poll": "Odstrani anketo", "privacy.change": "Spremeni zasebnost objave", + "privacy.direct.long": "Vsem omenjenim v objavi", + "privacy.direct.short": "Določenim ljudem", + "privacy.private.long": "Samo vašim sledilcem", + "privacy.private.short": "Sledilcem", + "privacy.public.long": "Vsem, ki so ali niso na Mastodonu", "privacy.public.short": "Javno", + "privacy.unlisted.additional": "Učinek je enak kot pri javni objavi, le da se ta ne bo prikazala v živih virih, med ključniki, raziskovanjem ali iskanjem, četudi ste to vključili na ravni računa.", + "privacy.unlisted.long": "Manj vsebine po izboru algoritma", + "privacy.unlisted.short": "Tiho javno", "privacy_policy.last_updated": "Zadnja posodobitev {date}", "privacy_policy.title": "Pravilnik o zasebnosti", "recommended": "Priporočeno", @@ -532,7 +550,9 @@ "relative_time.minutes": "{number} m", "relative_time.seconds": "{number} s", "relative_time.today": "danes", + "reply_indicator.attachments": "{count, plural, one {# priloga} two {# prilogi} few {# priloge} other {# prilog}}", "reply_indicator.cancel": "Prekliči", + "reply_indicator.poll": "Anketa", "report.block": "Blokiraj", "report.block_explanation": "Njihovih objav ne boste videli. Oni ne bodo videli vaših objav, niti vam ne morejo slediti. Lahko bodo ugotovili, da so blokirani.", "report.categories.legal": "Pravno obvestilo", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index bfc674248b..496e35fe76 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "Llogaria juaj s’është {locked}. Mund ta ndjekë cilido, për të parë postimet tuaja vetëm për ndjekësit.", "compose_form.lock_disclaimer.lock": "e kyçur", "compose_form.placeholder": "Ç’bluani në mendje?", - "compose_form.poll.add_option": "Shtoni mundësi", "compose_form.poll.duration": "Kohëzgjatje pyetësori", "compose_form.poll.multiple": "Shumë zgjedhje", "compose_form.poll.option_placeholder": "Mundësia {number}", - "compose_form.poll.remove_option": "Hiqe këtë mundësi", "compose_form.poll.single": "Zgjidhni një", "compose_form.poll.switch_to_multiple": "Ndrysho votimin për të lejuar shumë zgjedhje", "compose_form.poll.switch_to_single": "Ndrysho votimin për të lejuar vetëm një zgjedhje", @@ -279,6 +277,12 @@ "follow_request.authorize": "Autorizoje", "follow_request.reject": "Hidhe tej", "follow_requests.unlocked_explanation": "Edhe pse llogaria juaj s’është e kyçur, ekipi i {domain} mendoi se mund të donit të shqyrtonit dorazi kërkesa ndjekjeje prej këtyre llogarive.", + "follow_suggestions.curated_suggestion": "Zgjedhur nga Ekipi", + "follow_suggestions.dismiss": "Mos shfaq më", + "follow_suggestions.personalized_suggestion": "Sugjerim i personalizuar", + "follow_suggestions.popular_suggestion": "Sugjerim popullor", + "follow_suggestions.view_all": "Shihni krejt", + "follow_suggestions.who_to_follow": "Cilët të ndiqen", "followed_tags": "Hashtag-ë të ndjekur", "footer.about": "Mbi", "footer.directory": "Drejtori profilesh", @@ -305,13 +309,9 @@ "hashtag.follow": "Ndiqe hashtag-un", "hashtag.unfollow": "Hiqe ndjekjen e hashtag-ut", "hashtags.and_other": "…dhe {count, plural, one {}other {# më tepër}}", - "home.actions.go_to_explore": "Shihni ç’është në modë", - "home.actions.go_to_suggestions": "Gjeni persona për ndjekje", "home.column_settings.basic": "Bazë", "home.column_settings.show_reblogs": "Shfaq përforcime", "home.column_settings.show_replies": "Shfaq përgjigje", - "home.explore_prompt.body": "Prurja juaj bazë do të ketë një përzierje postimesh nga hashtag-ë që keni zgjedhur të ndiqni, persona që keni zgjedhur të ndiqni dhe postime që ata përforcojnë. Nëse kjo duket si shumë qetësi, mund të doni të:", - "home.explore_prompt.title": "Kjo është baza juaj brenda Mastodon-it.", "home.hide_announcements": "Fshihi lajmërimet", "home.pending_critical_update.body": "Ju lutemi, përditësoni sa më shpejt të jetë e mundur shërbyesin tuaj Mastodon!", "home.pending_critical_update.link": "Shihni përditësime", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index b0348748a6..d9490ef70d 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -146,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "zaključan", "compose_form.placeholder": "O čemu razmišljate?", "compose_form.poll.duration": "Trajanje ankete", + "compose_form.poll.multiple": "Višestruki izbor", + "compose_form.poll.option_placeholder": "Opcija {number}", + "compose_form.poll.single": "Odaberite jedno", "compose_form.poll.switch_to_multiple": "Promenite anketu da biste omogućili više izbora", "compose_form.poll.switch_to_single": "Promenite anketu da biste omogućili jedan izbor", + "compose_form.poll.type": "Stil", + "compose_form.publish": "Objavi", "compose_form.publish_form": "Objavi", + "compose_form.reply": "Odgovori", + "compose_form.save_changes": "Ažuriraj", "compose_form.spoiler.marked": "Ukloni upozorenje o sadržaju", "compose_form.spoiler.unmarked": "Dodaj upozorenje o sadržaju", + "compose_form.spoiler_placeholder": "Upozorenje o sadržaju (opciono)", "confirmation_modal.cancel": "Otkaži", "confirmations.block.block_and_report": "Blokiraj i prijavi", "confirmations.block.confirm": "Blokiraj", @@ -269,6 +277,12 @@ "follow_request.authorize": "Odobri", "follow_request.reject": "Odbij", "follow_requests.unlocked_explanation": "Iako vaš nalog nije zaključan, osoblje {domain} smatra da biste možda želeli da ručno pregledate zahteve za praćenje sa ovih naloga.", + "follow_suggestions.curated_suggestion": "Izbor urednika", + "follow_suggestions.dismiss": "Ne prikazuj ponovo", + "follow_suggestions.personalized_suggestion": "Personalizovani predlog", + "follow_suggestions.popular_suggestion": "Popularni predlog", + "follow_suggestions.view_all": "Prikaži sve", + "follow_suggestions.who_to_follow": "Koga pratiti", "followed_tags": "Praćene heš oznake", "footer.about": "Osnovni podaci", "footer.directory": "Direktorijum profila", @@ -295,13 +309,9 @@ "hashtag.follow": "Zaprati heš oznaku", "hashtag.unfollow": "Otprati heš oznaku", "hashtags.and_other": "…i {count, plural, one {još #} few {još #}other {još #}}", - "home.actions.go_to_explore": "Pogledate šta je u trendu", - "home.actions.go_to_suggestions": "Pronađete ljude koje biste pratili", "home.column_settings.basic": "Osnovna", "home.column_settings.show_reblogs": "Prikaži podržavanja", "home.column_settings.show_replies": "Prikaži odgovore", - "home.explore_prompt.body": "Vaša početna stranica će imati mešavinu objava od heš oznaka koje ste izabrali da pratite, ljudi koje ste izabrali da pratite i objava koje su podržali. Ako izgleda previše tiho, možda ćete želeti da:", - "home.explore_prompt.title": "Ovo je vaša matična baza u Mastodon-u.", "home.hide_announcements": "Sakrij najave", "home.pending_critical_update.body": "Ažurirajte svoj Mastodon server što je pre moguće!", "home.pending_critical_update.link": "Pogledajte ažuriranja", @@ -514,7 +524,15 @@ "poll_button.add_poll": "Dodaj anketu", "poll_button.remove_poll": "Ukloni anketu", "privacy.change": "Promeni privatnost objave", + "privacy.direct.long": "Svi pomenuti u objavi", + "privacy.direct.short": "Određeni ljudi", + "privacy.private.long": "Samo vaši pratioci", + "privacy.private.short": "Pratioci", + "privacy.public.long": "Bilo ko na Mastodon-u i van njega", "privacy.public.short": "Javno", + "privacy.unlisted.additional": "Ovo se ponaša potpuno kao javno, osim što se objava neće pojavljivati u izvorima uživo ili heš oznakama, istraživanjima ili pretrazi Mastodon-a, čak i ako ste uključeni u celom nalogu.", + "privacy.unlisted.long": "Manje algoritamskih fanfara", + "privacy.unlisted.short": "Tiha javnost", "privacy_policy.last_updated": "Poslednje ažuriranje {date}", "privacy_policy.title": "Politika privatnosti", "recommended": "Preporučeno", @@ -532,7 +550,9 @@ "relative_time.minutes": "{number} min.", "relative_time.seconds": "{number} sek.", "relative_time.today": "danas", + "reply_indicator.attachments": "{count, plural, one {# prilog} few {# priloga} other {# priloga}}", "reply_indicator.cancel": "Otkaži", + "reply_indicator.poll": "Anketa", "report.block": "Blokiraj", "report.block_explanation": "Nećete videti objave korisnika. Ni on neće videti Vaše objave niti će moći da Vas prati. Takođe će moći da sazna da je blokiran.", "report.categories.legal": "Pravni", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 4e4956e1a2..fd09f5db49 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "Ваш налог није {locked}. Свако може да Вас запрати и да види објаве намењене само Вашим пратиоцима.", "compose_form.lock_disclaimer.lock": "закључан", "compose_form.placeholder": "О чему размишљате?", - "compose_form.poll.add_option": "Додај опцију", "compose_form.poll.duration": "Трајање анкете", "compose_form.poll.multiple": "Вишеструки избор", "compose_form.poll.option_placeholder": "Опција {number}", - "compose_form.poll.remove_option": "Уклони ову опцију", "compose_form.poll.single": "Одаберите једно", "compose_form.poll.switch_to_multiple": "Промените анкету да бисте омогућили више избора", "compose_form.poll.switch_to_single": "Промените анкету да бисте омогућили један избор", @@ -279,6 +277,12 @@ "follow_request.authorize": "Одобри", "follow_request.reject": "Одбиј", "follow_requests.unlocked_explanation": "Иако ваш налог није закључан, особље {domain} сматра да бисте можда желели да ручно прегледате захтеве за праћење са ових налога.", + "follow_suggestions.curated_suggestion": "Избор уредника", + "follow_suggestions.dismiss": "Не приказуј поново", + "follow_suggestions.personalized_suggestion": "Персонализовани предлог", + "follow_suggestions.popular_suggestion": "Популарни предлог", + "follow_suggestions.view_all": "Прикажи све", + "follow_suggestions.who_to_follow": "Кога пратити", "followed_tags": "Праћене хеш ознаке", "footer.about": "Основни подаци", "footer.directory": "Директоријум профила", @@ -305,13 +309,9 @@ "hashtag.follow": "Запрати хеш ознаку", "hashtag.unfollow": "Отпрати хеш ознаку", "hashtags.and_other": "…и {count, plural, one {још #} few {још #}other {још #}}", - "home.actions.go_to_explore": "Погледате шта је у тренду", - "home.actions.go_to_suggestions": "Пронађете људе које бисте пратили", "home.column_settings.basic": "Основна", "home.column_settings.show_reblogs": "Прикажи подржавања", "home.column_settings.show_replies": "Прикажи одговоре", - "home.explore_prompt.body": "Ваша почетна страница ће имати мешавину објава од хеш ознака које сте изабрали да пратите, људи које сте изабрали да пратите и објава које су подржали. Ако изгледа превише тихо, можда ћете желети да:", - "home.explore_prompt.title": "Ово је ваша матична база у Mastodon-у.", "home.hide_announcements": "Сакриј најаве", "home.pending_critical_update.body": "Ажурирајте свој Mastodon сервер што је пре могуће!", "home.pending_critical_update.link": "Погледајте ажурирања", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index d6e6555b53..f9356fd279 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -145,12 +145,13 @@ "compose_form.lock_disclaimer": "Ditt konto är inte {locked}. Vem som helst kan följa dig för att se dina inlägg som endast är för följare.", "compose_form.lock_disclaimer.lock": "låst", "compose_form.placeholder": "Vad tänker du på?", - "compose_form.poll.add_option": "Lägg till alternativ", "compose_form.poll.duration": "Varaktighet för omröstning", + "compose_form.poll.multiple": "Flera val", "compose_form.poll.option_placeholder": "Alternativ {number}", "compose_form.poll.switch_to_multiple": "Ändra enkät för att tillåta flera val", "compose_form.poll.switch_to_single": "Ändra enkät för att tillåta ett enda val", "compose_form.poll.type": "Stil", + "compose_form.publish": "Publicera", "compose_form.publish_form": "Publicera", "compose_form.reply": "Svara", "compose_form.save_changes": "Uppdatera", @@ -275,6 +276,10 @@ "follow_request.authorize": "Godkänn", "follow_request.reject": "Avvisa", "follow_requests.unlocked_explanation": "Även om ditt konto inte är låst tror {domain} personalen att du kanske vill granska dessa följares förfrågningar manuellt.", + "follow_suggestions.dismiss": "Visa inte igen", + "follow_suggestions.personalized_suggestion": "Personligt förslag", + "follow_suggestions.popular_suggestion": "Populärt förslag", + "follow_suggestions.view_all": "Visa alla", "followed_tags": "Följda hashtags", "footer.about": "Om", "footer.directory": "Profilkatalog", @@ -301,13 +306,9 @@ "hashtag.follow": "Följ hashtagg", "hashtag.unfollow": "Avfölj hashtagg", "hashtags.and_other": "…och {count, plural, one {}other {# mer}}", - "home.actions.go_to_explore": "Se vad som trendar", - "home.actions.go_to_suggestions": "Hitta personer att följa", "home.column_settings.basic": "Grundläggande", "home.column_settings.show_reblogs": "Visa boostar", "home.column_settings.show_replies": "Visa svar", - "home.explore_prompt.body": "Din hemflöde kommer att ha en blandning av inlägg från taggar du har valt att följa, de människor som du har valt att följa och de inlägg som de boostar. Om det känns för tyst kanske du vill:", - "home.explore_prompt.title": "Detta är din hembas inom Mastodon.", "home.hide_announcements": "Dölj notiser", "home.pending_critical_update.body": "Uppdatera din Mastodon-server så snart som möjligt!", "home.pending_critical_update.link": "Se uppdateringar", @@ -518,6 +519,7 @@ "poll_button.add_poll": "Lägg till en omröstning", "poll_button.remove_poll": "Ta bort omröstning", "privacy.change": "Ändra inläggsintegritet", + "privacy.direct.long": "Alla som nämns i inlägget", "privacy.private.long": "Endast dina följare", "privacy.private.short": "Följare", "privacy.public.long": "Alla på och utanför Mastodon", @@ -539,6 +541,7 @@ "relative_time.minutes": "{number}min", "relative_time.seconds": "{number}sek", "relative_time.today": "idag", + "reply_indicator.attachments": "{count, plural, one {# bilaga} other {# bilagor}}", "reply_indicator.cancel": "Ångra", "reply_indicator.poll": "Omröstning", "report.block": "Blockera", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 4437afa78c..72ecb11ed1 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -146,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "ล็อคอยู่", "compose_form.placeholder": "คุณกำลังคิดอะไรอยู่?", "compose_form.poll.duration": "ระยะเวลาการสำรวจความคิดเห็น", + "compose_form.poll.multiple": "หลายตัวเลือก", + "compose_form.poll.option_placeholder": "ตัวเลือก {number}", + "compose_form.poll.single": "เลือกอย่างใดอย่างหนึ่ง", "compose_form.poll.switch_to_multiple": "เปลี่ยนการสำรวจความคิดเห็นเป็นอนุญาตหลายตัวเลือก", "compose_form.poll.switch_to_single": "เปลี่ยนการสำรวจความคิดเห็นเป็นอนุญาตตัวเลือกเดี่ยว", + "compose_form.poll.type": "ลักษณะ", + "compose_form.publish": "โพสต์", "compose_form.publish_form": "โพสต์ใหม่", + "compose_form.reply": "ตอบกลับ", + "compose_form.save_changes": "อัปเดต", "compose_form.spoiler.marked": "เอาคำเตือนเนื้อหาออก", "compose_form.spoiler.unmarked": "เพิ่มคำเตือนเนื้อหา", + "compose_form.spoiler_placeholder": "คำเตือนเนื้อหา (ไม่จำเป็น)", "confirmation_modal.cancel": "ยกเลิก", "confirmations.block.block_and_report": "ปิดกั้นแล้วรายงาน", "confirmations.block.confirm": "ปิดกั้น", @@ -269,6 +277,12 @@ "follow_request.authorize": "อนุญาต", "follow_request.reject": "ปฏิเสธ", "follow_requests.unlocked_explanation": "แม้ว่าไม่มีการล็อคบัญชีของคุณ พนักงานของ {domain} คิดว่าคุณอาจต้องการตรวจทานคำขอติดตามจากบัญชีเหล่านี้ด้วยตนเอง", + "follow_suggestions.curated_suggestion": "คัดสรรโดยบรรณาธิการ", + "follow_suggestions.dismiss": "ไม่ต้องแสดงอีก", + "follow_suggestions.personalized_suggestion": "คำแนะนำเฉพาะบุคคล", + "follow_suggestions.popular_suggestion": "คำแนะนำยอดนิยม", + "follow_suggestions.view_all": "ดูทั้งหมด", + "follow_suggestions.who_to_follow": "ติดตามใครดี", "followed_tags": "แฮชแท็กที่ติดตาม", "footer.about": "เกี่ยวกับ", "footer.directory": "ไดเรกทอรีโปรไฟล์", @@ -295,13 +309,9 @@ "hashtag.follow": "ติดตามแฮชแท็ก", "hashtag.unfollow": "เลิกติดตามแฮชแท็ก", "hashtags.and_other": "…และอีก {count, plural, other {# เพิ่มเติม}}", - "home.actions.go_to_explore": "ดูสิ่งที่กำลังนิยม", - "home.actions.go_to_suggestions": "ค้นหาผู้คนที่จะติดตาม", "home.column_settings.basic": "พื้นฐาน", "home.column_settings.show_reblogs": "แสดงการดัน", "home.column_settings.show_replies": "แสดงการตอบกลับ", - "home.explore_prompt.body": "ฟีดหน้าแรกของคุณจะมีการผสมผสานของโพสต์จากแฮชแท็กที่คุณได้เลือกติดตาม, ผู้คนที่คุณได้เลือกติดตาม และโพสต์ที่เขาดัน หากนั่นรู้สึกเงียบเกินไป คุณอาจต้องการ:", - "home.explore_prompt.title": "นี่คือฐานหน้าแรกของคุณภายใน Mastodon", "home.hide_announcements": "ซ่อนประกาศ", "home.pending_critical_update.body": "โปรดอัปเดตเซิร์ฟเวอร์ Mastodon ของคุณโดยเร็วที่สุดเท่าที่จะเป็นไปได้!", "home.pending_critical_update.link": "ดูการอัปเดต", @@ -514,7 +524,15 @@ "poll_button.add_poll": "เพิ่มการสำรวจความคิดเห็น", "poll_button.remove_poll": "เอาการสำรวจความคิดเห็นออก", "privacy.change": "เปลี่ยนความเป็นส่วนตัวของโพสต์", + "privacy.direct.long": "ทุกคนที่กล่าวถึงในโพสต์", + "privacy.direct.short": "ผู้คนที่เฉพาะเจาะจง", + "privacy.private.long": "เฉพาะผู้ติดตามของคุณเท่านั้น", + "privacy.private.short": "ผู้ติดตาม", + "privacy.public.long": "ใครก็ตามที่อยู่ในและนอก Mastodon", "privacy.public.short": "สาธารณะ", + "privacy.unlisted.additional": "สิ่งนี้ทำงานเหมือนกับสาธารณะทุกประการ ยกเว้นโพสต์จะไม่ปรากฏในฟีดสดหรือแฮชแท็ก, การสำรวจ หรือการค้นหา Mastodon แม้ว่าคุณได้เลือกรับทั่วทั้งบัญชีก็ตาม", + "privacy.unlisted.long": "การประโคมอัลกอริทึมที่น้อยลง", + "privacy.unlisted.short": "สาธารณะแบบเงียบ", "privacy_policy.last_updated": "อัปเดตล่าสุดเมื่อ {date}", "privacy_policy.title": "นโยบายความเป็นส่วนตัว", "recommended": "แนะนำ", @@ -532,7 +550,9 @@ "relative_time.minutes": "{number} นาที", "relative_time.seconds": "{number} วินาที", "relative_time.today": "วันนี้", + "reply_indicator.attachments": "{count, plural, other {# ไฟล์แนบ}}", "reply_indicator.cancel": "ยกเลิก", + "reply_indicator.poll": "การสำรวจความคิดเห็น", "report.block": "ปิดกั้น", "report.block_explanation": "คุณจะไม่เห็นโพสต์ของเขา เขาจะไม่สามารถเห็นโพสต์ของคุณหรือติดตามคุณ เขาจะสามารถบอกได้ว่ามีการปิดกั้นเขา", "report.categories.legal": "กฎหมาย", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 6811c158d4..7ab370b8bc 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -146,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "kilitli", "compose_form.placeholder": "Aklında ne var?", "compose_form.poll.duration": "Anket süresi", + "compose_form.poll.multiple": "Çoktan seçmeli", + "compose_form.poll.option_placeholder": "Seçenek {number}", + "compose_form.poll.single": "Birini seç", "compose_form.poll.switch_to_multiple": "Birden çok seçeneğe izin vermek için anketi değiştir", "compose_form.poll.switch_to_single": "Tek bir seçeneğe izin vermek için anketi değiştir", + "compose_form.poll.type": "Stil", + "compose_form.publish": "Gönder", "compose_form.publish_form": "Gönder", + "compose_form.reply": "Yanıtla", + "compose_form.save_changes": "Güncelle", "compose_form.spoiler.marked": "Metin uyarının arkasına gizlenir", "compose_form.spoiler.unmarked": "Metin gizli değil", + "compose_form.spoiler_placeholder": "İçerik uyarısı (isteğe bağlı)", "confirmation_modal.cancel": "İptal", "confirmations.block.block_and_report": "Engelle ve Bildir", "confirmations.block.confirm": "Engelle", @@ -269,6 +277,12 @@ "follow_request.authorize": "İzin Ver", "follow_request.reject": "Reddet", "follow_requests.unlocked_explanation": "Hesabınız kilitli olmasa da, {domain} personeli bu hesaplardan gelen takip isteklerini gözden geçirmek isteyebileceğinizi düşündü.", + "follow_suggestions.curated_suggestion": "Editörün Seçimi", + "follow_suggestions.dismiss": "Tekrar gösterme", + "follow_suggestions.personalized_suggestion": "Kişiselleşmiş öneriler", + "follow_suggestions.popular_suggestion": "Popüler öneriler", + "follow_suggestions.view_all": "Tümünü gör", + "follow_suggestions.who_to_follow": "Takip edebileceklerin", "followed_tags": "Takip edilen etiketler", "footer.about": "Hakkında", "footer.directory": "Profil dizini", @@ -295,13 +309,9 @@ "hashtag.follow": "Etiketi takip et", "hashtag.unfollow": "Etiketi takibi bırak", "hashtags.and_other": "…ve {count, plural, one {}other {# fazlası}}", - "home.actions.go_to_explore": "Öne çıkanları gör", - "home.actions.go_to_suggestions": "Takip edecek kişileri bulun", "home.column_settings.basic": "Temel", "home.column_settings.show_reblogs": "Yeniden paylaşımları göster", "home.column_settings.show_replies": "Yanıtları göster", - "home.explore_prompt.body": "Ana sayfa akışınızda, takip etmeyi seçtiğiniz ETİKETlerden, takip etmeyi seçtiğiniz kişilerden ve öne çıkardıkları gönderilerden oluşan bir karışım bulunur. Şu anda oldukça sessiz görünüyor, gör ve takip et :", - "home.explore_prompt.title": "Burası Mastodon'daki Anasayfanız.", "home.hide_announcements": "Duyuruları gizle", "home.pending_critical_update.body": "Lütfen Mastodon sunucunuzu en kısa sürede güncelleyin!", "home.pending_critical_update.link": "Güncellemelerini görün", @@ -514,7 +524,15 @@ "poll_button.add_poll": "Bir anket ekleyin", "poll_button.remove_poll": "Anketi kaldır", "privacy.change": "Gönderi gizliliğini değiştir", + "privacy.direct.long": "Gönderide değinilen herkes", + "privacy.direct.short": "Belirli kişiler", + "privacy.private.long": "Sadece takipçileriniz", + "privacy.private.short": "Takipçiler", + "privacy.public.long": "Mastodon'da olan olmayan herkes", "privacy.public.short": "Herkese açık", + "privacy.unlisted.additional": "Bu neredeyse herkese açık gibi çalışır, tek farkı gönderi canlı akışlarda veya etiketlerde, keşfette, veya Mastodon aramasında gözükmez, hesap çapında öyle seçmiş olsanız bile.", + "privacy.unlisted.long": "Daha az algoritmik tantana", + "privacy.unlisted.short": "Sessizce herkese açık", "privacy_policy.last_updated": "Son güncelleme {date}", "privacy_policy.title": "Gizlilik Politikası", "recommended": "Önerilen", @@ -532,7 +550,9 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}sn", "relative_time.today": "bugün", + "reply_indicator.attachments": "{count, plural, one {# ek} other {# ek}}", "reply_indicator.cancel": "İptal", + "reply_indicator.poll": "Anket", "report.block": "Engelle", "report.block_explanation": "Gönderilerini göremeyeceksiniz. Gönderilerinizi göremezler veya sizi takip edemezler. Engelli olduklarını anlayabilecekler.", "report.categories.legal": "Yasal", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 38e5f9cfbd..0504ec60d8 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -145,13 +145,20 @@ "compose_form.lock_disclaimer": "Ваш обліковий запис не {locked}. Будь-який користувач може підписатися на вас та переглядати ваші дописи для підписників.", "compose_form.lock_disclaimer.lock": "приватний", "compose_form.placeholder": "Що у вас на думці?", - "compose_form.poll.add_option": "Додати опцію", "compose_form.poll.duration": "Тривалість опитування", + "compose_form.poll.multiple": "Кілька варіантів", + "compose_form.poll.option_placeholder": "Варіант {number}", + "compose_form.poll.single": "Виберіть варіант", "compose_form.poll.switch_to_multiple": "Дозволити вибір декількох відповідей", "compose_form.poll.switch_to_single": "Перемкнути у режим вибору однієї відповіді", + "compose_form.poll.type": "Стиль", + "compose_form.publish": "Опублікувати", "compose_form.publish_form": "Новий допис", + "compose_form.reply": "Відповісти", + "compose_form.save_changes": "Оновити", "compose_form.spoiler.marked": "Прибрати попередження про вміст", "compose_form.spoiler.unmarked": "Додати попередження про вміст", + "compose_form.spoiler_placeholder": "Попередження про вміст (необов'язково)", "confirmation_modal.cancel": "Скасувати", "confirmations.block.block_and_report": "Заблокувати та поскаржитися", "confirmations.block.confirm": "Заблокувати", @@ -270,6 +277,12 @@ "follow_request.authorize": "Авторизувати", "follow_request.reject": "Відмовити", "follow_requests.unlocked_explanation": "Хоча ваш обліковий запис не заблоковано, персонал {domain} припускає, що, можливо, ви хотіли б переглянути ці запити на підписку.", + "follow_suggestions.curated_suggestion": "Вибір редакції", + "follow_suggestions.dismiss": "Більше не показувати", + "follow_suggestions.personalized_suggestion": "Персоналізована пропозиція", + "follow_suggestions.popular_suggestion": "Популярна пропозиція", + "follow_suggestions.view_all": "Переглянути все", + "follow_suggestions.who_to_follow": "На кого підписатися", "followed_tags": "Відстежувані хештеґи", "footer.about": "Про проєкт", "footer.directory": "Каталог профілів", @@ -296,13 +309,9 @@ "hashtag.follow": "Стежити за хештегом", "hashtag.unfollow": "Не стежити за хештегом", "hashtags.and_other": "…і {count, plural, other {ще #}}", - "home.actions.go_to_explore": "Переглянути тенденції", - "home.actions.go_to_suggestions": "Знайти людей, аби підписатися", "home.column_settings.basic": "Основні", "home.column_settings.show_reblogs": "Показувати поширення", "home.column_settings.show_replies": "Показувати відповіді", - "home.explore_prompt.body": "Ваша домашня стрічка буде сумішшю дописів з обраних для стеження хештегів, людей і поширених ними дописів. Якщо цього замало, ви також можете:", - "home.explore_prompt.title": "Це ваша домашня база у Mastodon.", "home.hide_announcements": "Приховати оголошення", "home.pending_critical_update.body": "Якнайшвидше оновіть свій сервер Mastodon!", "home.pending_critical_update.link": "Переглянути оновлення", @@ -515,7 +524,15 @@ "poll_button.add_poll": "Додати опитування", "poll_button.remove_poll": "Видалити опитування", "privacy.change": "Змінити видимість допису", + "privacy.direct.long": "Усі згадані в дописі", + "privacy.direct.short": "Певні люди", + "privacy.private.long": "Лише ваші підписники", + "privacy.private.short": "Підписники", + "privacy.public.long": "Усі з Mastodon", "privacy.public.short": "Публічно", + "privacy.unlisted.additional": "Має таку ж поведінку, як у людей, але повідомлення не з'являтимуться у стрічках або хештегах, оглядах, або пошуку Mastodon, навіть якщо ви використовуєте облікові записи.", + "privacy.unlisted.long": "Менше взаємодій з алгоритмами", + "privacy.unlisted.short": "Без додавання до стрічки", "privacy_policy.last_updated": "Оновлено {date}", "privacy_policy.title": "Політика приватності", "recommended": "Рекомендовано", @@ -533,7 +550,9 @@ "relative_time.minutes": "{number}х", "relative_time.seconds": "{number}с", "relative_time.today": "сьогодні", + "reply_indicator.attachments": "{count, plural, one {# вкладення} few {# вкладення} many {# вкладень} other {# вкладення}}", "reply_indicator.cancel": "Скасувати", + "reply_indicator.poll": "Опитування", "report.block": "Заблокувати", "report.block_explanation": "Ви не будете бачити дописи цього користувача, а вони не зможуть бачити ваші дописи або підписуватися на вас. Вони будуть бачити, що ви їх заблокували.", "report.categories.legal": "Правові положення", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 73a11b9573..626f40783c 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -146,11 +146,19 @@ "compose_form.lock_disclaimer.lock": "khóa", "compose_form.placeholder": "Bạn đang nghĩ gì?", "compose_form.poll.duration": "Hết hạn vào", + "compose_form.poll.multiple": "Nhiều lựa chọn", + "compose_form.poll.option_placeholder": "Lựa chọn {number}", + "compose_form.poll.single": "Chọn một", "compose_form.poll.switch_to_multiple": "Có thể chọn nhiều lựa chọn", "compose_form.poll.switch_to_single": "Chỉ cho phép chọn duy nhất một lựa chọn", + "compose_form.poll.type": "Loại", + "compose_form.publish": "Đăng", "compose_form.publish_form": "Đăng", + "compose_form.reply": "Trả lời", + "compose_form.save_changes": "Cập nhật", "compose_form.spoiler.marked": "Hủy nội dung ẩn", "compose_form.spoiler.unmarked": "Tạo nội dung ẩn", + "compose_form.spoiler_placeholder": "Nội dung ẩn (tùy chọn)", "confirmation_modal.cancel": "Hủy bỏ", "confirmations.block.block_and_report": "Chặn & Báo cáo", "confirmations.block.confirm": "Chặn", @@ -269,6 +277,12 @@ "follow_request.authorize": "Cho phép", "follow_request.reject": "Từ chối", "follow_requests.unlocked_explanation": "Mặc dù tài khoản của bạn đang ở chế độ công khai, quản trị viên của {domain} vẫn tin rằng bạn sẽ muốn xem lại yêu cầu theo dõi từ những người khác.", + "follow_suggestions.curated_suggestion": "Lựa chọn của máy chủ", + "follow_suggestions.dismiss": "Không hiện lại", + "follow_suggestions.personalized_suggestion": "Gợi ý cá nhân hóa", + "follow_suggestions.popular_suggestion": "Những người nổi tiếng", + "follow_suggestions.view_all": "Xem tất cả", + "follow_suggestions.who_to_follow": "Gợi ý theo dõi", "followed_tags": "Hashtag theo dõi", "footer.about": "Giới thiệu", "footer.directory": "Cộng đồng", @@ -295,13 +309,9 @@ "hashtag.follow": "Theo dõi hashtag", "hashtag.unfollow": "Bỏ theo dõi hashtag", "hashtags.and_other": "…và {count, plural, other {# nữa}}", - "home.actions.go_to_explore": "Khám phá xu hướng", - "home.actions.go_to_suggestions": "Tìm người theo dõi", "home.column_settings.basic": "Tùy chỉnh", "home.column_settings.show_reblogs": "Hiện những lượt đăng lại", "home.column_settings.show_replies": "Hiện những tút dạng trả lời", - "home.explore_prompt.body": "Bảng tin của bạn sẽ bao gồm các tút có hashtag bạn theo dõi, những người bạn theo dõi và các tút mà họ đăng lại. Lúc này có vẻ hơi trống, sao bạn không:", - "home.explore_prompt.title": "Đây là ngôi nhà Mastodon của bạn.", "home.hide_announcements": "Ẩn thông báo máy chủ", "home.pending_critical_update.body": "Vui lòng cập nhật máy chủ Mastodon của bạn càng sớm càng tốt!", "home.pending_critical_update.link": "Xem bản cập nhật", @@ -514,7 +524,15 @@ "poll_button.add_poll": "Tạo bình chọn", "poll_button.remove_poll": "Hủy cuộc bình chọn", "privacy.change": "Chọn kiểu tút", + "privacy.direct.long": "Những người được nhắc trong tút", + "privacy.direct.short": "Người cụ thể", + "privacy.private.long": "Chỉ người theo dõi", + "privacy.private.short": "Người theo dõi", + "privacy.public.long": "Bất cứ ai", "privacy.public.short": "Công khai", + "privacy.unlisted.additional": "Giống hệt như công khai, ngoại trừ tút sẽ không xuất hiện trong bảng tin hoặc hashtag, khám phá hoặc tìm kiếm Mastodon, ngay cả khi bạn chọn cho phép trong cài đặt tài khoản.", + "privacy.unlisted.long": "Ít hướng thuật toán hơn", + "privacy.unlisted.short": "Hạn chế", "privacy_policy.last_updated": "Cập nhật lần cuối {date}", "privacy_policy.title": "Chính sách bảo mật", "recommended": "Đề xuất", @@ -532,7 +550,9 @@ "relative_time.minutes": "{number} phút", "relative_time.seconds": "{number}s", "relative_time.today": "hôm nay", + "reply_indicator.attachments": "{count, plural, other {# tập tin đính kèm}}", "reply_indicator.cancel": "Hủy bỏ", + "reply_indicator.poll": "Bình chọn", "report.block": "Chặn", "report.block_explanation": "Bạn sẽ không còn thấy tút của người này. Họ sẽ không thể thấy tút của bạn hoặc theo dõi bạn. Họ biết là bạn đã chặn họ.", "report.categories.legal": "Phạm pháp", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 9b55e51b1f..9d0da95c81 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "你的账户没有{locked}。任何人都可以在关注你后立即查看仅关注者可见的嘟文。", "compose_form.lock_disclaimer.lock": "开启保护", "compose_form.placeholder": "想写什么?", - "compose_form.poll.add_option": "添加选项", "compose_form.poll.duration": "投票期限", "compose_form.poll.multiple": "多选", "compose_form.poll.option_placeholder": "选项 {number}", - "compose_form.poll.remove_option": "删除此选项", "compose_form.poll.single": "单选", "compose_form.poll.switch_to_multiple": "将投票改为多选", "compose_form.poll.switch_to_single": "将投票改为单选", @@ -279,6 +277,12 @@ "follow_request.authorize": "同意", "follow_request.reject": "拒绝", "follow_requests.unlocked_explanation": "尽管你没有锁嘟,但是 {domain} 的工作人员认为你也许会想手动审核审核这些账号的关注请求。", + "follow_suggestions.curated_suggestion": "主编推荐", + "follow_suggestions.dismiss": "不再显示", + "follow_suggestions.personalized_suggestion": "个性化建议", + "follow_suggestions.popular_suggestion": "热门建议", + "follow_suggestions.view_all": "查看全部", + "follow_suggestions.who_to_follow": "推荐关注", "followed_tags": "关注的话题标签", "footer.about": "关于", "footer.directory": "用户目录", @@ -305,13 +309,9 @@ "hashtag.follow": "关注话题标签", "hashtag.unfollow": "取消关注话题标签", "hashtags.and_other": "… 和另外 {count, plural, other {# 个话题}}", - "home.actions.go_to_explore": "查看热门话题", - "home.actions.go_to_suggestions": "寻找要关注的人", "home.column_settings.basic": "基本设置", "home.column_settings.show_reblogs": "显示转嘟", "home.column_settings.show_replies": "显示回复", - "home.explore_prompt.body": "你的主页动态会推送一系列关注的话题标签和用户,以及转发的嘟文。如果你觉得过于清净,不妨试一下:", - "home.explore_prompt.title": "这是你在 Mastodon 的主页。", "home.hide_announcements": "隐藏公告", "home.pending_critical_update.body": "请尽快更新您的 Mastodon 服务器!", "home.pending_critical_update.link": "查看更新", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 5890c4df4b..c1a69591ff 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "你的用戶狀態沒有{locked},任何人都能立即關注你,然後看到「只有關注者能看」的文章。", "compose_form.lock_disclaimer.lock": "鎖定", "compose_form.placeholder": "你在想甚麼?", - "compose_form.poll.add_option": "新增選項", "compose_form.poll.duration": "投票期限", "compose_form.poll.multiple": "多選", "compose_form.poll.option_placeholder": "選項 {number}", - "compose_form.poll.remove_option": "移除此選項", "compose_form.poll.single": "選擇一個", "compose_form.poll.switch_to_multiple": "變更投票為允許多個選項", "compose_form.poll.switch_to_single": "變更投票為限定單一選項", @@ -279,6 +277,12 @@ "follow_request.authorize": "批准", "follow_request.reject": "拒絕", "follow_requests.unlocked_explanation": "即使您的帳號未上鎖,{domain} 的工作人員認為您可能會想手動審核來自這些帳號的追蹤請求。", + "follow_suggestions.curated_suggestion": "編輯推薦", + "follow_suggestions.dismiss": "不再顯示", + "follow_suggestions.personalized_suggestion": "個人化推薦", + "follow_suggestions.popular_suggestion": "熱門推薦", + "follow_suggestions.view_all": "查看所有", + "follow_suggestions.who_to_follow": "追蹤對象", "followed_tags": "已追蹤標籤", "footer.about": "關於", "footer.directory": "個人檔案目錄", @@ -305,13 +309,9 @@ "hashtag.follow": "追蹤主題標籤", "hashtag.unfollow": "取消追蹤主題標籤", "hashtags.and_other": "…及{count, plural, other {其他 # 個}}", - "home.actions.go_to_explore": "即時熱門話題", - "home.actions.go_to_suggestions": "尋找追蹤對象", "home.column_settings.basic": "基本", "home.column_settings.show_reblogs": "顯示被轉推的文章", "home.column_settings.show_replies": "顯示回應文章", - "home.explore_prompt.body": "你的首頁時間軸將顯示來自你追蹤的標籤、使用者及他們轉推的帖文。如果時間軸感覺太安靜,你可以考慮:", - "home.explore_prompt.title": "這是你在 Mastodon 中的主頁。", "home.hide_announcements": "隱藏公告", "home.pending_critical_update.body": "請盡快更新你的 Mastodon 伺服器!", "home.pending_critical_update.link": "查看更新", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index c365e67e07..d83b523d1e 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -145,11 +145,9 @@ "compose_form.lock_disclaimer": "您的帳號尚未 {locked}。任何人皆能跟隨您並看到您設定成只對跟隨者顯示的嘟文。", "compose_form.lock_disclaimer.lock": "上鎖", "compose_form.placeholder": "正在想些什麼嗎?", - "compose_form.poll.add_option": "新增選項", "compose_form.poll.duration": "投票期限", "compose_form.poll.multiple": "多選", "compose_form.poll.option_placeholder": "選項 {number}", - "compose_form.poll.remove_option": "移除此選項", "compose_form.poll.single": "選擇一個", "compose_form.poll.switch_to_multiple": "變更投票為允許多個選項", "compose_form.poll.switch_to_single": "變更投票為允許單一選項", @@ -279,6 +277,12 @@ "follow_request.authorize": "授權", "follow_request.reject": "拒絕", "follow_requests.unlocked_explanation": "即便您的帳號未被鎖定,{domain} 的管理員認為您可能想要自己審核這些帳號的跟隨請求。", + "follow_suggestions.curated_suggestion": "精選內容", + "follow_suggestions.dismiss": "不再顯示", + "follow_suggestions.personalized_suggestion": "個人化推薦", + "follow_suggestions.popular_suggestion": "熱門推薦", + "follow_suggestions.view_all": "檢視全部", + "follow_suggestions.who_to_follow": "推薦跟隨帳號", "followed_tags": "已跟隨主題標籤", "footer.about": "關於", "footer.directory": "個人檔案目錄", @@ -305,13 +309,9 @@ "hashtag.follow": "跟隨主題標籤", "hashtag.unfollow": "取消跟隨主題標籤", "hashtags.and_other": "…及其他 {count, plural, other {# 個}}", - "home.actions.go_to_explore": "看看發生什麼新鮮事", - "home.actions.go_to_suggestions": "尋找一些人來跟隨", "home.column_settings.basic": "基本設定", "home.column_settings.show_reblogs": "顯示轉嘟", "home.column_settings.show_replies": "顯示回覆", - "home.explore_prompt.body": "您的首頁時間軸將由您所跟隨之主題標籤、帳號以及其轉嘟所組成。若目前流速有點慢,您可以考慮以下幾點:", - "home.explore_prompt.title": "這是您於 Mastodon 的基地", "home.hide_announcements": "隱藏公告", "home.pending_critical_update.body": "請立即升級您的 Mastodon 伺服器!", "home.pending_critical_update.link": "檢視更新內容", diff --git a/config/locales/activerecord.eu.yml b/config/locales/activerecord.eu.yml index 818dab939c..a67c1403c5 100644 --- a/config/locales/activerecord.eu.yml +++ b/config/locales/activerecord.eu.yml @@ -19,7 +19,7 @@ eu: account: attributes: username: - invalid: letrak, zenbakiak eta gidoi baxuak besterik ez + invalid: letrak, zenbakiak eta azpimarrak soilik izan behar ditu reserved: erreserbatuta dago admin/webhook: attributes: diff --git a/config/locales/activerecord.fi.yml b/config/locales/activerecord.fi.yml index 93f338b5d5..feb4fbf4c5 100644 --- a/config/locales/activerecord.fi.yml +++ b/config/locales/activerecord.fi.yml @@ -4,7 +4,7 @@ fi: attributes: poll: expires_at: Määräaika - options: Valinnat + options: Vaihtoehdot user: agreement: Palvelusopimus email: Sähköpostiosoite @@ -36,7 +36,7 @@ fi: status: attributes: reblog: - taken: tila on jo olemassa + taken: tästä julkaisusta on jo tehty user: attributes: email: @@ -47,7 +47,7 @@ fi: user_role: attributes: permissions_as_keys: - dangerous: sisältää oikeudet, jotka eivät ole turvallisia perusroolille + dangerous: sisältää oikeuksia, jotka eivät ole turvallisia perusroolille elevated: ei voi sisältää oikeuksia, joita nykyisellä roolillasi ei ole own_role: ei voi muuttaa nykyisellä roolillasi position: diff --git a/config/locales/activerecord.lad.yml b/config/locales/activerecord.lad.yml index 71a63d1cd1..31e0223cca 100644 --- a/config/locales/activerecord.lad.yml +++ b/config/locales/activerecord.lad.yml @@ -11,7 +11,7 @@ lad: locale: Lingua password: Kod user/account: - username: Nombre de uzador + username: Nombre de utilizador user/invite_request: text: Razon errors: diff --git a/config/locales/af.yml b/config/locales/af.yml index 74d3495914..62c52fa493 100644 --- a/config/locales/af.yml +++ b/config/locales/af.yml @@ -2,7 +2,7 @@ af: about: contact_missing: Nie ingestel nie - contact_unavailable: NVT + contact_unavailable: n.v.t hosted_on: Mastodon gehuisves op %{domain} title: Aangaande accounts: @@ -23,13 +23,18 @@ af: account_moderation_notes: create: Los nota accounts: + email: E-pos + ip: IP location: local: Plaaslik moderation: silenced: Beperk + reset_password: Herstel wagwoord search: Soek silenced: Beperk action_logs: + action_types: + reset_password_user: Herstel Wagwoord actions: silence_account_html: "%{name} het %{target} se rekening beperk" deleted_account: geskrapte rekening @@ -97,6 +102,7 @@ af: auth: apply_for_account: Doen aansoek om ’n rekening logout: Teken uit + reset_password: Herstel wagwoord datetime: distance_in_words: about_x_hours: "%{count} uur" @@ -121,6 +127,8 @@ af: invalid: Hierdie uitnodiging is nie geldig nie title: Nooi ander login_activities: + authentication_methods: + password: wagwoord description_html: Indien jy onbekende aktiwiteite gewaar, oorweeg dit om jou wagwoord te verander en tweefaktorverifikasie te aktiveer. navigation: toggle_menu: Wisselkieslys diff --git a/config/locales/ar.yml b/config/locales/ar.yml index e6d653c674..0927fba0af 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -42,7 +42,7 @@ ar: add_email_domain_block: حظر نطاق البريد الإلكتروني هذا approve: صادِق عليه approved_msg: تمت الموافقة على تسجيل %{username} - are_you_sure: متأكد ؟ + are_you_sure: هل أنت متأكد؟ avatar: الصورة الرمزية by_domain: النطاق change_email: @@ -55,17 +55,17 @@ ar: change_role: changed_msg: تم تغيير بنجاح! label: تغيير الدور - no_role: لا رتب - title: تم تغيير الرتب ل %{username} + no_role: بلا دور + title: تغيير دور %{username} confirm: تأكيد confirmed: مؤكَّد confirming: التأكد custom: مخصص delete: حذف البيانات - deleted: تمت إزالته - demote: إنزال الرُتبة الوظيفية + deleted: محذوف + demote: إنزال الدور الوظيفي destroyed_msg: بيانات حساب %{username} الآن في قائمة الانتظار ليتم حذفها قريباً - disable: تعطيل + disable: تجميد disable_sign_in_token_auth: تعطيل مصادقة رمز البريد الإلكتروني disable_two_factor_authentication: تعطيل المصادقة بخطوتين disabled: معطَّل @@ -91,7 +91,7 @@ ar: local: المحلي remote: عن بُعد title: الموقع - login_status: وضع الدخول + login_status: حالة الولوج media_attachments: الوسائط المرفقة memorialize: تحويل الحساب إلى صفحة ذكرى memorialized: تذكاري @@ -203,10 +203,10 @@ ar: destroy_canonical_email_block: حذف نطاق للبريد destroy_custom_emoji: احذف الإيموجي المخصص destroy_domain_allow: حذف النطاق المسموح به - destroy_domain_block: حذف كتلة النطاق - destroy_email_domain_block: حذف نطاق بريد إلكتروني + destroy_domain_block: إزالة حظر النطاق + destroy_email_domain_block: حذف حظر نطاق بريد إلكتروني destroy_instance: تنظيف النطاق - destroy_ip_block: حذف قانون IP + destroy_ip_block: حذف قاعدة IP destroy_status: حذف المنشور destroy_unavailable_domain: حذف نطاق غير متوفر destroy_user_role: حذف الدور @@ -225,7 +225,7 @@ ar: reopen_report: إعادة فتح التقرير resend_user: إعادة إرسال بريد التأكيد reset_password_user: إعادة تعيين كلمة المرور - resolve_report: حل الشكوى + resolve_report: معالجة الشكوى sensitive_account: وضع علامة على الوسائط في حسابك على أنها حساسة silence_account: كتم الحساب suspend_account: تعليق الحساب @@ -236,14 +236,14 @@ ar: unsuspend_account: إلغاء تعليق الحساب update_announcement: تحديث الإعلان update_custom_emoji: تحديث الإيموجي المخصص - update_domain_block: تحديث كتلة النطاق + update_domain_block: تحديث حظر النطاق update_ip_block: تحديث قاعدة IP update_status: تحديث المنشور update_user_role: تحديث الدور actions: - approve_appeal_html: وافق %{name} على استئناف قرار الاعتدال من %{target} - approve_user_html: قبل %{name} تسجيل %{target} - assigned_to_self_report_html: قام %{name} بتعيين التقرير %{target} لأنفسهم + approve_appeal_html: وافق %{name} على استئناف الطعن بشأن قرار الإشراف من %{target} + approve_user_html: وافق %{name} على تسجيل %{target} + assigned_to_self_report_html: قام %{name} بإسناد التقرير %{target} لأنفسهم change_email_user_html: غيّر %{name} عنوان البريد الإلكتروني للمستخدم %{target} change_role_user_html: قام %{name} بإنشاء قاعدة للـIP %{target} confirm_user_html: "%{name} قد قام بتأكيد عنوان البريد الإلكتروني لـ %{target}" @@ -284,7 +284,7 @@ ar: reopen_report_html: قام %{name} بإعادة فتح الشكوى %{target} resend_user_html: "%{name} إعادة إرسال البريد الإلكتروني للتأكيد لـ %{target}" reset_password_user_html: قام %{name} بإعادة تعيين كلمة مرور المستخدم %{target} - resolve_report_html: قام %{name} بحل الشكوى %{target} + resolve_report_html: قام %{name} بمعالجة الشكوى %{target} sensitive_account_html: قام %{name} بوضع علامة حساس على محتوى %{target} silence_account_html: قام %{name} بكتم حساب %{target} suspend_account_html: قام %{name} بتعليق حساب %{target} @@ -299,7 +299,7 @@ ar: update_ip_block_html: قام %{name} بإنشاء قاعدة للـIP %{target} update_status_html: قام %{name} بتحديث منشور من %{target} update_user_role_html: "%{name} تغيير رتبه %{target}" - deleted_account: احذف الحساب + deleted_account: حذف الحساب empty: لم يتم العثور على سجلات. filter_by_action: تصفية بحسب الإجراء filter_by_user: تصفية حسب المستخدم @@ -309,14 +309,14 @@ ar: edit: title: تعديل الإعلان empty: لم يتم العثور على أية إعلانات. - live: على المباشر + live: حي new: create: إنشاء إعلان title: إعلان جديد publish: نشر published_msg: تم نشر الإعلان بنجاح! scheduled_for: بُرمِج على %{time} - scheduled_msg: تمت جدولة نشر الإعلان! + scheduled_msg: تمت برمجة نشر الإعلان! title: الإعلانات unpublish: إلغاء النشر unpublished_msg: تم إلغاء نشر الإعلان بنجاح! @@ -390,8 +390,8 @@ ar: other: "%{count} مستخدماً قيدَ الانتظار" two: "%{count} مستخدمان قيدَ الانتظار" zero: "%{count} مستخدمٍ قيدَ الانتظار" - resolved_reports: تقارير تم حلها - software: البرنامج + resolved_reports: تقارير تم معالجتها + software: البرمجيات sources: مصادر التسجيل space: المساحة المستخدَمة title: لوح المراقبة @@ -453,6 +453,7 @@ ar: view: عرض كتلة النطاق email_domain_blocks: add_new: إضافة + allow_registrations_with_approval: السماح بالتسجيلات وإنشاء الحسابات بعد الموافقة attempts_over_week: few: "%{count} محاولات تسجيل في آخر أسبوع" many: "%{count} محاولات تسجيل في آخر أسبوع" @@ -645,8 +646,8 @@ ar: actions_description_remote_html: حدّد الإجراءات التي يتعين اتخاذها لحل هذا التقرير. هذا سيؤثر فقط على كيفية اتصال خادمك بهذا الحساب البعيد والتعامل مع محتوياته. add_to_report: أضف المزيد إلى التقرير are_you_sure: هل أنت متأكد ؟ - assign_to_self: عين لي - assigned: تعين رئيس + assign_to_self: اسنده لي + assigned: المشرف المُسنَد by_target_domain: نطاق الحساب المبلّغ عنه cancel: إلغاء category: الفئة @@ -659,14 +660,15 @@ ar: created_at: ذكرت delete_and_resolve: احذف المنشورات forwarded: أُعيد توجيهه + forwarded_replies_explanation: هذا التقرير من مستخدم عن بُعد وحول محتوى عن بُعد. تم تحويله إليك لأن المحتوى المُبلَغ عنه هو ردّ على أحد مستخدميك. forwarded_to: أُعيد توجيهه إلى %{domain} - mark_as_resolved: اعتبار الشكوى كمحلولة + mark_as_resolved: اعتبار الشكوى كمعالَجة mark_as_sensitive: تعيينه كمنشور حساس - mark_as_unresolved: علم كغير محلولة + mark_as_unresolved: وضع علامة لم يتم معالجتها no_one_assigned: لا أحد notes: create: اضف ملاحظة - create_and_resolve: الحل مع ملاحظة + create_and_resolve: معالجة مرفوقة بملاحظة create_and_unresolve: إعادة فتح مع ملاحظة delete: حذف placeholder: قم بوصف الإجراءات التي تم اتخاذها أو أي تحديثات أخرى ذات علاقة... @@ -680,7 +682,7 @@ ar: reported_account: حساب مُبلّغ عنه reported_by: أبلغ عنه من طرف resolved: معالجة - resolved_msg: تم حل تقرير بنجاح! + resolved_msg: تمت معالجة الشكوى بنجاح! skip_to_actions: تخطي إلى الإجراءات status: الحالة statuses: المحتوى المبلغ عنه @@ -1116,6 +1118,9 @@ ar: clicking_this_link: اضغط على هذا الرابط login_link: تسجيل الدخول proceed_to_login_html: يمكنكَ الآن الاستمرار إلى %{login_link}. + redirect_to_app_html: كان من المفترض إعادة توجيهك إلى تطبيق %{app_name}. إن لم يحدث ذلك، حاول %{clicking_this_link} أو العودة يدويًا إلى التطبيق. + registration_complete: اكتمل تسجيل حسابك على %{domain} الآن! + welcome_title: أهلاً بك، %{name}! wrong_email_hint: إذا كان عنوان البريد الإلكتروني هذا غير صحيح، يمكنك تغييره في إعدادات الحساب. delete_account: احذف الحساب delete_account_html: إن كنت ترغب في حذف حسابك يُمكنك المواصلة هنا. سوف يُطلَبُ منك التأكيد قبل الحذف. @@ -1177,6 +1182,7 @@ ar: functional: حسابك يعمل بشكل كامل. pending: إن طلبك قيد المراجعة من قبل فريقنا. قد يستغرق هذا بعض الوقت. سوف تتلقى بريدا إلكترونيا إذا تمت الموافقة على طلبك. redirecting_to: حسابك غير نشط لأنه تم تحويله حاليا إلى %{acct}. + self_destruct: نظرًا لإغلاق %{domain}، ستحصل فقط على وصول محدود إلى حسابك. view_strikes: عرض العقوبات السابقة المُطَبَّقة ضد حسابك too_fast: تم إرسال النموذج بسرعة كبيرة، حاول مرة أخرى. use_security_key: استخدام مفتاح الأمان @@ -1354,6 +1360,20 @@ ar: title: الرسائل المصفّاة generic: all: الكل + all_items_on_page_selected_html: + few: تم تحديد كافة العناصر التي يبلغ عددها %{count} في هذه الصفحة. + many: تم تحديد كافة العناصر التي يبلغ عددها %{count} في هذه الصفحة. + one: تم تحديد كافة العناصر التي يبلغ عددها %{count} في هذه الصفحة. + other: تم تحديد كافة العناصر التي يبلغ عددها %{count} في هذه الصفحة. + two: تم تحديد كافة العناصر التي يبلغ عددها %{count} في هذه الصفحة. + zero: تم تحديد كافة العناصر التي يبلغ عددها %{count} في هذه الصفحة. + all_matching_items_selected_html: + few: تم تحديد كافة العناصر التي تشمل عددها %{count} في هذه الصفحة. + many: تم تحديد كافة العناصر التي تشمل عددها %{count} في هذه الصفحة. + one: تم تحديد كافة العناصر التي تشمل عددها %{count} في هذه الصفحة. + other: تم تحديد كافة العناصر التي تشمل عددها %{count} في هذه الصفحة. + two: تم تحديد كافة العناصر التي تشمل عددها %{count} في هذه الصفحة. + zero: تم تحديد كافة العناصر التي تشمل عددها %{count} في هذه الصفحة. cancel: إلغاء changes_saved_msg: تم حفظ التعديلات بنجاح! confirm: تأكيد @@ -1363,6 +1383,13 @@ ar: none: لا شيء order_by: ترتيب بحسب save_changes: حفظ التغييرات + select_all_matching_items: + few: حدد كافة العناصر الـ %{count} المطابقة لبحثك. + many: حدد كافة العناصر الـ %{count} المطابقة لبحثك. + one: حدد العنصر المطابق لبحثك. + other: حدد كافة العناصر الـ %{count} المطابقة لبحثك. + two: حدد العنصران المطابقان لبحثك. + zero: حدد كافة العناصر الـ %{count} المطابقة لبحثك. today: اليوم validation_errors: few: هناك شيء ما ليس على ما يرام! يُرجى مراجعة الأخطاء الـ %{count} أدناه @@ -1441,6 +1468,7 @@ ar: '86400': يوم واحد expires_in_prompt: أبدا generate: توليد + invalid: هذه الدعوة غير صالحة invited_by: 'تمت دعوتك من طرف:' max_uses: few: "%{count} استخدامات" @@ -1622,6 +1650,9 @@ ar: errors: limit_reached: تم بلوغ الحد الأقصى لردود الفعل المختلفة unrecognized_emoji: لم يتم التعرف على أنه إيموجي + redirects: + prompt: إن كنت واثق من هذا الرابط، انقر عليه للمتابعة. + title: إنّك مغادر %{instance}. relationships: activity: نشاط الحساب confirm_follow_selected_followers: هل أنت متأكد من أنك تريد متابعة المتابِعين المحددين؟ @@ -1657,6 +1688,9 @@ ar: over_daily_limit: لقد تجاوزتَ حد الـ %{limit} منشورات مُبَرمَجة مسموح بها اليوم over_total_limit: لقد بلغت حد الـ %{limit} مِن المنشورات المبرمَجة too_soon: يجب أن يكون تاريخ البرمجة في المستقبَل + self_destruct: + lead_html: للأسف، سيتم إغلاق %{domain} بشكل دائم. إذا كان لديك حساب هناك، لن تكون قادرًا على الاستمرار في استخدامه، غير أنه يمكنك طلب نسخة احتياطية لبياناتك. + title: سيُغلق هذا الخادم أبوابه sessions: activity: آخر نشاط browser: المتصفح @@ -1681,6 +1715,7 @@ ar: unknown_browser: متصفح غير معروف weibo: وايبو current_session: الجلسة الحالية + date: التاريخ description: "%{browser} على %{platform}" explanation: ها هي قائمة مُتصفِّحات الويب التي تستخدِم حاليًا حساب ماستدون الخاص بك. ip: عنوان الإيبي @@ -1871,16 +1906,27 @@ ar: webauthn: مفاتيح الأمان user_mailer: appeal_approved: + action: إعدادات الحساب explanation: تمت الموافقة على استئناف السجل ضد حسابك في %{strike_date} الذي قدمته في %{appeal_date}. حسابك مرة أخرى في حالة جيدة. subject: تم قبول طعنك الذي قدمته بتاريخ %{date} + subtitle: حسابك في وضع جيد مجدّدا. title: تم قبول طعنك appeal_rejected: explanation: تم رفض استئناف السجل ضد حسابك في %{strike_date} الذي قدمته في %{appeal_date}. subject: تم رفض طعنك الذي قدمته بتاريخ %{date} + subtitle: تم رفض طعنك. title: رُفض الاستئناف backup_ready: + explanation: لقد قمت بطلب نسخة كاملة لحسابك على ماستدون. + extra: إنه الآن جاهز للتحميل! subject: نسخة بيانات حسابك جاهزة للتنزيل title: المغادرة بأرشيف الحساب + failed_2fa: + details: 'فيما يلي تفاصيل محاولة تسجيل الدخول:' + explanation: حاول شخص ما تسجيل الدخول إلى حسابك ولكنه قدم عامل مصادقة ثانٍ غير صالح. + further_actions_html: إن لم تكن أنت، نوصي بأن تقوم بـ %{action} على الفور، حيث قد يكون الحساب قد تعرض للاختراق. + subject: فشل المصادقة على العامل الثاني + title: فشل المصادقة على العامل الثاني suspicious_sign_in: change_password: غيّر كلمتك السرية details: 'فيما يلي تفاصيل تسجيل الدخول:' @@ -1934,7 +1980,7 @@ ar: go_to_sso_account_settings: انتقل إلى إعدادات حساب مزود الهوية الخاص بك invalid_otp_token: رمز المصادقة بخطوتين غير صالح otp_lost_help_html: إن فقدتَهُما ، يمكنك الاتصال بـ %{email} - rate_limited: عدد محاولات التحقق كثير جدًا، يرجى المحاولة مرة أخرى لاحقًا. + rate_limited: عدد محاولات المصادقة كثير جداً، حاول مرة أخرى لاحقاً. seamless_external_login: لقد قمت بتسجيل الدخول عبر خدمة خارجية، إنّ إعدادات الكلمة السرية و البريد الإلكتروني غير متوفرة. signed_in_as: 'تم تسجيل دخولك بصفة:' verification: diff --git a/config/locales/be.yml b/config/locales/be.yml index c0ed043f8e..9bfc46e2a7 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -88,7 +88,7 @@ be: remote: Адлеглы title: Месцазнаходжанне login_status: Стан уваходу - media_attachments: Медыя дадаткі + media_attachments: Медыя далучэнні memorialize: Даданае да памяці memorialized: Запомненае memorialized_msg: Уліковы запіс %{username} ператвораны ў мемарыяльны @@ -522,7 +522,7 @@ be: instance_followers_measure: нашых падпісчыкаў там instance_follows_measure: іх падпісчыкаў тут instance_languages_dimension: Папулярныя мовы - instance_media_attachments_measure: захаваныя медыя-ўкладанні + instance_media_attachments_measure: захаваныя медыя-далучэнні instance_reports_measure: справаздач пра іх instance_statuses_measure: захаваных паведамленняў delivery: @@ -555,7 +555,7 @@ be: total_followed_by_them: Іхнія падпіскі total_followed_by_us: Нашыя падпіскі total_reported: Скаргі на іх - total_storage: Медыя дадаткі + total_storage: Медыя далучэнні totals_time_period_hint_html: Паказаныя агульныя значэнні ніжэй уключаюць даныя за ўвесь час. unknown_instance: На дадзены момант няма запісаў аб гэтым дамене на гэтым серверы. invites: @@ -1462,9 +1462,9 @@ be: title: Адпісацца media_attachments: validations: - images_and_video: Немагчыма прымацаваць відэа да допісу, які ўжо змяшчае выявы - not_ready: Няможна дадаць файлы, апрацоўка якіх яшчэ не скончылася. Паспрабуйце яшчэ раз праз хвілінку! - too_many: Няможна дадаць больш за 4 файлы + images_and_video: Немагчыма далучыць відэа да допісу, які ўжо змяшчае выявы + not_ready: Няможна далучыць файлы, апрацоўка якіх яшчэ не скончылася. Паспрабуйце яшчэ раз праз хвілінку! + too_many: Немагчыма далучыць больш за 4 файлы migrations: acct: Перамешчана ў cancel: Скасаваць перанакіраванне @@ -1598,6 +1598,9 @@ be: errors: limit_reached: Дасягнуты ліміт розных рэакцый unrecognized_emoji: невядомае эмодзі + redirects: + prompt: Калі вы давяраеце гэтай спасылцы, націсніце на яе, каб працягнуць. + title: Вы пакідаеце %{instance}. relationships: activity: Актыўнасць ул. запісу confirm_follow_selected_followers: Вы ўпэўнены, што жадаеце падпісацца на выбраных падпісчыкаў? @@ -1660,6 +1663,7 @@ be: unknown_browser: Невядомы браўзер weibo: Weibo current_session: Бягучая сесія + date: Дата description: "%{browser} на %{platform}" explanation: Гэта вэб-браўзэры, з якіх выкананы ўваход у ваш уліковы запіс Mastodon. ip: IP @@ -1776,7 +1780,7 @@ be: interaction_exceptions_explanation: Звярніце ўвагу, што няма гарантыі выдалення пастоў, калі колькасць іх упадабанняў ці пашырэннняў упадзе ніжэй за ліміт, хаця некалі гэтая колькасць перавышала яго. keep_direct: Захаваць асабістыя паведамленні keep_direct_hint: Не выдаляць асабістыя паведамленні - keep_media: Захоўваць допісы з медыя дадаткамі + keep_media: Захоўваць допісы з далучаным медыя keep_media_hint: Не выдаляць вашыя допісы, якія ўтрымліваюць медыя keep_pinned: Захаваць замацаваныя допісы keep_pinned_hint: Не выдаляць вашыя замацаваныя допісы @@ -1838,16 +1842,27 @@ be: webauthn: Ключы бяспекі user_mailer: appeal_approved: + action: Налады ўліковага запісу explanation: Апеляцыя на папярэджанне супраць вашага ўліковага запісу ад %{strike_date}, якую вы падалі %{appeal_date}, была ўхвалена. Ваш уліковы запіс зноў на добрым рахунку. subject: Вашая апеляцыя ад %{date} была ўхваленая + subtitle: Ваш уліковы запіс зноў знаходзіцца ў добрым стане. title: Абскарджанне ўхвалена appeal_rejected: explanation: Апеляцыя на папярэджанне супраць вашага ўліковага запісу ад %{strike_date}, якую вы падалі %{appeal_date}, была адхілена. subject: Вашая апеляцыя ад %{date} была адхіленая + subtitle: Ваша абскарджанне было адхілена. title: Абскарджанне адхілена backup_ready: + explanation: Вы запыталі поўную рэзервовую копію вашага ўліковага запісу Mastodon. + extra: Цяпер ён гатовы да загрузкі! subject: Ваш архіў гатовы да спампавання title: Ваш архіў можна спампаваць + failed_2fa: + details: 'Вось падрабязнасці ўваходу:' + explanation: Хтосьці спрабаваў увайсці ў ваш уліковы запіс, але ўвёў няправільны другі фактар аўтэнтыфікацыі. + further_actions_html: Калі гэта не вы, мы рэкамендуем неадкладна %{action}, бо ён можа быць скампраметаваны. + subject: Збой аўтэнтыфікацыі па другім фактары + title: Няўдалая аўтэнтыфікацыя па другім фактары suspicious_sign_in: change_password: змяніць свой пароль details: 'Вось падрабязнасці ўваходу:' @@ -1901,6 +1916,7 @@ be: go_to_sso_account_settings: Перайдзіце ў налады ідэнтыфікацыі вашага ўліковага запісу invalid_otp_token: Няправільны код двухфактарнай аўтэнтыфікацыі otp_lost_help_html: Калі вы страцілі доступ да абодвух, вы можаце скарыстацца %{email} + rate_limited: Занадта шмат спробаў аўтэнтыфікацыі, паспрабуйце пазней. seamless_external_login: Вы ўвайшлі праз знешні сэрвіс, таму налады пароля і эл. пошты недаступныя. signed_in_as: 'Увайшлі як:' verification: diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 9c8456a05f..b1229ac906 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -7,7 +7,7 @@ bg: hosted_on: Mastodon е разположен на хост %{domain} title: Относно accounts: - follow: Последвай + follow: Последване followers: one: Последовател other: Последователи @@ -28,7 +28,7 @@ bg: title: Извършване на модериращо действие за %{acct} account_moderation_notes: create: Оставяне на бележка - created_msg: Бележката за модерация е създадена успешно! + created_msg: Успешно създадена бележка за модерация! destroyed_msg: Успешно унищожена бележка за модериране! accounts: add_email_domain_block: Блокиране на домейн на имейл @@ -757,7 +757,7 @@ bg: follow_recommendations: Препоръки за следване preamble: За потребители, които са нови и не познават никого в Mastodon, показването на интересно съдържание е ключово. Настройте начина, по който различни функции по откриване на съдържание работят на вашия сървър. profile_directory: Указател на профила - public_timelines: Публични часови оси + public_timelines: Публични хронологии publish_discovered_servers: Публикуване на откритите сървъри publish_statistics: Публикуване на статистиката title: Откриване @@ -804,7 +804,7 @@ bg: remove_from_report: Премахване от доклада report: Докладване deleted: Изтрито - favourites: Любими + favourites: Харесвани history: История на версиите in_reply_to: Отговор до language: Език @@ -840,7 +840,7 @@ bg: elasticsearch_health_yellow: message_html: Клъстерът Elasticsearch е нездрав (жълто състояние), може да искате да разследвате причината elasticsearch_index_mismatch: - message_html: Картографиранията на показатели в Elasticsearch са остарели. Пуснете tootctl search deploy --only=%{value} + message_html: Речниковите съответствия в Elasticsearch са с изтекла давност. Пуснете tootctl search deploy --only=%{value} elasticsearch_preset: action: Преглед на документацията message_html: Вашият клъстер в Elasticsearch има повече от един възел, но Mastodon не е настроен да ги употребява. @@ -905,14 +905,14 @@ bg: statuses: allow: Позволяване на публикацията allow_account: Позволяване на автора - description_html: Има публикации, за които сървърът ви знае, че в момента са често споделяни или означавани като любими. Биха помогнали на вашите нови и завръщащи се потребители да открият повече хора за последване. Никоя от публикациите няма да бъде показана публично, докато не одобрите автора и докато авторът не позволи акаунтът му да бъде предлган на другите. Може още да позволявате или отхвърляте отделни публикации. + description_html: Това са публикации, за които сървърът ви знае, че са често споделяни или харесвани в момента. Това може да помогне на вашите нови и завръщащи се потребители да открият повече хора за следване. Никоя от публикациите няма да бъде показана публично, докато не одобрите автора и докато авторът не позволи акаунтът му да бъде предлган на другите. Също така можете да позволявате или отхвърляте отделни публикации. disallow: Забраняване на публикацията disallow_account: Забрана на автора no_status_selected: Няма промяна, тъй като няма избрана нашумяла публикация not_discoverable: Авторът не е избрал да е откриваем shared_by: - one: Споделено или сложено веднъж в любими - other: Споделено или сложено в любими %{friendly_count} пъти + one: Споделено или харесано веднъж + other: Споделено или харесано %{friendly_count} пъти title: Налагащи се публикации tags: current_score: Текущ резултат %{score} @@ -1009,7 +1009,7 @@ bg: remove: Разкачвне на псевдонима appearance: advanced_web_interface: Разширен уеб интерфейс - advanced_web_interface_hint: 'Ако желаете да се възползвате от пълната ширина на своя екран, разширеният уеб интерфейс ще ви позволи да настроите най-различни колони, за да виждате едновременно множество информация: Начало, известия, федериран инфопоток, множество списъци и хаштагове.' + advanced_web_interface_hint: 'Ако желаете да се възползвате от цялата ширина на своя екран, разширеният уеб интерфейс ще ви позволи да настроите няколко различни колони, за да виждате едновременно различна информация: Начало, известия, федерирана хронология, множество списъци и хаштагове.' animations_and_accessibility: Анимация и достъпност confirmation_dialogs: Диалогов прозорец за потвърждение discovery: Откриване @@ -1231,13 +1231,13 @@ bg: add_new: Добавяне на нов errors: limit: Вече достигнахте максималния брой хаштагове - hint_html: "Какво представляват актуалните хаштагове? Те се показват ясно на вашия публичен профил и позволяват на хората да преглеждат публичните ви публикации с тези хаштагове. Те са чудесен инструмент, с който може да се следи творческа работа или дългосрочни проекти." + hint_html: "Изтъкнете най-важните си хаштагове на профила? Чудесен инструмент за организиране на вашите творби и дългосрочни проекти, изтъкнатите хаштагове са отчетливо видими на вашия профил и позволяват лесен достъп до вашите собствени публикации." filters: contexts: account: Профили home: Начало и списъци notifications: Известия - public: Публични инфопотоци + public: Публични хронологии thread: Разговори edit: add_keyword: Добавяне на ключова дума @@ -1400,11 +1400,11 @@ bg: confirmation_html: Наистина ли искате да спрете абонамента от получаването на %{type} за Mastodon в %{domain} към имейла си при %{email}? Може винаги пак да се абонирате от своите настройки за известяване по е-поща. emails: notification_emails: - favourite: е-писма с любими известия + favourite: е-писма за харесани известия follow: е-писма с известия за последване follow_request: е-писма със заявки за следване mention: е-писма с известия за споменаване - reblog: е-писма с известия за подсилване + reblog: е-писма с известия за раздуване resubscribe_html: Ако погрешка сте спрели абонамента, то може пак да се абонирате от своите настройки за известия по е-поща. success_html: Повече няма да получавате %{type} за Mastodon в %{domain} към имейла си при %{email}. title: Спиране на абонамента @@ -1459,9 +1459,9 @@ bg: sign_up: subject: "%{name} се регистрира" favourite: - body: 'Вашата публикация беше добавена в любими от %{name}:' + body: 'Вашата публикация беше харесана от %{name}:' subject: "%{name} хареса вашата публикация" - title: Нова любима публикация + title: Нова харесана публикация follow: body: "%{name} те последва!" subject: "%{name} те последва" @@ -1479,9 +1479,9 @@ bg: poll: subject: Анкетата от %{name} приключи reblog: - body: 'Ваша публикация беше подсилена от %{name}:' - subject: "%{name} подсили ваша публикация" - title: Ново подсилване + body: 'Ваша публикация беше раздута от %{name}:' + subject: "%{name} разду ваша публикация" + title: Ново раздуване status: subject: "%{name} току-що публикува" update: @@ -1530,7 +1530,7 @@ bg: preferences: other: Друго posting_defaults: По подразбиране за публикации - public_timelines: Публични инфопотоци + public_timelines: Публични хронологии privacy: hint_html: "Персонализирайте как искате профилът ви и публикациите ви да се намират. Разнообразие от функции в Mastodon може да ви помогнат да достигнете по-широка публика, когато е включено. Отделете малко време, за да прегледате тези настройки, за да се уверите, че отговарят на вашия случай на употреба." privacy: Поверителност @@ -1668,7 +1668,7 @@ bg: video: one: "%{count} видео" other: "%{count} видеозаписа" - boosted_from_html: Подсилено от %{acct_link} + boosted_from_html: Раздуто от %{acct_link} content_warning: 'Предупреждение за съдържание: %{warning}' default_language: Същият като езика на интерфейса disallowed_hashtags: @@ -1680,10 +1680,10 @@ bg: open_in_web: Отвори в уеб over_character_limit: прехвърлен лимит от %{max} символа pin_errors: - direct: Публикациите, които са видими само за споменати потребители не може да се закачат + direct: Публикациите, които са видими само за потребители споменати в тях, не могат да бъдат закачани limit: Вече сте закачили максималния брой публикации - ownership: Публикация на някого другиго не може да се закачи - reblog: Подсилване не може да се закача + ownership: Публикация на някого другиго не може да бъде закачена + reblog: Раздуване не може да бъде закачано poll: total_people: one: "%{count} човек" @@ -1704,27 +1704,27 @@ bg: public: Публично public_long: Всеки ги вижда unlisted: Публично, но не показвай в публичния канал - unlisted_long: Всеки ги вижда, но са скрити от публичните инфопотоци + unlisted_long: Всеки ги вижда, но са скрити от публичните хронологии statuses_cleanup: enabled: Автоматично изтриване на стари публикации enabled_hint: От само себе си трие публикациите ви, щом достигнат указания възрастов праг, освен ако не съвпаднат с някое от изключенията долу exceptions: Изключения explanation: Тъй като изтриването на публикации е скъпа операция, това се прави бавно във времето, когато сървърът иначе не е зает. Поради тази причина публикациите ви може да се изтрият известно време след като достигнат възрастовия праг. ignore_favs: Игнориране на харесвания - ignore_reblogs: Игнориране на подсилвания + ignore_reblogs: Игнориране на раздувания interaction_exceptions: Изключения въз основа на взаимодействия - interaction_exceptions_explanation: Забележете, че няма гаранция, че публикацията ще се изтрият, ако паднат под прага на брой маркирания като любими/подсилвания, след като са го надвишили. + interaction_exceptions_explanation: Забележете, че няма гаранция, че публикациите ще бъдат изтрити, ако паднат под прага на брой маркирания като харесвани или раздувани, след като са го надвишили. keep_direct: Запазване на директните съобщения keep_direct_hint: Директните ви съобщения не се изтриват keep_media: Задържане на публикации с прикачена мултимедия keep_media_hint: Не изтрива публикации, които съдържат мултимедийни прикачвания - keep_pinned: Запазване на закачените публикации - keep_pinned_hint: Не изтрива закачени публикации + keep_pinned: Задържане на закачените публикации + keep_pinned_hint: Не изтрива закачените ви публикации keep_polls: Запазване на запитванията keep_polls_hint: Не изтрива запитвания keep_self_bookmark: Запазване на публикации, добавени в отметки keep_self_bookmark_hint: Не се изтриват ваши публикации, ако сте ги добавили към отметки - keep_self_fav: Запазване на публикации, които сте маркирали като любими + keep_self_fav: Задържане на публикации, които сте харесали keep_self_fav_hint: Не се изтриват публикации, които сте харесали min_age: '1209600': 2 седмици @@ -1736,10 +1736,10 @@ bg: '63113904': 2 години '7889238': 3 месеца min_age_label: Възрастов праг - min_favs: Запазване на публикации, маркирани като любими поне - min_favs_hint: Не се изтриват никоя от публикациите ви, маркирани като любими поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от броя маркирания като любими - min_reblogs: Запазване на публикации с поне толкова споделяния - min_reblogs_hint: Не се изтриват ваши публикации, споделени поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от техния брой споделяния + min_favs: Запазване на харесани публикации поне + min_favs_hint: Не се изтрива никоя от публикациите, които сте харесали поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от броя харесвания + min_reblogs: Запазване на публикации с поне толкова раздувания + min_reblogs_hint: Не се изтриват ваши публикации, споделени поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от броя на техния раздувания stream_entries: sensitive_content: Деликатно съдържание strikes: @@ -1842,7 +1842,7 @@ bg: edit_profile_step: Може да настроите профила си, качвайки снимката на профила, променяйки показваното си име и други неща. Може да се включите за преглед на нови последователи преди да бъдат позволени да ви последват. explanation: Ето няколко стъпки за начало final_action: Начало на публикуване - final_step: 'Публикувайте! Дори без последователи, вашите публични публикации ще бъдат видени от други, например в местния инфопоток или под хаштагове. Не забравяйте да се представите с хаштаг #introductions.' + final_step: 'Публикувайте! Дори без да имате последователи, вашите публични публикации ще бъдат видени от други, например в местната хронология или под хаштагове. Не забравяйте да се представите с хаштаг #introductions.' full_handle: Пълното ви име full_handle_hint: Ето какво бихте казали на приятелите си, за да могат да ви изпращат съобщения или да ви последват от друг сървър. subject: Добре дошли в Mastodon diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 768dd3e0c8..5085942fb7 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -1650,6 +1650,9 @@ cy: errors: limit_reached: Cyrhaeddwyd terfyn y gwahanol adweithiau unrecognized_emoji: nid yw'n emoji cydnabyddedig + redirects: + prompt: Os ydych chi'n ymddiried yn y ddolen hon, cliciwch arni i barhau. + title: Rydych chi'n gadael %{instance}. relationships: activity: Gweithgareddau cyfrif confirm_follow_selected_followers: Ydych chi'n siŵr eich bod am ddilyn y dilynwyr a ddewiswyd? @@ -1911,13 +1914,19 @@ cy: appeal_rejected: explanation: Mae apêl y rhybudd yn erbyn eich cyfrif ar %{strike_date} a gyflwynwyd gennych ar %{appeal_date} wedi'i gwrthod. subject: Mae eich apêl ar %{date} wedi'i gwrthod - subtitle: Mae eich apêl wedi'i gwrthod + subtitle: Mae eich apêl wedi'i gwrthod. title: Mae'r apêl wedi'i gwrthod backup_ready: explanation: Rydych wedi gofyn am gopi wrth gefn llawn o'ch cyfrif Mastodon. extra: Mae nawr yn barod i'w lwytho i lawr! subject: Mae eich archif yn barod i'w lawrlwytho title: Allfudo archif + failed_2fa: + details: 'Dyma fanylion yr ymgais i fewngofnodi:' + explanation: Mae rhywun wedi ceisio mewngofnodi i'ch cyfrif ond wedi darparu ail ffactor dilysu annilys. + further_actions_html: Os nad chi oedd hwn, rydym yn argymell eich bod yn %{action} ar unwaith oherwydd gall fod o dan fygythiad. + subject: Methiant dilysu ail ffactor + title: Wedi methu dilysu ail ffactor suspicious_sign_in: change_password: newidiwch eich cyfrinair details: 'Dyma fanylion y mewngofnodi:' @@ -1971,6 +1980,7 @@ cy: go_to_sso_account_settings: Ewch i osodiadau cyfrif eich darparwr hunaniaeth invalid_otp_token: Côd dau-ffactor annilys otp_lost_help_html: Os colloch chi fynediad i'r ddau, mae modd i chi gysylltu a %{email} + rate_limited: Gormod o geisiadau dilysu, ceisiwch eto yn nes ymlaen. seamless_external_login: Yr ydych wedi'ch mewngofnodi drwy wasanaeth allanol, felly nid yw gosodiadau cyfrinair ac e-bost ar gael. signed_in_as: 'Wedi mewngofnodi fel:' verification: diff --git a/config/locales/devise.ar.yml b/config/locales/devise.ar.yml index 28e721e667..4e6adf42e5 100644 --- a/config/locales/devise.ar.yml +++ b/config/locales/devise.ar.yml @@ -47,14 +47,19 @@ ar: subject: 'ماستدون: تعليمات استعادة كلمة المرور' title: إعادة تعيين كلمة السر two_factor_disabled: + explanation: أصبح الولوج الآن ممكنا باستخدام عنوان البريد الإلكتروني وكلمة المرور فقط. subject: 'ماستدون: نظام المصادقة بخطوتين مُعطّل' + subtitle: تم تعطيل المصادقة بعاملين لحسابك. title: إنّ 2FA معطّل two_factor_enabled: + explanation: سيتعين استخدام رمز يتم إنشاؤه بواسطة تطبيق TOTP المقترن لتسجيل الدخول. subject: 'ماستدون: تم تفعيل نظام المصادقة بخطوتين' - title: إنّ 2FA نشِط + subtitle: تم تفعيل المصادقة الثنائية لحسابك. + title: الاستيثاق الثنائي 2FA مُفعّل two_factor_recovery_codes_changed: explanation: لقد تم إلغاء رموز الاسترداد السابقة وأنشئت رموز جديدة. subject: 'ماستدون: تم إعادة توليد رموز استرجاع المصادقة بخطوتين' + subtitle: تم إبطال رموز الاسترداد السابقة وإنشاء رموز جديدة. title: تم استبدال رموز استرجاع 2FA unlock_instructions: subject: 'ماستدون: تعليمات فك القفل' @@ -68,9 +73,13 @@ ar: subject: 'ماستدون: تم حذف مفتاح الأمان' title: تم حذف أحد مفاتيح الأمان الخاصة بك webauthn_disabled: + explanation: تم تعطيل المصادقة باستخدام مفاتيح الأمان لحسابك. + extra: يمكن الآن تسجيل الدخول باستخدام الرمز المميز الذي تم إنشاؤه بواسطة تطبيق TOTP المقترن فقط. subject: 'ماستدون: الاستيثاق مع مفاتيح الأمان معطلة' title: مفاتيح الأمان معطلة webauthn_enabled: + explanation: تم تمكين مصادقة مفتاح الأمان لحسابك. + extra: يمكن الآن استخدام مفتاح الأمان الخاص بك لتسجيل الدخول. subject: 'ماستدون: تم تفعيل نظام استيثاق مفتاح الأمان' title: مفاتيح الأمان مفعلة omniauth_callbacks: diff --git a/config/locales/devise.be.yml b/config/locales/devise.be.yml index 8679275c20..18785d16ab 100644 --- a/config/locales/devise.be.yml +++ b/config/locales/devise.be.yml @@ -47,14 +47,19 @@ be: subject: 'Mastodon: Інструкцыі па скіданню пароля' title: Скіданне пароля two_factor_disabled: + explanation: Уваход у сістэму цяпер магчымы толькі з выкарыстаннем адраса электроннай пошты і пароля. subject: 'Mastodon: двухфактарная аўтэнтыфікацыя адключана' + subtitle: Двухфактарная аўтэнтыфікацыя для вашага ўліковага запісу была адключаная. title: двухэтапнае спраўджанне адключана two_factor_enabled: + explanation: Для ўваходу ў сістэму патрабуецца токен, згенераваны спалучанай праграмай TOTP. subject: 'Mastodon: двухфактарная аўтэнтыфікацыя ўключана' + subtitle: Для вашага ўліковага запісу была ўключаная двухфактарная аўтэнтыфікацыя. title: двухэтапнае спраўджанне уключана two_factor_recovery_codes_changed: explanation: Папярэднія коды аднаўлення былі ануляваны і створаны новыя. subject: 'Mastodon: створаны новыя коды аднаўлення' + subtitle: Папярэднія коды аднаўлення былі ануляваны і замест іх створаны новыя. title: 2FA коды аднаўлення былі зменены unlock_instructions: subject: 'Mastodon: інструкцыя па разблакаванні' @@ -68,9 +73,13 @@ be: subject: 'Mastodon: ключ бяспекі выдалены' title: Адзін з вашых ключоў бяспекі быў выдалены webauthn_disabled: + explanation: Аўтэнтыфікацыя з дапамогай ключоў бяспекі была адключаная для вашага ўліковага запісу. + extra: Зараз уваход у сістэму магчымы толькі з выкарыстаннем токена, згенераванага спалучанай праграмай TOTP. subject: 'Mastodon: Аўтэнтыфікацыя з дапамогай ключоў бяспекі адключана' title: Ключы бяспекі адключаны webauthn_enabled: + explanation: Для вашага ўліковага запісу ўключана аўтэнтыфікацыя па ключу бяспекі. + extra: Цяпер ваш ключ бяспекі можна выкарыстоўваць для ўваходу ў сістэму. subject: 'Mastodon: Аўтэнтыфікацыя праз ключ бяспекі была ўключана' title: Ключы бяспекі ўключаны omniauth_callbacks: diff --git a/config/locales/devise.en-GB.yml b/config/locales/devise.en-GB.yml index 8fa02bbd4a..823be9aa6c 100644 --- a/config/locales/devise.en-GB.yml +++ b/config/locales/devise.en-GB.yml @@ -47,14 +47,19 @@ en-GB: subject: 'Mastodon: Reset password instructions' title: Password reset two_factor_disabled: + explanation: Login is now possible using only e-mail address and password. subject: 'Mastodon: Two-factor authentication disabled' + subtitle: Two-factor authentication for your account has been disabled. title: 2FA disabled two_factor_enabled: + explanation: A token generated by the paired TOTP app will be required for login. subject: 'Mastodon: Two-factor authentication enabled' + subtitle: Two-factor authentication has been enabled for your account. title: 2FA enabled two_factor_recovery_codes_changed: explanation: The previous recovery codes have been invalidated and new ones generated. subject: 'Mastodon: Two-factor recovery codes re-generated' + subtitle: The previous recovery codes have been invalidated and new ones generated. title: 2FA recovery codes changed unlock_instructions: subject: 'Mastodon: Unlock instructions' @@ -68,9 +73,13 @@ en-GB: subject: 'Mastodon: Security key deleted' title: One of your security keys has been deleted webauthn_disabled: + explanation: Authentication with security keys has been disabled for your account. + extra: Login is now possible using only the token generated by the paired TOTP app. subject: 'Mastodon: Authentication with security keys disabled' title: Security keys disabled webauthn_enabled: + explanation: Security key authentication has been enabled for your account. + extra: Your security key can now be used for login. subject: 'Mastodon: Security key authentication enabled' title: Security keys enabled omniauth_callbacks: diff --git a/config/locales/devise.fi.yml b/config/locales/devise.fi.yml index 22fd7ff47b..66616d16b1 100644 --- a/config/locales/devise.fi.yml +++ b/config/locales/devise.fi.yml @@ -13,32 +13,32 @@ fi: locked: Tilisi on lukittu. not_found_in_database: Virheellinen %{authentication_keys} tai salasana. pending: Tilisi on vielä tarkistamatta. - timeout: Istuntosi on umpeutunut. Jatka kirjautumalla uudelleen sisään. + timeout: Istuntosi on vanhentunut. Jatkaaksesi käyttöä, kirjaudu uudelleen. unauthenticated: Sinun on kirjauduttava tai rekisteröidyttävä ennen kuin voit jatkaa. unconfirmed: Vahvista sähköpostiosoitteesi, ennen kuin jatkat. mailer: confirmation_instructions: action: Vahvista sähköpostiosoite action_with_app: Vahvista ja palaa %{app} - explanation: Olet luonut tilin palvelimelle %{host} käyttäen tätä sähköpostiosoitetta. Olet painalluksen päässä tilin aktivoinnista. Jos et luonut tiliä itse, voit jättää tämän viestin huomiotta. + explanation: Olet luonut käyttäjätilin palvelimelle %{host} tätä sähköpostiosoitetta käyttäen. Olet painalluksen päässä tilin aktivoinnista. Jos et luonut tiliä itse, voit jättää tämän viestin huomiotta. explanation_when_pending: Teit hakemuksen kutsusta palvelimelle %{host} tällä sähköpostiosoitteella. Kun olet vahvistanut sähköpostiosoitteesi, tarkistamme hakemuksesi. Voit kirjautua sisään muuttaaksesi hakemuksen sisältöä tai poistaaksesi tilin, mutta et voi käyttää suurinta osaa toiminnallisuudesta ennen kuin hakemuksesi on hyväksytty. Jos hakemuksesi hylätään, tietosi poistetaan eikä sinulta tarvita enempää toimia. Jos sinä et tehnyt hakemusta, voit jättää tämän viestin huomiotta. extra_html: Tutustu myös palvelimen sääntöihin ja palveluehtoihimme. subject: 'Mastodon: Vahvistusohjeet instanssille %{instance}' title: Vahvista sähköpostiosoite email_changed: explanation: 'Tilin sähköpostiosoitteeksi vaihdetaan:' - extra: Jos et vaihtanut sähköpostiosoitettasi, joku muu on todennäköisesti päässyt käyttämään tiliäsi. Vaihda salasanasi viipymättä, tai ota yhteys palvelimen ylläpitäjään, jos et pääse kirjautumaan tilillesi. + extra: Jos et vaihtanut sähköpostiosoitettasi, joku muu on todennäköisesti päässyt käyttämään tiliäsi. Vaihda salasanasi viipymättä, tai ota yhteys palvelimen ylläpitoon, ellet pääse sisään käyttäjätilillesi. subject: 'Mastodon: Sähköpostiosoite vaihdettu' title: Uusi sähköpostiosoite password_change: explanation: Tilisi salasana on vaihdettu. - extra: Jos et vaihtanut salasanaasi, joku muu on todennäköisesti päässyt käyttämään tiliäsi. Vaihda salasanasi viipymättä, tai ota yhteys palvelimen ylläpitäjään, jos et pääse kirjautumaan tilillesi. + extra: Ellet vaihtanut salasanaasi, joku muu on todennäköisesti päässyt käyttäjätilillesi. Vaihda salasanasi viipymättä, tai ota yhteys palvelimen ylläpitoon, jos kirjautuminen käyttäjätilillesi ei onnistu. subject: 'Mastodon: salasana vaihdettu' title: Salasana vaihdettu reconfirmation_instructions: explanation: Vahvista uusi sähköpostiosoite, niin muutos astuu voimaan. extra: Jos et tehnyt muutosta itse, voit jättää tämän viestin huomiotta. Mastodon-tilin sähköpostiosoitetta ei vaihdeta, ennen kuin klikkaat yllä olevaa linkkiä. - subject: 'Mastodon: vahvista sähköpostiosoite: %{instance}' + subject: 'Mastodon: Vahvista sähköpostiosoite palvelimelle %{instance}' title: Vahvista sähköpostiosoite reset_password_instructions: action: Vaihda salasana @@ -55,27 +55,27 @@ fi: explanation: Sisäänkirjautuminen edellyttää liitetyn TOTP-sovelluksen luomaa aikarajattua kertatunnuslukua. subject: 'Mastodon: kaksivaiheinen todennus otettu käyttöön' subtitle: Kaksivaiheinen todennus on otettu käyttöön tilillesi. - title: 2-vaiheinen todennus käytössä + title: Kaksivaiheinen todennus käytössä two_factor_recovery_codes_changed: - explanation: Uudet palautuskoodit on nyt luotu ja vanhat on mitätöity. - subject: 'Mastodon: kaksivaiheisen todennuksen palautuskoodit luotiin uudelleen' - subtitle: Aiemmat palautuskoodit on mitätöity ja tilalle on luotu uudet. + explanation: Uudet palautuskoodit on nyt luotu, ja vanhat mitätöity. + subject: 'Mastodon: Kaksivaihetodennuksen palautuskoodit luotiin uudelleen' + subtitle: Aiemmat palautuskoodit on mitätöity, ja korvaavat uudet koodit on luotu. title: 2-vaiheisen todennuksen palautuskoodit vaihdettiin unlock_instructions: subject: 'Mastodon: lukituksen poistamisen ohjeet' webauthn_credential: added: explanation: Seuraava suojausavain on lisätty tilillesi - subject: 'Mastodon: uusi suojausavain' + subject: 'Mastodon: Uusi suojausavain' title: Uusi suojausavain on lisätty deleted: explanation: Seuraava suojausavain on poistettu tililtäsi - subject: 'Mastodon: suojausavain poistettu' + subject: 'Mastodon: Suojausavain poistettu' title: Yksi suojausavaimistasi on poistettu webauthn_disabled: - explanation: Turva-avaimin kirjautuminen on poistettu käytöstä tililtäsi. - extra: Sisäänkirjautuminen on nyt mahdollista pelkällä palveluun liitetyn TOTP-sovelluksen luomalla aikarajoitteisella kertatunnusluvulla. - subject: 'Mastodon: Todennus suojausavaimilla poistettu käytöstä' + explanation: Turva-avaimin kirjautuminen tilillesi on kytketty pois käytöstä. + extra: Olet nyt mahdollistanut sisäänkirjautumisen käyttäjätilillesi pelkästään palveluun liitetyn TOTP-sovelluksen luomalla aikarajoitteisella kertatunnusluvulla. + subject: 'Mastodon: Turva-avaintodennus on poistettu käytöstä' title: Suojausavaimet poistettu käytöstä webauthn_enabled: explanation: Turva-avaimella kirjautuminen on otettu käyttöön tilillesi. @@ -86,20 +86,20 @@ fi: failure: Tunnistautuminen lähteestä %{kind} ei onnistunut, koska "%{reason}". success: Tunnistautuminen tililtä %{kind} onnistui. passwords: - no_token: Tälle sivulle pääsee vain salasananvaihtoviestin kautta. Jos tiedät tulevasi salasananvaihtoviestin kautta, varmista, että käytät koko viestissä mainittua URL-osoitetta. - send_instructions: Jos sähköpostiosoite on tietokannassamme, siihen lähetetään pian linkki salasanan vaihtoon. Jos et saa viestiä, tarkista roskapostikansio. - send_paranoid_instructions: Jos sähköpostiosoite on tietokannassamme, siihen lähetetään pian linkki salasanan vaihtoon. Jos et saa viestiä, tarkista roskapostikansio. + no_token: Tälle sivulle pääsee vain salasananvaihtoviestin kautta. Jos tiedät tulevasi sen kautta, varmista, että käytät viestissä mainittua URL-osoitetta kokonaisuudessaan. + send_instructions: Jos sähköpostiosoite on tietokannassamme, siihen lähetetään pian viesti, jossa on linkki salasanan vaihtamiseksi. Mikäli viestiä ei kuulu, tarkista myös roskapostisi. + send_paranoid_instructions: Jos sähköpostiosoite on tietokannassamme, siihen lähetetään pian viesti, jossa on linkki salasanan vaihtamiseksi. Mikäli viestiä ei kuulu, tarkista myös roskapostisi. updated: Salasanan vaihto onnistui. Olet nyt kirjautunut sisään. updated_not_active: Salasanan vaihto onnistui. registrations: - destroyed: Tilisi on poistettu. Näkemiin ja tervetuloa uudelleen! + destroyed: Tilisi on poistettu. Näkemiin ja tervetuloa uudelleen. signed_up: Tervetuloa! Rekisteröityminen onnistui. - signed_up_but_inactive: Rekisteröityminen onnistui. Emme kuitenkaan voi kirjata sinua sisään, sillä tiliäsi ei ole vielä aktivoitu. - signed_up_but_locked: Rekisteröityminen onnistui. Emme kuitenkaan voi kirjata sinua sisään, sillä tilisi on lukittu. - signed_up_but_pending: Sähköpostiosoitteeseesi on lähetetty vahvistuslinkki. Kun olet klikannut linkkiä, tarkistamme hakemuksesi. Sinulle tiedotetaan jos se hyväksytään. - signed_up_but_unconfirmed: Sähköpostiosoitteeseesi on lähetetty vahvistuslinkki. Aktivoi tili seuraamalla linkkiä. Jos et saanut viestiä, tarkista roskapostikansio. - update_needs_confirmation: Tilin päivitys onnistui, mutta uusi sähköpostiosoite on vahvistettava. Tarkista sähköpostisi ja vahvista uusi sähköpostiosoite seuraamalla vahvistuslinkkiä. Jos et saanut viestiä, tarkista roskapostikansio. - updated: Tilin päivitys onnistui. + signed_up_but_inactive: Rekisteröityminen onnistui. Emme kuitenkaan voi kirjata sinua sisään, sillä käyttäjätiliäsi ei ole vielä aktivoitu. + signed_up_but_locked: Rekisteröityminen onnistui. Emme kuitenkaan voi kirjata sinua sisään, sillä käyttäjätilisi on lukittuna. + signed_up_but_pending: Sähköpostiosoitteeseesi on lähetetty vahvistuslinkki. Sen avattuasi tarkistamme hakemuksesi, ja ilmoitamme hyväksynnästä. + signed_up_but_unconfirmed: Sähköpostiosoitteeseesi on lähetetty vahvistuslinkki. Aktivoi käyttäjätilisi seuraamalla linkkiä. Mikäli sitä ei kuulu, tarkista myös roskapostisi. + update_needs_confirmation: Tilin päivitys onnistui. Uusi sähköpostiosoite on kuitenkin vahvistettava. Tarkista saapuneet viestisi, ja vahvista uusi sähköpostiosoitteesi vahvistuslinkkiä seuraten. Mikäli viestiä ei kuulu, tarkista myös roskapostisi. + updated: Käyttäjätilisi tietojen päivittäminen onnistui. sessions: already_signed_out: Uloskirjautuminen onnistui. signed_in: Sisäänkirjautuminen onnistui. diff --git a/config/locales/devise.ga.yml b/config/locales/devise.ga.yml index 0949e140d1..6e6bd0a013 100644 --- a/config/locales/devise.ga.yml +++ b/config/locales/devise.ga.yml @@ -1,9 +1,23 @@ --- ga: devise: + confirmations: + confirmed: D'éirigh le deimhniú do ríomhphost. + send_instructions: Gheobhaidh tú r-phost go gairid ina mbeidh treoracha faoi conas do sheoladh r-phost a dheimhniú. Féach i d'fhillteán turscair mura bhfuair tú an r-phost seo. + send_paranoid_instructions: Más ann do do r-phost inár mbonneagar, gheobhaidh tú r-phost i gceann cúpla nóiméad faoi conas do sheoladh r-phost a dheimhniú. Féach i d'fhillteán turscair mura bhfuair tú an r-phost seo. failure: + already_authenticated: Tá tú sínithe isteach cheana. + inactive: Níl do chuntas gníomhachtaithe fós. + invalid: "%{authentication_keys} nó pasfhocal neamhbhailí." + last_attempt: Tá iarracht amháin eile agat sula gcuirtear do chuntas faoi ghlas. locked: Tá do chuntas faoi ghlas. + pending: Tá do chuntas fós faoi athbhreithniú. + unauthenticated: Ní mór duit lógáil isteach nó síniú suas roimh leanúint leat. + unconfirmed: Caithfidh tú do r-phost a dheimhniú roimh leanúint leat. mailer: + confirmation_instructions: + action: Deimhnigh seoladh r-phost + action_with_app: Deimhnigh agus fill ar %{app} email_changed: title: Seoladh ríomhphoist nua password_change: diff --git a/config/locales/devise.ia.yml b/config/locales/devise.ia.yml index c45994160c..c07e75feff 100644 --- a/config/locales/devise.ia.yml +++ b/config/locales/devise.ia.yml @@ -11,16 +11,33 @@ ia: email_changed: title: Nove adresse de e-mail password_change: + subject: 'Mastodon: Contrasigno cambiate' title: Contrasigno cambiate reconfirmation_instructions: + explanation: Confirma le nove adresse pro cambiar tu email. title: Verificar adresse de e-mail reset_password_instructions: action: Cambiar contrasigno + subject: 'Mastodon: Instructiones pro reinitialisar le contrasigno' title: Reinitialisar contrasigno two_factor_disabled: title: 2FA disactivate two_factor_enabled: title: 2FA activate + unlock_instructions: + subject: 'Mastodon: Instructiones pro disblocar' + webauthn_credential: + added: + explanation: Le sequente clave de securitate esseva addite a tu conto + subject: 'Mastodon: Nove clave de securitate' + title: Un nove clave de securitate esseva addite + deleted: + explanation: Le sequente clave de securitate esseva delite de tu conto + subject: 'Mastodon: Clave de securitate delite' + webauthn_disabled: + title: Claves de securitate disactivate + webauthn_enabled: + title: Claves de securitate activate registrations: updated: Tu conto ha essite actualisate con successo. unlocks: diff --git a/config/locales/devise.lad.yml b/config/locales/devise.lad.yml index 2b6b8aafb1..88099f48c4 100644 --- a/config/locales/devise.lad.yml +++ b/config/locales/devise.lad.yml @@ -3,7 +3,7 @@ lad: devise: confirmations: confirmed: Tu adreso de posta elektronika tyene sido konfirmado korektamente. - send_instructions: Risiviras una posta elektronika kon instruksyones para konfirmar tu adreso de posta elektronika en unos minutos. Por favor, komprova tu kuti de spam si no risivites esta posta elektronika. + send_instructions: Risiviras una mesaj de posta elektronika kon instruksyones para konfirmar tu adreso de posta elektronika en unos minutos. Por favor, komprova tu kuti de spam si no risivites esta posta elektronika. send_paranoid_instructions: Si tu adreso de posta elektronika existe en muestra baza de datos, risiviras una posta elektronika kon instruksyones sobre komo konfirmar tu adreso de posta elektronika en pokos minutos. failure: already_authenticated: Ya te konektates kon tu kuento. @@ -12,7 +12,7 @@ lad: last_attempt: Aprova una vez mas antes de ke tu kuento sea blokado. locked: Tu kuento esta blokado. not_found_in_database: Inkorekto %{authentication_keys} o kod. - pending: Tu ainda esta basho revizyon. + pending: Tu kuento ainda esta basho revizyon. timeout: Tu sesyon tiene kadukado. Por favor konektate kon tu kuento de muevo para kontinuar. unauthenticated: Kale konektarte kon tu kuento o enregistrarte antes de kontinuar. unconfirmed: Tyenes ke konfirmar tu adreso de posta elektronika antes de kontinuar. @@ -45,17 +45,17 @@ lad: explanation: Solisitates un muevo kod para tu kuento. extra: Si no solisitates esto, por favor ignora esta posta. Tu kod no trokara asta ke tu aksedas al atadijo arriva i kriyes un muevo. subject: 'Mastodon: Instruksyones para reinisyar kod' - title: Reinisyar kod + title: Reinisya kod two_factor_disabled: explanation: Agora puedes konektarte kon tu kuento uzando solo tu adreso de posta i kod. subject: 'Mastodon: La autentifikasyon de dos pasos esta inkapasitada' subtitle: La autentifikasyon en dos pasos para tu kuento tiene sido inkapasitada. - title: Autentifikasyon 2FA inkapasitada + title: Autentifikasyon de dos pasos inkapasitada two_factor_enabled: explanation: Se rekierira un token djenerado por la aplikasyon TOTP konektada para entrar. subject: 'Mastodon: La autentifikasyon de dos pasos esta kapasitada' subtitle: La autentifikasyon de dos pasos para tu kuento tiene sido kapasitada. - title: Autentifikasyon 2FA aktivada + title: Autentifikasyon de dos pasos aktivada two_factor_recovery_codes_changed: explanation: Los kodiches de rekuperasyon previos tienen sido invalidados i se djeneraron kodiches muevos. subject: 'Mastodon: Los kodiches de rekuperasyon de dos pasos fueron rejenerados' @@ -69,9 +69,9 @@ lad: subject: 'Mastodon: Mueva yave de sigurita' title: Se tiene adjustado una mueva yave de sigurita deleted: - explanation: La sigiente yave de sigurita a sido supremida de tu kuento + explanation: La sigiente yave de sigurita a sido suprimida de tu kuento subject: 'Mastodon: Yave de sigurita supremida' - title: Una de tus yaves de sigurita tiene sido supremida + title: Una de tus yaves de sigurita tiene sido suprimida webauthn_disabled: explanation: La autentifikasyon kon yaves de sigurita tiene sido inkapasitada para tu kuento. extra: Agora el inisyo de sesyon solo es posivle utilizando el token djeenerado por la aplikasyon TOTP konektada. @@ -89,7 +89,7 @@ lad: no_token: No puedes akseder a esta pajina si no vienes dizde una posta elektronika de restablesimyento de kod. Si vienes dizde una posta elektronika de restablesimyento de kod, por favor asigurate de utilizar el URL kompleto embiado. send_instructions: Si tu adreso de posta elektronika existe en muestra baza de datos, risiviras un atadijo de rekuperasyon de kod en tu adreso de posta elektronika en pokos minutos. Por favor, komprova tu kuti de posta spam si no risives akeya posta elektronika. send_paranoid_instructions: Si tu adreso de posta elektronika existe en muestra baza de datos, risiviras un atadijo de rekuperasyon de kod en tu adreso de posta elektronika en pokos minutos. Por favor, komprova tu kuti de posta no deseado si no risives akeya posta elektronika. - updated: Tu kod a sido trokado kon reusho. Tinenes entrado en kuento. + updated: Tu kod a sido trokado kon reusho. Tyenes entrado en kuento. updated_not_active: Tu kod se tiene trokado kon reusho. registrations: destroyed: Tu kuento a sido efasado kon reusho. Asperamos verte de muevo pronto. diff --git a/config/locales/devise.nl.yml b/config/locales/devise.nl.yml index 33d777e2cc..0aaf376f7f 100644 --- a/config/locales/devise.nl.yml +++ b/config/locales/devise.nl.yml @@ -74,7 +74,7 @@ nl: title: Een van jouw beveiligingssleutels is verwijderd webauthn_disabled: explanation: Verificatie met beveiligingssleutels is uitgeschakeld voor je account. - extra: Het is nu alleen mogelijk om te te loggen met een door de authenticatie-app gegeneerde toegangscode. + extra: Het is nu alleen mogelijk om in te loggen met een door de authenticatie-app gegeneerde toegangscode. subject: 'Mastodon: Verificatie met beveiligingssleutels is uitgeschakeld' title: Beveiligingssleutels uitgeschakeld webauthn_enabled: diff --git a/config/locales/devise.uk.yml b/config/locales/devise.uk.yml index 55429b3c76..3b3883fa9c 100644 --- a/config/locales/devise.uk.yml +++ b/config/locales/devise.uk.yml @@ -47,14 +47,19 @@ uk: subject: 'Mastodon: Інструкції для скидання паролю' title: Скидання пароля two_factor_disabled: + explanation: Вхід можливий лише за допомогою адреси електронної пошти та пароля. subject: 'Mastodon: двофакторну авторизацію вимкнено' + subtitle: Двоетапна перевірка для вашого облікового запису вимкнена. title: Двофакторна автентифікація вимкнена two_factor_enabled: + explanation: Для входу необхідний токен створений пов'язаним застосунком TOTP. subject: 'Mastodon: двофакторну авторизацію увімкнено' + subtitle: Двоетапна перевірка увімкнена для вашого облікового запису. title: Двофакторна автентифікація увімкнена two_factor_recovery_codes_changed: explanation: Попередні коди відновлення були анульовані і генеруються нові. subject: 'Mastodon: коди двофакторного відновлення повторно згенеровано' + subtitle: Попередні коди відновлення анульовані та генеруються нові. title: Коди двофакторного відновлення змінено unlock_instructions: subject: 'Mastodon: Інструкції для розблокування' @@ -68,9 +73,13 @@ uk: subject: 'Mastodon: Ключ безпеки видалено' title: Один з ваших ключів безпеки було видалено webauthn_disabled: + explanation: Автентифікація з ключами безпеки була вимкнена для вашого облікового запису. + extra: Тепер можна ввійти використовуючи лише токен, згенерований застосунком TOTP. subject: 'Mastodon: Аутентифікація за допомогою ключів безпеки вимкнена' title: Ключі безпеки вимкнуто webauthn_enabled: + explanation: Вхід за допомогою ключів безпеки ввімкнено для вашого облікового запису. + extra: Тепер ви можете використовувати ваш ключ безпеки для входу. subject: 'Mastodon: Авторизація ключа безпеки увімкнена' title: Ключі безпеки увімкнено omniauth_callbacks: diff --git a/config/locales/doorkeeper.be.yml b/config/locales/doorkeeper.be.yml index 4524dd707e..748cbeafa1 100644 --- a/config/locales/doorkeeper.be.yml +++ b/config/locales/doorkeeper.be.yml @@ -132,7 +132,7 @@ be: follow: Падпіскі, ігнараванне і блакіроўка follows: Падпіскі lists: Спісы - media: Мультымедыйныя ўкладанні + media: Мультымедыйныя далучэнні mutes: Ігнараваныя notifications: Апавяшчэнні push: Push-апавяшчэнні diff --git a/config/locales/doorkeeper.ia.yml b/config/locales/doorkeeper.ia.yml index d689354f61..e7e6f03cdb 100644 --- a/config/locales/doorkeeper.ia.yml +++ b/config/locales/doorkeeper.ia.yml @@ -34,6 +34,7 @@ ia: confirmations: revoke: Es tu secur? index: + never_used: Nunquam usate scopes: Permissiones title: Tu applicationes autorisate flash: @@ -53,6 +54,7 @@ ia: conversations: Conversationes favourites: Favoritos lists: Listas + mutes: Silentiates notifications: Notificationes push: Notificationes push search: Cercar @@ -63,15 +65,23 @@ ia: applications: Applicationes oauth2_provider: Fornitor OAuth2 scopes: + admin:read: leger tote le datos in le servitor + read: leger tote le datos de tu conto + read:accounts: vider informationes de conto read:favourites: vider tu favoritos + read:filters: vider tu filtros read:lists: vider tu listas read:notifications: vider tu notificationes + read:reports: vider tu reportos read:statuses: vider tote le messages write:accounts: modificar tu profilo write:blocks: blocar contos e dominios + write:conversations: silentiar e deler conversationes write:favourites: messages favorite write:filters: crear filtros + write:follows: sequer personas write:lists: crear listas write:media: incargar files de medios + write:mutes: silentiar personas e conversationes write:notifications: rader tu notificationes write:statuses: publicar messages diff --git a/config/locales/doorkeeper.lad.yml b/config/locales/doorkeeper.lad.yml index f52bac39c2..b2c140b9c2 100644 --- a/config/locales/doorkeeper.lad.yml +++ b/config/locales/doorkeeper.lad.yml @@ -130,7 +130,7 @@ lad: favourites: Favoritos filters: Filtros follow: Segimientos, silensiasyones i blokos - follows: Segimientos + follows: Segimyentos lists: Listas media: Aneksos de multimedia mutes: Silensiasyones diff --git a/config/locales/doorkeeper.tr.yml b/config/locales/doorkeeper.tr.yml index fce8c646e8..2dde5f6322 100644 --- a/config/locales/doorkeeper.tr.yml +++ b/config/locales/doorkeeper.tr.yml @@ -15,7 +15,7 @@ tr: fragment_present: parça içeremez. invalid_uri: geçerli bir URL olmalıdır. relative_uri: mutlaka bir URL olmalıdır. - secured_uri: HTTPS/SSL URL olması gerekir. + secured_uri: HTTPS/SSL URI olması gerekir. doorkeeper: applications: buttons: @@ -84,7 +84,7 @@ tr: credential_flow_not_configured: Kaynak Sahibi Parolası Kimlik Bilgileri akışı Doorkeeper.configure.resource_owner_from_credentials 'ın yapılandırılmamış olması nedeniyle başarısız oldu. invalid_client: İstemcinin kimlik doğrulaması bilinmeyen istemci, istemci kimlik doğrulamasının dahil olmaması veya desteklenmeyen kimlik doğrulama yöntemi nedeniyle başarısız oldu. invalid_grant: Sağlanan yetkilendirme izni geçersiz, süresi dolmuş, iptal edilmiş, yetkilendirme isteğinde kullanılan yönlendirme URL'siyle eşleşmiyor veya başka bir istemciye verilmiş. - invalid_redirect_uri: Dahil edilmiş yönlendirme URL'si geçersiz. + invalid_redirect_uri: Dahil edilmiş yönlendirme uri'si geçersiz. invalid_request: missing_param: 'Gerekli parametre eksik: %{value}.' request_not_authorized: İsteğin yetkilendirilmesi gerekiyor. İsteği yetkilendirmek için gereken parametre eksik veya geçersiz. @@ -128,7 +128,7 @@ tr: conversations: Sohbetler crypto: Uçtan uca şifreleme favourites: Favoriler - filters: Filtreler + filters: Süzgeçler follow: Takipler, Sessizler ve Engeller follows: Takip edilenler lists: Listeler @@ -161,7 +161,7 @@ tr: admin:write:domain_allows: alan adı izinleri için denetleme eylemleri gerçekleştirin admin:write:domain_blocks: alan adı engellemeleri için denetleme eylemleri gerçekleştirin admin:write:email_domain_blocks: e-posta alan adı engellemeleri için denetleme eylemleri gerçekleştirin - admin:write:ip_blocks: IP engellemeleri için denetleme eylemleri gerçekleştirin + admin:write:ip_blocks: IP blokları üzerinde moderasyon eylemleri gerçekleştir admin:write:reports: raporlarda denetleme eylemleri gerçekleştirin crypto: uçtan uca şifreleme kullan follow: hesap ilişkilerini değiştirin @@ -171,7 +171,7 @@ tr: read:blocks: engellemelerinizi görün read:bookmarks: yer imlerinizi görün read:favourites: favorilerinizi görün - read:filters: filtrelerinizi görün + read:filters: süzgeçlerinizi görün read:follows: takip ettiklerinizi görün read:lists: listelerinizi görün read:mutes: sessize aldıklarınızı görün diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index b11c6de11f..d4840c84e9 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -425,6 +425,7 @@ en-GB: view: View domain block email_domain_blocks: add_new: Add new + allow_registrations_with_approval: Allow registrations with approval attempts_over_week: one: "%{count} attempt over the last week" other: "%{count} sign-up attempts over the last week" @@ -1545,6 +1546,9 @@ en-GB: errors: limit_reached: Limit of different reactions reached unrecognized_emoji: is not a recognised emoji + redirects: + prompt: If you trust this link, click it to continue. + title: You are leaving %{instance}. relationships: activity: Account activity confirm_follow_selected_followers: Are you sure you want to follow selected followers? @@ -1607,6 +1611,7 @@ en-GB: unknown_browser: Unknown Browser weibo: Weibo current_session: Current session + date: Date description: "%{browser} on %{platform}" explanation: These are the web browsers currently logged in to your Mastodon account. ip: IP @@ -1773,16 +1778,27 @@ en-GB: webauthn: Security keys user_mailer: appeal_approved: + action: Account Settings explanation: The appeal of the strike against your account on %{strike_date} that you submitted on %{appeal_date} has been approved. Your account is once again in good standing. subject: Your appeal from %{date} has been approved + subtitle: Your account is once again in good standing. title: Appeal approved appeal_rejected: explanation: The appeal of the strike against your account on %{strike_date} that you submitted on %{appeal_date} has been rejected. subject: Your appeal from %{date} has been rejected + subtitle: Your appeal has been rejected. title: Appeal rejected backup_ready: + explanation: You requested a full backup of your Mastodon account. + extra: It's now ready for download! subject: Your archive is ready for download title: Archive takeout + failed_2fa: + details: 'Here are details of the sign-in attempt:' + explanation: Someone has tried to sign in to your account but provided an invalid second authentication factor. + further_actions_html: If this wasn't you, we recommend that you %{action} immediately as it may be compromised. + subject: Second factor authentication failure + title: Failed second factor authentication suspicious_sign_in: change_password: change your password details: 'Here are details of the login:' @@ -1836,6 +1852,7 @@ en-GB: go_to_sso_account_settings: Go to your identity provider's account settings invalid_otp_token: Invalid two-factor code otp_lost_help_html: If you lost access to both, you may get in touch with %{email} + rate_limited: Too many authentication attempts, try again later. seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available. signed_in_as: 'Logged in as:' verification: diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 4d228e98d4..a8b918a8fe 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -1548,7 +1548,7 @@ es-MX: unrecognized_emoji: no es un emoji conocido redirects: prompt: Si confías en este enlace, púlsalo para continuar. - title: Vas a salir de %{instance}. + title: Estás saliendo de %{instance}. relationships: activity: Actividad de la cuenta confirm_follow_selected_followers: "¿Estás seguro de que quieres seguir a las cuentas seleccionadas?" diff --git a/config/locales/et.yml b/config/locales/et.yml index f82ee6cb8f..c21ea0b971 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -1546,6 +1546,9 @@ et: errors: limit_reached: Jõutud on erinevate reaktsioonide limiidini unrecognized_emoji: ei ole tuntud emotikoon + redirects: + prompt: Kui te usaldate seda linki, klõpsake sellele, et jätkata. + title: Te lahkute %{instance}. relationships: activity: Konto tegevus confirm_follow_selected_followers: Oled kindel, et soovid jälgida valitud jälgijaid? diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 444d0e2c5f..7acccea006 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -336,7 +336,7 @@ eu: not_permitted: Ez daukazu ekintza hau burutzeko baimenik overwrite: Gainidatzi shortcode: Laster-kodea - shortcode_hint: Gutxienez 2 karaktere, alfanumerikoak eta azpimarra besterik ez + shortcode_hint: Gutxienez 2 karaktere, alfanumerikoak eta azpimarrak soilik title: Emoji pertsonalak uncategorized: Kategoriarik gabe unlist: Kendu zerrendatik @@ -1703,8 +1703,8 @@ eu: title: '%{name}: "%{quote}"' visibilities: direct: Zuzena - private: Jarraitzaileak besterik ez - private_long: Erakutsi jarraitzaileei besterik ez + private: Jarraitzaileak soilik + private_long: Erakutsi jarraitzaileei soilik public: Publikoa public_long: Edonork ikusi dezake unlisted: Zerrendatu gabea diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 856532f8f1..15f448bc91 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -387,7 +387,7 @@ fi: cancel: Peruuta confirm: Jäädytä permanent_action: Jäädytyksen kumoaminen ei palauta mitään tietoja tai suhteita. - preamble_html: Olet jäädyttämässä verkkotunnuksen %{domain} ja sen aliverkkotunnukset. + preamble_html: Olet jäädyttämässä verkkotunnuksen %{domain} aliverkkotunnuksineen. remove_all_data: Tämä toiminto poistaa palvelimeltasi kaiken sisällön, median ja profiilitiedot tämän palvelun tileiltä. stop_communication: Palvelimesi lopettaa viestinnän näiden palvelinten kanssa. title: Vahvista verkkotunnuksen %{domain} esto @@ -831,7 +831,7 @@ fi: suspend: "%{name} jäädytti käyttäjän %{target} tilin" appeal_approved: Valitti appeal_pending: Valitus vireillä - appeal_rejected: Muutoksenhaku hylättiin + appeal_rejected: Vetoomus hylättiin system_checks: database_schema_check: message_html: Tietokannan siirto on vireillä. Suorita ne varmistaaksesi, että sovellus toimii odotetulla tavalla @@ -1043,10 +1043,10 @@ fi: confirmations: awaiting_review: Sähköpostiosoitteesi on vahvistettu! Seuraavaksi palvelimen %{domain} ylläpito tarkistaa rekisteröitymisesi, ja saat lopuksi ilmoituksen sähköpostitse, jos tilisi hyväksytään! awaiting_review_title: Rekisteröitymisesi on tarkistettavana - clicking_this_link: tästä linkistä + clicking_this_link: napsauttaa tätä linkkiä login_link: kirjautumalla sisään proceed_to_login_html: Voit nyt jatkaa %{login_link}. - redirect_to_app_html: Sinun olisi pitänyt ohjautua sovellukseen %{app_name}. Jos näin ei tapahtunut, yritä avata se %{clicking_this_link} tai palaa sovellukseen manuaalisesti. + redirect_to_app_html: Sinun olisi pitänyt ohjautua sovellukseen %{app_name}. Jos näin ei tapahtunut, voit %{clicking_this_link} tai palata sovellukseen käsikäyttöisesti. registration_complete: Rekisteröitymisesi palvelimelle %{domain} on nyt valmis! welcome_title: Tervetuloa, %{name}! wrong_email_hint: Jos sähköpostiosoite ei ole oikein, voit muuttaa sen tilin asetuksista. @@ -1547,7 +1547,7 @@ fi: limit_reached: Erilaisten reaktioiden raja saavutettu unrecognized_emoji: ei ole tunnistettu emoji redirects: - prompt: Jos luotat tähän linkkiin, jatka napsauttamalla. + prompt: Mikäli luotat linkkiin, jatka napsauttaen sitä. title: Olet poistumassa palvelimelta %{instance}. relationships: activity: Tilin aktiivisuus @@ -1560,7 +1560,7 @@ fi: followers: Seuraajat following: Seuratut invited: Kutsutut - last_active: Viimeksi aktiivinen + last_active: Viimeksi aktiiviset most_recent: Viimeisimmät moved: Muuttaneet mutual: Seuraatte toisianne @@ -1794,11 +1794,11 @@ fi: subject: Arkisto on valmiina ladattavaksi title: Arkiston tallennus failed_2fa: - details: 'Tässä on tietoja kirjautumisyrityksestä:' - explanation: Joku on yrittänyt kirjautua tilillesi mutta on antanut virheellisen toisen vaiheen todennustekijän. + details: 'Sisäänkirjautumispyrkimyksen yksityiskohtaiset tiedot:' + explanation: Joku on yrittänyt kirjautua tilillesi antaen väärän toisen todennustunnisteen. further_actions_html: Jos se et ollut sinä, suosittelemme, että %{action} välittömästi, sillä se on saattanut vaarantua. subject: Kaksivaiheisen todennuksen virhe - title: Epäonnistunut kaksivaiheinen todennus + title: Kaksivaihekirjautumisen toinen vaihe epäonnistui suspicious_sign_in: change_password: vaihda salasanasi details: 'Tässä on tiedot kirjautumisesta:' @@ -1852,7 +1852,7 @@ fi: go_to_sso_account_settings: Avaa identiteettitarjoajasi tiliasetukset invalid_otp_token: Virheellinen kaksivaiheisen todentamisen koodi otp_lost_help_html: Jos sinulla ei ole pääsyä kumpaankaan, voit ottaa yhteyden osoitteeseen %{email} - rate_limited: Liian monta todennusyritystä. Yritä myöhemmin uudelleen. + rate_limited: Liian monta todennusyritystä – yritä uudelleen myöhemmin. seamless_external_login: Olet kirjautunut ulkoisen palvelun kautta, joten salasana- ja sähköpostiasetukset eivät ole käytettävissä. signed_in_as: 'Kirjautunut tilillä:' verification: diff --git a/config/locales/fy.yml b/config/locales/fy.yml index c59ad72725..2cbb69010d 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -1546,6 +1546,9 @@ fy: errors: limit_reached: Limyt fan ferskate emoji-reaksjes berikt unrecognized_emoji: is gjin besteande emoji-reaksje + redirects: + prompt: As jo dizze keppeling fertrouwe, klik der dan op om troch te gean. + title: Jo ferlitte %{instance}. relationships: activity: Accountaktiviteit confirm_follow_selected_followers: Binne jo wis dat jo de selektearre folgers folgje wolle? diff --git a/config/locales/gd.yml b/config/locales/gd.yml index 521f4fd60d..d3dab8273d 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -439,6 +439,7 @@ gd: view: Seall bacadh na h-àrainne email_domain_blocks: add_new: Cuir tè ùr ris + allow_registrations_with_approval: Ceadaich clàradh le aontachadh attempts_over_week: few: "%{count} oidhirpean clàraidh rè na seachdain seo chaidh" one: "%{count} oidhirp clàraidh rè na seachdain seo chaidh" diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 545da69d9c..34ae9a21c8 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -1548,7 +1548,7 @@ hu: unrecognized_emoji: nem ismert emodzsi redirects: prompt: Ha megbízol ebben a hivatkozásban, kattints rá a folytatáshoz. - title: Épp elhagyni készülöd a %{instance} kiszolgálót. + title: Elhagyod a(z) %{instance} kiszolgálót. relationships: activity: Fiók aktivitás confirm_follow_selected_followers: Biztos, hogy követni akarod a kiválasztott követőket? diff --git a/config/locales/ia.yml b/config/locales/ia.yml index 48a802a2cd..bf7da9a314 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -33,11 +33,27 @@ ia: username: Nomine de usator action_logs: action_types: + create_announcement: Crear annuncio + destroy_ip_block: Deler le regula IP + destroy_status: Deler le message + destroy_unavailable_domain: Deler le dominio non disponibile + disable_user: Disactivar le usator + enable_user: Activar le usator reset_password_user: Reinitialisar contrasigno + update_announcement: Actualisar annuncio + update_custom_emoji: Actualisar emoji personalisate + actions: + change_email_user_html: "%{name} cambiava le adresse de e-mail address del usator %{target}" + create_announcement_html: "%{name} creava un nove annuncio %{target}" announcements: + edit: + title: Modificar annuncio + empty: Necun annuncios trovate. new: create: Crear annuncio title: Nove annuncio + publish: Publicar + published_msg: Annuncio publicate con successo! title: Annuncios custom_emojis: by_domain: Dominio @@ -46,9 +62,16 @@ ia: delete: Deler disable: Disactivar disabled: Disactivate + enable: Activar + enabled: Activate + enabled_msg: Emoji activate con successo + new: + title: Adder nove emoji personalisate dashboard: active_users: usatores active + media_storage: Immagazinage de medios new_users: nove usatores + opened_reports: reportos aperte website: Sito web domain_allows: add_new: Permitter federation con dominio @@ -58,9 +81,14 @@ ia: domain: Dominio export: Exportar import: Importar + private_comment: Commento private + public_comment: Commento public email_domain_blocks: add_new: Adder nove delete: Deler + domain: Dominio + new: + create: Adder un dominio export_domain_allows: no_file: Necun file seligite follow_recommendations: @@ -79,6 +107,7 @@ ia: filter: available: Disponibile ip_blocks: + add_new: Crear regula delete: Deler expires_in: '1209600': 2 septimanas @@ -95,8 +124,118 @@ ia: enable: Activar enabled: Activate reports: + add_to_report: Adder plus al reporto are_you_sure: Es tu secur? cancel: Cancellar + delete_and_resolve: Deler le messages + notes: + delete: Deler + skip_to_actions: Saltar al actiones + status: Stato + updated_at: Actualisate + view_profile: Vider profilo + roles: + everyone: Permissiones predefinite + privileges: + manage_users: Gerer usatores + rules: + delete: Deler + settings: + about: + title: A proposito de + appearance: + preamble: Personalisar le interfacie web de Mastodon. + title: Apparentia + discovery: + profile_directory: Directorio de profilos + public_timelines: Chronologias public + trends: Tendentias + title: Parametros de servitor + site_uploads: + delete: Deler file incargate + statuses: + language: Lingua + metadata: Metadatos + open: Aperir message + original_status: Message original + title: Messages del conto + trending: Tendentias + visibility: Visibilitate + strikes: + actions: + none: "%{name} ha inviate un advertimento a %{target}" + system_checks: + rules_check: + action: Gerer le regulas del servitor + software_version_critical_check: + action: Vider le actualisationes disponibile + software_version_patch_check: + action: Vider le actualisationes disponibile + upload_check_privacy_error: + action: Verifica hic pro plus de information + edit_profile: + other: Alteres + existing_username_validator: + not_found_multiple: non poteva trovar %{usernames} + exports: + archive_takeout: + date: Data + download: Discargar tu archivo + size: Dimension + blocks: Tu ha blocate + bookmarks: Marcapaginas + csv: CSV + mutes: Tu ha silentiate + storage: Immagazinage de medios + featured_tags: + add_new: Adder nove + filters: + contexts: + account: Profilos + home: Pagina de initio e listas + notifications: Notificationes + public: Chronologias public + thread: Conversationes + edit: + add_keyword: Adder parola clave + keywords: Parolas clave + statuses: Messages individual + title: Modificar filtro + index: + delete: Deler + generic: + all: Toto + cancel: Cancellar + changes_saved_msg: Cambios salveguardate con successo! + confirm: Confirmar + copy: Copiar + delete: Deler + order_by: Ordinar per + save_changes: Salvar le cambios + today: hodie + imports: + errors: + empty: File CSV vacue + too_large: Le file es troppo longe + failures: Fallimentos + status: Stato + types: + lists: Listas + invites: + expires_in: + '1800': 30 minutas + '21600': 6 horas + '3600': 1 hora + '43200': 12 horas + '604800': 1 septimana + '86400': 1 die + expires_in_prompt: Nunquam + login_activities: + authentication_methods: + password: contrasigno + migrations: + errors: + not_found: non poterea esser trovate statuses_cleanup: min_age: '1209600': 2 septimanas diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 9f4f1343c7..2e354828bd 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -525,7 +525,7 @@ ko: total_followed_by_us: 우리가 한 팔로우 total_reported: 이들에 대한 신고 total_storage: 미디어 첨부 - totals_time_period_hint_html: 아래에 표시된 총계에는 모든 시간에 대한 데이터가 포함됩니다. + totals_time_period_hint_html: 아래에 표시된 총계는 역대 데이터에 대한 것입니다. unknown_instance: 현재 이 서버에서 해당 도메인에 대한 기록은 없습니다. invites: deactivate_all: 전부 비활성화 diff --git a/config/locales/lad.yml b/config/locales/lad.yml index 02308cf2f0..d4f772095e 100644 --- a/config/locales/lad.yml +++ b/config/locales/lad.yml @@ -18,6 +18,9 @@ lad: nothing_here: No ay niente aki! pin_errors: following: Deves estar sigiendo a la persona a la ke keres achetar + posts: + one: Publikasyon + other: Publikasyones posts_tab_heading: Publikasyones admin: account_actions: @@ -82,7 +85,7 @@ lad: title: Lokalizasyon login_status: Estado de koneksyon kon kuento media_attachments: Aneksos de multimedia - memorialize: Konvirtir en memorial + memorialize: Konvirte en memorial memorialized: Kuento komemorativo memorialized_msg: "%{username} se konvirtido kon sukseso en un kuento komemorativo" moderation: @@ -106,14 +109,14 @@ lad: previous_strikes_description_html: one: Este kuento tiene un amonestamiento. other: Este kuento tiene %{count} amonestamientos. - promote: Promosyonar + promote: Promosyona protocol: Protokol public: Publiko push_subscription_expires: Ekspirasyon del abonamiento PuSH - redownload: Arefreskar profil + redownload: Arefreska profil redownloaded_msg: Se aktualizo djustamente el profil de %{username} dizde el orijin reject: Refuza - rejected_msg: La solisitasyon de enrejistrasyon de %{username} a sido refuzada kon sukseso + rejected_msg: La solisitasyon de enrejistrasyon de %{username} tyene sido refuzada kon sukseso remote_suspension_irreversible: Los datos de este kuento fueron irreversivlemente supremidos. remote_suspension_reversible_hint_html: El kuento fue suspendido en este sirvidor i los datos seran totalmente supremidos el %{date}. Asta estonses el sirvidor remoto puede restaurar este kuento sin dingun efekto negativo. Si keres supremir todos los datos del kuento pishin, puedes fazerlo a kontinuasyon. remove_avatar: Efasa imaje de profil @@ -288,7 +291,7 @@ lad: empty: No se toparon rejistros. filter_by_action: Filtra por aksion filter_by_user: Filtra por utilizador - title: Log de revizyon + title: Defter de revizyon announcements: destroyed_msg: Pregon supremido kon sukseso! edit: @@ -303,12 +306,12 @@ lad: scheduled_for: Programado para %{time} scheduled_msg: Pregon programado para su publikasyon! title: Pregones - unpublish: Retirar publikasyon + unpublish: Retira publikasyon unpublished_msg: Pregon retirado kon sukseso! updated_msg: Pregon aktualizado kon sukseso! critical_update_pending: Aktualizasyon kritika esta asperando custom_emojis: - assign_category: Asinyar kategoria + assign_category: Asinya kategoria by_domain: Domeno copied_msg: Kopia lokala del emoji kriyada kon sukseso copy: Kopia @@ -328,7 +331,7 @@ lad: list: Lista listed: Listados new: - title: Adjustar muevo emoji personalizado + title: Adjusta muevo emoji personalizado no_emoji_selected: No se troko dingun emoji porke no eskojites dinguno not_permitted: No tienes permiso para realizar esta aksyon overwrite: Sobreskrive @@ -506,8 +509,8 @@ lad: all: Todos clear: Alimpiar yerros de entrega failing: Fayando - restart: Reinisyar entrega - stop: Detener entrega + restart: Reinisya entrega + stop: Deten entrega unavailable: No desponivle delivery_available: Entrega desponivle delivery_error_days: Diyas de yerro de entrega @@ -632,7 +635,7 @@ lad: reported_by: Raportado por resolved: Rezolvido resolved_msg: Tienes rezolvido la denunsia djustamente! - skip_to_actions: Ir direktamente a las aksyones + skip_to_actions: Va direktamente a las aksyones status: Estado statuses: Kontenido raportado statuses_description_html: El kontenido ofensivo se sitara en la komunikasyon kon el kuento raportado @@ -643,12 +646,12 @@ lad: silence_html: 'Vas limitar el kuento de @%{acct}''''. Esto va:' suspend_html: 'Vas suspender el kuento de @%{acct}''''. Esto va:' actions: - delete_html: Kitar las publikasyones ofensivas - mark_as_sensitive_html: Markar los multimedios de la publikasyon komo sensivles - silence_html: Severamente limitar la vizivilita de @%{acct}, fazendo su profil i kontenido vizivles solo para las personas ke ya lo sigen o manualmente bushkan su profil - suspend_html: Suspender @%{acct}, faziendo su profil i kontenido inaksesivle i no disponivle para interaksiones - close_report: 'Markar raporto #%{id} komo rezolvido' - close_reports_html: Markar todos los raportos kontra @%{acct} komo rezolvidos + delete_html: Kita las publikasyones ofensivas + mark_as_sensitive_html: Marka los multimedios de la publikasyon komo sensivles + silence_html: Severamente limita la vizivilita de @%{acct}, fazendo su profil i kontenido vizivles solo para las personas ke ya lo sigen o manualmente bushkan su profil + suspend_html: Suspende @%{acct}, faziendo su profil i kontenido inaksesivle i no disponivle para interaksiones + close_report: 'Marka raporto #%{id} komo rezolvido' + close_reports_html: Marka todos los raportos kontra @%{acct} komo rezolvidos delete_data_html: Efasa el profil i kontenido de @%{acct} en 30 dias si no sea desuspendido en akel tiempo preview_preamble_html: "@%{acct} resivira una avertensya komo esta:" record_strike_html: Enrejistra un amonestamiento kontra @%{acct} para ke te ayude eskalar las violasyones de reglas de este kuento en el avenir @@ -656,7 +659,7 @@ lad: warning_placeholder: Adisionalas, opsionalas razones la aksyon de moderasyon. target_origin: Orijin del kuento raportado title: Raportos - unassign: Dezasinyar + unassign: Dezasinya unknown_action_msg: 'Aksyon no konesida: %{action}' unresolved: No rezolvido updated_at: Aktualizado @@ -742,6 +745,7 @@ lad: preamble: La marka de tu sirvidor lo desferensia de otros sirvidores de la red. Esta enformasyon puede amostrarse por una varieta de entornos, komo en la enterfaz web de Mastodon, en aplikasyones nativas, en previsualizasiones de atadijos en otros sitios internetikos i en aplikasyones de mesajes, etc. Por esta razon, es mijor mantener esta enformasyon klara, breve i konsiza. title: Marka captcha_enabled: + desc_html: Esto se baza en eskriptos eksternos de hCaptcha, ke pueden ser una influensya negra a la sigurita i privasita. Ademas, esto puede rezultar en un proseso de enrejistrasyon signifikativamente manko aksesivle para algunas personas (espesyalmente diskapasitadas). Por estas razones, por favor, konsidera otras alternativas komo rejistrasyon por aprovasyon manuala o kon envitasyon. title: Solisita ke los muevos utilizadores rezolven un CAPTCHA para konfirmar su konto content_retention: preamble: Kontrola komo el kontenido jenerado por el utilizador se magazina en Mastodon. @@ -771,6 +775,8 @@ lad: none: Permete a los utilizadores trokar la konfigurasyon del sitio open: Kualkiera puede enrejistrarse security: + authorized_fetch: Rekere autentifikasyon de sirvidores federados + authorized_fetch_hint: Rekerir autentifikasyon de sirvidores federados permite un forsamyento mas estrikto de los blokos a nivel de utilizador i a nivel de sirvidor. Malgrado esto, el koste de esto es una penalizasyon de efisyensya, reduksyon del alkanse de tus repuestas i puede introduzir problemas de kompatibilita kon algunos sirvisyos federados. Ademas, esto no impidira ke aktores dedikados obtengan tus kuentos publikos i publikasyones publikas. authorized_fetch_overridden_hint: Agora no puedes trokar esta konfigurasyon dkee esta sovreeskrita por una variable de entorno. federation_authentication: Forzamyento de autentifikasyon para la federasyon title: Konfigurasyon del sirvidor @@ -779,6 +785,7 @@ lad: destroyed_msg: Dosya supremida kon sukseso! software_updates: critical_update: Kritiko – por favor aktualiza pishin + description: Rekomendamos ke mantengas aktualizada tu enstalasyon de Mastodon para benefisyar de las muevas koreksyones y funksyones. Ademas, a vezes es kritiko aktualizar Mastodon punktualmente para evitar problemas de sigurita. Por estas razones, Mastodon komprova si ay aktualizasyones kada 30 minutos, i te avizara de akodro a tus preferensyas de avizos por posta elektronika. documentation_link: Ambezate mas release_notes: Notas sovre la versyon title: Aktualizasyones desponivles @@ -832,11 +839,16 @@ lad: message_html: El klaster de Elasticsearch no es sano (estado kolorado), funksyones de bushkeda no estan disponivles elasticsearch_health_yellow: message_html: El klaster de Elasticsearch no es sano (estado amariyo), es posivle ke keras investigar la razon + elasticsearch_index_mismatch: + message_html: Las mapas de indeksos Elasticsearch estan dezaktualizadas. Por favor, uza tootctl search deploy --only=%{value} elasticsearch_preset: action: Ve dokumentasyon message_html: Tu klaster de Elasticsearch tiene mas ke un nodo, ama Mastodon no esta konfigurado para uzarlos. elasticsearch_preset_single_node: action: Ve dokumentasyon + message_html: Tu klaster de Elasticsearch solo tyene un nodo, ES_PRESET deve estableserse a single_node_cluster. + elasticsearch_reset_chewy: + message_html: Tu indekso del sistema Elasticsearch esta dezaktualizado por un trokamyento de konfigurasyon. Por favor uza tootctl search deploy --reset-chewy para aktualizarlo. elasticsearch_running_check: message_html: No se pudo konektar a Elasticsearch. Por favor, averigua ke esta egzekutandose, o dezaktiva la bushkeda de teksto kompleto elasticsearch_version_check: @@ -1089,6 +1101,7 @@ lad: preamble_html: Konektate kon tus kredensiales de %{domain}. Si tu kuento esta balabayado en otruno servidor, no puedras konektarte aki. title: Konektate kon %{domain} sign_up: + manual_review: Las enrejistrasyones en %{domain} pasan por la revizyon manuala de muestros moderadores. Para ayudarmos a prosesar tu enrejistrasyon, eskrive un poko sovre ti i por ke keres un kuento en %{domain}. preamble: Kon un kuento en este sirvidor de Mastodon, podras segir a kualkier otra persona en la red, endependientemente del sirvidor en el ke se tope. title: Kriya kuento de Mastodon en %{domain}. status: @@ -1103,7 +1116,7 @@ lad: use_security_key: Uza la yave de sigurita challenge: confirm: Kontinua - hint_html: "Tip: No retornaremos a demandarte por el kod durante la sigiente ora." + hint_html: "Konsejo: No retornaremos a demandarte por el kod durante la sigiente ora." invalid_password: Kod inkorekto prompt: Konfirma kod para segir crypto: @@ -1179,6 +1192,7 @@ lad: invalid_domain: no es un nombre de domeno valido edit_profile: basic_information: Enformasyon bazika + hint_html: "Personaliza lo ke la djente ve en tu profil publiko i kon tus publikasyones. Es mas probavle ke otras personas te sigan i enteraktuen kontigo kuando kompletas tu profil i foto." other: Otros errors: '400': La solisitasyon ke enviates no fue valida o fue malformada. @@ -1258,9 +1272,16 @@ lad: batch: remove: Kita del filtro index: + hint: Este filtro se aplika a la seleksyon de publikasyones individualas independentemente de otros kriteryos. Puedes adjustar mas publikasyones a este filtro dizde la enterfaz de web. title: Publikasyones filtradas generic: all: Todos + all_items_on_page_selected_html: + one: "%{count} elemento en esta pajina esta eskojido." + other: Todos los %{count} elementos en esta pajina estan eskojidos. + all_matching_items_selected_html: + one: "%{count} elemento ke koenside con tu bushkeda esta eskojido." + other: Todos los %{count} elementos ke koensiden con tu bushkeda estan eskojidos. cancel: Anula changes_saved_msg: Trokamientos guadrados kon reusho! confirm: Konfirma @@ -1286,6 +1307,7 @@ lad: too_large: Dosya es mas grande failures: Yerros imported: Importado + mismatched_types_warning: Parese ke podrias eskojer el tipo inkorekto para este importo, por favor verifikalo de muevo. modes: merge: Une merge_long: Manten rejistros egzistentes i adjusta muevos @@ -1303,6 +1325,7 @@ lad: bookmarks_html: Estas a punto de adjustar asta %{total_items} publikasyones de %{filename} a tus markadores. domain_blocking_html: Estas a punto de blokar asta %{total_items} domenos de %{filename}. following_html: Estas a punto de segir asta %{total_items} kuentos de %{filename}. + lists_html: Estas a punto de adjustar %{total_items} kuentos dizde %{filename} a tus listas. Se kriyaran muevas listas si no ay listas para adjustarlas. muting_html: Estas a punto de silensyar asta %{total_items} kuentos de %{filename}. preface: Puedes importar siertos datos, komo todas las personas a las kualas estas sigiendo o blokando en tu kuento en esta instansya, dizde dosyas eksportadas de otra instansya. recent_imports: Importasyones resyentes @@ -1374,6 +1397,7 @@ lad: unsubscribe: action: Si, dezabona complete: Dezabonado + confirmation_html: Estas siguro de ke ya no keres risivir %{type} de Mastodon en %{domain} a tu posta elektronika %{email}? Syempre podras reabonarte dizde las opsyones de avizos por posta.. emails: notification_emails: favourite: avizos de favoritos por posta @@ -1381,6 +1405,8 @@ lad: follow_request: avizos de solisitasyones de segimyento por posta mention: avizos de enmentaduras por posta reblog: avizos de repartajasyones por posta + resubscribe_html: Si tyenes deabonado por yerro, puedes reabonar en tus opsyones de avizos por posta elektronika. + success_html: Ya no risiviras %{type} de Mastodon en %{domain} a tu posta en %{email}. title: Dezabona media_attachments: validations: @@ -1506,9 +1532,13 @@ lad: posting_defaults: Konfigurasyon predeterminada de publikasyones public_timelines: Linyas de tiempo publikas privacy: + hint_html: "Personaliza el diskuvrimyento de tu profil y tus publikasyones. En Mastodon tyenes distinktas funksyones ke te ayudaran a alkansar una audiensya mas ancha si las aktivas. Reviza estas opsyones por un momento para estar siguro ke kaven tus nesesidades." privacy: Privasita + privacy_hint_html: Kontrola kuanto keres revelar a otros. Las personas diskuvren profiles i aplikasyones interesantes navigando por los suivantes de otras personas i vyendo dizde ke aplikasyones publikan, ama puede ke preferas mantenerlo eskondido. reach: Alkanse + reach_hint_html: Kontrola si keres ke te diskuvren i sigen muevas personas. Keres ke tus publikasyones se amostren en la seksyon de Eksplorasyon? Keres que tu kuento este rekomendado a otras personas? Keres achetar otomatikamente a todos los muevos suivantes o tener kontrol sovre kada uno de eyos? search: Bushkeda + search_hint_html: Kontrola komo keres ke te topen. Keres ke otras personas te topan por lo ke tyenes publikado publikamente? Keres ke las personas de fuera de Mastodon topen tu profil al bushkar en la web? Por favor, akodrate de ke la ekskluzyon totala de todos los bushkadores no puede ser garantizada para enformasyon publika. title: Privasita i alkanse privacy_policy: title: Politika de privasita @@ -1555,6 +1585,7 @@ lad: over_total_limit: Tienes superado el limito de %{limit} publikasyones programadas too_soon: La data programada deve estar en el avenir self_destruct: + lead_html: Malorozamente, %{domain} va serrar permanentemente. Si teniyas un kuento ayi, ya no podras utilizarlo, ama ainda puedes solisitar una kopya de tus datos. title: Este sirvidor esta serrando sessions: activity: Ultima aktivita @@ -1728,6 +1759,7 @@ lad: with_time_zone: "%d de %b del %Y, %H:%M %Z" translation: errors: + quota_exceeded: La kuota de uzo del sirvisyo de traduksyon para todo el sirvidor tiene sido sovrepasada. too_many_requests: Ay demaziadas solisitudes de servisyo de traduksyon. two_factor_authentication: add: Adjusta @@ -1740,7 +1772,7 @@ lad: lost_recovery_codes: Los kodiches de rekuperasyon te permeten obtener akseso a tu kuento si piedres tu telefon. Si tienes pedrido tus kodiches de rekuperasyon, puedes redjenerarlos aki. Tus viejos kodiches de rekuperasyon se aran malatos. methods: Metodos de autentifikasyon de dos pasos otp: Aplikasyon de autentifikasyon - recovery_codes: Fazer kopias de sigurita de tus kodiches de rekuperasyon + recovery_codes: Faz kopias de sigurita de tus kodiches de rekuperasyon recovery_codes_regenerated: Kodiches de rekupersayon redjenerados kon sukseso recovery_instructions_html: Si piedres akseso a tu telefon, puedes uzar uno de los sigientes kodiches de rekuperasyon para obtener akseso a tu kuento. Mantenlos a salvo. Por enshemplo, puedes imprimirlos i guadrarlos kon otros dokumentos emportantes. webauthn: Yaves de sigurita @@ -1757,11 +1789,16 @@ lad: subtitle: Tu apelasyon fue refuzada. title: Apelasyon refuzada backup_ready: + explanation: Tienes solisitado una kopia de sigurita de tu kuento de Mastodon. extra: Agora esta pronto para abashar! subject: Tu dosya esta pronta para abashar title: Abasha dosya failed_2fa: details: 'Aki estan los peratim de las provas de koneksyon kon tu kuento:' + explanation: Algun ha intentado konektarte kon tu cuenta ama prokuro un sigundo paso de autentifikasyon invalido. + further_actions_html: Si no fuites tu, rekomendamos %{action} inmediatamente deke puede estar komprometido. + subject: Autentikasyon del sigundo paso sin sukseso + title: Autentifikasyon del sigundo paso no reushida suspicious_sign_in: change_password: troka tu kod details: 'Aki estan los peratim de la koneksyon kon tu kuento:' @@ -1819,7 +1856,10 @@ lad: seamless_external_login: Estas konektado por un servisyo eksterno i estonses la konfigurasyon de kod i konto de posta no estan disponivles. signed_in_as: 'Konektado komo:' verification: + extra_instructions_html: Konsejo: El atadijo en tu web puede ser invizivle. La parte importante es rel="me", ke evita la suplantasyon de identita en sitios kon kontenido jenerado por el utilizador. Puedes inkluzo uzar una etiketa atadijo en la kavesera de la pajina en vez de a, ama el HTML deve ser aksesivle sin exekutar JavaScript. here_is_how: Ansina es komo + hint_html: "La verifikasyon de identita en Mastodon es para todos. Bazado en estandardes abiertos, agora i para syempre. Todo lo ke nesesitas es un sitio web propio ke la gente rekonozka. Kuando adjustas un atadijo a este sitio web dizde tu profil, komprovaremos ke el sitio web se ata a tu profil i lo amostraremos vizualmente." + instructions_html: Kopia i apega este kodiche en el HTML de tu sitio web. Estonses, adjusta el adreso de tu sitio web en uno de los kutis adisyonales de tu profil dizde la seksyon "Edita profil" i guadra los trokamyentos. verification: Verifikasyon verified_links: Tus atadijos verifikados webauthn_credentials: diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 1d159bf45a..f00cc97fbb 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -102,14 +102,27 @@ lt: public: Viešas push_subscription_expires: PuSH prenumeramivas pasibaigė redownload: Perkrauti profilį + rejected_msg: Sėkmingai patvirtinta %{username} registracijos paraiška + remote_suspension_irreversible: Šios paskyros duomenys negrįžtamai ištrinti. + remote_suspension_reversible_hint_html: Paskyra jų serveryje buvo sustabdyta, o duomenys bus visiškai pašalinti %{date}. Iki to laiko nuotolinis serveris gali atkurti šią paskyrą be jokių neigiamų pasekmių. Jei norite iš karto pašalinti visus paskyros duomenis, galite tai padaryti toliau. remove_avatar: Panaikinti profilio nuotrauką remove_header: Panaikinti antraštę + removed_header_msg: Sėkmingai pašalintas %{username} antraštės paveikslėlis resend_confirmation: already_confirmed: Šis vartotojas jau patvirtintas + send: Dar kartą išsiųsti patvirtinimo nuorodą + success: Patvirtinimo laiškas sėkmingai išsiųstas! reset: Iš naujo reset_password: Atkurti slaptažodį resubscribe: Per prenumeruoti + role: Vaidmuo search: Ieškoti + search_same_email_domain: Kiti tą patį el. pašto domeną turintys naudotojai + search_same_ip: Kiti tą patį IP turintys naudotojai + security: Apsauga + security_measures: + only_password: Tik slaptažodis + password_and_2fa: Slaptažodis ir 2FA sensitized: Pažymėti kaip jautrią informaciją shared_inbox_url: Bendroji gautųjų URL show: @@ -120,13 +133,21 @@ lt: statuses: Statusai subscribe: Prenumeruoti suspended: Užrakintas + suspension_irreversible: Šios paskyros duomenys negrįžtamai ištrinti. Galite atšaukti paskyros sustabdymą, kad ja būtų galima naudotis, tačiau nebus atkurti jokie anksčiau turėti duomenys. + suspension_reversible_hint_html: Paskyra sustabdyta, o duomenys bus visiškai pašalinti %{date}. Iki to laiko paskyrą galima atkurti be jokių neigiamų pasekmių. Jei norite iš karto pašalinti visus paskyros duomenis, galite tai padaryti toliau. title: Vartotojai + unblock_email: El. pašto adreso atblokavimas + unblocked_email_msg: Sėkmingai atblokuotas %{username} el. pašto adresas unconfirmed_email: Nepatvirtintas el pašto adresas undo_silenced: Atšaukti užtildymą undo_suspension: Atšaukti užrakinimą + unsilenced_msg: Sėkmingai panaikintas %{username} paskyros apribojimas unsubscribe: Nebeprenumeruoti + unsuspended_msg: Sėkmingai panaikintas %{username} paskyros apribojimas username: Slapyvardis + view_domain: Peržiūrėti domeno santrauką warn: Įspėti + whitelisted: Leidžiama federacijai action_logs: title: Audito žurnalas custom_emojis: diff --git a/config/locales/nl.yml b/config/locales/nl.yml index a3657890da..1c31ed9e2b 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1794,10 +1794,10 @@ nl: subject: Jouw archief staat klaar om te worden gedownload title: Archief ophalen failed_2fa: - details: 'Hier zijn details van de aanmeldpoging:' + details: 'Hier zijn details van de inlogpoging:' explanation: Iemand heeft geprobeerd om in te loggen op jouw account maar heeft een ongeldige tweede verificatiefactor opgegeven. further_actions_html: Als jij dit niet was, raden we je aan om onmiddellijk %{action} aangezien het in gevaar kan zijn. - subject: Tweede factor authenticatiefout + subject: Tweestapsverificatiefout title: Tweestapsverificatie mislukt suspicious_sign_in: change_password: je wachtwoord te wijzigen diff --git a/config/locales/simple_form.af.yml b/config/locales/simple_form.af.yml index 6c87a7a636..a7c449f86d 100644 --- a/config/locales/simple_form.af.yml +++ b/config/locales/simple_form.af.yml @@ -14,6 +14,8 @@ af: labels: defaults: locale: Koppelvlaktaal + new_password: Newe wagwoord + password: Wagwoord featured_tag: name: Hutsetiket form_admin_settings: diff --git a/config/locales/simple_form.eu.yml b/config/locales/simple_form.eu.yml index 6f2bbfd969..ffd3081c93 100644 --- a/config/locales/simple_form.eu.yml +++ b/config/locales/simple_form.eu.yml @@ -44,7 +44,7 @@ eu: context: Iragazkia aplikatzeko testuinguru bat edo batzuk current_password: Segurtasunagatik sartu uneko kontuaren pasahitza current_username: Berresteko sartu uneko kontuaren erabiltzaile-izena - digest: Jarduerarik gabeko epe luze bat eta gero mezu pertsonalen bat jaso baduzu, besterik ez + digest: Jarduerarik gabeko epe luze bat eta gero mezu pertsonalen bat jaso baduzu soilik email: Baieztapen e-mail bat bidaliko zaizu header: PNG, GIF edo JPG. Gehienez %{size}. %{dimensions}px eskalara txikituko da inbox_url: Kopiatu erabili nahi duzun errelearen hasiera orriaren URLa @@ -126,7 +126,7 @@ eu: tag: name: Letrak maiuskula/minuskulara aldatu ditzakezu besterik ez, adibidez irakurterrazago egiteko user: - chosen_languages: Ezer markatzekotan, hautatutako hizkuntzetan dauden tootak besterik ez dira erakutsiko + chosen_languages: Markatzean, hautatutako hizkuntzetan dauden tutak besterik ez dira erakutsiko. role: Rolak erabiltzaileak dituen baimenak kontrolatzen ditu user_role: color: Rolarentzat erabiltzaile interfazean erabiliko den kolorea, formatu hamaseitarreko RGB bezala diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index 29f2398a90..d208feed6c 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -5,7 +5,7 @@ fi: account: discoverable: Julkisia julkaisujasi ja profiiliasi voidaan pitää esillä tai suositella Mastodonin eri alueilla ja profiiliasi voidaan ehdottaa toisille käyttäjille. display_name: Koko nimesi tai lempinimesi. - fields: Kotisivusi, pronominit, ikä, mitä ikinä haluat. + fields: Verkkosivustosi, pronominisi, ikäsi ja mitä ikinä haluatkaan ilmoittaa. indexable: Julkiset julkaisusi voivat näkyä hakutuloksissa Mastodonissa. Ihmiset, jotka ovat olleet vuorovaikutuksessa julkaisujesi kanssa, voivat etsiä niitä asetuksesta riippumatta. note: 'Voit @mainita muita käyttäjiä tai #aihetunnisteita.' show_collections: Käyttäjät voivat selata seurattujasi ja seuraajiasi. Käyttäjät, joita seuraat, näkevät joka tapauksessa, että seuraat heitä. @@ -55,14 +55,14 @@ fi: scopes: Mihin sovellusliittymiin sovellus pääsee käsiksi. Jos valitset ylätason laajuuden, sinun ei tarvitse valita yksittäisiä. setting_aggregate_reblogs: Älä näytä uusia tehostuksia julkaisuille, joita on äskettäin tehostettu (koskee vain juuri vastaanotettuja tehostuksia) setting_always_send_emails: Yleensä sähköposti-ilmoituksia ei lähetetä, kun käytät Mastodonia aktiivisesti - setting_default_sensitive: Arkaluonteinen media on oletuksena piilotettu, ja se voidaan näyttää yhdellä napsautuksella + setting_default_sensitive: Arkaluonteinen media piilotetaan oletusarvoisesti, ja se voidaan näyttää yhdellä napsautuksella setting_display_media_default: Piilota arkaluonteiseksi merkitty media - setting_display_media_hide_all: Piilota media aina - setting_display_media_show_all: Näytä media aina + setting_display_media_hide_all: Piilota mediasisältö aina + setting_display_media_show_all: Näytä mediasisältö aina setting_use_blurhash: Liukuvärit perustuvat piilotettujen kuvien väreihin mutta sumentavat yksityiskohdat setting_use_pending_items: Piilota aikajanan päivitykset napsautuksen taakse syötteen automaattisen vierityksen sijaan username: Voit käyttää kirjaimia, numeroita ja alaviivoja - whole_word: Kun avainsana tai -fraasi on kokonaan aakkosnumeerinen, se on voimassa vain, jos se vastaa koko sanaa + whole_word: Kun avainsana tai -fraasi on täysin aakkosnumeerinen, suodatin aktivoituu vain sen täysvastineille domain_allow: domain: Tämä verkkotunnus voi noutaa tietoja tältä palvelimelta ja sieltä saapuvat tiedot käsitellään ja tallennetaan email_domain_block: @@ -78,7 +78,7 @@ fi: form_admin_settings: activity_api_enabled: Paikallisesti julkaistujen julkaisujen, aktiivisten käyttäjien ja rekisteröitymisten viikoittainen määrä backups_retention_period: Säilytä luodut arkistot määritetyn määrän päiviä. - bootstrap_timeline_accounts: Nämä tilit kiinnitetään uusien käyttäjien seuraamissuositusten yläpuolelle. + bootstrap_timeline_accounts: Nämä tilit kiinnitetään uusien käyttäjien seuraamissuosituslistojen alkuun. closed_registrations_message: Näkyy, kun rekisteröityminen on suljettu content_cache_retention_period: Kaikki julkaisut ja tehostukset muilta palvelimilta poistetaan, kun määritelty määrä päiviä on kulunut. Osaa julkaisuista voi olla mahdoton palauttaa. Kaikki julkaisuihin liittyvät kirjanmerkit, suosikit ja tehostukset menetetään, eikä niitä voi palauttaa. custom_css: Voit käyttää mukautettuja tyylejä Mastodonin verkkoversiossa. @@ -108,26 +108,26 @@ fi: text: Tämä auttaa meitä arvioimaan hakemustasi ip_block: comment: Valinnainen. Muista miksi lisäsit tämän säännön. - expires_in: IP-osoitteet ovat rajallinen resurssi, joskus niitä jaetaan ja vaihtavat usein omistajaa. Tästä syystä epämääräisiä IP-lohkoja ei suositella. - ip: Kirjoita IPv4- tai IPv6-osoite. Voit estää kokonaisia alueita käyttämällä CIDR-syntaksia. Varo, että et lukitse itseäsi ulos! + expires_in: IP-osoitteet ovat rajallinen resurssi – joskus niitä jaetaan, ja ne vaihtavat usein omistajaa. Niinpä epämääräisiä IP-lohkoja ei suositella. + ip: Kirjoita IPv4- tai IPv6-osoite. Voit estää kokonaisia IP-osoitealueita CIDR-syntaksin avulla. Varo lukitsemasta itseäsi ulos! severities: no_access: Estä pääsy kaikkiin resursseihin sign_up_block: Uudet rekisteröitymiset eivät ole mahdollisia sign_up_requires_approval: Uudet rekisteröitymiset edellyttävät hyväksyntääsi severity: Valitse, mitä tapahtuu tämän IP-osoitteen pyynnöille rule: - text: Kuvaile sääntöä tai vaatimusta tämän palvelimen käyttäjille. Yritä pitää se lyhyenä ja yksinkertaisena + text: Kuvaile sääntöä tai edellytystä palvelimesi käyttäjille. Suosi tiivistä, yksinkertaista ilmaisua sessions: - otp: Syötä puhelimeen saamasi kaksivaiheisen tunnistautumisen koodi tai käytä palautuskoodia. + otp: 'Näppäile mobiilisovelluksessa näkyvä kaksivaiheisen todennuksen tunnusluku, tai käytä tarvittaessa palautuskoodia:' webauthn: Jos kyseessä on USB-avain, muista laittaa se paikalleen ja tarvittaessa napauttaa sitä. settings: indexable: Profiilisi voi näkyä Googlen, Bingin ja muiden hakukoneiden hakutuloksissa. show_application: Voit silti aina nähdä, mistä sovelluksesta julkaisusi lähetettiin. tag: - name: Voit muuttaa esimerkiksi kirjaimia paremmin luettavaksi + name: Voit esimerkiksi vaihtaa suur- ja pienaakkosten kesken helppolukuistaaksesi tekstiäsi user: - chosen_languages: Kun valittu, vain valituilla kielillä kirjoitetut julkaisut näkyvät julkisilla aikajanoilla - role: Rooli määrää, mitkä käyttöoikeudet käyttäjällä on + chosen_languages: Jos valitset kieliä oheisesta listauksesta, vain niidenkieliset julkaisut näkyvät julkisilla aikajanoilla sinulle + role: Rooli vaikuttaa käyttäjän käyttöoikeuksiin user_role: color: Väri, jota käytetään roolille kaikkialla käyttöliittymässä, RGB-heksadesimaalimuodossa highlighted: Tämä tekee roolista julkisesti näkyvän @@ -152,22 +152,22 @@ fi: account_migration: acct: Uuden tilin käyttäjänimi account_warning_preset: - text: Esiasetettu teksti + text: Esimääritetty teksti title: Nimi admin_account_action: - include_statuses: Sisällytä raportoidut viestit sähköpostiin + include_statuses: Sisällytä raportoidut viestit sähköposti-ilmoitukseen send_email_notification: Ilmoita käyttäjälle sähköpostitse text: Mukautettu varoitus type: Toimi types: - disable: Poista kirjautuminen käytöstä - none: Älä tee mitään + disable: Jäädytä + none: Lähetä varoitus sensitive: Arkaluonteinen silence: Rajoita suspend: Jäädytä - warning_preset_id: Käytä varoitusmallia + warning_preset_id: Käytä varoituspohjaa announcement: - all_day: Koko päivän kestävä tapahtuma + all_day: Koko päivän tapahtuma ends_at: Tapahtuman loppu scheduled_at: Ajoita julkaisu starts_at: Tapahtuman alku @@ -196,7 +196,7 @@ fi: max_uses: Käyttökertoja enintään new_password: Uusi salasana note: Elämäkerta - otp_attempt: Kaksivaiheisen tunnistuksen koodi + otp_attempt: Kaksivaiheisen todennuksen tunnusluku password: Salasana phrase: Avainsana tai -fraasi setting_advanced_layout: Ota edistynyt selainkäyttöliittymä käyttöön @@ -208,19 +208,19 @@ fi: setting_default_privacy: Julkaisun näkyvyys setting_default_sensitive: Merkitse media aina arkaluonteiseksi setting_delete_modal: Kysy vahvistusta ennen julkaisun poistamista - setting_disable_swiping: Poista pyyhkäisyt käytöstä + setting_disable_swiping: Poista pyyhkäisyeleet käytöstä setting_display_media: Median näyttäminen setting_display_media_default: Oletus setting_display_media_hide_all: Piilota kaikki setting_display_media_show_all: Näytä kaikki setting_expand_spoilers: Laajenna aina sisältövaroituksilla merkityt julkaisut - setting_hide_network: Piilota verkkosi + setting_hide_network: Piilota verkostotietosi setting_reduce_motion: Vähennä animaatioiden liikettä setting_system_font_ui: Käytä järjestelmän oletusfonttia setting_theme: Sivuston teema setting_trends: Näytä päivän trendit setting_unfollow_modal: Kysy vahvistusta ennen seuraamisen lopettamista - setting_use_blurhash: Näytä värikkäät liukuvärit piilotetulle medialle + setting_use_blurhash: Käytä värikästä liukusävytystä piilotetulle medialle setting_use_pending_items: Hidas tila severity: Vakavuus sign_in_token_attempt: Turvakoodi @@ -230,13 +230,13 @@ fi: username_or_email: Käyttäjänimi tai sähköpostiosoite whole_word: Koko sana email_domain_block: - with_dns_records: Sisällytä toimialueen MX tietueet ja IP-osoite + with_dns_records: Sisällytä toimialueen MX-tietueet ja IP-osoitteet featured_tag: name: Aihetunniste filters: actions: hide: Piilota kokonaan - warn: Piilota ja näytä varoitus + warn: Piilota varoittaen form_admin_settings: activity_api_enabled: Julkaise yhteenlasketut tilastot käyttäjätoiminnasta ohjelmointirajapinnassa backups_retention_period: Käyttäjän arkiston säilytysaika @@ -244,9 +244,9 @@ fi: closed_registrations_message: Mukautettu viesti, kun rekisteröityminen ei ole saatavilla content_cache_retention_period: Sisällön välimuistin säilytysaika custom_css: Mukautettu CSS - mascot: Mukautettu maskotti (legacy) - media_cache_retention_period: Median välimuistin säilytysaika - peers_api_enabled: Julkaise löydettyjen instanssien luettelo ohjelmointirajapinnassa + mascot: Mukautettu maskotti (vanhentunut ominaisuus) + media_cache_retention_period: Mediasisältövälimuistin säilytysaika + peers_api_enabled: Julkaise löydettyjen palvelinten luettelo ohjelmointirajapinnassa profile_directory: Ota profiilihakemisto käyttöön registrations_mode: Kuka voi rekisteröityä require_invite_text: Vaadi syy liittyä @@ -260,11 +260,11 @@ fi: site_title: Palvelimen nimi status_page_url: Tilasivun URL-osoite theme: Oletusteema - thumbnail: Palvelimen pikkukuva + thumbnail: Palvelimen pienoiskuva timeline_preview: Salli todentamaton pääsy julkisille aikajanoille - trendable_by_default: Salli trendit ilman ennakkotarkastusta + trendable_by_default: Salli suositun sisällön koonti ilman ennakkotarkastusta trends: Ota trendit käyttöön - trends_as_landing_page: Käytä trendejä aloitussivuna + trends_as_landing_page: Käytä suosittua sisältöä aloitussivuna interactions: must_be_follower: Estä ilmoitukset käyttäjiltä, jotka eivät seuraa sinua must_be_following: Estä ilmoitukset käyttäjiltä, joita et seuraa @@ -318,7 +318,7 @@ fi: permissions_as_keys: Oikeudet position: Prioriteetti webhook: - events: Tapahtumat käytössä + events: Käytössä olevat tapahtumat template: Hyötykuormapohja url: Päätepisteen URL 'no': Ei @@ -327,8 +327,8 @@ fi: recommended: Suositeltu required: mark: "*" - text: pakollinen tieto + text: vaadittu tieto title: sessions: - webauthn: Käytä jotakin suojausavainta kirjautuaksesi sisään + webauthn: Käytä yhtä turva-avaimistasi kirjautuaksesi sisään 'yes': Kyllä diff --git a/config/locales/simple_form.gd.yml b/config/locales/simple_form.gd.yml index f567866c3e..a38dd43ad6 100644 --- a/config/locales/simple_form.gd.yml +++ b/config/locales/simple_form.gd.yml @@ -304,10 +304,10 @@ gd: indexable: Gabh a-staigh duilleag na pròifil sna h-einnseanan-luirg show_application: Seall dè an aplacaid a chuir thu post leatha tag: - listable: Leig leis an taga hais seo gun nochd e ann an toraidhean luirg ’s am measg nam molaidhean + listable: Faodaidh an taga hais seo nochdadh ann an toraidhean luirg ’s am measg nam molaidhean name: Taga hais - trendable: Leig leis an taga hais seo gun nochd e am measg nan treandaichean - usable: Leig le postaichean an taga hais seo a chleachdadh + trendable: Faodaidh an taga hais seo nochdadh am measg nan treandaichean + usable: Faodaidh postaichean an taga hais seo a chleachdadh user: role: Dreuchd time_zone: Roinn-tìde diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml index 08e866b55e..e9fb3da9fa 100644 --- a/config/locales/simple_form.ja.yml +++ b/config/locales/simple_form.ja.yml @@ -294,7 +294,7 @@ ja: software_updates: all: すべてのアップデートを通知する critical: 緊急のアップデートのみ通知する - label: 新しいMastodonバージョンが利用可能です + label: 新しいMastodonバージョンが利用可能になった時 none: 通知しない (非推奨) patch: 緊急のアップデートとバグ修正アップデートを通知する trending_tag: 新しいトレンドのレビューをする必要がある時 diff --git a/config/locales/simple_form.lad.yml b/config/locales/simple_form.lad.yml index c23960e07d..afa26b7873 100644 --- a/config/locales/simple_form.lad.yml +++ b/config/locales/simple_form.lad.yml @@ -32,7 +32,7 @@ lad: announcement: all_day: Kuando esta eskojido solo se amostraran las datas del rango de tiempo ends_at: Opsyonal. El pregon dezaparesera otomatikamente en este momento - scheduled_at: Deshar en blanko para publikar el pregon pishin + scheduled_at: Desha en blanko para publikar el pregon pishin starts_at: Opsyonal. En caso de ke tu pregon este atado a un intervalo de tiempo espesifiko text: Puedes kulanear la sintaksa de publikasyones. Por favor nota el espasyo ke okupara el pregon en el ekran del utilizador appeal: diff --git a/config/locales/simple_form.sr-Latn.yml b/config/locales/simple_form.sr-Latn.yml index 6405ee338a..6e6b6ce8b8 100644 --- a/config/locales/simple_form.sr-Latn.yml +++ b/config/locales/simple_form.sr-Latn.yml @@ -192,7 +192,7 @@ sr-Latn: honeypot: "%{label} (ne popunjavaj)" inbox_url: URL od relejnog prijemnog sandučeta irreversible: Ispustiti umesto sakriti - locale: Jezik + locale: Jezik okruženja max_uses: Maksimalni broj korišćenja new_password: Nova lozinka note: Biografija diff --git a/config/locales/simple_form.sr.yml b/config/locales/simple_form.sr.yml index da1ac81233..71fbe299ec 100644 --- a/config/locales/simple_form.sr.yml +++ b/config/locales/simple_form.sr.yml @@ -192,7 +192,7 @@ sr: honeypot: "%{label} (не попуњавај)" inbox_url: URL од релејног пријемног сандучета irreversible: Испустити уместо сакрити - locale: Језик + locale: Језик окружења max_uses: Максимални број коришћења new_password: Нова лозинка note: Биографија diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml index 7d16531eae..3053c04431 100644 --- a/config/locales/simple_form.tr.yml +++ b/config/locales/simple_form.tr.yml @@ -48,7 +48,7 @@ tr: email: Onay e-postası gönderilir header: PNG, GIF ya da JPG. En fazla %{size}. %{dimensions}px boyutuna küçültülecek inbox_url: Kullanmak istediğiniz aktarıcının ön sayfasından URL'yi kopyalayın - irreversible: Filtrelenmiş gönderiler, filtre daha sonra kaldırılsa bile, geri dönüşümsüz biçimde kaybolur + irreversible: Süzgeçlenmiş gönderiler, filtre daha sonra kaldırılsa bile, geri dönüşümsüz biçimde kaybolur locale: Kullanıcı arayüzünün dili, e-postalar ve push bildirimleri password: En az 8 karakter kullanın phrase: Metnin büyük/küçük harf durumundan veya gönderinin içerik uyarısından bağımsız olarak eşleştirilecek @@ -74,7 +74,7 @@ tr: action: Bir gönderi filtreyle eşleştiğinde hangi eylemin yapılacağını seçin actions: hide: Filtrelenmiş içeriği tamamen gizle, sanki varolmamış gibi - warn: Filtrelenmiş içeriği, filtrenin başlığından söz eden bir uyarının arkasında gizle + warn: Süzgeçlenmiş içeriği, süzgecinin başlığından söz eden bir uyarının arkasında gizle form_admin_settings: activity_api_enabled: Yerel olarak yayınlanan gönderi, etkin kullanıcı ve yeni kayıtların haftalık sayıları backups_retention_period: Üretilen kullanıcı arşivlerini belirli gün sayısı kadar sakla. @@ -118,7 +118,7 @@ tr: rule: text: Bu sunucu üzerindeki kullanıcılar için bir kural veya gereksinimi tanımlayın. Kuralı kısa ve yalın tutmaya çalışın sessions: - otp: Telefonunuzdaki two-factor kodunuzu giriniz veya kurtarma kodlarınızdan birini giriniz. + otp: 'Telefonunuzdaki two-factor kodunuzu giriniz veya kurtarma kodlarınızdan birini giriniz:' webauthn: Bir USB anahtarıysa, taktığınızdan ve gerekirse üzerine tıkladığınızdan emin olun. settings: indexable: Profil sayfanız Google, Bing ve diğerlerindeki arama sonuçlarında görüntülenebilir. @@ -178,10 +178,10 @@ tr: autofollow: Hesabınızı takip etmeye davet edin avatar: Profil resmi bot: Bu bir bot hesabı - chosen_languages: Dilleri filtrele + chosen_languages: Dilleri süzgeçle confirm_new_password: Yeni parolayı onayla confirm_password: Parolayı doğrula - context: İçeriği filtrele + context: İçeriği süzgeçle current_password: Güncel parola data: Veri display_name: Görünen isim @@ -203,7 +203,7 @@ tr: setting_aggregate_reblogs: Zaman çizelgesindeki boostları grupla setting_always_send_emails: Her zaman e-posta bildirimleri gönder setting_auto_play_gif: Hareketli GIF'leri otomatik oynat - setting_boost_modal: Boostlamadan önce onay iletişim kutusu göster + setting_boost_modal: Paylaşmadan önce onay iletişim kutusu göster setting_default_language: Gönderi dili setting_default_privacy: Gönderi gizliliği setting_default_sensitive: Medyayı her zaman hassas olarak işaretle diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 20df763463..5ffbf45bde 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -363,6 +363,7 @@ sk: silence: Obmedz suspend: Pozastav title: Nové blokovanie domény + no_domain_block_selected: Žiadne blokovanie domén nebolo zmenené, keďže žiadne neboli vybrané not_permitted: Nemáš povolenie na vykonanie tohto kroku obfuscate: Zatemniť názov domény private_comment: Súkromný komentár diff --git a/config/locales/sl.yml b/config/locales/sl.yml index ba707f49eb..54a4da3ea2 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -1598,6 +1598,9 @@ sl: errors: limit_reached: Dosežena omejitev različnih reakcij/odzivov unrecognized_emoji: ni prepoznan emotikon + redirects: + prompt: Če zaupate tej povezavi, jo kliknite za nadaljevanje. + title: Zapuščate %{instance}. relationships: activity: Dejavnost računa confirm_follow_selected_followers: Ali ste prepričani, da želite slediti izbranim sledilcem? @@ -1854,6 +1857,12 @@ sl: extra: Zdaj je na voljo za prenos! subject: Vaš arhiv je pripravljen za prenos title: Prevzem arhiva + failed_2fa: + details: 'Tukaj so podrobnosti poskusa prijave:' + explanation: Nekdo se je poskusil prijaviti v vaš račun, vendar ni podal veljavnega drugega faktorja preverjanja pristnosti. + further_actions_html: Če to niste bili vi, priporočamo, da takoj %{action}, ker je lahko ogrožena varnost. + subject: Napaka preverjanja pristnosti z drugim faktorjem + title: Preverjanje pristnosti z drugim faktorjem je spodletelo suspicious_sign_in: change_password: spremenite svoje geslo details: 'Tukaj so podrobnosti prijave:' diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 8de7c90e73..9e67e9692d 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -1781,8 +1781,8 @@ sr: does_not_match_previous_name: не поклапа се са претходним именом themes: contrast: Велики контраст - default: Mastodon (тамно) - mastodon-light: Mastodon (светло) + default: Mastodon (тамна) + mastodon-light: Mastodon (светла) time: formats: default: "%d %b %Y, %H:%M" diff --git a/config/locales/th.yml b/config/locales/th.yml index ac5cfbacf5..74fc1b26b7 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -1364,7 +1364,7 @@ th: webauthn: กุญแจความปลอดภัย description_html: หากคุณเห็นกิจกรรมที่คุณไม่รู้จัก พิจารณาเปลี่ยนรหัสผ่านของคุณและเปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัย empty: ไม่มีประวัติการรับรองความถูกต้อง - failed_sign_in_html: ความพยายามลงชื่อเข้าด้วย %{method} จาก %{ip} (%{browser}) ล้มเหลว + failed_sign_in_html: ความพยายามในการลงชื่อเข้าด้วย %{method} จาก %{ip} (%{browser}) ล้มเหลว successful_sign_in_html: ลงชื่อเข้าด้วย %{method} จาก %{ip} (%{browser}) สำเร็จ title: ประวัติการรับรองความถูกต้อง mail_subscriptions: @@ -1520,6 +1520,9 @@ th: errors: limit_reached: ถึงขีดจำกัดของการตอบสนองต่าง ๆ แล้ว unrecognized_emoji: ไม่ใช่อีโมจิที่รู้จัก + redirects: + prompt: หากคุณเชื่อถือลิงก์นี้ ให้คลิกลิงก์เพื่อดำเนินการต่อ + title: คุณกำลังจะออกจาก %{instance} relationships: activity: กิจกรรมบัญชี confirm_follow_selected_followers: คุณแน่ใจหรือไม่ว่าต้องการติดตามผู้ติดตามที่เลือก? @@ -1758,6 +1761,12 @@ th: extra: ตอนนี้ข้อมูลสำรองพร้อมสำหรับการดาวน์โหลดแล้ว! subject: การเก็บถาวรของคุณพร้อมสำหรับการดาวน์โหลดแล้ว title: การส่งออกการเก็บถาวร + failed_2fa: + details: 'นี่คือรายละเอียดของความพยายามในการลงชื่อเข้า:' + explanation: ใครสักคนได้ลองลงชื่อเข้าบัญชีของคุณแต่ให้การรับรองความถูกต้องด้วยปัจจัยที่สองที่ไม่ถูกต้อง + further_actions_html: หากนี่ไม่ใช่คุณ เราแนะนำให้คุณ %{action} ทันทีเนื่องจากอาจมีการบุกรุกบัญชี + subject: ความล้มเหลวการรับรองความถูกต้องด้วยปัจจัยที่สอง + title: การรับรองความถูกต้องด้วยปัจจัยที่สองล้มเหลว suspicious_sign_in: change_password: เปลี่ยนรหัสผ่านของคุณ details: 'นี่คือรายละเอียดของการลงชื่อเข้า:' diff --git a/config/locales/tr.yml b/config/locales/tr.yml index b3a52715b7..2b605e5073 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1201,8 +1201,8 @@ tr: '406': Bu sayfa istenen formatta mevcut değil. '410': Aradığınız sayfa artık yok. '422': - content: Güvenlik doğrulaması başarısız oldu. Site cookie'lerini engellemiş olabilirsiniz. - title: Güvenlik doğrulamasu başarısız + content: Güvenlik doğrulaması başarısız oldu. Site çerezlerini engellemiş olabilirmisiniz? + title: Güvenlik doğrulaması başarısız '429': Kısıtlandı '500': content: Üzgünüz, ancak bir şey ters gitti. @@ -1243,15 +1243,15 @@ tr: add_keyword: Anahtar sözcük ekle keywords: Anahtar Sözcükler statuses: Tekil gönderiler - statuses_hint_html: Bu filtre, aşağıdaki anahtar kelimelerle eşleşip eşleşmediklerinden bağımsız olarak tekil gönderileri seçmek için uygulanıyor. Filtredeki gönderileri inceleyin veya kaldırın. - title: Filtreyi düzenle + statuses_hint_html: Bu süzgeçlere, aşağıdaki anahtar kelimelerle eşleşip eşleşmediklerinden bağımsız olarak tekil gönderileri seçmek için uygulanıyor. Süzgeçlerdeki gönderileri inceleyin veya kaldırın. + title: Süzgeci düzenle errors: - deprecated_api_multiple_keywords: Bu parametreler, birden fazla filtre anahtar sözcüğü için geçerli olduğundan dolayı bu uygulama içerisinden değiştirilemezler. Daha yeni bir uygulama veya web arayüzünü kullanın. + deprecated_api_multiple_keywords: Bu parametreler, birden fazla süzgeç anahtar sözcüğü için geçerli olduğundan dolayı bu uygulama içerisinden değiştirilemezler. Daha yeni bir uygulama veya web arayüzünü kullanın. invalid_context: Sıfır ya da geçersiz içerik sağlandı index: contexts: "%{contexts} içindeki filtreler" delete: Sil - empty: Hiç filtreniz yok. + empty: Hiç süzgeciniz yok. expires_in: "%{distance} sürede sona eriyor" expires_on: "%{date} tarihinde sona eriyor" keywords: @@ -1263,16 +1263,16 @@ tr: statuses_long: one: "%{count} tekil gönderi gizli" other: "%{count} tekil gönderi gizli" - title: Filtreler + title: Süzgeçler new: - save: Yeni filtre kaydet - title: Yeni filtre ekle + save: Yeni süzgeç kaydet + title: Yeni süzgeç ekle statuses: - back_to_filter: Filtreye dön + back_to_filter: Süzgeçe dön batch: - remove: Filtreden kaldır + remove: Süzgeçden kaldır index: - hint: Bu filtre diğer ölçütlerden bağımsız olarak tekil gönderileri seçmek için uygulanıyor. Web arayüzünü kullanarak bu filtreye daha fazla gönderi ekleyebilirsiniz. + hint: Bu süzgece diğer ölçütlerden bağımsız olarak tekil gönderileri seçmek için uygulanıyor. Web arayüzünü kullanarak bu süzgece daha fazla gönderi ekleyebilirsiniz. title: Süzgeçlenmiş gönderiler generic: all: Tümü @@ -1480,8 +1480,8 @@ tr: subject: Anket %{name} tarafından sonlandırıldı reblog: body: "%{name} durumunuzu boostladı:" - subject: "%{name} durumunuzu boostladı" - title: Yeni boost + subject: "%{name} durumunuzu paylaştı" + title: Yeni paylaşım status: subject: "%{name} az önce gönderdi" update: @@ -1544,7 +1544,7 @@ tr: title: Gizlilik Politikası reactions: errors: - limit_reached: Farklı reaksiyonların sınırına ulaşıldı + limit_reached: Farklı tepkilerin sınırına ulaşıldı unrecognized_emoji: tanınan bir emoji değil redirects: prompt: Eğer bu bağlantıya güveniyorsanız, tıklayıp devam edebilirsiniz. @@ -1663,17 +1663,17 @@ tr: other: "%{count} ses" description: 'Ekli: %{attached}' image: - one: "%{count} resim" - other: "%{count} resim" + one: "%{count} görsel" + other: "%{count} görseller" video: one: "%{count} video" - other: "%{count} video" - boosted_from_html: "%{acct_link} kişisinden boostladı" + other: "%{count} videolar" + boosted_from_html: "%{acct_link} kişisinden paylaştı" content_warning: 'İçerik uyarısı: %{warning}' default_language: Arayüz diliyle aynı disallowed_hashtags: one: 'izin verilmeyen bir etiket içeriyordu: %{tags}' - other: 'izin verilmeyen hashtag''leri içeriyordu: %{tags}' + other: 'izin verilmeyen etiketler içeriyordu: %{tags}' edited_at_html: "%{date} tarihinde düzenlendi" errors: in_reply_not_found: Yanıtlamaya çalıştığınız durum yok gibi görünüyor. @@ -1683,14 +1683,14 @@ tr: direct: Sadece değinilen kullanıcıların görebileceği gönderiler üstte tutulamaz limit: Halihazırda maksimum sayıda gönderi sabitlediniz ownership: Başkasının gönderisi sabitlenemez - reblog: Bir boost sabitlenemez + reblog: Bir gönderi sabitlenemez poll: total_people: one: "%{count} kişi" - other: "%{count} kişi" + other: "%{count} kişiler" total_votes: one: "%{count} oy" - other: "%{count} oy" + other: "%{count} oylar" vote: Oy Ver show_more: Daha fazlasını göster show_newer: Yenileri göster @@ -1756,7 +1756,7 @@ tr: default: "%d %b %Y %H:%M" month: "%b %Y" time: "%H:%M" - with_time_zone: "%d.%m.%Y %H:%M %Z" + with_time_zone: "%b %d, %Y, %H:%M %Z" translation: errors: quota_exceeded: Çeviri hizmetinin sunucu kapsamındaki kullanım kotası aşıldı. @@ -1774,7 +1774,7 @@ tr: otp: Authenticator uygulaması recovery_codes: Kurtarma kodlarını yedekle recovery_codes_regenerated: Kurtarma kodları başarıyla yeniden oluşturuldu - recovery_instructions_html: 'Eğer telefonunuza erişiminizi kaybederseniz, aşağıdaki kurtarma kodlarından birini kullanarak hesabınıza giriş yapabilirsiniz. Kurtarma kodlarınızı güvenli halde tutunuz. Örneğin: kodların çıktısını alıp diğer önemli belgeleriniz ile birlikte saklayabilirsiniz.' + recovery_instructions_html: 'Eğer telefonunuza erişiminizi kaybederseniz, aşağıdaki kurtarma kodlarından birini kullanarak hesabınıza giriş yapabilirsiniz. Kurtarma kodlarınızı güvenli halde tutunuz. Örneğin: kodların çıktısını alıp diğer önemli belgeleriniz ile birlikte saklayabilirsiniz.' webauthn: Güvenlik anahtarları user_mailer: appeal_approved: diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 531bdb3d59..237305c0e9 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -1845,14 +1845,24 @@ uk: action: Налаштування облікового запису explanation: Оскарження попередження вашому обліковому запису %{strike_date}, яке ви надіслали %{appeal_date} було схвалено. Ваш обліковий запис знову вважається добропорядним. subject: Вашу апеляцію від %{date} було схвалено + subtitle: Ваш обліковий запис знову готовий до користування. title: Апеляцію схвалено appeal_rejected: explanation: Оскарження попередження вашому обліковому запису %{strike_date}, яке ви надіслали %{appeal_date} було відхилено. subject: Вашу апеляцію від %{date} було відхилено + subtitle: Вашу апеляцію відхилено. title: Апеляцію відхилено backup_ready: + explanation: Ви просили про створення резервної копії вашого облікового запису Mastodon. + extra: Вона готова до завантаження! subject: Ваш архів готовий до завантаження title: Винесення архіву + failed_2fa: + details: 'Подробиці спроби входу:' + explanation: Хтось намагався ввійти у ваш обліковий запис, але надав недійсний другий фактор автентифікації. + further_actions_html: Якщо це не ви, ми радимо вам негайно %{action}, оскільки обліковий запис може бути скомпрометованим. + subject: Помилка другого фактору автентифікації + title: Помилка другого фактора автентифікації suspicious_sign_in: change_password: змінити свій пароль details: 'Відомості про вхід:' @@ -1906,7 +1916,7 @@ uk: go_to_sso_account_settings: Перейдіть до налаштувань облікового запису постачальника ідентифікації invalid_otp_token: Введено неправильний код otp_lost_help_html: Якщо ви втратили доступ до обох, ви можете отримати доступ з %{email} - rate_limited: Занадто багато спроб з'єднання. Спробуйте ще раз пізніше. + rate_limited: Забагато спроб з'єднання. Спробуйте ще раз пізніше. seamless_external_login: Ви увійшли за допомогою зовнішнього сервісу, тому налаштування паролю та електронної пошти недоступні. signed_in_as: 'Ви увійшли як:' verification: From aaa58d4807377e04649499ebee91757b16b9a007 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 6 Feb 2024 21:48:11 +0100 Subject: [PATCH 42/42] Fix tagging of manual security nightly builds (#29061) --- .github/workflows/build-security.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-security.yml b/.github/workflows/build-security.yml index b03b787d5f..1e2455d3d9 100644 --- a/.github/workflows/build-security.yml +++ b/.github/workflows/build-security.yml @@ -38,7 +38,7 @@ jobs: tags: | type=raw,value=edge type=raw,value=nightly - type=schedule,pattern=${{ needs.compute-suffix.outputs.prerelease }} + type=raw,value=${{ needs.compute-suffix.outputs.prerelease }} secrets: inherit build-image-streaming: @@ -60,5 +60,5 @@ jobs: tags: | type=raw,value=edge type=raw,value=nightly - type=schedule,pattern=${{ needs.compute-suffix.outputs.prerelease }} + type=raw,value=${{ needs.compute-suffix.outputs.prerelease }} secrets: inherit