mirror of
https://github.com/glitch-soc/mastodon.git
synced 2025-12-15 00:38:27 +00:00
Merge commit '57f592fed50747f3c97718a2761e17bafe6c8698' into glitch-soc/merge-upstream
This commit is contained in:
@@ -1,10 +0,0 @@
|
||||
export const DROPDOWN_MENU_OPEN = 'DROPDOWN_MENU_OPEN';
|
||||
export const DROPDOWN_MENU_CLOSE = 'DROPDOWN_MENU_CLOSE';
|
||||
|
||||
export function openDropdownMenu(id, keyboard, scroll_key) {
|
||||
return { type: DROPDOWN_MENU_OPEN, id, keyboard, scroll_key };
|
||||
}
|
||||
|
||||
export function closeDropdownMenu(id) {
|
||||
return { type: DROPDOWN_MENU_CLOSE, id };
|
||||
}
|
||||
11
app/javascript/mastodon/actions/dropdown_menu.ts
Normal file
11
app/javascript/mastodon/actions/dropdown_menu.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { createAction } from '@reduxjs/toolkit';
|
||||
|
||||
export const openDropdownMenu = createAction<{
|
||||
id: string;
|
||||
keyboard: boolean;
|
||||
scrollKey: string;
|
||||
}>('dropdownMenu/open');
|
||||
|
||||
export const closeDropdownMenu = createAction<{ id: string }>(
|
||||
'dropdownMenu/close',
|
||||
);
|
||||
@@ -1,12 +1,14 @@
|
||||
import { createAction } from '@reduxjs/toolkit';
|
||||
|
||||
import type { ModalProps } from 'mastodon/reducers/modal';
|
||||
|
||||
import type { MODAL_COMPONENTS } from '../features/ui/components/modal_root';
|
||||
|
||||
export type ModalType = keyof typeof MODAL_COMPONENTS;
|
||||
|
||||
interface OpenModalPayload {
|
||||
modalType: ModalType;
|
||||
modalProps: unknown;
|
||||
modalProps: ModalProps;
|
||||
}
|
||||
export const openModal = createAction<OpenModalPayload>('MODAL_OPEN');
|
||||
|
||||
|
||||
45
app/javascript/mastodon/api_types/accounts.ts
Normal file
45
app/javascript/mastodon/api_types/accounts.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import type { ApiCustomEmojiJSON } from './custom_emoji';
|
||||
|
||||
export interface ApiAccountFieldJSON {
|
||||
name: string;
|
||||
value: string;
|
||||
verified_at: string | null;
|
||||
}
|
||||
|
||||
export interface ApiAccountRoleJSON {
|
||||
color: string;
|
||||
id: string;
|
||||
name: string;
|
||||
}
|
||||
|
||||
// See app/serializers/rest/account_serializer.rb
|
||||
export interface ApiAccountJSON {
|
||||
acct: string;
|
||||
avatar: string;
|
||||
avatar_static: string;
|
||||
bot: boolean;
|
||||
created_at: string;
|
||||
discoverable: boolean;
|
||||
display_name: string;
|
||||
emojis: ApiCustomEmojiJSON[];
|
||||
fields: ApiAccountFieldJSON[];
|
||||
followers_count: number;
|
||||
following_count: number;
|
||||
group: boolean;
|
||||
header: string;
|
||||
header_static: string;
|
||||
id: string;
|
||||
last_status_at: string;
|
||||
locked: boolean;
|
||||
noindex: boolean;
|
||||
note: string;
|
||||
roles: ApiAccountJSON[];
|
||||
statuses_count: number;
|
||||
uri: string;
|
||||
url: string;
|
||||
username: string;
|
||||
moved?: ApiAccountJSON;
|
||||
suspended?: boolean;
|
||||
limited?: boolean;
|
||||
memorial?: boolean;
|
||||
}
|
||||
8
app/javascript/mastodon/api_types/custom_emoji.ts
Normal file
8
app/javascript/mastodon/api_types/custom_emoji.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
// See app/serializers/rest/account_serializer.rb
|
||||
export interface ApiCustomEmojiJSON {
|
||||
shortcode: string;
|
||||
static_url: string;
|
||||
url: string;
|
||||
category?: string;
|
||||
visible_in_picker: boolean;
|
||||
}
|
||||
18
app/javascript/mastodon/api_types/relationships.ts
Normal file
18
app/javascript/mastodon/api_types/relationships.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
// See app/serializers/rest/relationship_serializer.rb
|
||||
export interface ApiRelationshipJSON {
|
||||
blocked_by: boolean;
|
||||
blocking: boolean;
|
||||
domain_blocking: boolean;
|
||||
endorsed: boolean;
|
||||
followed_by: boolean;
|
||||
following: boolean;
|
||||
id: string;
|
||||
languages: string[] | null;
|
||||
muting_notifications: boolean;
|
||||
muting: boolean;
|
||||
note: string;
|
||||
notifying: boolean;
|
||||
requested_by: boolean;
|
||||
requested: boolean;
|
||||
showing_reblogs: boolean;
|
||||
}
|
||||
@@ -4,9 +4,14 @@ import { openDropdownMenu, closeDropdownMenu } from 'mastodon/actions/dropdown_m
|
||||
import { fetchHistory } from 'mastodon/actions/history';
|
||||
import DropdownMenu from 'mastodon/components/dropdown_menu';
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {import('mastodon/store').RootState} state
|
||||
* @param {*} props
|
||||
*/
|
||||
const mapStateToProps = (state, { statusId }) => ({
|
||||
openDropdownId: state.getIn(['dropdown_menu', 'openId']),
|
||||
openedViaKeyboard: state.getIn(['dropdown_menu', 'keyboard']),
|
||||
openDropdownId: state.dropdownMenu.openId,
|
||||
openedViaKeyboard: state.dropdownMenu.keyboard,
|
||||
items: state.getIn(['history', statusId, 'items']),
|
||||
loading: state.getIn(['history', statusId, 'loading']),
|
||||
});
|
||||
@@ -15,11 +20,11 @@ const mapDispatchToProps = (dispatch, { statusId }) => ({
|
||||
|
||||
onOpen (id, onItemClick, keyboard) {
|
||||
dispatch(fetchHistory(statusId));
|
||||
dispatch(openDropdownMenu(id, keyboard));
|
||||
dispatch(openDropdownMenu({ id, keyboard }));
|
||||
},
|
||||
|
||||
onClose (id) {
|
||||
dispatch(closeDropdownMenu(id));
|
||||
dispatch(closeDropdownMenu({ id }));
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
@@ -23,9 +23,14 @@ const MOUSE_IDLE_DELAY = 300;
|
||||
|
||||
const listenerOptions = supportsPassiveEvents ? { passive: true } : false;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {import('mastodon/store').RootState} state
|
||||
* @param {*} props
|
||||
*/
|
||||
const mapStateToProps = (state, { scrollKey }) => {
|
||||
return {
|
||||
preventScroll: scrollKey === state.getIn(['dropdown_menu', 'scroll_key']),
|
||||
preventScroll: scrollKey === state.dropdownMenu.scrollKey,
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -7,9 +7,12 @@ import { openModal, closeModal } from '../actions/modal';
|
||||
import DropdownMenu from '../components/dropdown_menu';
|
||||
import { isUserTouching } from '../is_mobile';
|
||||
|
||||
/**
|
||||
* @param {import('mastodon/store').RootState} state
|
||||
*/
|
||||
const mapStateToProps = state => ({
|
||||
openDropdownId: state.getIn(['dropdown_menu', 'openId']),
|
||||
openedViaKeyboard: state.getIn(['dropdown_menu', 'keyboard']),
|
||||
openDropdownId: state.dropdownMenu.openId,
|
||||
openedViaKeyboard: state.dropdownMenu.keyboard,
|
||||
});
|
||||
|
||||
const mapDispatchToProps = (dispatch, { status, items, scrollKey }) => ({
|
||||
@@ -25,7 +28,7 @@ const mapDispatchToProps = (dispatch, { status, items, scrollKey }) => ({
|
||||
actions: items,
|
||||
onClick: onItemClick,
|
||||
},
|
||||
}) : openDropdownMenu(id, keyboard, scrollKey));
|
||||
}) : openDropdownMenu({ id, keyboard, scrollKey }));
|
||||
},
|
||||
|
||||
onClose(id) {
|
||||
@@ -33,7 +36,7 @@ const mapDispatchToProps = (dispatch, { status, items, scrollKey }) => ({
|
||||
modalType: 'ACTIONS',
|
||||
ignoreFocus: false,
|
||||
}));
|
||||
dispatch(closeDropdownMenu(id));
|
||||
dispatch(closeDropdownMenu({ id }));
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import { PureComponent } from 'react';
|
||||
const iconStyle = {
|
||||
height: null,
|
||||
lineHeight: '27px',
|
||||
width: `${18 * 1.28571429}px`,
|
||||
minWidth: `${18 * 1.28571429}px`,
|
||||
};
|
||||
|
||||
export default class TextIconButton extends PureComponent {
|
||||
|
||||
@@ -55,8 +55,10 @@ const homeTooSlow = createSelector([
|
||||
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 20 minutes
|
||||
|| (Date.now() - speed.newest) > (1000 * 3600)) // If the most recent post is from over an hour ago
|
||||
&& (
|
||||
(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 => ({
|
||||
|
||||
@@ -79,7 +79,7 @@ const mapStateToProps = state => ({
|
||||
hasComposingText: state.getIn(['compose', 'text']).trim().length !== 0,
|
||||
hasMediaAttachments: state.getIn(['compose', 'media_attachments']).size > 0,
|
||||
canUploadMore: !state.getIn(['compose', 'media_attachments']).some(x => ['audio', 'video'].includes(x.get('type'))) && state.getIn(['compose', 'media_attachments']).size < 4,
|
||||
dropdownMenuIsOpen: state.getIn(['dropdown_menu', 'openId']) !== null,
|
||||
dropdownMenuIsOpen: state.dropdownMenu.openId !== null,
|
||||
firstLaunch: state.getIn(['settings', 'introductionVersion'], 0) < INTRODUCTION_VERSION,
|
||||
username: state.getIn(['accounts', me, 'username']),
|
||||
});
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"account.domain_blocked": "Блокиран домейн",
|
||||
"account.edit_profile": "Редактиране на профила",
|
||||
"account.enable_notifications": "Известяване при публикуване от @{name}",
|
||||
"account.endorse": "Характеристика на профила",
|
||||
"account.endorse": "Представи в профила",
|
||||
"account.featured_tags.last_status_at": "Последна публикация на {date}",
|
||||
"account.featured_tags.last_status_never": "Няма публикации",
|
||||
"account.featured_tags.title": "Главни хаштагове на {name}",
|
||||
@@ -393,7 +393,7 @@
|
||||
"media_gallery.toggle_visible": "Скриване на {number, plural, one {изображение} other {изображения}}",
|
||||
"moved_to_account_banner.text": "Вашият акаунт {disabledAccount} сега е изключен, защото се преместихте в {movedToAccount}.",
|
||||
"mute_modal.duration": "Времетраене",
|
||||
"mute_modal.hide_notifications": "Скривате ли известията от потребителя?",
|
||||
"mute_modal.hide_notifications": "Скриване на известия от този потребител?",
|
||||
"mute_modal.indefinite": "Неопределено",
|
||||
"navigation_bar.about": "Относно",
|
||||
"navigation_bar.advanced_interface": "Отваряне в разширен уебинтерфейс",
|
||||
|
||||
@@ -321,7 +321,7 @@
|
||||
"interaction_modal.login.action": "Torna a l'inici",
|
||||
"interaction_modal.login.prompt": "Domini del teu servidor domèstic, p.ex. mastodon.social",
|
||||
"interaction_modal.no_account_yet": "No a Mastodon?",
|
||||
"interaction_modal.on_another_server": "En un servidor diferent",
|
||||
"interaction_modal.on_another_server": "A un altre servidor",
|
||||
"interaction_modal.on_this_server": "En aquest servidor",
|
||||
"interaction_modal.sign_in": "No has iniciat sessió en aquest servidor. On tens el teu compte?",
|
||||
"interaction_modal.sign_in_hint": "Ajuda: Aquesta és la web on vas registrar-te. Si no ho recordes, mira el correu electrònic de benvinguda en la teva safata d'entrada. També pots introduïr el teu nom d'usuari complet! (per ex. @Mastodon@mastodon.social)",
|
||||
@@ -391,7 +391,7 @@
|
||||
"load_pending": "{count, plural, one {# element nou} other {# elements nous}}",
|
||||
"loading_indicator.label": "Es carrega...",
|
||||
"media_gallery.toggle_visible": "{number, plural, one {Amaga la imatge} other {Amaga les imatges}}",
|
||||
"moved_to_account_banner.text": "El teu compte {disabledAccount} està actualment desactivat perquè l'has traslladat a {movedToAccount}.",
|
||||
"moved_to_account_banner.text": "El teu compte {disabledAccount} està desactivat perquè l'has mogut a {movedToAccount}.",
|
||||
"mute_modal.duration": "Durada",
|
||||
"mute_modal.hide_notifications": "Amagar les notificacions d'aquest usuari?",
|
||||
"mute_modal.indefinite": "Indefinit",
|
||||
@@ -426,8 +426,8 @@
|
||||
"notification.admin.sign_up": "{name} s'ha registrat",
|
||||
"notification.favourite": "{name} ha afavorit el teu tut",
|
||||
"notification.follow": "{name} et segueix",
|
||||
"notification.follow_request": "{name} ha sol·licitat seguir-te",
|
||||
"notification.mention": "{name} t'ha mencionat",
|
||||
"notification.follow_request": "{name} ha sol·licitat de seguir-te",
|
||||
"notification.mention": "{name} t'ha esmentat",
|
||||
"notification.own_poll": "La teva enquesta ha finalitzat",
|
||||
"notification.poll": "Ha finalitzat una enquesta en què has votat",
|
||||
"notification.reblog": "{name} t'ha impulsat",
|
||||
@@ -451,7 +451,7 @@
|
||||
"notifications.column_settings.show": "Mostra a la columna",
|
||||
"notifications.column_settings.sound": "Reprodueix so",
|
||||
"notifications.column_settings.status": "Nous tuts:",
|
||||
"notifications.column_settings.unread_notifications.category": "Notificacions no llegides",
|
||||
"notifications.column_settings.unread_notifications.category": "Notificacions pendents de llegir",
|
||||
"notifications.column_settings.unread_notifications.highlight": "Destaca les notificacions no llegides",
|
||||
"notifications.column_settings.update": "Edicions:",
|
||||
"notifications.filter.all": "Totes",
|
||||
@@ -473,25 +473,25 @@
|
||||
"onboarding.action.back": "Porta'm enrere",
|
||||
"onboarding.actions.back": "Porta'm enrere",
|
||||
"onboarding.actions.go_to_explore": "Mira què és tendència",
|
||||
"onboarding.actions.go_to_home": "Vés a la teva línia de temps inici",
|
||||
"onboarding.actions.go_to_home": "Ves a la teva línia de temps",
|
||||
"onboarding.compose.template": "Hola Mastodon!",
|
||||
"onboarding.follows.empty": "Malauradament, cap resultat pot ser mostrat ara mateix. Pots provar de fer servir la cerca o visitar la pàgina Explora per a trobar gent a qui seguir o provar-ho de nou més tard.",
|
||||
"onboarding.follows.lead": "Tu tens cura de la teva línia de temps inici. Com més gent segueixis, més activa i interessant serà. Aquests perfils poden ser un bon punt d'inici—sempre pots acabar deixant-los de seguir!",
|
||||
"onboarding.follows.title": "Popular a Mastodon",
|
||||
"onboarding.follows.lead": "La teva línia de temps inici només està a les teves mans. Com més gent segueixis, més activa i interessant serà. Aquests perfils poden ser un bon punt d'inici—sempre pots acabar deixant de seguir-los!:",
|
||||
"onboarding.follows.title": "Personalitza la pantalla d'inci",
|
||||
"onboarding.share.lead": "Permet que la gent sàpiga com trobar-te a Mastodon!",
|
||||
"onboarding.share.message": "Sóc {username} a #Mastodon! Vine i segueix-me a {url}",
|
||||
"onboarding.share.next_steps": "Possibles passes següents:",
|
||||
"onboarding.share.title": "Comparteix el teu perfil",
|
||||
"onboarding.start.lead": "El teu nou compte a Mastodon ja està preparat. Aquí tens com en pots treure tot el suc:",
|
||||
"onboarding.start.lead": "El teu nou compte ja està preparat a Mastodon, la xarxa social on tu—no un algorisme—té tot el control. Aquí tens com en pots treure tot el suc:",
|
||||
"onboarding.start.skip": "Vols saltar-te tota la resta?",
|
||||
"onboarding.start.title": "Llestos!",
|
||||
"onboarding.steps.follow_people.body": "Tu tens cura de la teva línia de temps. Omple-la de gent interessant.",
|
||||
"onboarding.steps.follow_people.title": "{count, plural, zero {No segueixes cap persona} one {Segeueixes ona persona} other {Segueixes # persones}}",
|
||||
"onboarding.steps.publish_status.body": "Saluda el món.",
|
||||
"onboarding.steps.follow_people.body": "Mastodon va de seguir a gent interessant.",
|
||||
"onboarding.steps.follow_people.title": "Personalitza la pantalla d'inci",
|
||||
"onboarding.steps.publish_status.body": "Saluda al món amb text, fotos, vídeos o enquestes {emoji}",
|
||||
"onboarding.steps.publish_status.title": "Fes el teu primer tut",
|
||||
"onboarding.steps.setup_profile.body": "És més fàcil que altres interaccionin amb tu si tens un perfil complet.",
|
||||
"onboarding.steps.setup_profile.body": "És més fàcil que altres interactuïn amb tu si tens un perfil complet.",
|
||||
"onboarding.steps.setup_profile.title": "Personalitza el perfil",
|
||||
"onboarding.steps.share_profile.body": "Permet als teus amics de saber com trobar-te a Mastodon!",
|
||||
"onboarding.steps.share_profile.body": "Fer saber als teus amics com trobar-te a Mastodon",
|
||||
"onboarding.steps.share_profile.title": "Comparteix el teu perfil",
|
||||
"onboarding.tips.2fa": "<strong>Ho sabies?</strong> Pots securitzar el teu compte activant l'autenticació de doble factor en la configuració del teu perfil. Funciona amb qualsevol aplicació TOTP de la teva elecció, no cal número de telèfon!",
|
||||
"onboarding.tips.accounts_from_other_servers": "<strong>Ho sabies?</strong> Com Mastodon és descentralitzat, et pots trobar amb perfils que són a servidors diferents del teu. I, tanmateix, també hi pots interactuar sense cap problema! El servidor és la segona part del seu nom d'usuari!",
|
||||
|
||||
@@ -114,7 +114,7 @@
|
||||
"column.directory": "Prozkoumat profily",
|
||||
"column.domain_blocks": "Blokované domény",
|
||||
"column.favourites": "Oblíbené",
|
||||
"column.firehose": "Živé kanály l",
|
||||
"column.firehose": "Živé kanály",
|
||||
"column.follow_requests": "Žádosti o sledování",
|
||||
"column.home": "Domů",
|
||||
"column.lists": "Seznamy",
|
||||
@@ -585,6 +585,7 @@
|
||||
"search.quick_action.open_url": "Otevřít URL v Mastodonu",
|
||||
"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.language_code": "Kód jazyka podle ISO",
|
||||
"search_popout.options": "Možnosti hledání",
|
||||
"search_popout.quick_actions": "Rychlé akce",
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
"compose_form.hashtag_warning": "Dieser Beitrag wird unter keinem Hashtag sichtbar sein, weil er nicht öffentlich ist. Nur öffentliche Beiträge können nach Hashtags durchsucht werden.",
|
||||
"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.placeholder": "Was gibt’s Neues?",
|
||||
"compose_form.poll.add_option": "Auswahl",
|
||||
"compose_form.poll.duration": "Umfragedauer",
|
||||
"compose_form.poll.option_placeholder": "{number}. Auswahl",
|
||||
@@ -286,7 +286,7 @@
|
||||
"footer.source_code": "Quellcode anzeigen",
|
||||
"footer.status": "Status",
|
||||
"generic.saved": "Gespeichert",
|
||||
"getting_started.heading": "Auf geht's!",
|
||||
"getting_started.heading": "Auf geht’s!",
|
||||
"hashtag.column_header.tag_mode.all": "und {additional}",
|
||||
"hashtag.column_header.tag_mode.any": "oder {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "ohne {additional}",
|
||||
@@ -360,7 +360,7 @@
|
||||
"keyboard_shortcuts.requests": "Liste der Follower-Anfragen aufrufen",
|
||||
"keyboard_shortcuts.search": "Suchleiste fokussieren",
|
||||
"keyboard_shortcuts.spoilers": "Feld für Inhaltswarnung anzeigen/ausblenden",
|
||||
"keyboard_shortcuts.start": "„Auf geht's!“ öffnen",
|
||||
"keyboard_shortcuts.start": "„Auf geht’s!“ öffnen",
|
||||
"keyboard_shortcuts.toggle_hidden": "Beitragstext hinter der Inhaltswarnung anzeigen/ausblenden",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "Medien anzeigen/ausblenden",
|
||||
"keyboard_shortcuts.toot": "Neuen Beitrag erstellen",
|
||||
|
||||
@@ -590,6 +590,7 @@
|
||||
"search.quick_action.open_url": "Open URL in Mastodon",
|
||||
"search.quick_action.status_search": "Posts matching {x}",
|
||||
"search.search_or_paste": "Search or paste URL",
|
||||
"search_popout.full_text_search_disabled_message": "Unavailable on {domain}.",
|
||||
"search_popout.language_code": "ISO language code",
|
||||
"search_popout.options": "Search options",
|
||||
"search_popout.quick_actions": "Quick actions",
|
||||
|
||||
@@ -113,6 +113,7 @@
|
||||
"column.direct": "Privataj mencioj",
|
||||
"column.directory": "Foliumi la profilojn",
|
||||
"column.domain_blocks": "Blokitaj domajnoj",
|
||||
"column.favourites": "Stelumoj",
|
||||
"column.firehose": "Vivantaj fluoj",
|
||||
"column.follow_requests": "Petoj de sekvado",
|
||||
"column.home": "Hejmo",
|
||||
@@ -136,6 +137,7 @@
|
||||
"compose.language.search": "Serĉi lingvojn...",
|
||||
"compose.published.body": "Afiŝo publikigita.",
|
||||
"compose.published.open": "Malfermi",
|
||||
"compose.saved.body": "Afiŝo konservita.",
|
||||
"compose_form.direct_message_warning_learn_more": "Lerni pli",
|
||||
"compose_form.encryption_warning": "La afiŝoj en Mastodon ne estas tutvoje ĉifritaj. Ne kunhavigu tiklajn informojn ĉe Mastodon.",
|
||||
"compose_form.hashtag_warning": "Ĉi tiu afiŝo ne estos listigita en neniu kradvorto ĉar ĝi ne estas publika. Nur publikaj afiŝoj povas esti serĉitaj per kradvortoj.",
|
||||
@@ -180,6 +182,7 @@
|
||||
"confirmations.mute.explanation": "Tio kaŝos la mesaĝojn de la uzanto kaj la mesaĝojn kiuj mencias rin, sed ri ankoraŭ rajtos vidi viajn mesaĝojn kaj sekvi vin.",
|
||||
"confirmations.mute.message": "Ĉu vi certas, ke vi volas silentigi {name}?",
|
||||
"confirmations.redraft.confirm": "Forigi kaj reskribi",
|
||||
"confirmations.redraft.message": "Ĉu vi certas ke vi volas forigi tiun afiŝon kaj reskribi ĝin? Ĉiuj diskonigoj kaj stelumoj estos perditaj, kaj respondoj al la originala mesaĝo estos senparentaj.",
|
||||
"confirmations.reply.confirm": "Respondi",
|
||||
"confirmations.reply.message": "Respondi nun anstataŭigos la skribatan afiŝon. Ĉu vi certas, ke vi volas daŭrigi?",
|
||||
"confirmations.unfollow.confirm": "Ne plu sekvi",
|
||||
@@ -548,6 +551,7 @@
|
||||
"search.search_or_paste": "Serĉu aŭ algluu URL-on",
|
||||
"search_popout.quick_actions": "Rapidaj agoj",
|
||||
"search_popout.recent": "Lastaj serĉoj",
|
||||
"search_popout.user": "uzanto",
|
||||
"search_results.accounts": "Profiloj",
|
||||
"search_results.all": "Ĉiuj",
|
||||
"search_results.hashtags": "Kradvortoj",
|
||||
|
||||
@@ -302,8 +302,8 @@
|
||||
"hashtag.follow": "Seguir etiqueta",
|
||||
"hashtag.unfollow": "Dejar de seguir etiqueta",
|
||||
"hashtags.and_other": "…y {count, plural, other {# más}}",
|
||||
"home.actions.go_to_explore": "Mirá qué está en tendencia",
|
||||
"home.actions.go_to_suggestions": "Encontrá cuentas para seguir",
|
||||
"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",
|
||||
|
||||
@@ -379,7 +379,7 @@
|
||||
"lists.delete": "Borrar lista",
|
||||
"lists.edit": "Editar lista",
|
||||
"lists.edit.submit": "Cambiar título",
|
||||
"lists.exclusive": "Ocultar estas publicaciones en inicio",
|
||||
"lists.exclusive": "Ocultar estas publicaciones de inicio",
|
||||
"lists.new.create": "Añadir lista",
|
||||
"lists.new.title_placeholder": "Título de la nueva lista",
|
||||
"lists.replies_policy.followed": "Cualquier usuario seguido",
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
"account.add_or_remove_from_list": "افزودن یا برداشتن از سیاههها",
|
||||
"account.badges.bot": "روبات",
|
||||
"account.badges.group": "گروه",
|
||||
"account.block": "مسدود کردن @{name}",
|
||||
"account.block_domain": "مسدود کردن دامنهٔ {domain}",
|
||||
"account.block": "انسداد @{name}",
|
||||
"account.block_domain": "انسداد دامنهٔ {domain}",
|
||||
"account.block_short": "انسداد",
|
||||
"account.blocked": "مسدود شده",
|
||||
"account.blocked": "مسدود",
|
||||
"account.browse_more_on_origin_server": "مرور بیشتر روی نمایهٔ اصلی",
|
||||
"account.cancel_follow_request": "رد کردن درخواست پیگیری",
|
||||
"account.direct": "خصوصی از @{name} نام ببرید",
|
||||
"account.direct": "اشارهٔ خصوصی به @{name}",
|
||||
"account.disable_notifications": "آگاه کردن من هنگام فرستههای @{name} را متوقّف کن",
|
||||
"account.domain_blocked": "دامنه مسدود شد",
|
||||
"account.edit_profile": "ویرایش نمایه",
|
||||
@@ -46,7 +46,7 @@
|
||||
"account.link_verified_on": "مالکیت این پیوند در {date} بررسی شد",
|
||||
"account.locked_info": "این حساب خصوصی است. صاحبش تصمیم میگیرد که چه کسی پیگیرش باشد.",
|
||||
"account.media": "رسانه",
|
||||
"account.mention": "نامبردن از @{name}",
|
||||
"account.mention": "اشاره به @{name}",
|
||||
"account.moved_to": "{name} نشان داده که حساب جدیدش این است:",
|
||||
"account.mute": "خموشاندن @{name}",
|
||||
"account.mute_notifications_short": "خموشی آگاهیها",
|
||||
@@ -110,7 +110,7 @@
|
||||
"column.blocks": "کاربران مسدود شده",
|
||||
"column.bookmarks": "نشانکها",
|
||||
"column.community": "خط زمانی محلّی",
|
||||
"column.direct": "خصوصی نام ببرید",
|
||||
"column.direct": "اشارههای خصوصی",
|
||||
"column.directory": "مرور نمایهها",
|
||||
"column.domain_blocks": "دامنههای مسدود شده",
|
||||
"column.favourites": "برگزیدهها",
|
||||
@@ -137,6 +137,7 @@
|
||||
"compose.language.search": "جستوجوی زبانها…",
|
||||
"compose.published.body": "فرسته منتشر شد.",
|
||||
"compose.published.open": "گشودن",
|
||||
"compose.saved.body": "فرسته ذخیره شد.",
|
||||
"compose_form.direct_message_warning_learn_more": "بیشتر بدانید",
|
||||
"compose_form.encryption_warning": "فرستههای ماستودون رمزگذاری سرتاسری نشدهاند. هیچ اطّلاعات حساسی را روی ماستودون همرسانی نکنید.",
|
||||
"compose_form.hashtag_warning": "از آنجا که این فرسته عمومی نیست زیر هیچ برچسبی سیاهه نخواهد شد. تنها فرستههای عمومی میتوانند با برچسب جستوجو شوند.",
|
||||
@@ -147,7 +148,7 @@
|
||||
"compose_form.poll.duration": "مدت نظرسنجی",
|
||||
"compose_form.poll.option_placeholder": "گزینهٔ {number}",
|
||||
"compose_form.poll.remove_option": "برداشتن این گزینه",
|
||||
"compose_form.poll.switch_to_multiple": "تبدیل به نظرسنجی چندگزینهای",
|
||||
"compose_form.poll.switch_to_multiple": "تغییر نظرسنجی برای اجازه به چندین گزینه",
|
||||
"compose_form.poll.switch_to_single": "تبدیل به نظرسنجی تکگزینهای",
|
||||
"compose_form.publish": "انتشار",
|
||||
"compose_form.publish_form": "انتشار",
|
||||
@@ -160,8 +161,8 @@
|
||||
"compose_form.spoiler.unmarked": "افزودن هشدار محتوا",
|
||||
"compose_form.spoiler_placeholder": "هشدارتان را اینجا بنویسید",
|
||||
"confirmation_modal.cancel": "لغو",
|
||||
"confirmations.block.block_and_report": "مسدود کردن و گزارش",
|
||||
"confirmations.block.confirm": "مسدود کردن",
|
||||
"confirmations.block.block_and_report": "انسداد و گزارش",
|
||||
"confirmations.block.confirm": "انسداد",
|
||||
"confirmations.block.message": "مطمئنید که میخواهید {name} را مسدود کنید؟",
|
||||
"confirmations.cancel_follow_request.confirm": "رد کردن درخواست",
|
||||
"confirmations.cancel_follow_request.message": "مطمئنید که می خواهید درخواست پیگیری {name} را لغو کنید؟",
|
||||
@@ -171,7 +172,7 @@
|
||||
"confirmations.delete_list.message": "مطمئنید میخواهید این سیاهه را برای همیشه حذف کنید؟",
|
||||
"confirmations.discard_edit_media.confirm": "دور انداختن",
|
||||
"confirmations.discard_edit_media.message": "تغییرات ذخیره نشدهای در توضیحات یا پیشنمایش رسانه دارید. همگی نادیده گرفته شوند؟",
|
||||
"confirmations.domain_block.confirm": "مسدود کردن تمام دامنه",
|
||||
"confirmations.domain_block.confirm": "انسداد تمام دامنه",
|
||||
"confirmations.domain_block.message": "آیا جدی جدی میخواهید تمام دامنهٔ {domain} را مسدود کنید؟ در بیشتر موارد مسدود کردن یا خموشاندن چند حساب خاص کافی است و توصیه میشود. پس از این کار شما هیچ محتوایی را از این دامنه در خط زمانی عمومی یا آگاهیهایتان نخواهید دید. پیگیرانتان از این دامنه هم برداشته خواهند شد.",
|
||||
"confirmations.edit.confirm": "ویرایش",
|
||||
"confirmations.edit.message": "در صورت ویرایش، پیامی که در حال نوشتنش بودید از بین خواهد رفت. میخواهید ادامه دهید؟",
|
||||
@@ -181,6 +182,7 @@
|
||||
"confirmations.mute.explanation": "این کار فرستههای آنها و فرستههایی را که از آنها نام برده پنهان میکند، ولی آنها همچنان اجازه دارند فرستههای شما را ببینند و شما را پیگیری کنند.",
|
||||
"confirmations.mute.message": "مطمئنید میخواهید {name} را بخموشانید؟",
|
||||
"confirmations.redraft.confirm": "حذف و بازنویسی",
|
||||
"confirmations.redraft.message": "مطمئنید که میخواهید این فرسته را حذف کنید و از نو بنویسید؟ با این کار تقویتها و پسندهایش از دست رفته و پاسخها به آن بیمرجع میشود.",
|
||||
"confirmations.reply.confirm": "پاسخ",
|
||||
"confirmations.reply.message": "اگر الان پاسخ دهید، چیزی که در حال نوشتنش بودید پاک خواهد شد. میخواهید ادامه دهید؟",
|
||||
"confirmations.unfollow.confirm": "پینگرفتن",
|
||||
@@ -294,16 +296,23 @@
|
||||
"hashtag.column_settings.tag_mode.any": "هرکدام از اینها",
|
||||
"hashtag.column_settings.tag_mode.none": "هیچکدام از اینها",
|
||||
"hashtag.column_settings.tag_toggle": "افزودن برچسبهایی بیشتر به این ستون",
|
||||
"hashtag.counter_by_accounts": "{count, plural, one {{counter} مشارکت کننده} other {{counter} مشارکت کننده}}",
|
||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} فرسته} other {{counter} فرسته}}",
|
||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} فرسته} other {{counter} فرسته}} امروز",
|
||||
"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": "دیدن بهروز رسانیها",
|
||||
"home.pending_critical_update.title": "بهروز رسانی امنیتی بحرانی موجود است!",
|
||||
"home.show_announcements": "نمایش اعلامیهها",
|
||||
"interaction_modal.description.favourite": "با حسابی روی ماستودون میتوانید این فرسته را برگزیده تا نگارنده بداند قدردانش هستید و برای آینده ذخیرهاش میکنید.",
|
||||
"interaction_modal.description.follow": "با حسابی روی ماستودون میتوانید {name} را برای دریافت فرستههایش در خوراک خانگیتان دنبال کنید.",
|
||||
@@ -314,6 +323,8 @@
|
||||
"interaction_modal.no_account_yet": "در ماستودون نیست؟",
|
||||
"interaction_modal.on_another_server": "روی کارسازی دیگر",
|
||||
"interaction_modal.on_this_server": "روی این کارساز",
|
||||
"interaction_modal.sign_in": "شما در این کارساز وارد نشدهاید. حسابتان کجا میزبانی شده؟",
|
||||
"interaction_modal.sign_in_hint": "نکته: میزبانتان، پایگاه وبیست که رویش ثبتنام کردهاید. اگر به خاطر نمیآورید، به رایانامهٔ خوشآمد در صندوق ورودیتان بنگرید. همچنین میتوانید نام کاربری کاملتان (چون @Mastodon@mastodon.social) را وارد کنید!",
|
||||
"interaction_modal.title.favourite": "فرستههای برگزیدهٔ {name}",
|
||||
"interaction_modal.title.follow": "پیگیری {name}",
|
||||
"interaction_modal.title.reblog": "تقویت فرستهٔ {name}",
|
||||
@@ -330,6 +341,7 @@
|
||||
"keyboard_shortcuts.direct": "باز کردن ستون اشارههای خصوصی",
|
||||
"keyboard_shortcuts.down": "پایین بردن در سیاهه",
|
||||
"keyboard_shortcuts.enter": "گشودن فرسته",
|
||||
"keyboard_shortcuts.favourite": "پسندیدن فرسته",
|
||||
"keyboard_shortcuts.favourites": "گشودن فهرست برگزیدهها",
|
||||
"keyboard_shortcuts.federated": "گشودن خط زمانی همگانی",
|
||||
"keyboard_shortcuts.heading": "میانبرهای صفحهکلید",
|
||||
@@ -337,7 +349,7 @@
|
||||
"keyboard_shortcuts.hotkey": "میانبر",
|
||||
"keyboard_shortcuts.legend": "نمایش این نشانه",
|
||||
"keyboard_shortcuts.local": "گشودن خط زمانی محلّی",
|
||||
"keyboard_shortcuts.mention": "نامبردن نویسنده",
|
||||
"keyboard_shortcuts.mention": "اشاره به نویسنده",
|
||||
"keyboard_shortcuts.muted": "گشودن فهرست کاربران خموش",
|
||||
"keyboard_shortcuts.my_profile": "گشودن نمایهتان",
|
||||
"keyboard_shortcuts.notifications": "گشودن ستون آگاهیها",
|
||||
@@ -361,7 +373,7 @@
|
||||
"lightbox.previous": "قبلی",
|
||||
"limited_account_hint.action": "به هر روی نمایه نشان داده شود",
|
||||
"limited_account_hint.title": "این نمایه از سوی ناظمهای {domain} پنهان شده.",
|
||||
"link_preview.author": "بر اساس {name}",
|
||||
"link_preview.author": "از {name}",
|
||||
"lists.account.add": "افزودن به سیاهه",
|
||||
"lists.account.remove": "برداشتن از سیاهه",
|
||||
"lists.delete": "حذف سیاهه",
|
||||
@@ -402,6 +414,7 @@
|
||||
"navigation_bar.lists": "سیاههها",
|
||||
"navigation_bar.logout": "خروج",
|
||||
"navigation_bar.mutes": "کاربران خموشانده",
|
||||
"navigation_bar.opened_in_classic_interface": "فرستهها، حسابها و دیگر صفحههای خاص به طور پیشگزیده در میانای وب کلاسیک گشوده میشوند.",
|
||||
"navigation_bar.personal": "شخصی",
|
||||
"navigation_bar.pins": "فرستههای سنجاق شده",
|
||||
"navigation_bar.preferences": "ترجیحات",
|
||||
@@ -411,11 +424,11 @@
|
||||
"not_signed_in_indicator.not_signed_in": "برای دسترسی به این منبع باید وارد شوید.",
|
||||
"notification.admin.report": "{name}، {target} را گزارش داد",
|
||||
"notification.admin.sign_up": "{name} ثبت نام کرد",
|
||||
"notification.favourite": "{name} نوشتهٔ شما را پسندید",
|
||||
"notification.favourite": "{name} فرستهتان را برگزید",
|
||||
"notification.follow": "{name} پیگیرتان شد",
|
||||
"notification.follow_request": "{name} میخواهد پیگیر شما باشد",
|
||||
"notification.mention": "{name} از شما نام برد",
|
||||
"notification.own_poll": "نظرسنجی شما به پایان رسید",
|
||||
"notification.follow_request": "{name} درخواست پیگیریتان را داد",
|
||||
"notification.mention": "{name} به شما اشاره کرد",
|
||||
"notification.own_poll": "نظرسنجیتان پایان یافت",
|
||||
"notification.poll": "نظرسنجیای که در آن رأی دادید به پایان رسیده است",
|
||||
"notification.reblog": "{name} فرستهتان را تقویت کرد",
|
||||
"notification.status": "{name} چیزی فرستاد",
|
||||
@@ -431,7 +444,7 @@
|
||||
"notifications.column_settings.filter_bar.show_bar": "نمایش نوار پالایه",
|
||||
"notifications.column_settings.follow": "پیگیرندگان جدید:",
|
||||
"notifications.column_settings.follow_request": "درخواستهای جدید پیگیری:",
|
||||
"notifications.column_settings.mention": "نامبردنها:",
|
||||
"notifications.column_settings.mention": "اشارهها:",
|
||||
"notifications.column_settings.poll": "نتایج نظرسنجی:",
|
||||
"notifications.column_settings.push": "آگاهیهای ارسالی",
|
||||
"notifications.column_settings.reblog": "تقویتها:",
|
||||
@@ -445,7 +458,7 @@
|
||||
"notifications.filter.boosts": "تقویتها",
|
||||
"notifications.filter.favourites": "برگزیدهها",
|
||||
"notifications.filter.follows": "پیگرفتگان",
|
||||
"notifications.filter.mentions": "نامبردنها",
|
||||
"notifications.filter.mentions": "اشارهها",
|
||||
"notifications.filter.polls": "نتایج نظرسنجی",
|
||||
"notifications.filter.statuses": "بهروز رسانیها از کسانی که پیگیرشانید",
|
||||
"notifications.grant_permission": "اعطای مجوز.",
|
||||
@@ -480,10 +493,10 @@
|
||||
"onboarding.steps.setup_profile.title": "Customize your profile",
|
||||
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
|
||||
"onboarding.steps.share_profile.title": "Share your profile",
|
||||
"onboarding.tips.2fa": "<strong>آیا میدانستید؟</strong> شما میتوانید با رفتن به تنظیمات حساب و فعال کردن احراز هویت دوعاملی، حساب خود را ایمن کنید؟ این قابلیت با هر نرمافزار TOTP دلخواه شما کار ميکند و نیازی به شماره تلفن ندارد!",
|
||||
"onboarding.tips.accounts_from_other_servers": "<strong>آیا میدانستید؟</strong> چون ماستودون نامتمرکز است، بعضی از پروفایلهایی که با آنها برخورد میکنید درواقع روی کارساز هایی متفاوت از کارساز شما میزبانی میشوند. و شما همچنان میتوانید با آنها به شکل راحت و روان تعامل کنید! کارساز آنها در نیمه دوم نام کاربریشان است!",
|
||||
"onboarding.tips.migration": "<strong>آیا میدانستید؟</strong> اگر احساس میکنید {domain} انتخاب کارساز خوبی برای آیندهتان نیست، میتوانید بدون از دست دادن پیگیرهایتان به یک کارساز ماستودون دیگر مهاجرت کنید. شما حتی میتوانید کارساز خودتان را میزبانی کنید!",
|
||||
"onboarding.tips.verification": "<strong>آیا میدانستید؟</strong> شما میتوانید حساب خود را با قراردادن پیوندی به نمایه ماستودونتان روی وبسایت خود، و اضافه کردن وبسایتتان به نمایه خود تایید کنید. بدون نیاز به هیچ کارمزد یا سندی!",
|
||||
"onboarding.tips.2fa": "<strong>آیا میدانستید؟</strong> میتوانید با پریایی هویتسنجی دو عاملی در تنظیمات حساب، حسابتان را ایمن کنید؟ این قابلیت با هر نرمافزار TOTP دلخواه کار کرده و نیازی به شماره تلفن ندارد!",
|
||||
"onboarding.tips.accounts_from_other_servers": "<strong>آیا میدانستید؟</strong> از آنجا که ماستودون نامتمرکز است، برخی نمایهها که به آنها برمیخورید روی کارسازهایی متفاوت از شما میزبانی میشوند و باز هم میتوانید بدون مشکل با آنها تعامل داشته باشید! کارسازشان در نیمه دوم نام کاربریشان است!",
|
||||
"onboarding.tips.migration": "<strong>آیا میدانستید؟</strong> اگر احساس میکنید {domain} انتخاب کارساز خوبی برای آیندهتان نیست، میتوانید بدون از دست دادن پیگیرهایتان به کارساز ماستودون دیگری مهاجرت کنید. حتا میتوانید کارساز خودتان را میزبانی کنید!",
|
||||
"onboarding.tips.verification": "<strong>آیا میدانستید؟</strong> میتوانید حسابتان را با گذاشتن پیوندی به نمایهٔ ماستودونتان روی پایگاه وب خود و افزودن پایگاه وبتان به نمایهتان تأیید کنید. بدون نیاز به هیچ کارمزد یا سندی!",
|
||||
"password_confirmation.exceeds_maxlength": "تأییدیه گذرواژه از حداکثر طول گذرواژه بیشتر است",
|
||||
"password_confirmation.mismatching": "تایید گذرواژه با گذرواژه مطابقت ندارد",
|
||||
"picture_in_picture.restore": "برگرداندن",
|
||||
@@ -523,8 +536,9 @@
|
||||
"relative_time.seconds": "{number} ثانیه",
|
||||
"relative_time.today": "امروز",
|
||||
"reply_indicator.cancel": "لغو",
|
||||
"report.block": "مسدود کردن",
|
||||
"report.block": "انسداد",
|
||||
"report.block_explanation": "شما فرستههایشان را نخواهید دید. آنها نمیتوانند فرستههایتان را ببینند یا شما را پیبگیرند. آنها میتوانند بگویند که مسدود شدهاند.",
|
||||
"report.categories.legal": "حقوقی",
|
||||
"report.categories.other": "غیره",
|
||||
"report.categories.spam": "هرزنامه",
|
||||
"report.categories.violation": "محتوا یک یا چند قانون کارساز را نقض میکند",
|
||||
@@ -576,12 +590,18 @@
|
||||
"search.quick_action.open_url": "باز کردن پیوند در ماستودون",
|
||||
"search.quick_action.status_search": "فرستههای جور با {x}",
|
||||
"search.search_or_paste": "جستوجو یا جایگذاری نشانی",
|
||||
"search_popout.full_text_search_disabled_message": "روی {domain} موجود نیست.",
|
||||
"search_popout.language_code": "کد زبان ایزو",
|
||||
"search_popout.options": "گزینههای جستوجو",
|
||||
"search_popout.quick_actions": "کنشهای سریع",
|
||||
"search_popout.recent": "جستوجوهای اخیر",
|
||||
"search_popout.specific_date": "تاریخ مشخص",
|
||||
"search_popout.user": "کاربر",
|
||||
"search_results.accounts": "نمایهها",
|
||||
"search_results.all": "همه",
|
||||
"search_results.hashtags": "برچسبها",
|
||||
"search_results.nothing_found": "چیزی برای این عبارت جستوجو یافت نشد",
|
||||
"search_results.see_all": "دیدن همه",
|
||||
"search_results.statuses": "فرستهها",
|
||||
"search_results.title": "جستوجو برای {q}",
|
||||
"server_banner.about_active_users": "افرادی که در ۳۰ روز گذشته از این کارساز استفاده کردهاند (کاربران فعّال ماهانه)",
|
||||
@@ -597,15 +617,15 @@
|
||||
"status.admin_account": "گشودن واسط مدیریت برای @{name}",
|
||||
"status.admin_domain": "گشودن واسط مدیریت برای {domain}",
|
||||
"status.admin_status": "گشودن این فرسته در واسط مدیریت",
|
||||
"status.block": "مسدود کردن @{name}",
|
||||
"status.block": "انسداد @{name}",
|
||||
"status.bookmark": "نشانک",
|
||||
"status.cancel_reblog_private": "ناتقویت",
|
||||
"status.cannot_reblog": "این فرسته قابل تقویت نیست",
|
||||
"status.copy": "رونوشت از پیوند فرسته",
|
||||
"status.delete": "حذف",
|
||||
"status.detailed_status": "نمایش کامل گفتگو",
|
||||
"status.direct": "خصوصی به @{name} اشاره کنید",
|
||||
"status.direct_indicator": "اشاره خصوصی",
|
||||
"status.direct": "اشارهٔ خصوصی به @{name}",
|
||||
"status.direct_indicator": "اشارهٔ خصوصی",
|
||||
"status.edit": "ویرایش",
|
||||
"status.edited": "ویرایش شده در {date}",
|
||||
"status.edited_x_times": "{count, plural, one {{count} مرتبه} other {{count} مرتبه}} ویرایش شد",
|
||||
@@ -620,7 +640,7 @@
|
||||
"status.media.open": "کلیک برای گشودن",
|
||||
"status.media.show": "کلیک برای نمایش",
|
||||
"status.media_hidden": "رسانهٔ نهفته",
|
||||
"status.mention": "نامبردن از @{name}",
|
||||
"status.mention": "اشاره به @{name}",
|
||||
"status.more": "بیشتر",
|
||||
"status.mute": "خموشاندن @{name}",
|
||||
"status.mute_conversation": "خموشاندن گفتوگو",
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"account.block_short": "Bloquer",
|
||||
"account.blocked": "Bloqué·e",
|
||||
"account.browse_more_on_origin_server": "Parcourir davantage sur le profil original",
|
||||
"account.cancel_follow_request": "Retirer la demande d’abonnement",
|
||||
"account.cancel_follow_request": "Annuler le suivi",
|
||||
"account.direct": "Mention privée @{name}",
|
||||
"account.disable_notifications": "Ne plus me notifier quand @{name} publie quelque chose",
|
||||
"account.domain_blocked": "Domaine bloqué",
|
||||
@@ -50,7 +50,7 @@
|
||||
"account.moved_to": "{name} a indiqué que son nouveau compte est maintenant :",
|
||||
"account.mute": "Masquer @{name}",
|
||||
"account.mute_notifications_short": "Désactiver les alertes",
|
||||
"account.mute_short": "Masquer",
|
||||
"account.mute_short": "Mettre en sourdine",
|
||||
"account.muted": "Masqué·e",
|
||||
"account.no_bio": "Aucune description fournie.",
|
||||
"account.open_original_page": "Ouvrir la page d'origine",
|
||||
@@ -108,7 +108,7 @@
|
||||
"closed_registrations_modal.title": "Inscription sur Mastodon",
|
||||
"column.about": "À propos",
|
||||
"column.blocks": "Comptes bloqués",
|
||||
"column.bookmarks": "Signets",
|
||||
"column.bookmarks": "Marque-pages",
|
||||
"column.community": "Fil public local",
|
||||
"column.direct": "Mentions privées",
|
||||
"column.directory": "Parcourir les profils",
|
||||
@@ -149,9 +149,9 @@
|
||||
"compose_form.poll.option_placeholder": "Choix {number}",
|
||||
"compose_form.poll.remove_option": "Supprimer ce choix",
|
||||
"compose_form.poll.switch_to_multiple": "Changer le sondage pour autoriser plusieurs choix",
|
||||
"compose_form.poll.switch_to_single": "Changer le sondage pour autoriser qu'un seul choix",
|
||||
"compose_form.poll.switch_to_single": "Modifier le sondage pour autoriser qu'un seul choix",
|
||||
"compose_form.publish": "Publier",
|
||||
"compose_form.publish_form": "Publier",
|
||||
"compose_form.publish_form": "Nouvelle publication",
|
||||
"compose_form.publish_loud": "{publish} !",
|
||||
"compose_form.save_changes": "Enregistrer les modifications",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Marquer le média comme sensible} other {Marquer les médias comme sensibles}}",
|
||||
|
||||
@@ -683,9 +683,9 @@
|
||||
"time_remaining.moments": "Cha doir e ach greiseag",
|
||||
"time_remaining.seconds": "{number, plural, one {# diog} two {# dhiog} few {# diogan} other {# diog}} air fhàgail",
|
||||
"timeline_hint.remote_resource_not_displayed": "Cha dèid {resource} o fhrithealaichean eile a shealltainn.",
|
||||
"timeline_hint.resources.followers": "Luchd-leantainn",
|
||||
"timeline_hint.resources.follows": "A’ leantainn",
|
||||
"timeline_hint.resources.statuses": "Postaichean nas sine",
|
||||
"timeline_hint.resources.followers": "luchd-leantainn",
|
||||
"timeline_hint.resources.follows": "an fheadhainn gan leantainn",
|
||||
"timeline_hint.resources.statuses": "postaichean nas sine",
|
||||
"trends.counter_by_accounts": "{count, plural, one {{counter} neach} two {{counter} neach} few {{counter} daoine} other {{counter} duine}} {days, plural, one {san {days} latha} two {san {days} latha} few {sna {days} làithean} other {sna {days} latha}} seo chaidh",
|
||||
"trends.trending_now": "A’ treandadh an-dràsta",
|
||||
"ui.beforeunload": "Caillidh tu an dreachd agad ma dh’fhàgas tu Mastodon an-dràsta.",
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
"community.column_settings.remote_only": "Só remoto",
|
||||
"compose.language.change": "Elixe o idioma",
|
||||
"compose.language.search": "Buscar idiomas...",
|
||||
"compose.published.body": "Publicación publicada.",
|
||||
"compose.published.body": "Mensaxe publicada.",
|
||||
"compose.published.open": "Abrir",
|
||||
"compose.saved.body": "Publicación gardada.",
|
||||
"compose_form.direct_message_warning_learn_more": "Saber máis",
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
"compose.language.search": "언어 검색...",
|
||||
"compose.published.body": "게시하였습니다.",
|
||||
"compose.published.open": "열기",
|
||||
"compose.saved.body": "게시물을 저장했어요.",
|
||||
"compose.saved.body": "게시물이 저장되었습니다.",
|
||||
"compose_form.direct_message_warning_learn_more": "더 알아보기",
|
||||
"compose_form.encryption_warning": "마스토돈의 게시물들은 종단간 암호화가 되지 않습니다. 민감한 정보를 마스토돈을 통해 전달하지 마세요.",
|
||||
"compose_form.hashtag_warning": "이 게시물은 전체공개가 아니기 때문에 어떤 해시태그로도 검색 되지 않습니다. 전체공개로 게시 된 게시물만이 해시태그로 검색될 수 있습니다.",
|
||||
@@ -307,12 +307,12 @@
|
||||
"home.column_settings.basic": "기본",
|
||||
"home.column_settings.show_reblogs": "부스트 표시",
|
||||
"home.column_settings.show_replies": "답글 표시",
|
||||
"home.explore_prompt.body": "홈 피드에는 내가 팔로우한 해시태그 그리고 팔로우한 사람과 부스트가 함께 나타나요. 너무 고요하게 느껴진다면, 다음 것들을 살펴볼 수 있어요:",
|
||||
"home.explore_prompt.body": "홈 피드에는 내가 팔로우한 해시태그 그리고 팔로우한 사람과 부스트가 함께 나타납니다. 너무 고요하게 느껴진다면, 다음 것들을 살펴볼 수 있습니다.",
|
||||
"home.explore_prompt.title": "이곳은 마스토돈의 내 본거지입니다.",
|
||||
"home.hide_announcements": "공지사항 숨기기",
|
||||
"home.pending_critical_update.body": "서둘러 마스토돈 서버를 업데이트 하세요!",
|
||||
"home.pending_critical_update.link": "업데이트 보기",
|
||||
"home.pending_critical_update.title": "긴급 보안 업데이트가 있어요!",
|
||||
"home.pending_critical_update.title": "긴급 보안 업데이트가 있습니다!",
|
||||
"home.show_announcements": "공지사항 보기",
|
||||
"interaction_modal.description.favourite": "마스토돈 계정을 통해, 게시물을 좋아하는 것으로 작성자에게 호의를 표하고 나중에 보기 위해 저장할 수 있습니다.",
|
||||
"interaction_modal.description.follow": "마스토돈 계정을 통해, {name} 님을 팔로우 하고 그의 게시물을 홈 피드에서 받아 볼 수 있습니다.",
|
||||
@@ -487,7 +487,7 @@
|
||||
"onboarding.start.title": "해내셨군요!",
|
||||
"onboarding.steps.follow_people.body": "흥미로운 사람들을 팔로우하는 것은 마스토돈의 전부입니다.",
|
||||
"onboarding.steps.follow_people.title": "내게 맞는 홈 피드 꾸미기",
|
||||
"onboarding.steps.publish_status.body": "글, 사진, 영상, 투표 또는 {emoji}와 함께 세상에 인사해보세요.",
|
||||
"onboarding.steps.publish_status.body": "글, 사진, 영상, 설문 또는 {emoji}와 함께 세상에 인사해보세요.",
|
||||
"onboarding.steps.publish_status.title": "첫번째 게시물 쓰기",
|
||||
"onboarding.steps.setup_profile.body": "의미있는 프로필을 작성해 상호작용을 늘려보세요.",
|
||||
"onboarding.steps.setup_profile.title": "프로필 꾸미기",
|
||||
@@ -554,7 +554,7 @@
|
||||
"report.mute_explanation": "당신은 해당 계정의 게시물을 보지 않게 됩니다. 해당 계정은 여전히 당신을 팔로우 하거나 당신의 게시물을 볼 수 있으며 해당 계정은 자신이 뮤트 되었는지 알지 못합니다.",
|
||||
"report.next": "다음",
|
||||
"report.placeholder": "코멘트",
|
||||
"report.reasons.dislike": "마음에 안듭니다",
|
||||
"report.reasons.dislike": "마음에 안 듭니다",
|
||||
"report.reasons.dislike_description": "내가 보기 싫은 종류에 속합니다",
|
||||
"report.reasons.legal": "불법입니다",
|
||||
"report.reasons.legal_description": "내 서버가 속한 국가의 법률을 위반한다고 생각합니다",
|
||||
|
||||
@@ -379,7 +379,7 @@
|
||||
"lists.delete": "Lijst verwijderen",
|
||||
"lists.edit": "Lijst bewerken",
|
||||
"lists.edit.submit": "Titel veranderen",
|
||||
"lists.exclusive": "Verberg deze berichten op je startpagina",
|
||||
"lists.exclusive": "Verberg deze berichten op je starttijdlijn",
|
||||
"lists.new.create": "Lijst toevoegen",
|
||||
"lists.new.title_placeholder": "Naam nieuwe lijst",
|
||||
"lists.replies_policy.followed": "Elke gevolgde gebruiker",
|
||||
|
||||
@@ -310,6 +310,9 @@
|
||||
"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",
|
||||
"home.pending_critical_update.title": "Kritisk sikkerhetsoppdatering er tilgjengelig!",
|
||||
"home.show_announcements": "Vis kunngjøring",
|
||||
"interaction_modal.description.favourite": "Med en konto på Mastodon, kan du favorittmarkere dette innlegget for å la forfatteren vite at du satte pris på det, og lagre innlegget til senere.",
|
||||
"interaction_modal.description.follow": "Med en konto på Mastodon, kan du følge {name} for å få innleggene deres i tidslinjen din.",
|
||||
@@ -411,6 +414,7 @@
|
||||
"navigation_bar.lists": "Lister",
|
||||
"navigation_bar.logout": "Logg ut",
|
||||
"navigation_bar.mutes": "Dempede brukere",
|
||||
"navigation_bar.opened_in_classic_interface": "Innlegg, kontoer og andre spesifikke sider åpnes som standard i det klassiske webgrensesnittet.",
|
||||
"navigation_bar.personal": "Personlig",
|
||||
"navigation_bar.pins": "Festede innlegg",
|
||||
"navigation_bar.preferences": "Innstillinger",
|
||||
@@ -586,6 +590,7 @@
|
||||
"search.quick_action.open_url": "Åpne URL i Mastodon",
|
||||
"search.quick_action.status_search": "Innlegg som samsvarer med {x}",
|
||||
"search.search_or_paste": "Søk eller lim inn URL",
|
||||
"search_popout.full_text_search_disabled_message": "Ikke tilgjengelig på {domain}.",
|
||||
"search_popout.language_code": "ISO språkkode",
|
||||
"search_popout.options": "Alternativer for søk",
|
||||
"search_popout.quick_actions": "Hurtighandlinger",
|
||||
@@ -596,6 +601,7 @@
|
||||
"search_results.all": "Alle",
|
||||
"search_results.hashtags": "Emneknagger",
|
||||
"search_results.nothing_found": "Fant ikke noe for disse søkeordene",
|
||||
"search_results.see_all": "Se alle",
|
||||
"search_results.statuses": "Innlegg",
|
||||
"search_results.title": "Søk etter {q}",
|
||||
"server_banner.about_active_users": "Personer som har brukt denne serveren i løpet av de siste 30 dagene (aktive brukere månedlig)",
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
"account.locked_info": "Stav súkromia pre tento účet je nastavený na zamknutý. Jeho vlastník sám prehodnocuje, kto ho môže sledovať.",
|
||||
"account.media": "Médiá",
|
||||
"account.mention": "Spomeň @{name}",
|
||||
"account.moved_to": "{name} uvádza, že jeho/jej nový účet je:",
|
||||
"account.moved_to": "{name} uvádza, že jeho/jej nový účet je teraz:",
|
||||
"account.mute": "Nevšímaj si @{name}",
|
||||
"account.mute_notifications_short": "Stíš oboznámenia",
|
||||
"account.mute_short": "Nevšímaj si",
|
||||
@@ -303,6 +303,7 @@
|
||||
"home.column_settings.basic": "Základné",
|
||||
"home.column_settings.show_reblogs": "Ukáž vyzdvihnuté",
|
||||
"home.column_settings.show_replies": "Ukáž odpovede",
|
||||
"home.explore_prompt.title": "Toto je tvoja domovina v rámci Mastodonu.",
|
||||
"home.hide_announcements": "Skry obozná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",
|
||||
|
||||
@@ -302,8 +302,8 @@
|
||||
"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": "Pogledaj šta je u trendu",
|
||||
"home.actions.go_to_suggestions": "Pronađite ljude za praćenje",
|
||||
"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",
|
||||
@@ -590,6 +590,7 @@
|
||||
"search.quick_action.open_url": "Otvori URL adresu u Mastodon-u",
|
||||
"search.quick_action.status_search": "Podudaranje objava {x}",
|
||||
"search.search_or_paste": "Pretražite ili unesite adresu",
|
||||
"search_popout.full_text_search_disabled_message": "Nije dostupno na {domain}.",
|
||||
"search_popout.language_code": "ISO kod jezika",
|
||||
"search_popout.options": "Opcije pretrage",
|
||||
"search_popout.quick_actions": "Brze radnje",
|
||||
|
||||
@@ -302,8 +302,8 @@
|
||||
"hashtag.follow": "Запрати хеш ознаку",
|
||||
"hashtag.unfollow": "Отпрати хеш ознаку",
|
||||
"hashtags.and_other": "…и {count, plural, one {још #} few {још #}other {још #}}",
|
||||
"home.actions.go_to_explore": "Погледај шта је у тренду",
|
||||
"home.actions.go_to_suggestions": "Пронађите људе за праћење",
|
||||
"home.actions.go_to_explore": "Погледате шта је у тренду",
|
||||
"home.actions.go_to_suggestions": "Пронађeте људе које бисте пратили",
|
||||
"home.column_settings.basic": "Основна",
|
||||
"home.column_settings.show_reblogs": "Прикажи подржавања",
|
||||
"home.column_settings.show_replies": "Прикажи одговоре",
|
||||
@@ -590,6 +590,7 @@
|
||||
"search.quick_action.open_url": "Отвори URL адресу у Mastodon-у",
|
||||
"search.quick_action.status_search": "Подударање објава {x}",
|
||||
"search.search_or_paste": "Претражите или унесите адресу",
|
||||
"search_popout.full_text_search_disabled_message": "Није доступно на {domain}.",
|
||||
"search_popout.language_code": "ISO код језика",
|
||||
"search_popout.options": "Опције претраге",
|
||||
"search_popout.quick_actions": "Брзе радње",
|
||||
|
||||
@@ -341,8 +341,8 @@
|
||||
"keyboard_shortcuts.direct": "mở mục nhắn riêng",
|
||||
"keyboard_shortcuts.down": "di chuyển xuống dưới danh sách",
|
||||
"keyboard_shortcuts.enter": "viết tút mới",
|
||||
"keyboard_shortcuts.favourite": "Thích tút",
|
||||
"keyboard_shortcuts.favourites": "Mở lượt thích",
|
||||
"keyboard_shortcuts.favourite": "thích tút",
|
||||
"keyboard_shortcuts.favourites": "mở lượt thích",
|
||||
"keyboard_shortcuts.federated": "mở mạng liên hợp",
|
||||
"keyboard_shortcuts.heading": "Danh sách phím tắt",
|
||||
"keyboard_shortcuts.home": "mở trang chính",
|
||||
@@ -557,7 +557,7 @@
|
||||
"report.reasons.dislike": "Tôi không thích nó",
|
||||
"report.reasons.dislike_description": "Đó không phải là thứ gì mà bạn muốn thấy",
|
||||
"report.reasons.legal": "Vi phạm pháp luật",
|
||||
"report.reasons.legal_description": "Bạn tin rằng nó vi phạm pháp luật ở nơi đặt máy chủ hoặc nước bạn",
|
||||
"report.reasons.legal_description": "Vi phạm pháp luật ở nơi đặt máy chủ hoặc nước bạn",
|
||||
"report.reasons.other": "Một lý do khác",
|
||||
"report.reasons.other_description": "Vấn đề không nằm trong những mục trên",
|
||||
"report.reasons.spam": "Đây là spam",
|
||||
@@ -592,7 +592,7 @@
|
||||
"search.search_or_paste": "Tìm kiếm hoặc nhập URL",
|
||||
"search_popout.full_text_search_disabled_message": "Không khả dụng trên {domain}.",
|
||||
"search_popout.language_code": "Mã ngôn ngữ ISO",
|
||||
"search_popout.options": "Tuỳ chọn tìm kiếm",
|
||||
"search_popout.options": "Tùy chọn tìm kiếm",
|
||||
"search_popout.quick_actions": "Thao tác nhanh",
|
||||
"search_popout.recent": "Tìm kiếm gần đây",
|
||||
"search_popout.specific_date": "ngày cụ thể",
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
"compose.language.search": "搜索语言...",
|
||||
"compose.published.body": "嘟文已发布。",
|
||||
"compose.published.open": "打开",
|
||||
"compose.saved.body": "帖子已保存。",
|
||||
"compose.saved.body": "嘟文已保存。",
|
||||
"compose_form.direct_message_warning_learn_more": "详细了解",
|
||||
"compose_form.encryption_warning": "Mastodon 上的嘟文未经端到端加密。请勿在 Mastodon 上分享敏感信息。",
|
||||
"compose_form.hashtag_warning": "这条嘟文被设置为“不公开”,因此它不会出现在任何话题标签的列表下。只有公开的嘟文才能通过话题标签进行搜索。",
|
||||
@@ -199,7 +199,7 @@
|
||||
"directory.recently_active": "最近活跃",
|
||||
"disabled_account_banner.account_settings": "账号设置",
|
||||
"disabled_account_banner.text": "您的账号 {disabledAccount} 目前已被禁用。",
|
||||
"dismissable_banner.community_timeline": "这些是来自 {domain} 用户的最新公共嘟文。",
|
||||
"dismissable_banner.community_timeline": "这些是来自 {domain} 用户的最新公开嘟文。",
|
||||
"dismissable_banner.dismiss": "忽略",
|
||||
"dismissable_banner.explore_links": "这些新闻故事正被本站和分布式网络上其他站点的用户谈论。",
|
||||
"dismissable_banner.explore_statuses": "这些是目前在社交网络上引起关注的嘟文。嘟文的喜欢和转嘟次数越多,排名越高。",
|
||||
@@ -414,7 +414,7 @@
|
||||
"navigation_bar.lists": "列表",
|
||||
"navigation_bar.logout": "退出登录",
|
||||
"navigation_bar.mutes": "已隐藏的用户",
|
||||
"navigation_bar.opened_in_classic_interface": "帖子、账户和其他特定页面默认在经典网页界面中打开。",
|
||||
"navigation_bar.opened_in_classic_interface": "嘟文、账户和其他特定页面默认在经典网页界面中打开。",
|
||||
"navigation_bar.personal": "个人",
|
||||
"navigation_bar.pins": "置顶嘟文",
|
||||
"navigation_bar.preferences": "首选项",
|
||||
@@ -473,7 +473,7 @@
|
||||
"onboarding.action.back": "带我返回",
|
||||
"onboarding.actions.back": "带我返回",
|
||||
"onboarding.actions.go_to_explore": "看看有什么新鲜事",
|
||||
"onboarding.actions.go_to_home": "转到主页订阅流",
|
||||
"onboarding.actions.go_to_home": "转到主页动态",
|
||||
"onboarding.compose.template": "你好 #Mastodon!",
|
||||
"onboarding.follows.empty": "很抱歉,现在无法显示任何结果。您可以尝试使用搜索或浏览探索页面来查找要关注的人,或稍后再试。",
|
||||
"onboarding.follows.lead": "你管理你自己的家庭饲料。你关注的人越多,它将越活跃和有趣。 这些配置文件可能是一个很好的起点——你可以随时取消关注它们!",
|
||||
@@ -575,7 +575,7 @@
|
||||
"report.thanks.title": "不想看到这个内容?",
|
||||
"report.thanks.title_actionable": "感谢提交举报,我们将会进行处理。",
|
||||
"report.unfollow": "取消关注 @{name}",
|
||||
"report.unfollow_explanation": "你正在关注此账户。如果要想在你的主页上不再看到他们的帖子,取消对他们的关注即可。",
|
||||
"report.unfollow_explanation": "你正在关注此账户。如果不想继续在主页看到他们的嘟文,取消对他们的关注即可。",
|
||||
"report_notification.attached_statuses": "附上 {count} 条嘟文",
|
||||
"report_notification.categories.legal": "法律义务",
|
||||
"report_notification.categories.other": "其他",
|
||||
@@ -588,7 +588,7 @@
|
||||
"search.quick_action.go_to_account": "前往 {x} 个人资料",
|
||||
"search.quick_action.go_to_hashtag": "前往标签 {x}",
|
||||
"search.quick_action.open_url": "在 Mastodon 中打开网址",
|
||||
"search.quick_action.status_search": "匹配 {x} 的帖子",
|
||||
"search.quick_action.status_search": "匹配 {x} 的嘟文",
|
||||
"search.search_or_paste": "搜索或输入网址",
|
||||
"search_popout.full_text_search_disabled_message": "在 {domain} 不可用",
|
||||
"search_popout.language_code": "ISO语言代码",
|
||||
|
||||
@@ -600,6 +600,7 @@
|
||||
"search_results.all": "全部",
|
||||
"search_results.hashtags": "標籤",
|
||||
"search_results.nothing_found": "找不到與搜尋字詞相關的內容",
|
||||
"search_results.see_all": "顯示全部",
|
||||
"search_results.statuses": "文章",
|
||||
"search_results.title": "搜尋 {q}",
|
||||
"server_banner.about_active_users": "在最近 30 天內內使用此伺服器的人 (月活躍用戶)",
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
import Immutable from 'immutable';
|
||||
|
||||
import {
|
||||
DROPDOWN_MENU_OPEN,
|
||||
DROPDOWN_MENU_CLOSE,
|
||||
} from '../actions/dropdown_menu';
|
||||
|
||||
const initialState = Immutable.Map({ openId: null, keyboard: false, scroll_key: null });
|
||||
|
||||
export default function dropdownMenu(state = initialState, action) {
|
||||
switch (action.type) {
|
||||
case DROPDOWN_MENU_OPEN:
|
||||
return state.merge({ openId: action.id, keyboard: action.keyboard, scroll_key: action.scroll_key });
|
||||
case DROPDOWN_MENU_CLOSE:
|
||||
return state.get('openId') === action.id ? state.set('openId', null).set('scroll_key', null) : state;
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
}
|
||||
33
app/javascript/mastodon/reducers/dropdown_menu.ts
Normal file
33
app/javascript/mastodon/reducers/dropdown_menu.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import { createReducer } from '@reduxjs/toolkit';
|
||||
|
||||
import { closeDropdownMenu, openDropdownMenu } from '../actions/dropdown_menu';
|
||||
|
||||
interface DropdownMenuState {
|
||||
openId: string | null;
|
||||
keyboard: boolean;
|
||||
scrollKey: string | null;
|
||||
}
|
||||
|
||||
const initialState: DropdownMenuState = {
|
||||
openId: null,
|
||||
keyboard: false,
|
||||
scrollKey: null,
|
||||
};
|
||||
|
||||
export const dropdownMenuReducer = createReducer(initialState, (builder) => {
|
||||
builder
|
||||
.addCase(
|
||||
openDropdownMenu,
|
||||
(state, { payload: { id, keyboard, scrollKey } }) => {
|
||||
state.openId = id;
|
||||
state.keyboard = keyboard;
|
||||
state.scrollKey = scrollKey;
|
||||
},
|
||||
)
|
||||
.addCase(closeDropdownMenu, (state, { payload: { id } }) => {
|
||||
if (state.openId === id) {
|
||||
state.openId = null;
|
||||
state.scrollKey = null;
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -15,7 +15,7 @@ import contexts from './contexts';
|
||||
import conversations from './conversations';
|
||||
import custom_emojis from './custom_emojis';
|
||||
import domain_lists from './domain_lists';
|
||||
import dropdown_menu from './dropdown_menu';
|
||||
import { dropdownMenuReducer } from './dropdown_menu';
|
||||
import filters from './filters';
|
||||
import followed_tags from './followed_tags';
|
||||
import height_cache from './height_cache';
|
||||
@@ -46,7 +46,7 @@ import user_lists from './user_lists';
|
||||
|
||||
const reducers = {
|
||||
announcements,
|
||||
dropdown_menu,
|
||||
dropdownMenu: dropdownMenuReducer,
|
||||
timelines,
|
||||
meta,
|
||||
alerts,
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { Record as ImmutableRecord, Stack } from 'immutable';
|
||||
|
||||
import type { PayloadAction } from '@reduxjs/toolkit';
|
||||
import type { Reducer } from '@reduxjs/toolkit';
|
||||
|
||||
import { COMPOSE_UPLOAD_CHANGE_SUCCESS } from '../actions/compose';
|
||||
import type { ModalType } from '../actions/modal';
|
||||
import { openModal, closeModal } from '../actions/modal';
|
||||
import { TIMELINE_DELETE } from '../actions/timelines';
|
||||
|
||||
type ModalProps = Record<string, unknown>;
|
||||
export type ModalProps = Record<string, unknown>;
|
||||
interface Modal {
|
||||
modalType: ModalType;
|
||||
modalProps: ModalProps;
|
||||
@@ -62,33 +62,22 @@ const pushModal = (
|
||||
});
|
||||
};
|
||||
|
||||
export function modalReducer(
|
||||
state: State = initialState,
|
||||
action: PayloadAction<{
|
||||
modalType: ModalType;
|
||||
ignoreFocus: boolean;
|
||||
modalProps: Record<string, unknown>;
|
||||
}>,
|
||||
) {
|
||||
switch (action.type) {
|
||||
case openModal.type:
|
||||
return pushModal(
|
||||
state,
|
||||
action.payload.modalType,
|
||||
action.payload.modalProps,
|
||||
);
|
||||
case closeModal.type:
|
||||
return popModal(state, action.payload);
|
||||
case COMPOSE_UPLOAD_CHANGE_SUCCESS:
|
||||
return popModal(state, { modalType: 'FOCAL_POINT', ignoreFocus: false });
|
||||
case TIMELINE_DELETE:
|
||||
return state.update('stack', (stack) =>
|
||||
stack.filterNot(
|
||||
// @ts-expect-error TIMELINE_DELETE action is not typed yet.
|
||||
(modal) => modal.get('modalProps').statusId === action.id,
|
||||
),
|
||||
);
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
}
|
||||
export const modalReducer: Reducer<State> = (state = initialState, action) => {
|
||||
if (openModal.match(action))
|
||||
return pushModal(
|
||||
state,
|
||||
action.payload.modalType,
|
||||
action.payload.modalProps,
|
||||
);
|
||||
else if (closeModal.match(action)) return popModal(state, action.payload);
|
||||
// TODO: type those actions
|
||||
else if (action.type === COMPOSE_UPLOAD_CHANGE_SUCCESS)
|
||||
return popModal(state, { modalType: 'FOCAL_POINT', ignoreFocus: false });
|
||||
else if (action.type === TIMELINE_DELETE)
|
||||
return state.update('stack', (stack) =>
|
||||
stack.filterNot(
|
||||
(modal) => modal.get('modalProps').statusId === action.id,
|
||||
),
|
||||
);
|
||||
else return state;
|
||||
};
|
||||
|
||||
@@ -284,6 +284,7 @@
|
||||
font-size: 11px;
|
||||
padding: 0 3px;
|
||||
line-height: 27px;
|
||||
white-space: nowrap;
|
||||
|
||||
&:hover,
|
||||
&:active,
|
||||
|
||||
Reference in New Issue
Block a user