From d475bcce65704e828e1a32590f6c98fc42baa882 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 15 May 2025 10:00:55 +0200 Subject: [PATCH 1/6] chore(deps): update dependency bootsnap to v1.18.5 (#34684) 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 2ccbae6b1b..b013f3d062 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -124,7 +124,7 @@ GEM binding_of_caller (1.0.1) debug_inspector (>= 1.2.0) blurhash (0.1.8) - bootsnap (1.18.4) + bootsnap (1.18.5) msgpack (~> 1.2) brakeman (7.0.2) racc From ccffa11f2be5df500e6a69fdc6c0c2288fa85427 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 15 May 2025 10:07:38 +0200 Subject: [PATCH 2/6] refactor: Remove duplicated `AvatarGroup` CSS and familiar followers cleanup (#34681) --- .../components/__tests__/avatar-test.jsx | 6 ++-- app/javascript/mastodon/components/avatar.tsx | 30 ++++++++++++---- .../mastodon/components/avatar_group.tsx | 31 ++++------------ .../components/familiar_followers.tsx | 24 ++++++++----- .../mastodon/features/lists/members.tsx | 13 ++++--- .../mastodon/features/lists/new.tsx | 35 +++++++++++-------- .../notification_group_with_status.tsx | 22 ++++++++---- app/javascript/mastodon/locales/en.json | 1 - .../styles/mastodon/components.scss | 14 ++++++-- app/javascript/styles/mastodon/forms.scss | 34 ++++-------------- 10 files changed, 110 insertions(+), 100 deletions(-) diff --git a/app/javascript/mastodon/components/__tests__/avatar-test.jsx b/app/javascript/mastodon/components/__tests__/avatar-test.jsx index 21c3ae5800..fc87c0bf72 100644 --- a/app/javascript/mastodon/components/__tests__/avatar-test.jsx +++ b/app/javascript/mastodon/components/__tests__/avatar-test.jsx @@ -1,11 +1,13 @@ -import { fromJS } from 'immutable'; import renderer from 'react-test-renderer'; +import { accountDefaultValues, createAccountFromServerJSON } from '@/mastodon/models/account'; + import { Avatar } from '../avatar'; describe('', () => { - const account = fromJS({ + const account = createAccountFromServerJSON({ + ...accountDefaultValues, username: 'alice', acct: 'alice', display_name: 'Alice', diff --git a/app/javascript/mastodon/components/avatar.tsx b/app/javascript/mastodon/components/avatar.tsx index a2dc0b782e..fb331813a9 100644 --- a/app/javascript/mastodon/components/avatar.tsx +++ b/app/javascript/mastodon/components/avatar.tsx @@ -1,17 +1,21 @@ import { useState, useCallback } from 'react'; import classNames from 'classnames'; +import { Link } from 'react-router-dom'; import { useHovering } from 'mastodon/hooks/useHovering'; import { autoPlayGif } from 'mastodon/initial_state'; import type { Account } from 'mastodon/models/account'; interface Props { - account: Account | undefined; // FIXME: remove `undefined` once we know for sure its always there - size: number; + account: + | Pick + | undefined; // FIXME: remove `undefined` once we know for sure its always there + size?: number; style?: React.CSSProperties; inline?: boolean; animate?: boolean; + withLink?: boolean; counter?: number | string; counterBorderColor?: string; } @@ -21,6 +25,7 @@ export const Avatar: React.FC = ({ animate = autoPlayGif, size = 20, inline = false, + withLink = false, style: styleFromParent, counter, counterBorderColor, @@ -35,10 +40,7 @@ export const Avatar: React.FC = ({ height: `${size}px`, }; - const src = - hovering || animate - ? account?.get('avatar') - : account?.get('avatar_static'); + const src = hovering || animate ? account?.avatar : account?.avatar_static; const handleLoad = useCallback(() => { setLoading(false); @@ -48,7 +50,7 @@ export const Avatar: React.FC = ({ setError(true); }, [setError]); - return ( + const avatar = (
= ({ )}
); + + if (withLink) { + return ( + + {avatar} + + ); + } + + return avatar; }; diff --git a/app/javascript/mastodon/components/avatar_group.tsx b/app/javascript/mastodon/components/avatar_group.tsx index 4f583defcf..2420728542 100644 --- a/app/javascript/mastodon/components/avatar_group.tsx +++ b/app/javascript/mastodon/components/avatar_group.tsx @@ -1,34 +1,17 @@ import classNames from 'classnames'; -import { Link } from 'react-router-dom'; -import { Avatar } from 'mastodon/components/avatar'; -import { useAppSelector } from 'mastodon/store'; - -const AvatarWrapper: React.FC<{ accountId: string }> = ({ accountId }) => { - const account = useAppSelector((state) => state.accounts.get(accountId)); - - if (!account) return null; - - return ( - - - - ); -}; +/** + * Wrapper for displaying a number of Avatar components horizontally, + * either spaced out (default) or overlapping (using the `compact` prop). + */ export const AvatarGroup: React.FC<{ - accountIds: string[]; compact?: boolean; -}> = ({ accountIds, compact = false }) => ( + children: React.ReactNode; +}> = ({ children, compact = false }) => (
- {accountIds.map((accountId) => ( - - ))} + {children}
); diff --git a/app/javascript/mastodon/features/account_timeline/components/familiar_followers.tsx b/app/javascript/mastodon/features/account_timeline/components/familiar_followers.tsx index b3b97c317b..1beaceabb4 100644 --- a/app/javascript/mastodon/features/account_timeline/components/familiar_followers.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/familiar_followers.tsx @@ -5,16 +5,21 @@ import { FormattedMessage } from 'react-intl'; import { Link } from 'react-router-dom'; import { fetchAccountsFamiliarFollowers } from '@/mastodon/actions/accounts_familiar_followers'; +import { Avatar } from '@/mastodon/components/avatar'; import { AvatarGroup } from '@/mastodon/components/avatar_group'; import type { Account } from '@/mastodon/models/account'; import { getAccountFamiliarFollowers } from '@/mastodon/selectors/accounts'; import { useAppDispatch, useAppSelector } from '@/mastodon/store'; -const AccountLink: React.FC<{ account?: Account }> = ({ account }) => ( - - {account?.display_name} - -); +const AccountLink: React.FC<{ account?: Account }> = ({ account }) => { + // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing + const name = account?.display_name || `@${account?.acct}`; + return ( + + {name} + + ); +}; const FamiliarFollowersReadout: React.FC<{ familiarFollowers: Account[] }> = ({ familiarFollowers, @@ -74,10 +79,11 @@ export const FamiliarFollowers: React.FC<{ accountId: string }> = ({ return (
- account.id)} - /> + + {familiarFollowers.map((account) => ( + + ))} +
); diff --git a/app/javascript/mastodon/features/lists/members.tsx b/app/javascript/mastodon/features/lists/members.tsx index 41d02ad9fc..e31943b78b 100644 --- a/app/javascript/mastodon/features/lists/members.tsx +++ b/app/javascript/mastodon/features/lists/members.tsx @@ -35,8 +35,11 @@ import { VerifiedBadge } from 'mastodon/components/verified_badge'; import { me } from 'mastodon/initial_state'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; -const messages = defineMessages({ - heading: { id: 'column.list_members', defaultMessage: 'Manage list members' }, +export const messages = defineMessages({ + manageMembers: { + id: 'column.list_members', + defaultMessage: 'Manage list members', + }, placeholder: { id: 'lists.search', defaultMessage: 'Search', @@ -255,10 +258,10 @@ const ListMembers: React.FC<{ return ( - {intl.formatMessage(messages.heading)} + {intl.formatMessage(messages.manageMembers)} diff --git a/app/javascript/mastodon/features/lists/new.tsx b/app/javascript/mastodon/features/lists/new.tsx index 100f126c37..8253ab58b7 100644 --- a/app/javascript/mastodon/features/lists/new.tsx +++ b/app/javascript/mastodon/features/lists/new.tsx @@ -9,16 +9,23 @@ import { isFulfilled } from '@reduxjs/toolkit'; import Toggle from 'react-toggle'; +import ChevronRightIcon from '@/material-icons/400-24px/chevron_right.svg?react'; import ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react'; import { fetchList } from 'mastodon/actions/lists'; import { createList, updateList } from 'mastodon/actions/lists_typed'; import { apiGetAccounts } from 'mastodon/api/lists'; +import type { ApiAccountJSON } from 'mastodon/api_types/accounts'; import type { RepliesPolicyType } from 'mastodon/api_types/lists'; +import { Avatar } from 'mastodon/components/avatar'; +import { AvatarGroup } from 'mastodon/components/avatar_group'; import { Column } from 'mastodon/components/column'; import { ColumnHeader } from 'mastodon/components/column_header'; +import { Icon } from 'mastodon/components/icon'; import { LoadingIndicator } from 'mastodon/components/loading_indicator'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; +import { messages as membersMessages } from './members'; + const messages = defineMessages({ edit: { id: 'column.edit_list', defaultMessage: 'Edit list' }, create: { id: 'column.create_list', defaultMessage: 'Create list' }, @@ -27,42 +34,40 @@ const messages = defineMessages({ const MembersLink: React.FC<{ id: string; }> = ({ id }) => { - const [count, setCount] = useState(0); - const [avatars, setAvatars] = useState([]); + const intl = useIntl(); + const [avatarCount, setAvatarCount] = useState(0); + const [avatarAccounts, setAvatarAccounts] = useState([]); useEffect(() => { void apiGetAccounts(id) .then((data) => { - setCount(data.length); - setAvatars(data.slice(0, 3).map((a) => a.avatar)); - return ''; + setAvatarCount(data.length); + setAvatarAccounts(data.slice(0, 3)); }) .catch(() => { // Nothing }); - }, [id, setCount, setAvatars]); + }, [id]); return (
- + {intl.formatMessage(membersMessages.manageMembers)} +
-
- {avatars.map((url) => ( - + + {avatarAccounts.map((a) => ( + ))} -
+ ); }; diff --git a/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx b/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx index cbb0b85f1d..b0b86eead1 100644 --- a/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx +++ b/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx @@ -7,6 +7,7 @@ import { HotKeys } from 'react-hotkeys'; import { replyComposeById } from 'mastodon/actions/compose'; import { navigateToStatus } from 'mastodon/actions/statuses'; +import { Avatar } from 'mastodon/components/avatar'; import { AvatarGroup } from 'mastodon/components/avatar_group'; import type { IconProp } from 'mastodon/components/icon'; import { Icon } from 'mastodon/components/icon'; @@ -17,6 +18,14 @@ import { useAppSelector, useAppDispatch } from 'mastodon/store'; import { DisplayedName } from './displayed_name'; import { EmbeddedStatus } from './embedded_status'; +export const AvatarById: React.FC<{ accountId: string }> = ({ accountId }) => { + const account = useAppSelector((state) => state.accounts.get(accountId)); + + if (!account) return null; + + return ; +}; + export type LabelRenderer = ( displayedName: JSX.Element, total: number, @@ -99,12 +108,13 @@ export const NotificationGroupWithStatus: React.FC<{
- + + {accountIds + .slice(0, NOTIFICATIONS_GROUP_MAX_AVATARS) + .map((id) => ( + + ))} + {actions && (
{actions}
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 45bc6109b7..2d49346ac7 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -518,7 +518,6 @@ "lists.exclusive": "Hide members in Home", "lists.exclusive_hint": "If someone is on this list, hide them in your Home feed to avoid seeing their posts twice.", "lists.find_users_to_add": "Find users to add", - "lists.list_members": "List members", "lists.list_members_count": "{count, plural, one {# member} other {# members}}", "lists.list_name": "List name", "lists.new_list_name": "New list name", diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index ea48d98ec6..f3271b2d3b 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -2179,10 +2179,18 @@ a .account__avatar { & > :not(:first-child) { margin-inline-start: -8px; + } - .account__avatar { - box-shadow: 0 0 0 2px var(--background-color); - } + & > :first-child { + transform: rotate(-4deg); + } + + & > :nth-child(2) { + transform: rotate(-2deg); + } + + .account__avatar { + box-shadow: 0 0 0 2px var(--background-color); } } diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss index 6ec6a4199f..5dbe4f9e08 100644 --- a/app/javascript/styles/mastodon/forms.scss +++ b/app/javascript/styles/mastodon/forms.scss @@ -1440,34 +1440,12 @@ code { display: block; color: $primary-text-color; } - } - } -} - -.avatar-pile { - display: flex; - align-items: center; - - img { - display: block; - border-radius: 8px; - width: 32px; - height: 32px; - border: 2px solid var(--background-color); - background: var(--surface-background-color); - margin-inline-end: -16px; - transform: rotate(0); - - &:first-child { - transform: rotate(-4deg); - } - - &:nth-child(2) { - transform: rotate(-2deg); - } - - &:last-child { - margin-inline-end: 0; + + .icon { + vertical-align: -5px; + width: 20px; + height: 20px; + } } } } From e17c78b67934308748d5d036bc144fb6b1ff8509 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 15 May 2025 10:50:48 +0200 Subject: [PATCH 3/6] New Crowdin Translations (automated) (#34695) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/bg.json | 5 ++- app/javascript/mastodon/locales/ca.json | 4 +- app/javascript/mastodon/locales/cs.json | 1 - app/javascript/mastodon/locales/cy.json | 1 - app/javascript/mastodon/locales/da.json | 1 - app/javascript/mastodon/locales/de.json | 1 - app/javascript/mastodon/locales/el.json | 1 - app/javascript/mastodon/locales/en-GB.json | 1 - app/javascript/mastodon/locales/eo.json | 1 - app/javascript/mastodon/locales/es-AR.json | 1 - app/javascript/mastodon/locales/es-MX.json | 1 - app/javascript/mastodon/locales/es.json | 3 +- app/javascript/mastodon/locales/et.json | 1 - app/javascript/mastodon/locales/fa.json | 1 - app/javascript/mastodon/locales/fi.json | 1 - app/javascript/mastodon/locales/fo.json | 1 - app/javascript/mastodon/locales/fr-CA.json | 1 - app/javascript/mastodon/locales/fr.json | 1 - app/javascript/mastodon/locales/fy.json | 1 - app/javascript/mastodon/locales/ga.json | 1 - app/javascript/mastodon/locales/gd.json | 1 - app/javascript/mastodon/locales/gl.json | 1 - app/javascript/mastodon/locales/he.json | 1 - app/javascript/mastodon/locales/hu.json | 1 - app/javascript/mastodon/locales/ia.json | 1 - app/javascript/mastodon/locales/io.json | 1 - app/javascript/mastodon/locales/is.json | 1 - app/javascript/mastodon/locales/it.json | 1 - app/javascript/mastodon/locales/ja.json | 1 - app/javascript/mastodon/locales/ko.json | 1 - app/javascript/mastodon/locales/lt.json | 1 - app/javascript/mastodon/locales/nan.json | 1 - app/javascript/mastodon/locales/nl.json | 1 - app/javascript/mastodon/locales/nn.json | 1 - app/javascript/mastodon/locales/pa.json | 1 - app/javascript/mastodon/locales/pl.json | 1 - app/javascript/mastodon/locales/pt-BR.json | 1 - app/javascript/mastodon/locales/pt-PT.json | 1 - app/javascript/mastodon/locales/ru.json | 45 +++++++++++----------- app/javascript/mastodon/locales/sk.json | 1 - app/javascript/mastodon/locales/sl.json | 1 - app/javascript/mastodon/locales/sq.json | 1 - app/javascript/mastodon/locales/sv.json | 1 - app/javascript/mastodon/locales/th.json | 2 +- app/javascript/mastodon/locales/tr.json | 1 - app/javascript/mastodon/locales/uk.json | 1 - app/javascript/mastodon/locales/vi.json | 1 - app/javascript/mastodon/locales/zh-CN.json | 1 - app/javascript/mastodon/locales/zh-TW.json | 1 - config/locales/ca.yml | 4 ++ config/locales/lt.yml | 2 +- config/locales/simple_form.bg.yml | 5 +++ config/locales/simple_form.ca.yml | 5 +++ config/locales/simple_form.gl.yml | 5 +++ config/locales/simple_form.tr.yml | 2 + config/locales/tr.yml | 4 ++ 56 files changed, 57 insertions(+), 73 deletions(-) diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 72ff7ea333..f3c6f771f5 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -28,6 +28,9 @@ "account.edit_profile": "Редактиране на профила", "account.enable_notifications": "Известяване при публикуване от @{name}", "account.endorse": "Представи в профила", + "account.familiar_followers_many": "Последвано от {name1}, {name2} и {othersCount, plural, one {# друг} other {# други}}", + "account.familiar_followers_one": "Последвано от {name1}", + "account.familiar_followers_two": "Последвано от {name1} и {name2}", "account.featured": "Препоръчано", "account.featured.accounts": "Профили", "account.featured.hashtags": "Хаштагове", @@ -304,6 +307,7 @@ "emoji_button.search_results": "Резултати от търсене", "emoji_button.symbols": "Символи", "emoji_button.travel": "Пътуване и места", + "empty_column.account_featured_other.unknown": "Този акаунт още не е отличил нищо.", "empty_column.account_hides_collections": "Този потребител е избрал да не дава тази информация", "empty_column.account_suspended": "Спрян акаунт", "empty_column.account_timeline": "Тук няма публикации!", @@ -508,7 +512,6 @@ "lists.exclusive": "Скриване на членуващи в Начало", "lists.exclusive_hint": "Ако някой е в този списък, то скрийте го в инфоканала си на Начало, за да избегнете виждането на публикациите му два пъти.", "lists.find_users_to_add": "Намерете потребители за добавяне", - "lists.list_members": "Списък членуващи", "lists.list_members_count": "{count, plural, one {# членуващ} other {# членуващи}}", "lists.list_name": "Име на списък", "lists.new_list_name": "Ново име на списък", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 30edd60606..2ea3a36329 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -28,6 +28,9 @@ "account.edit_profile": "Edita el perfil", "account.enable_notifications": "Notifica'm els tuts de @{name}", "account.endorse": "Recomana en el perfil", + "account.familiar_followers_many": "Seguit per {name1}, {name2} i {othersCount, plural, one {# altre compte} other {# altres comptes}}", + "account.familiar_followers_one": "Seguit per {name1}", + "account.familiar_followers_two": "Seguit per {name1} i {name2}", "account.featured": "Destacat", "account.featured.accounts": "Perfils", "account.featured.hashtags": "Etiquetes", @@ -514,7 +517,6 @@ "lists.exclusive": "Amaga membres a Inici", "lists.exclusive_hint": "Si algú és a la llista, amagueu-los de la pantalla d'inici, per a no veure'n les publicacions duplicades.", "lists.find_users_to_add": "Troba usuaris per a afegir", - "lists.list_members": "Membres de la llista", "lists.list_members_count": "{count, plural, one {# membre} other {# membres}}", "lists.list_name": "Nom de la llista", "lists.new_list_name": "Nom de la nova llista", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 679de9e724..a185c59d79 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -518,7 +518,6 @@ "lists.exclusive": "Skrýt členy na domovském kanálu", "lists.exclusive_hint": "Pokud je někdo na tomto seznamu, skryjte jej ve vašem domovském kanálu, abyste se vyhnuli dvojímu vidění jejich příspěvků.", "lists.find_users_to_add": "Najít uživatele, které chcete přidat", - "lists.list_members": "Členové seznamu", "lists.list_members_count": "{count, plural, one {# člen} few {# členové} many {# členů} other {# členů}}", "lists.list_name": "Název seznamu", "lists.new_list_name": "Název nového seznamu", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 6d8b611817..cc717d4e23 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -515,7 +515,6 @@ "lists.exclusive": "Cuddio aelodau yn y Cartref", "lists.exclusive_hint": "Os oes rhywun ar y rhestr hon, cuddiwch nhw yn eich llif Cartref i osgoi gweld eu postiadau ddwywaith.", "lists.find_users_to_add": "Canfod defnyddwyr i'w hychwanegu", - "lists.list_members": "Aelodau rhestr", "lists.list_members_count": "{count, plural, one {# aelod} other {# aelod}}", "lists.list_name": "Enw rhestr", "lists.new_list_name": "Enw rhestr newydd", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index e50023c346..31d15a3eba 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -518,7 +518,6 @@ "lists.exclusive": "Skjul medlemmer i Hjem", "lists.exclusive_hint": "Er nogen er på denne liste, skjul personen i hjemme-feeds for at undgå at se vedkommendes indlæg to gange.", "lists.find_users_to_add": "Find brugere at tilføje", - "lists.list_members": "Liste over medlemmer", "lists.list_members_count": "{count, plural, one {# medlem} other {# medlemmer}}", "lists.list_name": "Listetitel", "lists.new_list_name": "Ny listetitel", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 2464182d52..dfe6c8c389 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -518,7 +518,6 @@ "lists.exclusive": "Mitglieder auf der Startseite ausblenden", "lists.exclusive_hint": "Profile, die sich auf dieser Liste befinden, werden nicht auf deiner Startseite angezeigt, damit deren Beiträge nicht doppelt erscheinen.", "lists.find_users_to_add": "Suche nach Profilen, um sie hinzuzufügen", - "lists.list_members": "Listenmitglieder", "lists.list_members_count": "{count, plural, one {# Mitglied} other {# Mitglieder}}", "lists.list_name": "Titel der Liste", "lists.new_list_name": "Neuer Listentitel", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 441e15622e..fad98100dc 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -497,7 +497,6 @@ "lists.exclusive": "Απόκρυψη μελών από την Αρχική", "lists.exclusive_hint": "Αν κάποιος είναι σε αυτή τη λίστα, απόκρυψέ τον στην Αρχική σου για να αποφύγεις να βλέπεις τις αναρτήσεις του δύο φορές.", "lists.find_users_to_add": "Εύρεση χρηστών για προσθήκη", - "lists.list_members": "Λίστα μελών", "lists.list_members_count": "{count, plural, one {# μέλος} other {# μέλη}}", "lists.list_name": "Όνομα λίστας", "lists.new_list_name": "Νέο όνομα λίστας", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 89bd2d3f1a..cfac9f4e68 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -490,7 +490,6 @@ "lists.exclusive": "Hide members in Home", "lists.exclusive_hint": "If someone is on this list, hide them in your Home feed to avoid seeing their posts twice.", "lists.find_users_to_add": "Find users to add", - "lists.list_members": "List members", "lists.list_members_count": "{count, plural, one {# member} other {# members}}", "lists.list_name": "List name", "lists.new_list_name": "New list name", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 9e90b91965..8538fd0098 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -515,7 +515,6 @@ "lists.exclusive": "Kaŝi membrojn en Hejmpaĝo", "lists.exclusive_hint": "Se iu estas en ĉi tiuj listo, kaŝu ilin en via hejmpaĝo por eviti vidi iliajn afiŝojn dufoje.", "lists.find_users_to_add": "Trovi uzantojn por aldoni", - "lists.list_members": "Listoj de membroj", "lists.list_members_count": "{count, plural,one {# membro} other {# membroj}}", "lists.list_name": "Nomo de la listo", "lists.new_list_name": "Nomo de nova listo", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 96a3af6d2f..f441d8fca8 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -518,7 +518,6 @@ "lists.exclusive": "Ocultar miembros en la línea temporal principal", "lists.exclusive_hint": "Si alguien está en esta lista, ocultalo en tu línea temporal principal para evitar que aparezcan sus mensajes dos veces.", "lists.find_users_to_add": "Buscar usuarios para agregar", - "lists.list_members": "Miembros de lista", "lists.list_members_count": "{count, plural,one {# miembro} other {# miembros}}", "lists.list_name": "Nombre de la lista", "lists.new_list_name": "Nombre de la nueva lista", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index b28ec59b7d..e0ca7223ba 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -518,7 +518,6 @@ "lists.exclusive": "Ocultar miembros en Inicio", "lists.exclusive_hint": "Si alguien aparece en esta lista, ocúltalo en tu página de inicio para evitar ver sus publicaciones dos veces.", "lists.find_users_to_add": "Buscar usuarios para agregar", - "lists.list_members": "Miembros de la lista", "lists.list_members_count": "{count, plural,one {# miembro} other {# miembros}}", "lists.list_name": "Nombre de la lista", "lists.new_list_name": "Nombre de la nueva lista", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 54f100db71..99a4610e20 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -28,7 +28,7 @@ "account.edit_profile": "Editar perfil", "account.enable_notifications": "Notificarme cuando @{name} publique algo", "account.endorse": "Destacar en el perfil", - "account.familiar_followers_many": "Seguido por {name1}, {name2} y {othersCount, plural, one {# otro} other {# otros}}", + "account.familiar_followers_many": "Seguido por {name1}, {name2} y {othersCount, plural, one {# más} other {# más}}", "account.familiar_followers_one": "Seguido por {name1}", "account.familiar_followers_two": "Seguido por {name1} y {name2}", "account.featured": "Destacado", @@ -518,7 +518,6 @@ "lists.exclusive": "Ocultar miembros en Inicio", "lists.exclusive_hint": "Si alguien está en esta lista, escóndelo en tu página de inicio para evitar ver sus publicaciones dos veces.", "lists.find_users_to_add": "Buscar usuarios para añadir", - "lists.list_members": "Miembros de la lista", "lists.list_members_count": "{count, plural,one {# miembro} other {# miembros}}", "lists.list_name": "Nombre de la lista", "lists.new_list_name": "Nombre de la nueva lista", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 41248f5a1e..857eaa9062 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -490,7 +490,6 @@ "lists.exclusive": "Peida avalehelt liikmed", "lists.exclusive_hint": "Kui keegi on selles loetelus, peida ta avalehe lõimest, vältimaks tema postituste kaks korda nägemist.", "lists.find_users_to_add": "Leia kasutajaid, keda lisada", - "lists.list_members": "Loetelu liikmed", "lists.list_members_count": "{count, plural, one {# liige} other {# liiget}}", "lists.list_name": "Loetelu nimi", "lists.new_list_name": "Loetelu uus nimi", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 08f08c030b..2d96a0d19e 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -510,7 +510,6 @@ "lists.exclusive": "نهفتن اعضا در خانه", "lists.exclusive_hint": "اگر کسی در این سیاهه باشد، در خوراک خانگیتان نهفته تا از نمایش دویارهٔ فرسته‌هایش خودداری شود.", "lists.find_users_to_add": "یافتن کاربرانی برای افزودن", - "lists.list_members": "اعضای سیاهه", "lists.list_members_count": "{count, plural,one {# عضو}other {# عضو}}", "lists.list_name": "نام سیاهه", "lists.new_list_name": "نام سیاههٔ جدید", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 7380220e8a..3615185331 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -518,7 +518,6 @@ "lists.exclusive": "Piilota jäsenet kotisyötteestä", "lists.exclusive_hint": "Jos joku on tässä listassa, piilota hänet kotisyötteestäsi, jotta et näe hänen julkaisujaan kahteen kertaan.", "lists.find_users_to_add": "Etsi lisättäviä käyttäjiä", - "lists.list_members": "Listan jäsenet", "lists.list_members_count": "{count, plural, one {# jäsen} other {# jäsentä}}", "lists.list_name": "Listan nimi", "lists.new_list_name": "Uuden listan nimi", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 281232c1e3..c659f91eb6 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -518,7 +518,6 @@ "lists.exclusive": "Fjal limir á heimarás", "lists.exclusive_hint": "Um onkur er á hesum listanum, so skulu tey fjalast á heimarásini, so tú sleppir undan at síggja postar teirra tvær ferðir.", "lists.find_users_to_add": "Finn brúkarar at leggja afturat", - "lists.list_members": "Lista limir", "lists.list_members_count": "{count, plural, one {# limur} other {# limir}}", "lists.list_name": "Listanavn", "lists.new_list_name": "Nýtt listanavn", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index cc66e58411..fea37d0da2 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -494,7 +494,6 @@ "lists.exclusive": "Cacher les membres de la page d'accueil", "lists.exclusive_hint": "Si quelqu'un est dans cette liste, les cacher dans votre fil pour éviter de voir leurs messages deux fois.", "lists.find_users_to_add": "Trouver des utilisateurs à ajouter", - "lists.list_members": "Lister les membres", "lists.list_members_count": "{count, plural, one {# member} other {# members}}", "lists.list_name": "Nom de la liste", "lists.new_list_name": "Nom de la nouvelle liste", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 8219c4e155..81178dd68c 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -494,7 +494,6 @@ "lists.exclusive": "Cacher les membres de la page d'accueil", "lists.exclusive_hint": "Si quelqu'un est dans cette liste, les cacher dans votre fil pour éviter de voir leurs messages deux fois.", "lists.find_users_to_add": "Trouver des utilisateurs à ajouter", - "lists.list_members": "Lister les membres", "lists.list_members_count": "{count, plural, one {# member} other {# members}}", "lists.list_name": "Nom de la liste", "lists.new_list_name": "Nom de la nouvelle liste", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index 238622b501..8d013bf887 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -510,7 +510,6 @@ "lists.exclusive": "Leden op jo Startside ferstopje", "lists.exclusive_hint": "As ien op dizze list stiet, ferstopje dizze persoan dan op jo starttiidline om foar te kommen dat harren berjochten twa kear toand wurde.", "lists.find_users_to_add": "Fyn brûkers om ta te foegjen", - "lists.list_members": "Listleden", "lists.list_members_count": "{count, plural, one{# lid} other{# leden}}", "lists.list_name": "Listnamme", "lists.new_list_name": "Nije listnamme", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index f4258bda01..0337c3736c 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -512,7 +512,6 @@ "lists.exclusive": "Folaigh baill sa Bhaile", "lists.exclusive_hint": "Má tá duine ar an liosta seo, cuir i bhfolach iad i do fhotha Baile ionas nach bhfeicfidh tú a bpoist faoi dhó.", "lists.find_users_to_add": "Aimsigh úsáideoirí le cur leis", - "lists.list_members": "Liostaigh baill", "lists.list_members_count": "{count, plural, one {# ball} two {# bhall} few {# baill} many {# baill} other {# baill}}", "lists.list_name": "Ainm an liosta", "lists.new_list_name": "Ainm liosta nua", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index b9cbbfe645..b31c51c2b1 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -515,7 +515,6 @@ "lists.exclusive": "Falaich na buill san dachaigh", "lists.exclusive_hint": "Falaich an fheadhainn a tha air an liosta seo air loidhne-ama na dachaigh ach nach fhaic thu na postaichean aca dà thuras.", "lists.find_users_to_add": "Lorg cleachdaichean ri chur ris", - "lists.list_members": "Buill na liosta", "lists.list_members_count": "{count, plural, one {# bhall} two {# bhall} few {# buill} other {# ball}}", "lists.list_name": "Ainm na liosta", "lists.new_list_name": "Ainm na liosta ùire", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 6618f26cca..f88ab43be9 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -518,7 +518,6 @@ "lists.exclusive": "Ocultar membros no Inicio", "lists.exclusive_hint": "Se alguén está nesta lista non aparerá na cronoloxía de Inicio para evitar duplicidades das publicacións.", "lists.find_users_to_add": "Buscar persoas que engadir", - "lists.list_members": "Membros da lista", "lists.list_members_count": "{count, plural, one {# membro} other {# membros}}", "lists.list_name": "Nome da lista", "lists.new_list_name": "Novo nome da lista", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index bbef04b893..d70006669a 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -518,7 +518,6 @@ "lists.exclusive": "הסתרת החברים בפיד הבית", "lists.exclusive_hint": "אם שם כלשהו ברשימה זו, נסתיר אותי בפיד הבית כדי למנוע כפילות.", "lists.find_users_to_add": "חיפוש משתמשים להוספה", - "lists.list_members": "פירוט חברי הרשימה", "lists.list_members_count": "{count, plural, one {חבר רשימה אחד} other {# חברי רשימה}}", "lists.list_name": "שם הרשימה", "lists.new_list_name": "שם רשימה חדשה", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 5bd0c90c10..0ff052d750 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -518,7 +518,6 @@ "lists.exclusive": "Tagok elrejtése a kezdőlapon", "lists.exclusive_hint": "Ha valaki szerepel ezen a listán, el lesz rejtve a kezdőlapod hírfolyamán, hogy ne lásd kétszer a bejegyzéseit.", "lists.find_users_to_add": "Hozzáadandó felhasználók keresése", - "lists.list_members": "Tagok listázása", "lists.list_members_count": "{count, plural, one {# tag} other {# tag}}", "lists.list_name": "Lista neve", "lists.new_list_name": "Új lista neve", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index 1a3d36d83f..7692cf92d6 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -509,7 +509,6 @@ "lists.exclusive": "Celar memberos in Initio", "lists.exclusive_hint": "Si alcuno es sur iste lista, celar iste persona in tu fluxo de initio pro evitar de vider su messages duo vices.", "lists.find_users_to_add": "Trovar usatores a adder", - "lists.list_members": "Membros del lista", "lists.list_members_count": "{count, plural, one {# membro} other {# membros}}", "lists.list_name": "Nomine del lista", "lists.new_list_name": "Nove nomine de lista", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 84c5d7a6b0..01846de792 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -490,7 +490,6 @@ "lists.exclusive": "Celar membri sur Hemo", "lists.exclusive_hint": "Se ulu es en ca listo, celez lu sur vua hemfluo por evitar vidar lua afishi denove.", "lists.find_users_to_add": "Serchi uzanti por adjuntar", - "lists.list_members": "Listigar membri", "lists.list_members_count": "{count, plural,one {# membro} other {#membri}}", "lists.list_name": "Listonomo", "lists.new_list_name": "Nova listonomo", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 707bdbd2bb..e9655f6af5 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -518,7 +518,6 @@ "lists.exclusive": "Fela meðlimi í heimastreyminu", "lists.exclusive_hint": "Ef einhver er á þessum lista, geturðu falið viðkomandi í heimastreyminu þínu til að komast hjá því að sjá færslurnar þeirra í tvígang.", "lists.find_users_to_add": "Finndu notendur til að bæta við", - "lists.list_members": "Meðlimir lista", "lists.list_members_count": "{count, plural, one {# meðlimur} other {# meðlimir}}", "lists.list_name": "Heiti lista", "lists.new_list_name": "Heiti á nýjum lista", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index f0cf02f076..838d662f6b 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -515,7 +515,6 @@ "lists.exclusive": "Nascondi i membri in Home", "lists.exclusive_hint": "Se qualcuno è presente in questa lista, nascondilo nel tuo feed Home per evitare di vedere i suoi post due volte.", "lists.find_users_to_add": "Trova utenti da aggiungere", - "lists.list_members": "Membri della lista", "lists.list_members_count": "{count, plural, one {# membro} other {# membri}}", "lists.list_name": "Nome della lista", "lists.new_list_name": "Nuovo nome della lista", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 9e11806e64..b7886bbff8 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -510,7 +510,6 @@ "lists.exclusive": "メンバーをホームに表示しない", "lists.exclusive_hint": "リストにあるユーザーをホームタイムラインに表示しません。二重に表示させたくない場合に使用できます。", "lists.find_users_to_add": "追加するユーザーを探しましょう", - "lists.list_members": "リストのメンバー", "lists.list_members_count": "{count, plural, other{#人のメンバー}}", "lists.list_name": "リスト名", "lists.new_list_name": "新しいリスト名", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 1d43c0e1fd..ece77c01d4 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -513,7 +513,6 @@ "lists.exclusive": "구성원을 홈에서 숨기기", "lists.exclusive_hint": "누군가가 이 리스트에 있으면 홈 피드에서는 숨겨 게시물을 두 번 보는 것을 방지합니다.", "lists.find_users_to_add": "추가할 사용자 검색", - "lists.list_members": "리스트 구성원", "lists.list_members_count": "{count, plural, other {# 명}}", "lists.list_name": "리스트 이름", "lists.new_list_name": "새 리스트 이름", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 387fd99be6..0e9f96df9b 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -504,7 +504,6 @@ "lists.exclusive": "Slėpti narius pagrindiniame", "lists.exclusive_hint": "Jei kas nors yra šiame sąraše, paslėpkite juos pagrindinio srauto laiko skalėje, kad nematytumėte jų įrašus dukart.", "lists.find_users_to_add": "Raskite naudotojų, kurių pridėti", - "lists.list_members": "Sąrašo nariai", "lists.list_members_count": "{count, plural, one {# narys} few {# nariai} many {# nario} other {# narių}}", "lists.list_name": "Sąrašo pavadinimas", "lists.new_list_name": "Naujas sąrašo pavadinimas", diff --git a/app/javascript/mastodon/locales/nan.json b/app/javascript/mastodon/locales/nan.json index fa3563f1ba..46d4328768 100644 --- a/app/javascript/mastodon/locales/nan.json +++ b/app/javascript/mastodon/locales/nan.json @@ -515,7 +515,6 @@ "lists.exclusive": "佇tshù ê時間線kā成員tshàng起來。", "lists.exclusive_hint": "Nā bóo-mi̍h口座佇tsit ê列單,ē tuì lí tshù ê時間線kā tsit ê口座tshàng起來,避免koh看見in ê PO文。", "lists.find_users_to_add": "Tshuē beh加添ê用者", - "lists.list_members": "列單ê成員", "lists.list_members_count": "{count, plural, other {# 位成員}}", "lists.list_name": "列單ê名", "lists.new_list_name": "新ê列單ê名", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index e3c88bf7de..3dac5fd7dd 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -518,7 +518,6 @@ "lists.exclusive": "Leden op je Startpagina verbergen", "lists.exclusive_hint": "Als iemand op deze lijst staat, verberg deze persoon dan op je starttijdlijn om te voorkomen dat zijn berichten twee keer worden getoond.", "lists.find_users_to_add": "Vind gebruikers om toe te voegen", - "lists.list_members": "Lijstleden", "lists.list_members_count": "{count, plural, one{# lid} other{# leden}}", "lists.list_name": "Lijstnaam", "lists.new_list_name": "Nieuwe lijstnaam", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index ab37b0fe27..cd08fb6f25 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -515,7 +515,6 @@ "lists.exclusive": "Gøym medlemer frå startskjermen", "lists.exclusive_hint": "Viss nokon er på denne lista, blir dei gøymde frå startskjermen slik at du slepp sjå innlegga deira to gonger.", "lists.find_users_to_add": "Finn brukarar å leggja til", - "lists.list_members": "Syn medlemer", "lists.list_members_count": "{count, plural, one {# medlem} other {# medlemer}}", "lists.list_name": "Namn på lista", "lists.new_list_name": "Namn på den nye lista", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index 23a38806b2..8617b48f71 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -319,7 +319,6 @@ "lists.done": "ਮੁਕੰਮਲ", "lists.edit": "ਸੂਚੀ ਨੂੰ ਸੋਧੋ", "lists.find_users_to_add": "ਜੋੜਨ ਲਈ ਵਰਤੋਂਕਾਰ ਲੱਭੋ", - "lists.list_members": "ਮੈਂਬਰਾਂ ਦੀ ਸੂਚੀ", "lists.list_members_count": "{count, plural, one {# ਮੈਂਬਰ} other {# ਮੈਂਬਰ}}", "lists.list_name": "ਸੂਚੀ ਦਾ ਨਾਂ", "lists.new_list_name": "ਨਵੀਂ ਸੂਚੀਂ ਦਾ ਨਾਂ", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 3422099390..6320ca1b9c 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -490,7 +490,6 @@ "lists.exclusive": "Nie pokazuj w mojej osi czasu", "lists.exclusive_hint": "Wpisy osób znajdujących się na tej liście nie będą wyświetlane w twojej osi czasu, aby uniknąć duplikowania tych samych wpisów.", "lists.find_users_to_add": "Znajdź kogoś, aby dodać", - "lists.list_members": "Lista osób", "lists.list_members_count": "{count, plural, one {# osoba} few {# osoby} many {# osób} other {# osób}}", "lists.list_name": "Nazwa listy", "lists.new_list_name": "Nazwa nowej listy", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index a9622fb76a..d5745c2d56 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -491,7 +491,6 @@ "lists.exclusive": "Ocultar membros no início", "lists.exclusive_hint": "Se existe alguém nesta lista, oculte-os no seu feed inicial para evitar ver suas publicações duas vezes.", "lists.find_users_to_add": "Encontrar usuários para adicionar", - "lists.list_members": "Membros da lista", "lists.list_members_count": "{count, plural, one {# membro} other {# membros}}", "lists.list_name": "Nome da lista", "lists.new_list_name": "Nome novo da lista", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 45c72d2fc1..5facd93d64 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -518,7 +518,6 @@ "lists.exclusive": "Ocultar membros na página inicial", "lists.exclusive_hint": "Se alguém estiver nesta lista, oculta-o na cronologia da tua página inicial para evitar veres as publicações dessa pessoa duas vezes.", "lists.find_users_to_add": "Encontrar utilizadores para adicionar", - "lists.list_members": "Membros da lista", "lists.list_members_count": "{count, plural, one {# membro} other {# membros}}", "lists.list_name": "Nome da lista", "lists.new_list_name": "Nome da nova lista", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 78426e596c..a82eab47d5 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -515,7 +515,6 @@ "lists.exclusive": "Не показывать участников в домашней ленте", "lists.exclusive_hint": "Если кто-то есть в этом списке, скрыть его в домашней ленте, чтобы не видеть его посты дважды.", "lists.find_users_to_add": "Найти пользователей для добавления", - "lists.list_members": "Пользователи в списке", "lists.list_members_count": "{count, plural, one {# пользователь} few {# пользователя} other {# пользователей}}", "lists.list_name": "Название списка", "lists.new_list_name": "Новый список", @@ -797,18 +796,18 @@ "search.no_recent_searches": "Недавние запросы отсутствуют", "search.placeholder": "Поиск", "search.quick_action.account_search": "Профили, соответствующие {x}", - "search.quick_action.go_to_account": "Перейти в профиль {x}", - "search.quick_action.go_to_hashtag": "Перейти к хэштегу {x}", + "search.quick_action.go_to_account": "Перейти к профилю {x}", + "search.quick_action.go_to_hashtag": "Перейти к хештегу {x}", "search.quick_action.open_url": "Открыть URL в Mastodon", "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.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": "Быстрые действия", "search_popout.recent": "Недавние запросы", - "search_popout.specific_date": "конкретная дата", + "search_popout.specific_date": "дата", "search_popout.user": "пользователь", "search_results.accounts": "Профили", "search_results.all": "Все", @@ -818,7 +817,7 @@ "search_results.see_all": "Показать все", "search_results.statuses": "Посты", "search_results.title": "Поиск \"{q}\"", - "server_banner.about_active_users": "Люди, заходившие на этот сервер за последние 30 дней (ежемесячные активные пользователи)", + "server_banner.about_active_users": "Число зарегистрированных пользователей, заходивших на этот сервер за последние 30 дней (MAU-метрика)", "server_banner.active_users": "активные пользователи", "server_banner.administered_by": "Управляется:", "server_banner.is_one_of_many": "{domain} — это один из многих независимых серверов Mastodon, которые вы можете использовать, чтобы присоединиться к сети Fediverse.", @@ -827,7 +826,7 @@ "sign_in_banner.follow_anyone": "Подписывайтесь на кого угодно в федивёрсе и читайте ленту в хронологическом порядке. Никаких алгоритмов, рекламы или кликбейта.", "sign_in_banner.mastodon_is": "Mastodon — лучший способ быть в курсе всего происходящего.", "sign_in_banner.sign_in": "Войти", - "sign_in_banner.sso_redirect": "Войдите или Зарегистрируйтесь", + "sign_in_banner.sso_redirect": "Вход/Регистрация", "status.admin_account": "Открыть интерфейс модератора для @{name}", "status.admin_domain": "Открыть интерфейс модератора для {domain}", "status.admin_status": "Открыть этот пост в интерфейсе модератора", @@ -846,45 +845,45 @@ "status.edited_x_times": "{count, plural, one {{count} изменение} many {{count} изменений} other {{count} изменения}}", "status.embed": "Встроить на свой сайт", "status.favourite": "Добавить в избранное", - "status.favourites": "{count, plural, other {в избранном}}", + "status.favourites": "{count, plural, one {звёздочка} few {звёздочки} other {звёздочек}}", "status.filter": "Фильтровать этот пост", "status.history.created": "{name} создал(а) {date}", "status.history.edited": "{name} отредактировал(а) {date}", - "status.load_more": "Загрузить остальное", + "status.load_more": "Загрузить ещё", "status.media.open": "Нажмите, чтобы открыть.", - "status.media.show": "Нажмите для просмотра", - "status.media_hidden": "Файл скрыт", + "status.media.show": "Нажмите, чтобы показать", + "status.media_hidden": "Вложения скрыты", "status.mention": "Упомянуть @{name}", "status.more": "Ещё", "status.mute": "Игнорировать @{name}", "status.mute_conversation": "Игнорировать обсуждение", "status.open": "Открыть пост", - "status.pin": "Рекомендовать в профиле", - "status.read_more": "Ещё", + "status.pin": "Закрепить в профиле", + "status.read_more": "Читать далее", "status.reblog": "Продвинуть", "status.reblog_private": "Продвинуть для своей аудитории", "status.reblogged_by": "{name} продвинул(а)", "status.reblogs": "{count, plural, one {продвижение} few {продвижения} other {продвижений}}", - "status.reblogs.empty": "Никто ещё не продвинул этот пост. Как только кто-то это сделает, они появятся здесь.", - "status.redraft": "Создать заново", + "status.reblogs.empty": "Никто ещё не продвинул этот пост. Все пользователи, продвинувшие этот пост, будут показаны здесь.", + "status.redraft": "Удалить и исправить", "status.remove_bookmark": "Убрать из закладок", "status.remove_favourite": "Убрать из избранного", - "status.replied_in_thread": "Ответил(а) в треде", + "status.replied_in_thread": "Ответил(а) в обсуждении", "status.replied_to": "Ответил(а) {name}", "status.reply": "Ответить", - "status.replyAll": "Ответить всем", + "status.replyAll": "Ответить в обсуждении", "status.report": "Пожаловаться на @{name}", - "status.sensitive_warning": "Содержимое «деликатного характера»", + "status.sensitive_warning": "Медиа деликатного содержания", "status.share": "Поделиться", "status.show_less_all": "Свернуть все спойлеры в ветке", "status.show_more_all": "Развернуть все спойлеры в ветке", "status.show_original": "Показать оригинал", - "status.title.with_attachments": "{user} опубликовал {attachmentCount, plural, one {{attachmentCount} вложение} few {{attachmentCount} вложения} other {{attachmentCount} вложений}}", + "status.title.with_attachments": "{user} опубликовал(а) {attachmentCount, plural, one {{attachmentCount} вложение} few {{attachmentCount} вложения} other {{attachmentCount} вложений}}", "status.translate": "Перевод", "status.translated_from_with": "Переведено с {lang} с помощью {provider}", "status.uncached_media_warning": "Предварительный просмотр недоступен", "status.unmute_conversation": "Не игнорировать обсуждение", - "status.unpin": "Не рекомендовать в профиле", + "status.unpin": "Открепить от профиля", "subscribed_languages.lead": "Посты лишь на выбранных языках будут появляться в вашей домашней ленте и в списках после изменения. Снимите выбор, чтобы получать посты на всех языках.", "subscribed_languages.save": "Сохранить изменения", "subscribed_languages.target": "Изменить языки подписки для {target}", @@ -906,7 +905,7 @@ "units.short.thousand": "{count} тыс.", "upload_area.title": "Перетащите сюда, чтобы загрузить", "upload_button.label": "Прикрепить фото, видео или аудио", - "upload_error.limit": "Достигнут лимит загруженных файлов.", + "upload_error.limit": "Превышено максимальное количество вложений.", "upload_error.poll": "К опросам нельзя прикреплять файлы.", "upload_form.drag_and_drop.instructions": "Чтобы выбрать вложение, нажмите \"Пробел\" (Space) или \"Ввод\" (Enter). Используйте клавиши со стрелками, чтобы передвинуть вложение в любом направлении. Нажмите \"Пробел\" (Space) или \"Ввод\" (Enter) ещё раз, чтобы переместить вложение на новое место, либо нажмите кнопку \"Выйти\" (Escape), чтобы отменить перемещение.", "upload_form.drag_and_drop.on_drag_cancel": "Перемещение отменено. Вложение {item} было оставлено на прежнем месте.", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 846b51667d..83fd2bb995 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -461,7 +461,6 @@ "lists.exclusive": "Skryť členov na Domovskej osi", "lists.exclusive_hint": "Ak je niekto na tomto zozname, skry ich na tvojej Domácej osi, aby si ich príspevky nevidel/a dvakrát.", "lists.find_users_to_add": "Nájdi užívateľov na pridanie", - "lists.list_members": "Členovia zoznamu", "lists.list_name": "Názov zoznamu", "lists.new_list_name": "Názov nového zoznamu", "lists.no_lists_yet": "Ešte žiadne zoznamy.", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index 08a6d8c028..eec21e7a8f 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -490,7 +490,6 @@ "lists.exclusive": "Skrij člane v domovanju", "lists.exclusive_hint": "Objave vseh, ki so na tem seznamu, se ne pokažejo v vašem domačem viru. Tako se izognete podvojenim objavam.", "lists.find_users_to_add": "Poišči člane za dodajanje", - "lists.list_members": "Člani seznama", "lists.list_members_count": "{count, plural, one {# član} two {# člana} few {# člani} other {# članov}}", "lists.list_name": "Ime seznama", "lists.new_list_name": "Novo ime seznama", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index a8c4001239..77d86db377 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -513,7 +513,6 @@ "lists.exclusive": "Fshihni anëtarët në Krye", "lists.exclusive_hint": "Nëse dikush gjendje në këtë listë, fshihini ata te prurja juaj e Kreut, që të shmangni parjen dy herë të postimeve të tyre.", "lists.find_users_to_add": "Gjeni përdorues për t’i shtuar", - "lists.list_members": "Shfaq anëtarë", "lists.list_members_count": "{count, plural, one {# anëtar} other {# anëtarë}}", "lists.list_name": "Emër liste", "lists.new_list_name": "Emër liste të re", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 6a64df26a1..a8f57205b4 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -491,7 +491,6 @@ "lists.exclusive": "Dölj medlemmar i Hem flödet", "lists.exclusive_hint": "Om någon är med på den här listan, göm dem i ditt Hemtidlinje för att undvika att se deras inlägg två gånger.", "lists.find_users_to_add": "Hitta användare att lägga till", - "lists.list_members": "Lista medlemmar", "lists.list_members_count": "{count, plural, one {# medlem} other {# medlemmar}}", "lists.list_name": "Listnamn", "lists.new_list_name": "Nytt listnamn", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 26dad1a595..66ebdc764e 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -23,6 +23,7 @@ "account.copy": "คัดลอกลิงก์ไปยังโปรไฟล์", "account.direct": "กล่าวถึง @{name} แบบส่วนตัว", "account.disable_notifications": "หยุดแจ้งเตือนฉันเมื่อ @{name} โพสต์", + "account.domain_blocking": "โดเมน", "account.edit_profile": "แก้ไขโปรไฟล์", "account.enable_notifications": "แจ้งเตือนฉันเมื่อ @{name} โพสต์", "account.endorse": "แสดงในโปรไฟล์", @@ -483,7 +484,6 @@ "lists.exclusive": "ซ่อนสมาชิกในหน้าแรก", "lists.exclusive_hint": "หากใครสักคนอยู่ในรายการนี้ ให้ซ่อนเขาในฟีดหน้าแรกของคุณเพื่อหลีกเลี่ยงการเห็นโพสต์ของเขาสองครั้ง", "lists.find_users_to_add": "ค้นหาผู้ใช้ที่จะเพิ่ม", - "lists.list_members": "สมาชิกของรายการ", "lists.list_members_count": "{count, plural, other {# สมาชิก}}", "lists.list_name": "ชื่อรายการ", "lists.new_list_name": "ชื่อรายการใหม่", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 75b05892f0..f46f070817 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -518,7 +518,6 @@ "lists.exclusive": "Anasayfada üyeleri gizle", "lists.exclusive_hint": "Birisi bu listede yer alıyorsa, gönderilerini iki kez görmekten kaçınmak için onu anasayfa akışınızda gizleyin.", "lists.find_users_to_add": "Eklenecek kullanıcıları bul", - "lists.list_members": "Liste üyeleri", "lists.list_members_count": "{count, plural, one {# üye} other {# üye}}", "lists.list_name": "Liste adı", "lists.new_list_name": "Yeni liste adı", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index ff3ff3dab8..f006b4015a 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -500,7 +500,6 @@ "lists.exclusive": "Сховати учасників на головній сторінці", "lists.exclusive_hint": "Якщо хтось є у цьому списку, сховайте їх на своїй домашній сторінці, щоб не бачити їхні дописи двічі.", "lists.find_users_to_add": "Знайти користувачів, щоб додати їх", - "lists.list_members": "Учасники списку", "lists.list_members_count": "{count, plural, one {# member} other {# members}}", "lists.list_name": "Назва списку", "lists.new_list_name": "Нова назва списку", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index b1a014f83c..7f7dcae7de 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -518,7 +518,6 @@ "lists.exclusive": "Ẩn thành viên trong Trang chủ", "lists.exclusive_hint": "Nếu ai đó có trong danh sách này, ẩn họ trong Trang chủ để tránh thấy tút của họ hiện trùng lặp.", "lists.find_users_to_add": "Tìm người để thêm vào", - "lists.list_members": "Liệt kê các thành viên", "lists.list_members_count": "{count, plural, other {# thành viên}}", "lists.list_name": "Tên danh sách", "lists.new_list_name": "Tên danh sách mới", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 6644c43bcb..70dcfdaa2f 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -507,7 +507,6 @@ "lists.exclusive": "在主页动态中隐藏列表成员", "lists.exclusive_hint": "列表成员的嘟文将不会在你的主页动态中显示,以免重复阅读。", "lists.find_users_to_add": "查找要添加的用户", - "lists.list_members": "列表成员", "lists.list_members_count": "{count, plural, other {# 人}}", "lists.list_name": "列表名称", "lists.new_list_name": "新列表名称", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 226c68cd5c..b47ba36975 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -518,7 +518,6 @@ "lists.exclusive": "於首頁隱藏成員", "lists.exclusive_hint": "如果某個帳號於此列表中,將自您的首頁時間軸中隱藏此帳號,以防重複見到他們的嘟文。", "lists.find_users_to_add": "尋找欲新增之使用者", - "lists.list_members": "列表成員", "lists.list_members_count": "{count, plural, other {# 個成員}}", "lists.list_name": "列表名稱", "lists.new_list_name": "新列表名稱", diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 652505f3ad..f02ac44ea6 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -1836,6 +1836,10 @@ ca: limit: Ja has fixat el màxim nombre de tuts ownership: No es pot fixar el tut d'algú altre reblog: No es pot fixar un impuls + quote_policies: + followers: Seguidors i usuaris mencionats + nobody: Només usuaris mencionats + public: Tothom title: '%{name}: "%{quote}"' visibilities: direct: Directe diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 056570f7b5..5d97bf5246 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -1,7 +1,7 @@ --- lt: about: - about_mastodon_html: 'Ateities socialinis tinklas: jokių reklamų, jokių įmonių sekimo, etiškas dizainas ir decentralizacija! Turėk savo duomenis su Mastodon.' + about_mastodon_html: 'Ateities socialinis tinklas: jokių reklamų ir įmonių sekimo, etiškas dizainas bei decentralizacija! Turėkite savo duomenis su „Mastodon“.' contact_missing: Nenustatyta contact_unavailable: Nėra hosted_on: "„Mastodon“ talpinamas domene %{domain}" diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml index 71cb1faafa..06f5440ee9 100644 --- a/config/locales/simple_form.bg.yml +++ b/config/locales/simple_form.bg.yml @@ -56,6 +56,7 @@ bg: scopes: Указва до кои API има достъп приложението. Ако изберете диапазон от най-високо ниво, няма нужда да избирате индивидуални. setting_aggregate_reblogs: Без показване на нови подсилвания за публикации, които са неотдавна подсилени (засяга само новополучени подсилвания) setting_always_send_emails: Обикновено известията по имейл няма да са изпратени при дейна употреба на Mastodon + setting_default_quote_policy: Споменатите потребители винаги им е позволено да цитират. Тази настройка ще се отрази за публикациите, създадени със следващата версия на Mastodon, но може да изберете предпочитанията си в подготовката setting_default_sensitive: Деликатната мултимедия е скрита по подразбиране и може да се разкрие с едно щракване setting_display_media_default: Скриване на мултимедия отбелязана като деликатна setting_display_media_hide_all: Винаги скриване на мултимедията @@ -147,6 +148,9 @@ bg: min_age: Не трябва да е под изискваната минимална възраст от закона на юрисдикцията ви. user: chosen_languages: Само публикации на отметнатите езици ще се показват в публичните часови оси + date_of_birth: + one: Трябва да се уверим, че сте поне на %{count}, за да употребявате Mastodon. Няма да съхраняваме това. + other: Трябва да се уверим, че сте поне на %{count}, за да употребявате Mastodon. Няма да съхраняваме това. role: Ролята управлява какви позволения има потребителят. user_role: color: Цветът, използван за ролите в потребителския интерфейс, като RGB в шестнадесетичен формат @@ -227,6 +231,7 @@ bg: setting_boost_modal: Показване на прозорец за потвърждение преди подсилване setting_default_language: Език на публикуване setting_default_privacy: Поверителност на публикуване + setting_default_quote_policy: Кой може да цитира setting_default_sensitive: Все да се бележи мултимедията като деликатна setting_delete_modal: Показване на прозорче за потвърждение преди изтриване на публикация setting_disable_hover_cards: Изключване на прегледа на профила, премествайки показалеца отгоре diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index 2cff4bffcd..19d5c537a3 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -56,6 +56,7 @@ ca: scopes: API permeses per a accedir a l'aplicació. Si selecciones un àmbit de nivell superior, no cal que en seleccionis un d'individual. setting_aggregate_reblogs: No mostra els nous impulsos dels tuts que ja s'han impulsat recentment (només afecta als impulsos nous rebuts) setting_always_send_emails: Normalment, no s'enviarà cap notificació per correu electrònic mentre facis servir Mastodon + setting_default_quote_policy: Els usuaris mencionats sempre poden citar. Aquesta configuració només tindrà efecte en les publicacions creades amb la següent versió de Mastodon, però podeu seleccionar-ho en preparació setting_default_sensitive: El contingut sensible està ocult per defecte i es pot mostrar fent-hi clic setting_display_media_default: Amaga el contingut gràfic marcat com a sensible setting_display_media_hide_all: Oculta sempre tot el contingut multimèdia @@ -145,6 +146,9 @@ ca: min_age: No hauria de ser inferior a l'edat mínima exigida per la llei de la vostra jurisdicció. user: chosen_languages: Quan estigui marcat, només es mostraran els tuts de les llengües seleccionades en les línies de temps públiques + date_of_birth: + one: Ens hem d'assegurar que teniu com a mínim %{count} any per a fer servir Mastodon. No ho desarem. + other: Ens hem d'assegurar que teniu com a mínim %{count} anys per a fer servir Mastodon. No ho desarem. role: El rol controla quins permisos té l'usuari. user_role: color: Color que s'usarà per al rol a tota la interfície d'usuari, com a RGB en format hexadecimal @@ -225,6 +229,7 @@ ca: setting_boost_modal: Mostra la finestra de confirmació abans d'impulsar setting_default_language: Llengua dels tuts setting_default_privacy: Privacitat dels tuts + setting_default_quote_policy: Qui pot citar setting_default_sensitive: Marcar sempre el contingut gràfic com a sensible setting_delete_modal: Mostra la finestra de confirmació abans d'esborrar un tut setting_disable_hover_cards: Deshabilita la vista prèvia del perfil en passar-hi per sobre diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml index c8de52b2e4..9643f92b1d 100644 --- a/config/locales/simple_form.gl.yml +++ b/config/locales/simple_form.gl.yml @@ -56,6 +56,7 @@ gl: scopes: A que APIs terá acceso a aplicación. Se escolles un ámbito de alto nivel, non precisas seleccionar elementos individuais. setting_aggregate_reblogs: Non mostrar novas promocións de publicacións que foron promovidas recentemente (só afecta a promocións recén recibidas) setting_always_send_emails: Como norma xeral non che enviamos correos electrónicos se usas activamente Mastodon + setting_default_quote_policy: As usuarias mencionadas sempre teñen permiso para citar. Este axuste só ten efecto para publicacións creadas coa próxima versión de Mastodon, pero xa podes ir preparando o axuste. setting_default_sensitive: Medios sensibles marcados como ocultos por defecto e móstranse cun click setting_display_media_default: Ocultar medios marcados como sensibles setting_display_media_hide_all: Ocultar sempre os medios @@ -148,6 +149,9 @@ gl: min_age: Non debería ser inferior á idade mínima requerida polas leis da túa xurisdición. user: chosen_languages: Se ten marca, só as publicacións nos idiomas seleccionados serán mostrados en cronoloxías públicas + date_of_birth: + one: Temos que confirmar que tes %{count} anos polo menos para usar Mastodon. Non gardamos este dato. + other: Temos que confirmar que tes %{count} anos polo menos para usar Mastodon. Non gardamos este dato. role: Os roles establecen os permisos que ten a usuaria. user_role: color: Cor que se usará para o rol a través da IU, como RGB en formato hex @@ -228,6 +232,7 @@ gl: setting_boost_modal: Solicitar confirmación antes de promover setting_default_language: Idioma de publicación setting_default_privacy: Privacidade da publicación + setting_default_quote_policy: Quen pode citar setting_default_sensitive: Marcar sempre multimedia como sensible setting_delete_modal: Solicitar confirmación antes de eliminar unha publicación setting_disable_hover_cards: Desactivar vista previa do perfil ao poñerse enriba diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml index 9a85820fb0..e1dd0a555a 100644 --- a/config/locales/simple_form.tr.yml +++ b/config/locales/simple_form.tr.yml @@ -56,6 +56,7 @@ tr: scopes: Uygulamanın erişmesine izin verilen API'ler. Üst seviye bir kapsam seçtiyseniz, bireysel kapsam seçmenize gerek yoktur. setting_aggregate_reblogs: Yakın zamanda teşvik edilmiş gönderiler için yeni teşvikleri göstermeyin (yalnızca yeni alınan teşvikleri etkiler) setting_always_send_emails: Normalde, Mastodon'u aktif olarak kullanırken e-posta bildirimleri gönderilmeyecektir + setting_default_quote_policy: Bahsedilen kullanıcıların her zaman alıntı yapmasına izin verilir. Bu ayar yalnızca bir sonraki Mastodon sürümü ile oluşturulan gönderiler için geçerli olacaktır, ancak tercihinizi hazırlık aşamasında seçebilirsiniz setting_default_sensitive: Hassas medya varsayılan olarak gizlidir ve bir tıklama ile gösterilebilir setting_display_media_default: Hassas olarak işaretlenmiş medyayı gizle setting_display_media_hide_all: Medyayı her zaman gizle @@ -228,6 +229,7 @@ tr: 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_quote_policy: Kimler alıntılayabilir setting_default_sensitive: Medyayı her zaman hassas olarak işaretle setting_delete_modal: Bir gönderiyi silmeden önce onay iletişim kutusu göster setting_disable_hover_cards: Üstüne geldiğinde profil önizlemesini devre dışı bırak diff --git a/config/locales/tr.yml b/config/locales/tr.yml index ed16e490e0..9afd2dcdaf 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1858,6 +1858,10 @@ tr: limit: Halihazırda maksimum sayıda gönderi sabitlediniz ownership: Başkasının gönderisi sabitlenemez reblog: Bir gönderi sabitlenemez + quote_policies: + followers: Takipçiler ve bahsedilen kullanıcılar + nobody: Sadece bahsedilen kullanıcılar + public: Herkes title: '%{name}: "%{quote}"' visibilities: direct: Doğrudan From ae281f31db7b383fa4a7b82a704566e0968f43fd Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 15 May 2025 10:51:07 +0200 Subject: [PATCH 4/6] Add `dev:populate_sample_data` rake task to populate test data (#34676) --- docs/DEVELOPMENT.md | 1 + lib/tasks/dev.rake | 354 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 355 insertions(+) create mode 100644 lib/tasks/dev.rake diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index 6dd439ddc7..a20a5db0b0 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -90,6 +90,7 @@ development environment configured with the software needed for this project. - Once you have successfully set up a development environment, it will be available on http://localhost:3000 - Log in as the default admin user with the username `admin@mastodon.local` and the password `mastodonadmin`. - Check out the [Mastodon docs] for tips on working with emails in development (you'll need this when creating new user accounts) as well as a list of useful commands for testing and updating your dev instance. +- You can optionally populate your database with sample data by running `bin/rails dev:populate_sample_data`. This will create a `@showcase_account` account with various types of contents. [codespace]: https://codespaces.new/mastodon/mastodon?quickstart=1&devcontainer_path=.devcontainer%2Fcodespaces%2Fdevcontainer.json [CONTRIBUTING]: ../CONTRIBUTING.md diff --git a/lib/tasks/dev.rake b/lib/tasks/dev.rake new file mode 100644 index 0000000000..fbb971ba87 --- /dev/null +++ b/lib/tasks/dev.rake @@ -0,0 +1,354 @@ +# frozen_string_literal: true + +namespace :dev do + desc 'Populate database with test data. Can be run multiple times. Should not be run in production environments' + task populate_sample_data: :environment do + # Create a valid account to showcase multiple post types + showcase_account = Account.create_with(username: 'showcase_account').find_or_create_by!(id: 10_000_000) + showcase_user = User.create_with( + account_id: showcase_account.id, + agreement: true, + password: SecureRandom.hex, + email: ENV.fetch('TEST_DATA_SHOWCASE_EMAIL', 'showcase_account@joinmastodon.org'), + confirmed_at: Time.now.utc, + approved: true + ).find_or_create_by!(id: 10_000_000) + showcase_user.mark_email_as_confirmed! + showcase_user.approve! + + french_post = Status.create_with( + text: 'Ceci est un sondage public écrit en Français', + language: 'fr', + account: showcase_account, + visibility: :public, + poll_attributes: { + voters_count: 0, + account: showcase_account, + expires_at: 1.day.from_now, + options: ['ceci est un choix', 'ceci est un autre choix'], + multiple: false, + } + ).find_or_create_by!(id: 10_000_000) + + private_mentionless = Status.create_with( + text: 'This is a private message written in English', + language: 'en', + account: showcase_account, + visibility: :private + ).find_or_create_by!(id: 10_000_001) + + public_self_reply_with_cw = Status.create_with( + text: 'This is a public self-reply written in English; it has a CW and a multi-choice poll', + spoiler_text: 'poll (CW example)', + language: 'en', + account: showcase_account, + visibility: :public, + thread: french_post, + poll_attributes: { + voters_count: 0, + account: showcase_account, + expires_at: 1.day.from_now, + options: ['this is a choice', 'this is another choice', 'you can chose any number of them'], + multiple: true, + } + ).find_or_create_by!(id: 10_000_002) + ProcessHashtagsService.new.call(public_self_reply_with_cw) + + unlisted_self_reply_with_cw_tag_mention = Status.create_with( + text: 'This is an unlisted (Quiet Public) self-reply written in #English; it has a CW, mentions @showcase_account, and uses an emoji 🦣', + spoiler_text: 'CW example', + language: 'en', + account: showcase_account, + visibility: :unlisted, + thread: public_self_reply_with_cw + ).find_or_create_by!(id: 10_000_003) + Mention.find_or_create_by!(status: unlisted_self_reply_with_cw_tag_mention, account: showcase_account) + ProcessHashtagsService.new.call(unlisted_self_reply_with_cw_tag_mention) + + media_attachment = MediaAttachment.create_with( + account: showcase_account, + file: File.open('spec/fixtures/files/600x400.png'), + description: 'Mastodon logo' + ).find_or_create_by!(id: 10_000_000) + status_with_media = Status.create_with( + text: "This is a public status with a picture and tags. The attached picture has an alt text\n\n#Mastodon #Logo #English #Test", + ordered_media_attachment_ids: [media_attachment.id], + account: showcase_account, + visibility: :public + ).find_or_create_by!(id: 10_000_004) + media_attachment.update(status_id: status_with_media.id) + ProcessHashtagsService.new.call(status_with_media) + + media_attachment = MediaAttachment.create_with( + account: showcase_account, + file: File.open('spec/fixtures/files/600x400.png'), + description: 'Mastodon logo' + ).find_or_create_by!(id: 10_000_001) + status_with_sensitive_media = Status.create_with( + text: "This is the same public status with a picture and tags, but it is marked as sensitive. The attached picture has an alt text\n\n#Mastodon #Logo #English #Test", + ordered_media_attachment_ids: [media_attachment.id], + account: showcase_account, + visibility: :public, + sensitive: true, + thread: status_with_media + ).find_or_create_by!(id: 10_000_005) + media_attachment.update(status_id: status_with_sensitive_media.id) + ProcessHashtagsService.new.call(status_with_sensitive_media) + + media_attachment = MediaAttachment.create_with( + account: showcase_account, + file: File.open('spec/fixtures/files/600x400.png'), + description: 'Mastodon logo' + ).find_or_create_by!(id: 10_000_002) + status_with_cw_media = Status.create_with( + text: "This is the same public status with a picture and tags, but it is behind a CW. The attached picture has an alt text\n\n#Mastodon #Logo #English #Test", + spoiler_text: 'Mastodon logo', + ordered_media_attachment_ids: [media_attachment.id], + account: showcase_account, + visibility: :public, + sensitive: true, + thread: status_with_sensitive_media + ).find_or_create_by!(id: 10_000_006) + media_attachment.update(status_id: status_with_cw_media.id) + ProcessHashtagsService.new.call(status_with_cw_media) + + media_attachment = MediaAttachment.create_with( + account: showcase_account, + file: File.open('spec/fixtures/files/boop.ogg'), + description: 'Mastodon boop' + ).find_or_create_by!(id: 10_000_003) + status_with_audio = Status.create_with( + text: "This is the same public status with an audio file and tags. The attached picture has an alt text\n\n#Mastodon #English #Test", + ordered_media_attachment_ids: [media_attachment.id], + account: showcase_account, + visibility: :public, + thread: status_with_cw_media + ).find_or_create_by!(id: 10_000_007) + media_attachment.update(status_id: status_with_audio.id) + ProcessHashtagsService.new.call(status_with_audio) + + media_attachment = MediaAttachment.create_with( + account: showcase_account, + file: File.open('spec/fixtures/files/boop.ogg'), + description: 'Mastodon boop' + ).find_or_create_by!(id: 10_000_004) + status_with_sensitive_audio = Status.create_with( + text: "This is the same public status with an audio file and tags, but it is marked as sensitive. The attached picture has an alt text\n\n#Mastodon #English #Test", + ordered_media_attachment_ids: [media_attachment.id], + account: showcase_account, + visibility: :public, + sensitive: true, + thread: status_with_audio + ).find_or_create_by!(id: 10_000_008) + media_attachment.update(status_id: status_with_sensitive_audio.id) + ProcessHashtagsService.new.call(status_with_sensitive_audio) + + media_attachment = MediaAttachment.create_with( + account: showcase_account, + file: File.open('spec/fixtures/files/boop.ogg'), + description: 'Mastodon boop' + ).find_or_create_by!(id: 10_000_005) + status_with_cw_audio = Status.create_with( + text: "This is the same public status with an audio file and tags, but it is behind a CW. The attached picture has an alt text\n\n#Mastodon #English #Test", + spoiler_text: 'Mastodon boop', + ordered_media_attachment_ids: [media_attachment.id], + account: showcase_account, + visibility: :public, + sensitive: true, + thread: status_with_sensitive_audio + ).find_or_create_by!(id: 10_000_009) + media_attachment.update(status_id: status_with_cw_audio.id) + ProcessHashtagsService.new.call(status_with_cw_audio) + + media_attachments = [ + MediaAttachment.create_with( + account: showcase_account, + file: File.open('spec/fixtures/files/600x400.png'), + description: 'Mastodon logo' + ).find_or_create_by!(id: 10_000_006), + MediaAttachment.create_with( + account: showcase_account, + file: File.open('spec/fixtures/files/attachment.jpg') + ).find_or_create_by!(id: 10_000_007), + MediaAttachment.create_with( + account: showcase_account, + file: File.open('spec/fixtures/files/avatar-high.gif'), + description: 'Walking cartoon cat' + ).find_or_create_by!(id: 10_000_008), + MediaAttachment.create_with( + account: showcase_account, + file: File.open('spec/fixtures/files/text.png'), + description: 'Text saying “Hello Mastodon”' + ).find_or_create_by!(id: 10_000_009), + ] + status_with_multiple_attachments = Status.create_with( + text: "This is a post with multiple attachments, not all of which have a description\n\n#Mastodon #English #Test", + spoiler_text: 'multiple attachments', + ordered_media_attachment_ids: media_attachments.pluck(:id), + account: showcase_account, + visibility: :public, + sensitive: true, + thread: status_with_cw_audio + ).find_or_create_by!(id: 10_000_010) + media_attachments.each { |attachment| attachment.update!(status_id: status_with_multiple_attachments.id) } + ProcessHashtagsService.new.call(status_with_multiple_attachments) + + remote_account = Account.create_with( + username: 'fake.example', + domain: 'example.org', + uri: 'https://example.org/foo/bar', + url: 'https://example.org/foo/bar', + locked: true + ).find_or_create_by!(id: 10_000_001) + + remote_formatted_post = Status.create_with( + text: <<~HTML, +

This is a post with a variety of HTML in it

+

For instance, this text is bold and this one as well, while this text is stricken through and this one as well.

+
+

This thing, here, is a block quote
with some bold as well

+
    +
  • a list item
  • +
  • + and another with +
      +
    • nested
    • +
    • items!
    • +
    +
  • +
+
+
// And this is some code
+        // with two lines of comments
+        
+

And this is inline code

+

Finally, please observe this Ruby element: 明日 (Ashita)

+ HTML + account: remote_account, + uri: 'https://example.org/foo/bar/baz', + url: 'https://example.org/foo/bar/baz' + ).find_or_create_by!(id: 10_000_011) + Status.create_with(account: showcase_account, reblog: remote_formatted_post).find_or_create_by!(id: 10_000_012) + + unattached_quote_post = Status.create_with( + text: 'This is a quote of a post that does not exist', + account: showcase_account, + visibility: :public + ).find_or_create_by!(id: 10_000_013) + Quote.create_with( + status: unattached_quote_post, + quoted_status: nil + ).find_or_create_by!(id: 10_000_000) + + self_quote = Status.create_with( + text: 'This is a quote of a public self-post', + account: showcase_account, + visibility: :public + ).find_or_create_by!(id: 10_000_014) + Quote.create_with( + status: self_quote, + quoted_status: status_with_media, + state: :accepted + ).find_or_create_by!(id: 10_000_001) + + nested_self_quote = Status.create_with( + text: 'This is a quote of a public self-post which itself is a self-quote', + account: showcase_account, + visibility: :public + ).find_or_create_by!(id: 10_000_015) + Quote.create_with( + status: nested_self_quote, + quoted_status: self_quote, + state: :accepted + ).find_or_create_by!(id: 10_000_002) + + recursive_self_quote = Status.create_with( + text: 'This is a recursive self-quote; no real reason for it to exist, but just to make sure we handle them gracefuly', + account: showcase_account, + visibility: :public + ).find_or_create_by!(id: 10_000_016) + Quote.create_with( + status: recursive_self_quote, + quoted_status: recursive_self_quote, + state: :accepted + ).find_or_create_by!(id: 10_000_003) + + self_private_quote = Status.create_with( + text: 'This is a public post of a private self-post: the quoted post should not be visible to non-followers', + account: showcase_account, + visibility: :public + ).find_or_create_by!(id: 10_000_017) + Quote.create_with( + status: self_private_quote, + quoted_status: private_mentionless, + state: :accepted + ).find_or_create_by!(id: 10_000_004) + + uncwed_quote_cwed = Status.create_with( + text: 'This is a quote without CW of a quoted post that has a CW', + account: showcase_account, + visibility: :public + ).find_or_create_by!(id: 10_000_018) + Quote.create_with( + status: uncwed_quote_cwed, + quoted_status: public_self_reply_with_cw, + state: :accepted + ).find_or_create_by!(id: 10_000_005) + + cwed_quote_cwed = Status.create_with( + text: 'This is a quote with a CW of a quoted post that itself has a CW', + spoiler_text: 'Quote post with a CW', + account: showcase_account, + visibility: :public + ).find_or_create_by!(id: 10_000_019) + Quote.create_with( + status: cwed_quote_cwed, + quoted_status: public_self_reply_with_cw, + state: :accepted + ).find_or_create_by!(id: 10_000_006) + + pending_quote_post = Status.create_with( + text: 'This quote post is pending', + account: showcase_account, + visibility: :public + ).find_or_create_by!(id: 10_000_020) + Quote.create_with( + status: pending_quote_post, + quoted_status: remote_formatted_post, + activity_uri: 'https://foo/bar', + state: :pending + ).find_or_create_by!(id: 10_000_007) + + rejected_quote_post = Status.create_with( + text: 'This quote post is rejected', + account: showcase_account, + visibility: :public + ).find_or_create_by!(id: 10_000_021) + Quote.create_with( + status: rejected_quote_post, + quoted_status: remote_formatted_post, + activity_uri: 'https://foo/foo', + state: :rejected + ).find_or_create_by!(id: 10_000_008) + + revoked_quote_post = Status.create_with( + text: 'This quote post is revoked', + account: showcase_account, + visibility: :public + ).find_or_create_by!(id: 10_000_022) + Quote.create_with( + status: revoked_quote_post, + quoted_status: remote_formatted_post, + activity_uri: 'https://foo/baz', + state: :revoked + ).find_or_create_by!(id: 10_000_009) + + StatusPin.create_with(account: showcase_account, status: public_self_reply_with_cw).find_or_create_by!(id: 10_000_000) + StatusPin.create_with(account: showcase_account, status: private_mentionless).find_or_create_by!(id: 10_000_001) + + showcase_account.update!( + display_name: 'Mastodon test/showcase account', + note: 'Test account to showcase many Mastodon features. Most of its posts are public, but some are private!' + ) + end +end From 3f965d83b01c29eadf4e7060a84f10851f6ba5a5 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 15 May 2025 13:33:16 +0200 Subject: [PATCH 5/6] fix: More "Followers you know" polish & bug fixes (#34697) --- .../components/account_header.tsx | 3 ++- .../components/familiar_followers.tsx | 18 +++++++++++------- app/javascript/mastodon/locales/en.json | 2 +- app/javascript/styles/mastodon/components.scss | 10 ++++------ 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx index d26286e4fe..2eba2282e2 100644 --- a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx @@ -912,6 +912,8 @@ export const AccountHeader: React.FC<{
{badges}
)} + {signedIn && } + {!(suspended || hidden) && (
- {signedIn && }
)}
diff --git a/app/javascript/mastodon/features/account_timeline/components/familiar_followers.tsx b/app/javascript/mastodon/features/account_timeline/components/familiar_followers.tsx index 1beaceabb4..fd6e1d5dfd 100644 --- a/app/javascript/mastodon/features/account_timeline/components/familiar_followers.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/familiar_followers.tsx @@ -12,12 +12,16 @@ import { getAccountFamiliarFollowers } from '@/mastodon/selectors/accounts'; import { useAppDispatch, useAppSelector } from '@/mastodon/store'; const AccountLink: React.FC<{ account?: Account }> = ({ account }) => { - // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing - const name = account?.display_name || `@${account?.acct}`; + if (!account) { + return null; + } + return ( - - {name} - + ); }; @@ -50,7 +54,7 @@ const FamiliarFollowersReadout: React.FC<{ familiarFollowers: Account[] }> = ({ return ( ); @@ -80,7 +84,7 @@ export const FamiliarFollowers: React.FC<{ accountId: string }> = ({ return (
- {familiarFollowers.map((account) => ( + {familiarFollowers.slice(0, 3).map((account) => ( ))} diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 2d49346ac7..ee494c7e45 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -28,7 +28,7 @@ "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", - "account.familiar_followers_many": "Followed by {name1}, {name2}, and {othersCount, plural, one {# other} other {# others}}", + "account.familiar_followers_many": "Followed by {name1}, {name2}, and {othersCount, plural, one {one other you know} other {# others you know}}", "account.familiar_followers_one": "Followed by {name1}", "account.familiar_followers_two": "Followed by {name1} and {name2}", "account.featured": "Featured", diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index f3271b2d3b..3245105c94 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -2091,6 +2091,7 @@ body > [data-popper-placement] { display: block; position: relative; border-radius: var(--avatar-border-radius); + background: var(--surface-background-color); img { width: 100%; @@ -8151,16 +8152,13 @@ noscript { display: flex; align-items: center; gap: 10px; - margin-block-end: 16px; + margin-block: 16px; color: $darker-text-color; a:any-link { - color: inherit; - text-decoration: underline; - } - - a:hover { + font-weight: 500; text-decoration: none; + color: $primary-text-color; } } } From 6c743831aab13a39f2020827f20933a51bc7cbc2 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 15 May 2025 16:40:01 +0200 Subject: [PATCH 6/6] fix: Hide "Followers you know" widget from your own profile, #34698 (#34699) --- .../features/account_timeline/components/account_header.tsx | 4 +++- app/javascript/styles/mastodon/components.scss | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx index 2eba2282e2..576052ae71 100644 --- a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx @@ -912,7 +912,9 @@ export const AccountHeader: React.FC<{
{badges}
)} - {signedIn && } + {account.id !== me && signedIn && ( + + )} {!(suspended || hidden) && (
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 3245105c94..e003ad6046 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -2179,7 +2179,7 @@ a .account__avatar { flex-wrap: nowrap; & > :not(:first-child) { - margin-inline-start: -8px; + margin-inline-start: -12px; } & > :first-child {