Merge pull request #2934 from ClearlyClaire/glitch-soc/merge-upstream

Merge upstream changes up to 82d2ce293d
pull/2933/head
Claire 2025-01-07 08:33:51 +01:00 committed by GitHub
commit 693074973a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
102 changed files with 808 additions and 233 deletions

View File

@ -18,7 +18,7 @@ permissions:
jobs:
check-i18n:
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

View File

@ -174,7 +174,7 @@ jobs:
test-libvips:
name: Libvips tests
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
needs:
- build

View File

@ -6,7 +6,7 @@ module Admin
def index
authorize :software_update, :index?
@software_updates = SoftwareUpdate.all.sort_by(&:gem_version)
@software_updates = SoftwareUpdate.by_version
end
private

View File

@ -25,7 +25,7 @@ module Localized
end
def available_locale_or_nil(locale_name)
locale_name.to_sym if locale_name.present? && I18n.available_locales.include?(locale_name.to_sym)
locale_name.to_sym if locale_name.respond_to?(:to_sym) && I18n.available_locales.include?(locale_name.to_sym)
end
def content_locale

View File

@ -7,26 +7,18 @@ import { requestNotificationPermission } from '../utils/notifications';
import { fetchFollowRequests } from './accounts';
import {
importFetchedAccount,
importFetchedStatus,
} from './importer';
import { submitMarkers } from './markers';
import { notificationsUpdate } from "./notifications_typed";
import { register as registerPushNotifications } from './push_notifications';
import { saveSettings } from './settings';
export * from "./notifications_typed";
export const NOTIFICATIONS_UPDATE_NOOP = 'NOTIFICATIONS_UPDATE_NOOP';
export const NOTIFICATIONS_FILTER_SET = 'NOTIFICATIONS_FILTER_SET';
export const NOTIFICATIONS_SET_BROWSER_SUPPORT = 'NOTIFICATIONS_SET_BROWSER_SUPPORT';
export const NOTIFICATIONS_SET_BROWSER_PERMISSION = 'NOTIFICATIONS_SET_BROWSER_PERMISSION';
export const NOTIFICATION_REQUESTS_DISMISS_REQUEST = 'NOTIFICATION_REQUESTS_DISMISS_REQUEST';
export const NOTIFICATION_REQUESTS_DISMISS_SUCCESS = 'NOTIFICATION_REQUESTS_DISMISS_SUCCESS';
export const NOTIFICATION_REQUESTS_DISMISS_FAIL = 'NOTIFICATION_REQUESTS_DISMISS_FAIL';
defineMessages({
mention: { id: 'notification.mention', defaultMessage: '{name} mentioned you' },
group: { id: 'notifications.group', defaultMessage: '{count} notifications' },
@ -34,8 +26,6 @@ defineMessages({
export function updateNotifications(notification, intlMessages, intlLocale) {
return (dispatch, getState) => {
const activeFilter = getState().getIn(['settings', 'notifications', 'quickFilter', 'active']);
const showInColumn = activeFilter === 'all' ? getState().getIn(['settings', 'notifications', 'shows', notification.type], true) : activeFilter === notification.type;
const showAlert = getState().getIn(['settings', 'notifications', 'alerts', notification.type], true);
const playSound = getState().getIn(['settings', 'notifications', 'sounds', notification.type], true);
@ -57,24 +47,9 @@ export function updateNotifications(notification, intlMessages, intlLocale) {
dispatch(submitMarkers());
if (showInColumn) {
dispatch(importFetchedAccount(notification.account));
if (notification.status) {
dispatch(importFetchedStatus(notification.status));
}
if (notification.report) {
dispatch(importFetchedAccount(notification.report.target_account));
}
dispatch(notificationsUpdate({ notification, playSound: playSound && !filtered}));
} else if (playSound && !filtered) {
dispatch({
type: NOTIFICATIONS_UPDATE_NOOP,
meta: { sound: 'boop' },
});
}
// `notificationsUpdate` is still used in `user_lists` and `relationships` reducers
dispatch(importFetchedAccount(notification.account));
dispatch(notificationsUpdate({ notification, playSound: playSound && !filtered}));
// Desktop notifications
if (typeof window.Notification !== 'undefined' && showAlert && !filtered) {
@ -93,17 +68,6 @@ export function updateNotifications(notification, intlMessages, intlLocale) {
const noOp = () => {};
export function setFilter (filterType) {
return dispatch => {
dispatch({
type: NOTIFICATIONS_FILTER_SET,
path: ['notifications', 'quickFilter', 'active'],
value: filterType,
});
dispatch(saveSettings());
};
}
// Browser support
export function setupBrowserNotifications() {
return dispatch => {

View File

@ -3,10 +3,10 @@ import { defineMessages, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
import { openModal } from 'flavours/glitch/actions/modal';
import { fetchNotifications } from 'flavours/glitch/actions/notification_groups';
import { fetchNotifications , setNotificationsFilter } from 'flavours/glitch/actions/notification_groups';
import { showAlert } from '../../../actions/alerts';
import { setFilter, requestBrowserPermission } from '../../../actions/notifications';
import { requestBrowserPermission } from '../../../actions/notifications';
import { changeAlerts as changePushNotifications } from '../../../actions/push_notifications';
import { changeSetting } from '../../../actions/settings';
import ColumnSettings from '../components/column_settings';
@ -43,7 +43,7 @@ const mapDispatchToProps = (dispatch) => ({
}
} else if (path[0] === 'quickFilter') {
dispatch(changeSetting(['notifications', ...path], checked));
dispatch(setFilter('all'));
dispatch(setNotificationsFilter('all'));
} else if (path[0] === 'alerts' && checked && typeof window.Notification !== 'undefined' && Notification.permission !== 'granted') {
if (checked && typeof window.Notification !== 'undefined' && Notification.permission !== 'granted') {
dispatch(requestBrowserPermission((permission) => {

View File

@ -1641,7 +1641,7 @@ body > [data-popper-placement] {
padding: 0 10px;
.detailed-status__display-name {
color: lighten($inverted-text-color, 16%);
color: $dark-text-color;
span {
display: inline;

View File

@ -7,26 +7,18 @@ import { requestNotificationPermission } from '../utils/notifications';
import { fetchFollowRequests } from './accounts';
import {
importFetchedAccount,
importFetchedStatus,
} from './importer';
import { submitMarkers } from './markers';
import { notificationsUpdate } from "./notifications_typed";
import { register as registerPushNotifications } from './push_notifications';
import { saveSettings } from './settings';
export * from "./notifications_typed";
export const NOTIFICATIONS_UPDATE_NOOP = 'NOTIFICATIONS_UPDATE_NOOP';
export const NOTIFICATIONS_FILTER_SET = 'NOTIFICATIONS_FILTER_SET';
export const NOTIFICATIONS_SET_BROWSER_SUPPORT = 'NOTIFICATIONS_SET_BROWSER_SUPPORT';
export const NOTIFICATIONS_SET_BROWSER_PERMISSION = 'NOTIFICATIONS_SET_BROWSER_PERMISSION';
export const NOTIFICATION_REQUESTS_DISMISS_REQUEST = 'NOTIFICATION_REQUESTS_DISMISS_REQUEST';
export const NOTIFICATION_REQUESTS_DISMISS_SUCCESS = 'NOTIFICATION_REQUESTS_DISMISS_SUCCESS';
export const NOTIFICATION_REQUESTS_DISMISS_FAIL = 'NOTIFICATION_REQUESTS_DISMISS_FAIL';
defineMessages({
mention: { id: 'notification.mention', defaultMessage: '{name} mentioned you' },
group: { id: 'notifications.group', defaultMessage: '{count} notifications' },
@ -34,8 +26,6 @@ defineMessages({
export function updateNotifications(notification, intlMessages, intlLocale) {
return (dispatch, getState) => {
const activeFilter = getState().getIn(['settings', 'notifications', 'quickFilter', 'active']);
const showInColumn = activeFilter === 'all' ? getState().getIn(['settings', 'notifications', 'shows', notification.type], true) : activeFilter === notification.type;
const showAlert = getState().getIn(['settings', 'notifications', 'alerts', notification.type], true);
const playSound = getState().getIn(['settings', 'notifications', 'sounds', notification.type], true);
@ -57,24 +47,9 @@ export function updateNotifications(notification, intlMessages, intlLocale) {
dispatch(submitMarkers());
if (showInColumn) {
dispatch(importFetchedAccount(notification.account));
if (notification.status) {
dispatch(importFetchedStatus(notification.status));
}
if (notification.report) {
dispatch(importFetchedAccount(notification.report.target_account));
}
dispatch(notificationsUpdate({ notification, playSound: playSound && !filtered}));
} else if (playSound && !filtered) {
dispatch({
type: NOTIFICATIONS_UPDATE_NOOP,
meta: { sound: 'boop' },
});
}
// `notificationsUpdate` is still used in `user_lists` and `relationships` reducers
dispatch(importFetchedAccount(notification.account));
dispatch(notificationsUpdate({ notification, playSound: playSound && !filtered}));
// Desktop notifications
if (typeof window.Notification !== 'undefined' && showAlert && !filtered) {
@ -93,17 +68,6 @@ export function updateNotifications(notification, intlMessages, intlLocale) {
const noOp = () => {};
export function setFilter (filterType) {
return dispatch => {
dispatch({
type: NOTIFICATIONS_FILTER_SET,
path: ['notifications', 'quickFilter', 'active'],
value: filterType,
});
dispatch(saveSettings());
};
}
// Browser support
export function setupBrowserNotifications() {
return dispatch => {

View File

@ -1,6 +1,7 @@
import { Provider } from 'react-redux';
import { fetchCustomEmojis } from 'mastodon/actions/custom_emojis';
import { fetchServer } from 'mastodon/actions/server';
import { hydrateStore } from 'mastodon/actions/store';
import { Router } from 'mastodon/components/router';
import Compose from 'mastodon/features/standalone/compose';
@ -13,6 +14,7 @@ if (initialState) {
}
store.dispatch(fetchCustomEmojis());
store.dispatch(fetchServer());
const ComposeContainer = () => (
<IntlProvider>

View File

@ -3,10 +3,10 @@ import { defineMessages, injectIntl } from 'react-intl';
import { connect } from 'react-redux';
import { openModal } from 'mastodon/actions/modal';
import { fetchNotifications } from 'mastodon/actions/notification_groups';
import { fetchNotifications , setNotificationsFilter } from 'mastodon/actions/notification_groups';
import { showAlert } from '../../../actions/alerts';
import { setFilter, requestBrowserPermission } from '../../../actions/notifications';
import { requestBrowserPermission } from '../../../actions/notifications';
import { changeAlerts as changePushNotifications } from '../../../actions/push_notifications';
import { changeSetting } from '../../../actions/settings';
import ColumnSettings from '../components/column_settings';
@ -43,7 +43,7 @@ const mapDispatchToProps = (dispatch) => ({
}
} else if (path[0] === 'quickFilter') {
dispatch(changeSetting(['notifications', ...path], checked));
dispatch(setFilter('all'));
dispatch(setNotificationsFilter('all'));
} else if (path[0] === 'alerts' && checked && typeof window.Notification !== 'undefined' && Notification.permission !== 'granted') {
if (checked && typeof window.Notification !== 'undefined' && Notification.permission !== 'granted') {
dispatch(requestBrowserPermission((permission) => {

View File

@ -240,5 +240,7 @@
"dismissable_banner.community_timeline": "Bunlar, hesabları {domain} serverində yerləşən insanların ən son ictimai paylaşımlarıdır.",
"dismissable_banner.dismiss": "Bağla",
"dismissable_banner.explore_links": "Bu xəbərlər bu gün fediversedə ən çox paylaşılır. Daha fərqli insanlar tərəfindən dərc edilən daha yeni xəbərlər daha yuxarıda sıralanır.",
"dismissable_banner.explore_statuses": "Fediversedən olan bu paylaşımlar bu gün maraq qazanır. Daha çox gücləndirici və bəyənmə olan daha yeni paylaşımlar daha yuxarıda sıralanır."
"dismissable_banner.explore_statuses": "Fediversedən olan bu paylaşımlar bu gün maraq qazanır. Daha çox gücləndirici və bəyənmə olan daha yeni paylaşımlar daha yuxarıda sıralanır.",
"domain_block_modal.block_account_instead": "@{name} istifadəçisini blokla",
"domain_block_modal.they_can_interact_with_old_posts": "Bu serverdən olan insanlar köhnə paylaşımlarınızla əlaqə qura bilər."
}

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "Показване/скриване на текст зад предупреждение на съдържание",
"keyboard_shortcuts.toggle_sensitivity": "Показване/скриване на мултимедията",
"keyboard_shortcuts.toot": "Начало на нова публикация",
"keyboard_shortcuts.translate": "за превод на публикация",
"keyboard_shortcuts.unfocus": "Разфокусиране на текстовото поле за съставяне/търсене",
"keyboard_shortcuts.up": "Преместване нагоре в списъка",
"lightbox.close": "Затваряне",
@ -836,6 +837,7 @@
"status.reblogs.empty": "Още никого не е подсилвал публикацията. Подсилващият ще се покаже тук.",
"status.redraft": "Изтриване и преработване",
"status.remove_bookmark": "Премахване на отметката",
"status.remove_favourite": "Премахване от любими",
"status.replied_in_thread": "Отговорено в нишката",
"status.replied_to": "В отговор до {name}",
"status.reply": "Отговор",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "Mostra/amaga el text marcat com a sensible",
"keyboard_shortcuts.toggle_sensitivity": "Mostra/amaga contingut",
"keyboard_shortcuts.toot": "Escriu un nou tut",
"keyboard_shortcuts.translate": "per a traduir una publicació",
"keyboard_shortcuts.unfocus": "Descentra l'àrea de composició de text/cerca",
"keyboard_shortcuts.up": "Apuja a la llista",
"lightbox.close": "Tanca",
@ -836,6 +837,7 @@
"status.reblogs.empty": "Encara no ha impulsat ningú aquest tut. Quan algú ho faci, apareixerà aquí.",
"status.redraft": "Esborra i reescriu",
"status.remove_bookmark": "Elimina el marcador",
"status.remove_favourite": "Elimina dels preferits",
"status.replied_in_thread": "Respost al fil",
"status.replied_to": "En resposta a {name}",
"status.reply": "Respon",

View File

@ -85,7 +85,26 @@
"alert.rate_limited.title": "Spojení omezena",
"alert.unexpected.message": "Objevila se neočekávaná chyba.",
"alert.unexpected.title": "Jejda!",
"alt_text_badge.title": "Popisek",
"announcement.announcement": "Oznámení",
"annual_report.summary.archetype.booster": "Lovec obsahu",
"annual_report.summary.archetype.lurker": "Špión",
"annual_report.summary.archetype.oracle": "Vědma",
"annual_report.summary.archetype.pollster": "Průzkumník",
"annual_report.summary.archetype.replier": "Sociální motýlek",
"annual_report.summary.followers.followers": "sledujících",
"annual_report.summary.followers.total": "{count} celkem",
"annual_report.summary.here_it_is": "Zde je tvůj {year} v přehledu:",
"annual_report.summary.highlighted_post.by_favourites": "nejvíce oblíbený příspěvek",
"annual_report.summary.highlighted_post.by_reblogs": "nejvíce boostovaný příspěvek",
"annual_report.summary.highlighted_post.by_replies": "příspěvek s nejvíce odpověďmi",
"annual_report.summary.highlighted_post.possessive": "{name}",
"annual_report.summary.most_used_app.most_used_app": "nejpoužívanější aplikace",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "nejpoužívanější hashtag",
"annual_report.summary.most_used_hashtag.none": "Žádné",
"annual_report.summary.new_posts.new_posts": "nové příspěvky",
"annual_report.summary.percentile.text": "<topLabel>To vás umisťuje do vrcholu</topLabel><percentage></percentage><bottomLabel>{domain} uživatelů.</bottomLabel>",
"annual_report.summary.thanks": "Děkujeme, že jste součástí Mastodonu!",
"attachments_list.unprocessed": "(nezpracováno)",
"audio.hide": "Skrýt zvuk",
"block_modal.remote_users_caveat": "Požádáme server {domain}, aby respektoval vaše rozhodnutí. Úplné dodržování nastavení však není zaručeno, protože některé servery mohou řešit blokování různě. Veřejné příspěvky mohou stále být viditelné pro nepřihlášené uživatele.",
@ -109,6 +128,7 @@
"bundle_column_error.routing.body": "Požadovaná stránka nebyla nalezena. Opravdu je URL v adresním řádku správně?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Zavřít",
"bundle_modal_error.message": "Něco se pokazilo při načítání této obrazovky.",
"bundle_modal_error.retry": "Zkusit znovu",
"closed_registrations.other_server_instructions": "Protože Mastodon je decentralizovaný, můžete si vytvořit účet na jiném serveru a přesto komunikovat s tímto serverem.",
"closed_registrations_modal.description": "V současné době není možné vytvořit účet na {domain}, ale mějte prosím na paměti, že k používání Mastodonu nepotřebujete účet konkrétně na {domain}.",
@ -119,13 +139,16 @@
"column.blocks": "Blokovaní uživatelé",
"column.bookmarks": "Záložky",
"column.community": "Místní časová osa",
"column.create_list": "Vytvořit seznam",
"column.direct": "Soukromé zmínky",
"column.directory": "Prozkoumat profily",
"column.domain_blocks": "Blokované domény",
"column.edit_list": "Upravit seznam",
"column.favourites": "Oblíbené",
"column.firehose": "Živé kanály",
"column.follow_requests": "Žádosti o sledování",
"column.home": "Domů",
"column.list_members": "Spravovat členy seznamu",
"column.lists": "Seznamy",
"column.mutes": "Skrytí uživatelé",
"column.notifications": "Oznámení",
@ -138,6 +161,7 @@
"column_header.pin": "Připnout",
"column_header.show_settings": "Zobrazit nastavení",
"column_header.unpin": "Odepnout",
"column_search.cancel": "Zrušit",
"column_subheading.settings": "Nastavení",
"community.column_settings.local_only": "Pouze místní",
"community.column_settings.media_only": "Pouze média",
@ -179,6 +203,8 @@
"confirmations.edit.confirm": "Upravit",
"confirmations.edit.message": "Editovat teď znamená přepsání zprávy, kterou právě tvoříte. Opravdu chcete pokračovat?",
"confirmations.edit.title": "Přepsat příspěvek?",
"confirmations.follow_to_list.confirm": "Sledovat a přidat do seznamu",
"confirmations.follow_to_list.title": "Sledovat uživatele?",
"confirmations.logout.confirm": "Odhlásit se",
"confirmations.logout.message": "Opravdu se chcete odhlásit?",
"confirmations.logout.title": "Odhlásit se?",
@ -193,6 +219,8 @@
"confirmations.unfollow.message": "Opravdu chcete {name} přestat sledovat?",
"confirmations.unfollow.title": "Přestat sledovat uživatele?",
"content_warning.hide": "Skrýt příspěvek",
"content_warning.show": "Přesto zobrazit",
"content_warning.show_more": "Zobrazit více",
"conversation.delete": "Smazat konverzaci",
"conversation.mark_as_read": "Označit jako přečtené",
"conversation.open": "Zobrazit konverzaci",
@ -293,6 +321,7 @@
"filter_modal.select_filter.subtitle": "Použít existující kategorii nebo vytvořit novou kategorii",
"filter_modal.select_filter.title": "Filtrovat tento příspěvek",
"filter_modal.title.status": "Filtrovat příspěvek",
"filter_warning.matches_filter": "Odpovídá filtru “<span>{title}</span>”",
"filtered_notifications_banner.title": "Filtrovaná oznámení",
"firehose.all": "Vše",
"firehose.local": "Tento server",
@ -323,6 +352,7 @@
"footer.privacy_policy": "Zásady ochrany osobních údajů",
"footer.source_code": "Zobrazit zdrojový kód",
"footer.status": "Stav",
"footer.terms_of_service": "Obchodní podmínky",
"generic.saved": "Uloženo",
"getting_started.heading": "Začínáme",
"hashtag.column_header.tag_mode.all": "a {additional}",
@ -340,6 +370,10 @@
"hashtag.follow": "Sledovat hashtag",
"hashtag.unfollow": "Přestat sledovat hashtag",
"hashtags.and_other": "…a {count, plural, one {# další} few {# další} other {# dalších}}",
"hints.profiles.see_more_followers": "Zobrazit více sledujících na {domain}",
"hints.profiles.see_more_follows": "Zobrazit další sledování na {domain}",
"hints.profiles.see_more_posts": "Zobrazit další příspěvky na {domain}",
"hints.threads.see_more": "Zobrazit další odpovědi na {domain}",
"home.column_settings.show_reblogs": "Zobrazit boosty",
"home.column_settings.show_replies": "Zobrazit odpovědi",
"home.hide_announcements": "Skrýt oznámení",
@ -347,12 +381,17 @@
"home.pending_critical_update.link": "Zobrazit aktualizace",
"home.pending_critical_update.title": "K dispozici je kritická bezpečnostní aktualizace!",
"home.show_announcements": "Zobrazit oznámení",
"ignore_notifications_modal.ignore": "Ignorovat oznámení",
"interaction_modal.go": "Přejít",
"interaction_modal.no_account_yet": "Ještě nemáte účet?",
"interaction_modal.on_another_server": "Na jiném serveru",
"interaction_modal.on_this_server": "Na tomto serveru",
"interaction_modal.title.favourite": "Oblíbit si příspěvek od uživatele {name}",
"interaction_modal.title.follow": "Sledovat {name}",
"interaction_modal.title.reblog": "Boostnout příspěvek uživatele {name}",
"interaction_modal.title.reply": "Odpovědět na příspěvek uživatele {name}",
"interaction_modal.title.vote": "Hlasujte v anketě {name}",
"interaction_modal.username_prompt": "např. {example}",
"intervals.full.days": "{number, plural, one {# den} few {# dny} many {# dní} other {# dní}}",
"intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodin} other {# hodin}}",
"intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minut} other {# minut}}",
@ -388,6 +427,7 @@
"keyboard_shortcuts.toggle_hidden": "Zobrazit/skrýt text za varováním o obsahu",
"keyboard_shortcuts.toggle_sensitivity": "Zobrazit/skrýt média",
"keyboard_shortcuts.toot": "Začít nový příspěvek",
"keyboard_shortcuts.translate": "k přeložení příspěvku",
"keyboard_shortcuts.unfocus": "Zrušit zaměření na nový příspěvek/hledání",
"keyboard_shortcuts.up": "Posunout v seznamu nahoru",
"lightbox.close": "Zavřít",
@ -398,13 +438,29 @@
"link_preview.author": "Podle {name}",
"link_preview.more_from_author": "Více od {name}",
"link_preview.shares": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} many {{counter} příspěvků} other {{counter} příspěvků}}",
"lists.add_member": "Přidat",
"lists.add_to_lists": "Přidat {name} do seznamů",
"lists.create": "Vytvořit",
"lists.create_list": "Vytvořit seznam",
"lists.delete": "Smazat seznam",
"lists.done": "Hotovo",
"lists.edit": "Upravit seznam",
"lists.find_users_to_add": "Najít uživatele, které chcete přidat",
"lists.list_members": "Členové seznamu",
"lists.list_name": "Název seznamu",
"lists.new_list_name": "Název nového seznamu",
"lists.no_lists_yet": "Zatím žádné seznamy.",
"lists.no_members_yet": "Zatím žádní členové.",
"lists.no_results_found": "Nebyly nalezeny žádné výsledky.",
"lists.remove_member": "Odstranit",
"lists.replies_policy.followed": "Sledovaným uživatelům",
"lists.replies_policy.list": "Členům seznamu",
"lists.replies_policy.none": "Nikomu",
"lists.save": "Uložit",
"lists.search": "Hledat",
"load_pending": "{count, plural, one {# nová položka} few {# nové položky} many {# nových položek} other {# nových položek}}",
"loading_indicator.label": "Načítání…",
"media_gallery.hide": "Skrýt",
"moved_to_account_banner.text": "Váš účet {disabledAccount} je momentálně deaktivován, protože jste se přesunul/a na {movedToAccount}.",
"mute_modal.hide_from_notifications": "Skrýt z notifikací",
"mute_modal.hide_options": "Skrýt možnosti",
@ -416,6 +472,7 @@
"mute_modal.you_wont_see_mentions": "Neuvidíte příspěvky, které je zmiňují.",
"mute_modal.you_wont_see_posts": "Stále budou moci vidět vaše příspěvky, ale vy jejich neuvidíte.",
"navigation_bar.about": "O aplikaci",
"navigation_bar.administration": "Administrace",
"navigation_bar.advanced_interface": "Otevřít pokročilé webové rozhraní",
"navigation_bar.blocks": "Blokovaní uživatelé",
"navigation_bar.bookmarks": "Záložky",
@ -432,6 +489,7 @@
"navigation_bar.follows_and_followers": "Sledovaní a sledující",
"navigation_bar.lists": "Seznamy",
"navigation_bar.logout": "Odhlásit se",
"navigation_bar.moderation": "Moderace",
"navigation_bar.mutes": "Skrytí uživatelé",
"navigation_bar.opened_in_classic_interface": "Příspěvky, účty a další specifické stránky jsou ve výchozím nastavení otevřeny v klasickém webovém rozhraní.",
"navigation_bar.personal": "Osobní",
@ -448,6 +506,11 @@
"notification.favourite": "Uživatel {name} si oblíbil váš příspěvek",
"notification.follow": "Uživatel {name} vás začal sledovat",
"notification.follow_request": "Uživatel {name} požádal o povolení vás sledovat",
"notification.label.mention": "Zmínka",
"notification.label.private_mention": "Soukromá zmínka",
"notification.label.reply": "Odpověď",
"notification.mention": "Zmínka",
"notification.mentioned_you": "{name} vás zmínil",
"notification.moderation-warning.learn_more": "Zjistit více",
"notification.moderation_warning": "Obdrželi jste moderační varování",
"notification.moderation_warning.action_delete_statuses": "Některé z vašich příspěvků byly odstraněny.",
@ -468,11 +531,15 @@
"notification.status": "Uživatel {name} právě přidal příspěvek",
"notification.update": "Uživatel {name} upravil příspěvek",
"notification_requests.accept": "Přijmout",
"notification_requests.confirm_accept_multiple.title": "Přijmout žádosti o oznámení?",
"notification_requests.dismiss": "Zamítnout",
"notification_requests.edit_selection": "Upravit",
"notification_requests.exit_selection": "Hotovo",
"notification_requests.maximize": "Maximalizovat",
"notification_requests.minimize_banner": "Minimalizovat banner filtrovaných oznámení",
"notification_requests.notifications_from": "Oznámení od {name}",
"notification_requests.title": "Vyfiltrovaná oznámení",
"notification_requests.view": "Zobrazit oznámení",
"notifications.clear": "Vyčistit oznámení",
"notifications.clear_confirmation": "Opravdu chcete trvale smazat všechna vaše oznámení?",
"notifications.clear_title": "Vyčistit oznámení?",
@ -484,6 +551,7 @@
"notifications.column_settings.filter_bar.category": "Panel rychlého filtrování",
"notifications.column_settings.follow": "Noví sledující:",
"notifications.column_settings.follow_request": "Nové žádosti o sledování:",
"notifications.column_settings.group": "Skupina",
"notifications.column_settings.mention": "Zmínky:",
"notifications.column_settings.poll": "Výsledky anket:",
"notifications.column_settings.push": "Push oznámení",
@ -507,6 +575,13 @@
"notifications.permission_denied": "Oznámení na ploše nejsou k dispozici, protože byla zamítnuta žádost o oprávnění je zobrazovat",
"notifications.permission_denied_alert": "Oznámení na ploše není možné zapnout, protože oprávnění bylo v minulosti zamítnuto",
"notifications.permission_required": "Oznámení na ploše nejsou k dispozici, protože nebylo uděleno potřebné oprávnění.",
"notifications.policy.accept": "Přijmout",
"notifications.policy.accept_hint": "Zobrazit v oznámeních",
"notifications.policy.drop": "Ignorovat",
"notifications.policy.filter": "Filtrovat",
"notifications.policy.filter_hint": "Odeslat do filtrované schránky oznámení",
"notifications.policy.filter_limited_accounts_hint": "Omezeno moderátory serveru",
"notifications.policy.filter_limited_accounts_title": "Moderované účty",
"notifications.policy.filter_new_accounts.hint": "Vytvořeno během {days, plural, one {včerejška} few {posledních # dnů} many {posledních # dní} other {posledních # dní}}",
"notifications.policy.filter_new_accounts_title": "Nové účty",
"notifications.policy.filter_not_followers_hint": "Včetně lidí, kteří vás sledovali méně než {days, plural, one {jeden den} few {# dny} many {# dní} other {# dní}}",
@ -515,10 +590,15 @@
"notifications.policy.filter_not_following_title": "Lidé, které nesledujete",
"notifications.policy.filter_private_mentions_hint": "Vyfiltrováno, pokud to není odpověď na vaši zmínku nebo pokud sledujete odesílatele",
"notifications.policy.filter_private_mentions_title": "Nevyžádané soukromé zmínky",
"notifications.policy.title": "Spravovat oznámení od…",
"notifications_permission_banner.enable": "Povolit oznámení na ploše",
"notifications_permission_banner.how_to_control": "Chcete-li dostávat oznámení, i když nemáte Mastodon otevřený, povolte oznámení na ploše. Můžete si zvolit, o kterých druzích interakcí chcete být oznámením na ploše informování pod tlačítkem {icon} výše.",
"notifications_permission_banner.title": "Nenechte si nic uniknout",
"onboarding.follows.back": "Zpět",
"onboarding.follows.done": "Hotovo",
"onboarding.follows.empty": "Bohužel, žádné výsledky nelze momentálně zobrazit. Můžete zkusit vyhledat nebo procházet stránku s průzkumem a najít lidi, kteří budou sledovat, nebo to zkuste znovu později.",
"onboarding.follows.search": "Hledat",
"onboarding.follows.title": "Sledujte lidi a začněte",
"onboarding.profile.discoverable": "Udělat svůj profil vyhledatelným",
"onboarding.profile.discoverable_hint": "Když se rozhodnete být vyhledatelný na Mastodonu, vaše příspěvky se mohou objevit ve výsledcích vyhledávání a v populárních, a váš profil může být navrhován lidem s podobnými zájmy.",
"onboarding.profile.display_name": "Zobrazované jméno",
@ -556,6 +636,8 @@
"privacy_policy.title": "Zásady ochrany osobních údajů",
"recommended": "Doporučeno",
"refresh": "Obnovit",
"regeneration_indicator.please_stand_by": "Počkej prosím.",
"regeneration_indicator.preparing_your_home_feed": "Připravujeme vaší domovskou stránku…",
"relative_time.days": "{number} d",
"relative_time.full.days": "před {number, plural, one {# dnem} few {# dny} many {# dny} other {# dny}}",
"relative_time.full.hours": "před {number, plural, one {# hodinou} few {# hodinami} many {# hodinami} other {# hodinami}}",
@ -639,8 +721,11 @@
"search_results.accounts": "Profily",
"search_results.all": "Vše",
"search_results.hashtags": "Hashtagy",
"search_results.no_results": "Nelze najít.",
"search_results.no_search_yet": "Zkuste vyhledat příspěvky, profily nebo hashtagy.",
"search_results.see_all": "Zobrazit vše",
"search_results.statuses": "Příspěvky",
"search_results.title": "Hledat \"{q}\"",
"server_banner.about_active_users": "Lidé používající tento server během posledních 30 dní (měsíční aktivní uživatelé)",
"server_banner.active_users": "aktivní uživatelé",
"server_banner.administered_by": "Spravováno:",
@ -658,6 +743,7 @@
"status.bookmark": "Přidat do záložek",
"status.cancel_reblog_private": "Zrušit boostnutí",
"status.cannot_reblog": "Tento příspěvek nemůže být boostnutý",
"status.continued_thread": "Pokračuje ve vlákně",
"status.copy": "Zkopírovat odkaz na příspěvek",
"status.delete": "Smazat",
"status.detailed_status": "Podrobné zobrazení konverzace",
@ -666,6 +752,7 @@
"status.edit": "Upravit",
"status.edited": "Naposledy upraveno {date}",
"status.edited_x_times": "Upraveno {count, plural, one {{count}krát} few {{count}krát} many {{count}krát} other {{count}krát}}",
"status.embed": "Získejte kód pro vložení",
"status.favourite": "Oblíbit",
"status.favourites": "{count, plural, one {oblíbený} few {oblíbené} many {oblíbených} other {oblíbených}}",
"status.filter": "Filtrovat tento příspěvek",
@ -690,6 +777,8 @@
"status.reblogs.empty": "Tento příspěvek ještě nikdo neboostnul. Pokud to někdo udělá, zobrazí se zde.",
"status.redraft": "Smazat a přepsat",
"status.remove_bookmark": "Odstranit ze záložek",
"status.remove_favourite": "Odebrat z oblíbených",
"status.replied_in_thread": "Odpověděli ve vlákně",
"status.replied_to": "Odpověděl/a uživateli {name}",
"status.reply": "Odpovědět",
"status.replyAll": "Odpovědět na vlákno",
@ -710,6 +799,7 @@
"subscribed_languages.target": "Změnit odebírané jazyky na {target}",
"tabs_bar.home": "Domů",
"tabs_bar.notifications": "Oznámení",
"terms_of_service.title": "Podmínky služby",
"time_remaining.days": "{number, plural, one {Zbývá # den} few {Zbývají # dny} many {Zbývá # dní} other {Zbývá # dní}}",
"time_remaining.hours": "{number, plural, one {Zbývá # hodina} few {Zbývají # hodiny} many {Zbývá # hodin} other {Zbývá # hodin}}",
"time_remaining.minutes": "{number, plural, one {Zbývá # minuta} few {Zbývají # minuty} many {Zbývá # minut} other {Zbývá # minut}}",
@ -727,6 +817,11 @@
"upload_error.poll": "Nahrávání souborů není povoleno s anketami.",
"upload_form.audio_description": "Popis pro sluchově postižené",
"upload_form.description": "Popis pro zrakově postižené",
"upload_form.drag_and_drop.instructions": "Chcete-li zvednout přílohu, stiskněte mezerník nebo enter. Při přetažení použijte klávesnicové šipky k přesunutí mediální přílohy v libovolném směru. Stiskněte mezerník nebo enter pro vložení přílohy do nové pozice, nebo stiskněte Esc pro ukončení.",
"upload_form.drag_and_drop.on_drag_cancel": "Přetažení bylo zrušeno. Příloha {item} byla vrácena.",
"upload_form.drag_and_drop.on_drag_end": "Příloha {item} byla vrácena.",
"upload_form.drag_and_drop.on_drag_over": "Příloha {item} byla přesunuta.",
"upload_form.drag_and_drop.on_drag_start": "Zvednuta příloha {item}.",
"upload_form.edit": "Upravit",
"upload_form.thumbnail": "Změnit miniaturu",
"upload_form.video_description": "Popis pro sluchově či zrakově postižené",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "Vis/skjul tekst bag CW",
"keyboard_shortcuts.toggle_sensitivity": "Vis/skjul medier",
"keyboard_shortcuts.toot": "Påbegynd nyt indlæg",
"keyboard_shortcuts.translate": "for at oversætte et indlæg",
"keyboard_shortcuts.unfocus": "Fjern fokus fra tekstskrivningsområde/søgning",
"keyboard_shortcuts.up": "Flyt opad på listen",
"lightbox.close": "Luk",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "Beitragstext hinter der Inhaltswarnung anzeigen/ausblenden",
"keyboard_shortcuts.toggle_sensitivity": "Medien anzeigen/ausblenden",
"keyboard_shortcuts.toot": "Neuen Beitrag erstellen",
"keyboard_shortcuts.translate": "Beitrag übersetzen",
"keyboard_shortcuts.unfocus": "Eingabefeld/Suche nicht mehr fokussieren",
"keyboard_shortcuts.up": "Ansicht nach oben bewegen",
"lightbox.close": "Schließen",

View File

@ -863,7 +863,7 @@
"time_remaining.minutes": "απομένουν {number, plural, one {# λεπτό} other {# λεπτά}}",
"time_remaining.moments": "Στιγμές που απομένουν",
"time_remaining.seconds": "απομένουν {number, plural, one {# δευτερόλεπτο} other {# δευτερόλεπτα}}",
"trends.counter_by_accounts": "{count, plural, one {{counter} άτομο} other {{counter} άτομα} }{days, plural, one { την τελευταία ημέρα} other { τις τελευταίες {days} ημέρες}}",
"trends.counter_by_accounts": "{count, plural, one {{counter} άτομο} other {{counter} άτομα}} {days, plural, one {την τελευταία ημέρα} other {τις τελευταίες {days} ημέρες}}",
"trends.trending_now": "Δημοφιλή τώρα",
"ui.beforeunload": "Το προσχέδιό σου θα χαθεί αν φύγεις από το Mastodon.",
"units.short.billion": "{count}Δις",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "Montri/kaŝi tekston malantaŭ CW",
"keyboard_shortcuts.toggle_sensitivity": "Montri/kaŝi plurmedion",
"keyboard_shortcuts.toot": "Komencu novan afiŝon",
"keyboard_shortcuts.translate": "Traduki afiŝon",
"keyboard_shortcuts.unfocus": "Senfokusigi verki tekstareon/serĉon",
"keyboard_shortcuts.up": "Movu supren en la listo",
"lightbox.close": "Fermi",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "Mostrar/ocultar texto detrás de la advertencia de contenido (\"CW\")",
"keyboard_shortcuts.toggle_sensitivity": "Mostrar/ocultar medios",
"keyboard_shortcuts.toot": "Comenzar un mensaje nuevo",
"keyboard_shortcuts.translate": "para traducir un mensaje",
"keyboard_shortcuts.unfocus": "Quitar el foco del área de texto de redacción o de búsqueda",
"keyboard_shortcuts.up": "Subir en la lista",
"lightbox.close": "Cerrar",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "mostrar/ocultar texto tras aviso de contenido (CW)",
"keyboard_shortcuts.toggle_sensitivity": "mostrar/ocultar medios",
"keyboard_shortcuts.toot": "Comenzar una nueva publicación",
"keyboard_shortcuts.translate": "para traducir una publicación",
"keyboard_shortcuts.unfocus": "para retirar el foco de la caja de redacción/búsqueda",
"keyboard_shortcuts.up": "para ir hacia arriba en la lista",
"lightbox.close": "Cerrar",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "mostrar/ocultar texto tras aviso de contenido (CW)",
"keyboard_shortcuts.toggle_sensitivity": "mostrar/ocultar medios",
"keyboard_shortcuts.toot": "Comienza una nueva publicación",
"keyboard_shortcuts.translate": "para traducir una publicación",
"keyboard_shortcuts.unfocus": "para retirar el foco de la caja de redacción/búsqueda",
"keyboard_shortcuts.up": "para ir hacia arriba en la lista",
"lightbox.close": "Cerrar",

View File

@ -104,6 +104,7 @@
"annual_report.summary.most_used_hashtag.none": "Ei mitään",
"annual_report.summary.new_posts.new_posts": "uutta julkaisua",
"annual_report.summary.percentile.text": "<topLabel>Olet osa huippujoukkoa, johon kuuluu</topLabel><percentage></percentage><bottomLabel>{domain}-käyttäjistä.</bottomLabel>",
"annual_report.summary.percentile.we_wont_tell_bernie": "Emme kerro Bernie Sandersille.",
"annual_report.summary.thanks": "Kiitos, että olet osa Mastodonia!",
"attachments_list.unprocessed": "(käsittelemätön)",
"audio.hide": "Piilota ääni",
@ -456,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "Näytä tai piilota sisältövaroituksella merkitty teksti",
"keyboard_shortcuts.toggle_sensitivity": "Näytä tai piilota media",
"keyboard_shortcuts.toot": "Luo uusi julkaisu",
"keyboard_shortcuts.translate": "Käännä julkaisu",
"keyboard_shortcuts.unfocus": "Poistu kirjoitus- tai hakukentästä",
"keyboard_shortcuts.up": "Siirry luettelossa taaksepäin",
"lightbox.close": "Sulje",

View File

@ -34,7 +34,9 @@
"account.follow_back": "Sundan pabalik",
"account.followers": "Mga tagasunod",
"account.followers.empty": "Wala pang sumusunod sa tagagamit na ito.",
"account.followers_counter": "{count, plural, one {{counter} tagasunod} other {{counter} tagasunod}}",
"account.following": "Sinusundan",
"account.following_counter": "{count, plural, one {{counter} sinusundan} other {{counter} sinusundan}}",
"account.follows.empty": "Wala pang sinusundan ang tagagamit na ito.",
"account.go_to_profile": "Pumunta sa profile",
"account.hide_reblogs": "Itago ang mga pagpapalakas mula sa {name}",
@ -46,14 +48,21 @@
"account.media": "Medya",
"account.mention": "Banggitin si @{name}",
"account.moved_to": "Ipinahihiwatig ni {name} na ang kanilang bagong account ngayon ay:",
"account.mute": "I-mute si @{name}",
"account.mute_notifications_short": "I-mute ang mga abiso",
"account.mute_short": "I-mute",
"account.muted": "Naka-mute",
"account.mutual": "Ka-mutual",
"account.no_bio": "Walang nakalaan na paglalarawan.",
"account.open_original_page": "Buksan ang pinagmulang pahina",
"account.posts": "Mga post",
"account.report": "I-ulat si/ang @{name}",
"account.requested": "Naghihintay ng pag-apruba. I-click upang ikansela ang hiling sa pagsunod",
"account.requested_follow": "Hinihiling ni {name} na sundan ka",
"account.share": "Ibahagi ang profile ni @{name}",
"account.show_reblogs": "Ipakita ang mga pagpapalakas mula sa/kay {name}",
"account.unendorse": "Huwag itampok sa profile",
"account.unfollow": "Huwag nang sundan",
"admin.dashboard.retention.cohort_size": "Mga bagong tagagamit",
"alert.rate_limited.message": "Mangyaring subukan muli pagkatapos ng {retry_time, time, medium}.",
"audio.hide": "Itago ang tunog",
@ -355,6 +364,7 @@
"status.more": "Higit pa",
"status.read_more": "Basahin ang higit pa",
"status.reblogs.empty": "Wala pang nagpalakas ng post na ito. Kung may sinumang nagpalakas, makikita sila rito.",
"status.remove_favourite": "Tanggalin sa mga paborito",
"status.reply": "Tumugon",
"status.report": "I-ulat si/ang @{name}",
"status.sensitive_warning": "Sensitibong nilalaman",

View File

@ -456,6 +456,7 @@
"keyboard_shortcuts.toggle_hidden": "Vís/fjal tekst handan CW",
"keyboard_shortcuts.toggle_sensitivity": "Vís ella fjal innihald",
"keyboard_shortcuts.toot": "Byrja nýggjan post",
"keyboard_shortcuts.translate": "at umseta ein post",
"keyboard_shortcuts.unfocus": "Tak skrivi-/leiti-økið úr miðdeplinum",
"keyboard_shortcuts.up": "Flyt upp á listanum",
"lightbox.close": "Lat aftur",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "Déplier/replier texte derrière avertissement",
"keyboard_shortcuts.toggle_sensitivity": "Afficher/cacher médias",
"keyboard_shortcuts.toot": "Commencer un nouveau message",
"keyboard_shortcuts.translate": "traduire un message",
"keyboard_shortcuts.unfocus": "Ne plus se concentrer sur la zone de rédaction/barre de recherche",
"keyboard_shortcuts.up": "Monter dans la liste",
"lightbox.close": "Fermer",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "Déplier/replier le texte derrière un CW",
"keyboard_shortcuts.toggle_sensitivity": "Afficher/cacher les médias",
"keyboard_shortcuts.toot": "Commencer un nouveau message",
"keyboard_shortcuts.translate": "traduire un message",
"keyboard_shortcuts.unfocus": "Quitter la zone de rédaction/barre de recherche",
"keyboard_shortcuts.up": "Monter dans la liste",
"lightbox.close": "Fermer",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "Para mostrar o texto tras Aviso de Contido (CW)",
"keyboard_shortcuts.toggle_sensitivity": "Para amosar/agochar contido multimedia",
"keyboard_shortcuts.toot": "Para escribir unha nova publicación",
"keyboard_shortcuts.translate": "para traducir unha publicación",
"keyboard_shortcuts.unfocus": "Para deixar de destacar a área de escritura/procura",
"keyboard_shortcuts.up": "Para mover cara arriba na listaxe",
"lightbox.close": "Fechar",
@ -836,6 +837,7 @@
"status.reblogs.empty": "Aínda ninguén promoveu esta publicación. Cando alguén o faga, amosarase aquí.",
"status.redraft": "Eliminar e reescribir",
"status.remove_bookmark": "Eliminar marcador",
"status.remove_favourite": "Retirar das favoritas",
"status.replied_in_thread": "Respondeu nun fío",
"status.replied_to": "Respondeu a {name}",
"status.reply": "Responder",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "הצגת/הסתרת טקסט מוסתר מאחורי אזהרת תוכן",
"keyboard_shortcuts.toggle_sensitivity": "הצגת/הסתרת מדיה",
"keyboard_shortcuts.toot": "להתחיל חיצרוץ חדש",
"keyboard_shortcuts.translate": "לתרגם הודעה",
"keyboard_shortcuts.unfocus": "לצאת מתיבת חיבור/חיפוש",
"keyboard_shortcuts.up": "לנוע במעלה הרשימה",
"lightbox.close": "סגירה",
@ -836,6 +837,7 @@
"status.reblogs.empty": "עוד לא הידהדו את ההודעה הזו. כאשר זה יקרה, ההדהודים יופיעו כאן.",
"status.redraft": "מחיקה ועריכה מחדש",
"status.remove_bookmark": "הסרת סימניה",
"status.remove_favourite": "להסיר מרשימת המועדפים",
"status.replied_in_thread": "תגובה לשרשור",
"status.replied_to": "בתגובה לחשבון {name}",
"status.reply": "תגובה",

View File

@ -440,7 +440,7 @@
"keyboard_shortcuts.heading": "Gyorsbillentyűk",
"keyboard_shortcuts.home": "Saját idővonal megnyitása",
"keyboard_shortcuts.hotkey": "Gyorsbillentyű",
"keyboard_shortcuts.legend": "jelmagyarázat megjelenítése",
"keyboard_shortcuts.legend": "Jelmagyarázat megjelenítése",
"keyboard_shortcuts.local": "Helyi idővonal megnyitása",
"keyboard_shortcuts.mention": "Szerző megemlítése",
"keyboard_shortcuts.muted": "Némított felhasználók listájának megnyitása",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "Birta/fela texta á bak við aðvörun vegna efnis",
"keyboard_shortcuts.toggle_sensitivity": "Birta/fela myndir",
"keyboard_shortcuts.toot": "Byrja nýja færslu",
"keyboard_shortcuts.translate": "að þýða færslu",
"keyboard_shortcuts.unfocus": "Taka virkni úr textainnsetningarreit eða leit",
"keyboard_shortcuts.up": "Fara ofar í listanum",
"lightbox.close": "Loka",
@ -836,6 +837,7 @@
"status.reblogs.empty": "Enginn hefur ennþá endurbirt þessa færslu. Þegar einhver gerir það, mun það birtast hér.",
"status.redraft": "Eyða og endurvinna drög",
"status.remove_bookmark": "Fjarlægja bókamerki",
"status.remove_favourite": "Fjarlægja úr eftirlætum",
"status.replied_in_thread": "Svaraði í samtali",
"status.replied_to": "Svaraði til {name}",
"status.reply": "Svara",

View File

@ -449,6 +449,7 @@
"keyboard_shortcuts.toggle_hidden": "CW로 가려진 텍스트를 표시/비표시",
"keyboard_shortcuts.toggle_sensitivity": "미디어 보이기/숨기기",
"keyboard_shortcuts.toot": "새 게시물 작성",
"keyboard_shortcuts.translate": "게시물 번역",
"keyboard_shortcuts.unfocus": "작성창에서 포커스 해제",
"keyboard_shortcuts.up": "리스트에서 위로 이동",
"lightbox.close": "닫기",

View File

@ -1,14 +1,25 @@
{
"about.blocks": "Servī moderātī",
"about.contact": "Ratio:",
"about.disclaimer": "Mastodon est software līberum, apertum fontem, et nōtam commercium Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Ratio abdere est",
"about.domain_blocks.preamble": "Mastodon genērāliter sinit tē contentum ex aliīs servientibus in fedīversō vidēre et cum usoribus ab iīs interāgere. Haē sunt exceptionēs quae in hōc particulārī servientē factae sunt.",
"about.domain_blocks.silenced.explanation": "Tua profilia atque tuum contentum ab hac serve praecipue non videbis, nisi explōrēs expresse aut subsequeris et optēs.",
"about.domain_blocks.silenced.title": "Limitātus",
"about.domain_blocks.suspended.explanation": "Nulla data ab hōc servientē processābuntur, servābuntur aut commūtābuntur, faciendumque omnem interactionem aut communicātiōnem cum usoribus ab hōc servientē impossibilem.",
"about.domain_blocks.suspended.title": "suspensus",
"about.not_available": "Haec informātiō in hōc servientē nōn praebita est.",
"about.powered_by": "Nuntii socīālēs decentralizātī ā {mastodon} sustentātī.",
"about.rules": "Servo praecepta",
"account.account_note_header": "Nota personalia",
"account.add_or_remove_from_list": "Adde aut ēripe ex tabellīs",
"account.badges.bot": "Robotum",
"account.badges.group": "Congregatio",
"account.block": "Impedire @{name}",
"account.block_domain": "Imperire dominium {domain}",
"account.block_short": "Imperire",
"account.blocked": "Impeditum est",
"account.cancel_follow_request": "Withdraw follow request",
"account.cancel_follow_request": "Petitio sequī retrāhere",
"account.domain_blocked": "Dominium impeditum",
"account.edit_profile": "Recolere notionem",
"account.featured_tags.last_status_never": "Nulla contributa",
@ -105,30 +116,30 @@
"keyboard_shortcuts.compose": "TextArea Compositi Attendere",
"keyboard_shortcuts.description": "Descriptio",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "to move down in the list",
"keyboard_shortcuts.down": "In īndice dēscend",
"keyboard_shortcuts.enter": "Aperire contributum",
"keyboard_shortcuts.federated": "to open federated timeline",
"keyboard_shortcuts.federated": "Aperī chrōnologiam foederātam",
"keyboard_shortcuts.heading": "Keyboard Shortcuts",
"keyboard_shortcuts.home": "to open home timeline",
"keyboard_shortcuts.legend": "to display this legend",
"keyboard_shortcuts.local": "to open local timeline",
"keyboard_shortcuts.mention": "to mention author",
"keyboard_shortcuts.muted": "to open muted users list",
"keyboard_shortcuts.my_profile": "to open your profile",
"keyboard_shortcuts.notifications": "to open notifications column",
"keyboard_shortcuts.open_media": "to open media",
"keyboard_shortcuts.pinned": "to open pinned posts list",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.home": "Aperī chrōnologiam domesticam",
"keyboard_shortcuts.legend": "Hanc legendam ostende",
"keyboard_shortcuts.local": "Aperī chrōnologiam locālem",
"keyboard_shortcuts.mention": "Memēntō auctōris",
"keyboard_shortcuts.muted": "Aperī indicem ūtentium silentiōrum",
"keyboard_shortcuts.my_profile": "Aperī prōfilum tuum",
"keyboard_shortcuts.notifications": "Aperī columnam nūntiātiōnum",
"keyboard_shortcuts.open_media": "Aperi media",
"keyboard_shortcuts.pinned": "Aperī indicem nūntiōrum affixōrum",
"keyboard_shortcuts.profile": "Aperi auctoris profile",
"keyboard_shortcuts.reply": "Respondere ad contributum",
"keyboard_shortcuts.requests": "to open follow requests list",
"keyboard_shortcuts.search": "to focus search",
"keyboard_shortcuts.spoilers": "to show/hide CW field",
"keyboard_shortcuts.start": "to open \"get started\" column",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
"keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
"keyboard_shortcuts.toot": "to start a brand new post",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"keyboard_shortcuts.requests": "Aperī indicem petītiōnum sequendī",
"keyboard_shortcuts.search": "Fōcum in tabellam quaerendī",
"keyboard_shortcuts.spoilers": "Ostende / celare CW agri",
"keyboard_shortcuts.start": "Aperī columnam 'īncipere'",
"keyboard_shortcuts.toggle_hidden": "Monstrare / celare textum post CW",
"keyboard_shortcuts.toggle_sensitivity": "Ostende / celare media",
"keyboard_shortcuts.toot": "Incipe nōvum nūntium.",
"keyboard_shortcuts.unfocus": "Desinēre fōcum in ārēā componendī/inquīrendī",
"keyboard_shortcuts.up": "Sumē sūrsum in īndice",
"lightbox.close": "Claudere",
"lightbox.next": "Secundum",
"load_pending": "{count, plural, one {# novum item} other {# nova itema}}",
@ -142,7 +153,7 @@
"notification.favourite": "{name} nuntium tuum favit",
"notification.follow": "{name} te secutus est",
"notification.follow_request": "{name} postulavit ut te sequeretur",
"notification.moderation_warning": "Accepistī monitionem moderationis.",
"notification.moderation_warning": "Accepistī monitionem moderationis",
"notification.moderation_warning.action_disable": "Ratio tua debilitata est.",
"notification.moderation_warning.action_none": "Tua ratiō monitum moderātiōnis accēpit.",
"notification.moderation_warning.action_sensitive": "Tua nuntia hinc sensibiliter notabuntur.",
@ -160,7 +171,7 @@
"notification_requests.confirm_dismiss_multiple.message": "Tu {count, plural, one {unam petitionem notificationis} other {# petitiones notificationum}} abrogāre prōximum es. {count, plural, one {Illa} other {Eae}} facile accessū nōn erit. Certus es tē procedere velle?",
"notifications.filter.all": "Omnia",
"notifications.filter.polls": "Eventus electionis",
"notifications.group": "Notificātiōnēs",
"notifications.group": "{count} Notificātiōnēs",
"onboarding.profile.display_name_hint": "Tuum nomen completum aut tuum nomen ludens…",
"onboarding.profile.note_hint": "Alios hominēs vel #hashtags @nōmināre potes…",
"poll.closed": "Clausum",
@ -191,7 +202,7 @@
"report.mute_explanation": "Non videbis eōrum nuntiōs. Possunt adhuc tē sequī et tuōs nuntiōs vidēre, nec sciēbunt sē tacitōs esse.",
"report.next": "Secundum",
"report.placeholder": "Commentāriī adiūnctī",
"report.reasons.legal_description": "Putās id legem tuae aut servientis patriae violāre.",
"report.reasons.legal_description": "Putās id legem tuae aut servientis patriae violāre",
"report.reasons.violation_description": "Scis quod certa praecepta frangit",
"report.submit": "Mittere",
"report.target": "Report {target}",
@ -200,7 +211,7 @@
"report_notification.categories.other": "Altera",
"search.placeholder": "Quaerere",
"search_results.all": "Omnis",
"server_banner.active_users": "Usūrāriī āctīvī",
"server_banner.active_users": "usūāriī āctīvī",
"server_banner.administered_by": "Administratur:",
"server_banner.is_one_of_many": "{domain} est unum ex multis independentibus servientibus Mastodon quos adhibere potes ut participes in fediverso.",
"sign_in_banner.sign_in": "Sign in",
@ -210,7 +221,7 @@
"status.copy": "Copy link to status",
"status.delete": "Oblitterare",
"status.edit": "Recolere",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
"status.edited_x_times": "Emendatum est {count, plural, one {{count} tempus} other {{count} tempora}}",
"status.favourites": "{count, plural, one {favoritum} other {favorita}}",
"status.history.created": "{name} creatum {date}",
"status.history.edited": "{name} correxit {date}",

View File

@ -453,6 +453,7 @@
"keyboard_shortcuts.toggle_hidden": "Rodyti / slėpti tekstą po TĮ",
"keyboard_shortcuts.toggle_sensitivity": "Rodyti / slėpti mediją",
"keyboard_shortcuts.toot": "Pradėti naują įrašą",
"keyboard_shortcuts.translate": "išversti įrašą",
"keyboard_shortcuts.unfocus": "Nebefokusuoti rengykles teksto sritį / paiešką",
"keyboard_shortcuts.up": "Perkelti į viršų sąraše",
"lightbox.close": "Uždaryti",

View File

@ -86,6 +86,7 @@
"alert.unexpected.message": "Radās negaidīta kļūda.",
"alert.unexpected.title": "Ups!",
"announcement.announcement": "Paziņojums",
"annual_report.summary.archetype.oracle": "Orākuls",
"annual_report.summary.archetype.replier": "Sabiedriskais tauriņš",
"annual_report.summary.followers.followers": "sekotāji",
"annual_report.summary.followers.total": "pavisam {count}",
@ -401,13 +402,20 @@
"lightbox.previous": "Iepriekšējais",
"limited_account_hint.action": "Tik un tā rādīt profilu",
"limited_account_hint.title": "{domain} moderatori ir paslēpuši šo profilu.",
"link_preview.author": "Pēc {name}",
"link_preview.author": "No {name}",
"link_preview.more_from_author": "Vairāk no {name}",
"lists.add_member": "Pievienot",
"lists.add_to_list": "Pievienot sarakstam",
"lists.create": "Izveidot",
"lists.create_list": "Izveidot sarakstu",
"lists.delete": "Izdzēst sarakstu",
"lists.done": "Gatavs",
"lists.edit": "Labot sarakstu",
"lists.remove_member": "Noņemt",
"lists.replies_policy.followed": "Jebkuram sekotajam lietotājam",
"lists.replies_policy.list": "Saraksta dalībniekiem",
"lists.replies_policy.none": "Nevienam",
"lists.save": "Saglabāt",
"load_pending": "{count, plural, zero{# jaunu vienumu} one {# jauns vienums} other {# jauni vienumi}}",
"loading_indicator.label": "Ielādē…",
"media_gallery.hide": "Paslēpt",
@ -466,6 +474,8 @@
"notification.update": "{name} laboja ierakstu",
"notification_requests.accept": "Pieņemt",
"notification_requests.dismiss": "Noraidīt",
"notification_requests.edit_selection": "Labot",
"notification_requests.exit_selection": "Gatavs",
"notification_requests.notifications_from": "Paziņojumi no {name}",
"notification_requests.title": "Atlasītie paziņojumi",
"notifications.clear": "Notīrīt paziņojumus",
@ -501,6 +511,7 @@
"notifications.permission_denied": "Darbvirsmas paziņojumi nav pieejami, jo iepriekš tika noraidīts pārlūka atļauju pieprasījums",
"notifications.permission_denied_alert": "Darbvirsmas paziņojumus nevar iespējot, jo pārlūkprogrammai atļauja tika iepriekš atteikta",
"notifications.permission_required": "Darbvirsmas paziņojumi nav pieejami, jo nav piešķirta nepieciešamā atļauja.",
"notifications.policy.accept": "Pieņemt",
"notifications.policy.filter_new_accounts_title": "Jauni konti",
"notifications.policy.filter_not_followers_title": "Cilvēki, kuri Tev neseko",
"notifications.policy.filter_not_following_hint": "Līdz tos pašrocīgi apstiprināsi",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "Inhoudswaarschuwing tonen/verbergen",
"keyboard_shortcuts.toggle_sensitivity": "Media tonen/verbergen",
"keyboard_shortcuts.toot": "Nieuw bericht schrijven",
"keyboard_shortcuts.translate": "om een bericht te vertalen",
"keyboard_shortcuts.unfocus": "Tekst- en zoekveld ontfocussen",
"keyboard_shortcuts.up": "Naar boven in de lijst bewegen",
"lightbox.close": "Sluiten",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "Vis/gøym tekst bak innhaldsvarsel",
"keyboard_shortcuts.toggle_sensitivity": "Vis/gøym media",
"keyboard_shortcuts.toot": "Lag nytt tut",
"keyboard_shortcuts.translate": "å omsetje eit innlegg",
"keyboard_shortcuts.unfocus": "for å fokusere vekk skrive-/søkefeltet",
"keyboard_shortcuts.up": "Flytt opp på lista",
"lightbox.close": "Lukk",

View File

@ -236,6 +236,7 @@
"domain_block_modal.they_cant_follow": "Nikto z tohoto servera ťa nemôže nasledovať.",
"domain_block_modal.they_wont_know": "Nebude vedieť, že bol/a zablokovaný/á.",
"domain_block_modal.title": "Blokovať doménu?",
"domain_block_modal.you_will_lose_relationships": "Stratíš všetkých sledovateľov a ľudí, ktorých ty na tomto serveri nasleduješ.",
"domain_block_modal.you_wont_see_posts": "Neuvidíš príspevky, ani oboznámenia od užívateľov na tomto serveri.",
"domain_pill.activitypub_like_language": "ActivityPub je ako jazyk, ktorým Mastodon hovorí s ostatnými sociálnymi sieťami.",
"domain_pill.server": "Server",
@ -379,6 +380,7 @@
"ignore_notifications_modal.private_mentions_title": "Nevšímať si oznámenia o nevyžiadaných súkromných spomínaniach?",
"interaction_modal.action.reply": "Pre pokračovanie musíš odpovedať s tvojho účtu.",
"interaction_modal.action.vote": "Pre pokračovanie musíš hlasovať s tvojho účtu.",
"interaction_modal.go": "Prejdi",
"interaction_modal.no_account_yet": "Ešte nemáš účet?",
"interaction_modal.on_another_server": "Na inom serveri",
"interaction_modal.on_this_server": "Na tomto serveri",
@ -422,6 +424,7 @@
"keyboard_shortcuts.toggle_hidden": "Zobraziť/skryť text za varovaním o obsahu",
"keyboard_shortcuts.toggle_sensitivity": "Zobraziť/skryť médiá",
"keyboard_shortcuts.toot": "Vytvoriť nový príspevok",
"keyboard_shortcuts.translate": "preložiť príspevok",
"keyboard_shortcuts.unfocus": "Odísť z textového poľa",
"keyboard_shortcuts.up": "Posunúť sa vyššie v zozname",
"lightbox.close": "Zatvoriť",

View File

@ -452,6 +452,7 @@
"keyboard_shortcuts.toggle_hidden": "Për shfaqje/fshehje teksti pas CW",
"keyboard_shortcuts.toggle_sensitivity": "Për shfaqje/fshehje mediash",
"keyboard_shortcuts.toot": "Për të filluar një mesazh të ri",
"keyboard_shortcuts.translate": "për të përkthyer një postim",
"keyboard_shortcuts.unfocus": "Për heqjen e fokusit nga fusha e hartimit të mesazheve apo kërkimeve",
"keyboard_shortcuts.up": "Për ngjitje sipër nëpër listë",
"lightbox.close": "Mbylle",

View File

@ -400,6 +400,13 @@
"ignore_notifications_modal.not_followers_title": "เพิกเฉยการแจ้งเตือนจากผู้คนที่ไม่ได้ติดตามคุณ?",
"ignore_notifications_modal.not_following_title": "เพิกเฉยการแจ้งเตือนจากผู้คนที่คุณไม่ได้ติดตาม?",
"ignore_notifications_modal.private_mentions_title": "เพิกเฉยการแจ้งเตือนจากการกล่าวถึงแบบส่วนตัวที่ไม่พึงประสงค์?",
"interaction_modal.action.favourite": "เพื่อดำเนินการต่อ คุณจำเป็นต้องชื่นชอบจากบัญชีของคุณ",
"interaction_modal.action.follow": "เพื่อดำเนินการต่อ คุณจำเป็นต้องติดตามจากบัญชีของคุณ",
"interaction_modal.action.reblog": "เพื่อดำเนินการต่อ คุณจำเป็นต้องดันจากบัญชีของคุณ",
"interaction_modal.action.reply": "เพื่อดำเนินการต่อ คุณจำเป็นต้องตอบกลับจากบัญชีของคุณ",
"interaction_modal.action.vote": "เพื่อดำเนินการต่อ คุณจำเป็นต้องลงคะแนนจากบัญชีของคุณ",
"interaction_modal.go": "ไป",
"interaction_modal.no_account_yet": "ยังไม่มีบัญชี?",
"interaction_modal.on_another_server": "ในเซิร์ฟเวอร์อื่น",
"interaction_modal.on_this_server": "ในเซิร์ฟเวอร์นี้",
"interaction_modal.title.favourite": "ชื่นชอบโพสต์ของ {name}",
@ -407,6 +414,7 @@
"interaction_modal.title.reblog": "ดันโพสต์ของ {name}",
"interaction_modal.title.reply": "ตอบกลับโพสต์ของ {name}",
"interaction_modal.title.vote": "ลงคะแนนในการสำรวจความคิดเห็นของ {name}",
"interaction_modal.username_prompt": "เช่น {example}",
"intervals.full.days": "{number, plural, other {# วัน}}",
"intervals.full.hours": "{number, plural, other {# ชั่วโมง}}",
"intervals.full.minutes": "{number, plural, other {# นาที}}",
@ -442,6 +450,7 @@
"keyboard_shortcuts.toggle_hidden": "แสดง/ซ่อนข้อความที่อยู่หลังคำเตือนเนื้อหา",
"keyboard_shortcuts.toggle_sensitivity": "แสดง/ซ่อนสื่อ",
"keyboard_shortcuts.toot": "เริ่มโพสต์ใหม่",
"keyboard_shortcuts.translate": "เพื่อแปลโพสต์",
"keyboard_shortcuts.unfocus": "เลิกโฟกัสพื้นที่เขียนข้อความ/การค้นหา",
"keyboard_shortcuts.up": "ย้ายขึ้นในรายการ",
"lightbox.close": "ปิด",
@ -679,6 +688,8 @@
"privacy_policy.title": "นโยบายความเป็นส่วนตัว",
"recommended": "แนะนำ",
"refresh": "รีเฟรช",
"regeneration_indicator.please_stand_by": "โปรดรอสักครู่",
"regeneration_indicator.preparing_your_home_feed": "กำลังเตรียมฟีดหน้าแรกของคุณ…",
"relative_time.days": "{number} วัน",
"relative_time.full.days": "{number, plural, other {# วัน}}ที่แล้ว",
"relative_time.full.hours": "{number, plural, other {# ชั่วโมง}}ที่แล้ว",
@ -817,6 +828,7 @@
"status.reblogs.empty": "ยังไม่มีใครดันโพสต์นี้ เมื่อใครสักคนดัน เขาจะปรากฏที่นี่",
"status.redraft": "ลบแล้วร่างใหม่",
"status.remove_bookmark": "เอาที่คั่นหน้าออก",
"status.remove_favourite": "เอาออกจากรายการโปรด",
"status.replied_in_thread": "ตอบกลับในกระทู้",
"status.replied_to": "ตอบกลับ {name}",
"status.reply": "ตอบกลับ",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "CW'den önceki yazıyı göstermek/gizlemek için",
"keyboard_shortcuts.toggle_sensitivity": "Medyayı göstermek/gizlemek için",
"keyboard_shortcuts.toot": "Yeni bir gönderi başlat",
"keyboard_shortcuts.translate": "bir gönderiyi çevirmek için",
"keyboard_shortcuts.unfocus": "Aramada bir gönderiye odaklanmamak için",
"keyboard_shortcuts.up": "Listede yukarıya çıkmak için",
"lightbox.close": "Kapat",

View File

@ -103,6 +103,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "найчастіший хештег",
"annual_report.summary.most_used_hashtag.none": "Немає",
"annual_report.summary.new_posts.new_posts": "нові дописи",
"annual_report.summary.percentile.text": "<topLabel>Це виводить вас у топ</topLabel><percentage></percentage><bottomLabel> користувачів Mastodon.</bottomLabel>",
"annual_report.summary.percentile.we_wont_tell_bernie": "Ми не скажемо Bernie.",
"annual_report.summary.thanks": "Дякуємо, що ви є частиною Mastodon!",
"attachments_list.unprocessed": "(не оброблено)",
@ -148,6 +149,7 @@
"column.firehose": "Стрічка новин",
"column.follow_requests": "Запити на підписку",
"column.home": "Головна",
"column.list_members": "Керувати учасниками списку",
"column.lists": "Списки",
"column.mutes": "Приховані користувачі",
"column.notifications": "Сповіщення",
@ -237,6 +239,10 @@
"disabled_account_banner.text": "Ваш обліковий запис {disabledAccount} наразі вимкнений.",
"dismissable_banner.community_timeline": "Це останні публічні дописи від людей, чиї облікові записи розміщені на {domain}.",
"dismissable_banner.dismiss": "Відхилити",
"dismissable_banner.explore_links": "Ці новини сьогодні найбільше поширюють у fediverse. Свіжіші новини, опубліковані більшою кількістю різних людей, оцінюються вище.",
"dismissable_banner.explore_statuses": "Ці дописи з усього fediverse сьогодні набирають популярності. Новіші дописи з більшою кількістю посилень і додавань у вибрані мають вищий рейтинг.",
"dismissable_banner.explore_tags": "Ці гештеґи сьогодні набувають популярності у fediverse. Гештеґи, якими користується більше людей, займають вищі позиції.",
"dismissable_banner.public_timeline": "Це найновіші загальнодоступні дописи від людей у федіверсі, на яких підписані люди в {domain}.",
"domain_block_modal.block": "Блокувати сервер",
"domain_block_modal.block_account_instead": "Блокувати @{name} натомість",
"domain_block_modal.they_can_interact_with_old_posts": "Люди з цього сервера можуть взаємодіяти зі своїми старими дописами.",
@ -325,7 +331,7 @@
"filter_modal.select_filter.title": "Фільтрувати цей допис",
"filter_modal.title.status": "Фільтрувати допис",
"filter_warning.matches_filter": "Збігається з фільтром “<span>{title}</span>”",
"filtered_notifications_banner.pending_requests": "Від {count, plural, =0 {жодної особи} one {однієї особи} few {# осіб} many {# осіб} other {# особи}}, котрих ви можете знати",
"filtered_notifications_banner.pending_requests": "Від {count, plural, =0 {жодної особи} one {однієї особи} few {# осіб} many {# осіб} other {# особи}}, яких ви можете знати",
"filtered_notifications_banner.title": "Відфільтровані сповіщення",
"firehose.all": "Всі",
"firehose.local": "Цей сервер",
@ -402,6 +408,10 @@
"ignore_notifications_modal.not_following_title": "Ігнорувати сповіщення від людей, на яких ви не підписалися?",
"ignore_notifications_modal.private_mentions_title": "Ігнорувати сповіщення від небажаних приватних згадок?",
"interaction_modal.action.favourite": "Щоб продовжити, потрібно додати улюблене з вашого облікового запису.",
"interaction_modal.action.follow": "Щоб іти далі, потрібно підписатися з вашого облікового запису.",
"interaction_modal.action.reblog": "Щоб іти далі, потрібно зробити реблог з вашого облікового запису.",
"interaction_modal.action.reply": "Щоб іти далі, потрібно відповісти з вашого облікового запису.",
"interaction_modal.action.vote": "Щоб іти далі, потрібно проголосувати з вашим обліковим записом.",
"interaction_modal.go": "Вперед",
"interaction_modal.no_account_yet": "Ще не зареєстровані?",
"interaction_modal.on_another_server": "На іншому сервері",
@ -411,6 +421,7 @@
"interaction_modal.title.reblog": "Поширити допис {name}",
"interaction_modal.title.reply": "Відповісти на допис {name}",
"interaction_modal.title.vote": "Проголосувати в опитуванні {name}",
"interaction_modal.username_prompt": "Наприклад, %{example}",
"intervals.full.days": "{number, plural, one {# день} few {# дні} other {# днів}}",
"intervals.full.hours": "{number, plural, one {# година} few {# години} other {# годин}}",
"intervals.full.minutes": "{number, plural, one {# хвилина} few {# хвилини} other {# хвилин}}",
@ -446,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "Показати/приховати текст під попередженням про вміст",
"keyboard_shortcuts.toggle_sensitivity": "Показати/приховати медіа",
"keyboard_shortcuts.toot": "Створити новий допис",
"keyboard_shortcuts.translate": "для перекладу повідомлення",
"keyboard_shortcuts.unfocus": "Розфокусуватися з нового допису чи пошуку",
"keyboard_shortcuts.up": "Рухатися вгору списком",
"lightbox.close": "Закрити",
@ -458,12 +470,32 @@
"link_preview.author": "Від {name}",
"link_preview.more_from_author": "Більше від {name}",
"link_preview.shares": "{count, plural, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} допис}}",
"lists.add_member": "Додати",
"lists.add_to_list": "Додати до списку",
"lists.add_to_lists": "Додати {name} до списку",
"lists.create": "Створити",
"lists.create_a_list_to_organize": "Створіть новий список, щоб упорядкувати домашню стрічку",
"lists.create_list": "Створити список",
"lists.delete": "Видалити список",
"lists.done": "Готово",
"lists.edit": "Редагувати список",
"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": "Нова назва списку",
"lists.no_lists_yet": "Поки що немає списків.",
"lists.no_members_yet": "Ще немає учасників.",
"lists.no_results_found": "Результатів не знайдено.",
"lists.remove_member": "Видалити",
"lists.replies_policy.followed": "Будь-який відстежуваний користувач",
"lists.replies_policy.list": "Учасники списку",
"lists.replies_policy.none": "Ніхто",
"lists.save": "Зберегти",
"lists.search": "Пошук",
"lists.show_replies_to": "Включати відповіді також зі списку учасників",
"load_pending": "{count, plural, one {# новий елемент} other {# нових елементів}}",
"loading_indicator.label": "Завантаження…",
"media_gallery.hide": "Сховати",
@ -516,6 +548,8 @@
"notification.annual_report.view": "Переглянути #Wrapstodon",
"notification.favourite": "Ваш допис сподобався {name}",
"notification.favourite.name_and_others_with_link": "{name} та <a>{count, plural, one {# інший} few {# інших} many {# інших} other {# інший}}</a> вподобали ваш допис",
"notification.favourite_pm": "{name} додав вашу особисту згадку до вибраного",
"notification.favourite_pm.name_and_others_with_link": "{name} та <a>{count, plural, one {# other} other {# others}}</a> додали вашу особисту згадку до вибраного",
"notification.follow": "{name} підписалися на вас",
"notification.follow.name_and_others": "{name} та <a>{count, plural, one {# інший} few {# інших} many {# інших} other {# інший}}</a> стежать за вами",
"notification.follow_request": "{name} відправили запит на підписку",
@ -663,6 +697,7 @@
"recommended": "Рекомендовано",
"refresh": "Оновити",
"regeneration_indicator.please_stand_by": "Будь ласка, очікуйте.",
"regeneration_indicator.preparing_your_home_feed": "Готування вашої головної стрічки новин…",
"relative_time.days": "{number}д",
"relative_time.full.days": "{number, plural, one {# день} few {# дні} other {# днів}} тому",
"relative_time.full.hours": "{number, plural, one {# година} few {# години} other {# годин}} тому",
@ -824,6 +859,7 @@
"subscribed_languages.target": "Змінити підписані мови для {target}",
"tabs_bar.home": "Головна",
"tabs_bar.notifications": "Сповіщення",
"terms_of_service.title": "Умови використання",
"time_remaining.days": "{number, plural, one {# день} few {# дні} other {# днів}}",
"time_remaining.hours": "{number, plural, one {# година} few {# години} other {# годин}}",
"time_remaining.minutes": "{number, plural, one {# хвилина} few {# хвилини} other {# хвилин}}",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "ẩn/hiện nội dung ẩn",
"keyboard_shortcuts.toggle_sensitivity": "ẩn/hiện ảnh hoặc video",
"keyboard_shortcuts.toot": "soạn tút mới",
"keyboard_shortcuts.translate": "dịch tút",
"keyboard_shortcuts.unfocus": "đưa con trỏ ra khỏi ô soạn thảo hoặc ô tìm kiếm",
"keyboard_shortcuts.up": "di chuyển lên trên danh sách",
"lightbox.close": "Đóng",
@ -836,6 +837,7 @@
"status.reblogs.empty": "Tút này chưa có ai đăng lại. Nếu có, nó sẽ hiển thị ở đây.",
"status.redraft": "Xóa và viết lại",
"status.remove_bookmark": "Bỏ lưu",
"status.remove_favourite": "Bỏ thích",
"status.replied_in_thread": "Trả lời thảo luận",
"status.replied_to": "Trả lời {name}",
"status.reply": "Trả lời",

View File

@ -186,7 +186,7 @@
"compose_form.poll.switch_to_single": "将投票改为单选",
"compose_form.poll.type": "类型",
"compose_form.publish": "发布",
"compose_form.publish_form": "新嘟文",
"compose_form.publish_form": "新嘟文",
"compose_form.reply": "回复",
"compose_form.save_changes": "更改",
"compose_form.spoiler.marked": "移除内容警告",
@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "显示或隐藏被折叠的正文",
"keyboard_shortcuts.toggle_sensitivity": "显示/隐藏媒体",
"keyboard_shortcuts.toot": "发送新嘟文",
"keyboard_shortcuts.translate": "翻译嘟文",
"keyboard_shortcuts.unfocus": "取消输入/搜索",
"keyboard_shortcuts.up": "在列表中让光标上移",
"lightbox.close": "关闭",

View File

@ -457,6 +457,7 @@
"keyboard_shortcuts.toggle_hidden": "顯示或隱藏於內容警告之後的嘟文",
"keyboard_shortcuts.toggle_sensitivity": "顯示或隱藏媒體",
"keyboard_shortcuts.toot": "發個新嘟文",
"keyboard_shortcuts.translate": "翻譯嘟文",
"keyboard_shortcuts.unfocus": "跳離文字撰寫區塊或搜尋框",
"keyboard_shortcuts.up": "向上移動",
"lightbox.close": "關閉",

View File

@ -1590,7 +1590,7 @@ body > [data-popper-placement] {
padding: 0 10px;
.detailed-status__display-name {
color: lighten($inverted-text-color, 16%);
color: $dark-text-color;
span {
display: inline;

View File

@ -1,6 +1,7 @@
# frozen_string_literal: true
class AnnualReport::CommonlyInteractedWithAccounts < AnnualReport::Source
MINIMUM_INTERACTIONS = 1
SET_SIZE = 40
def generate
@ -17,6 +18,10 @@ class AnnualReport::CommonlyInteractedWithAccounts < AnnualReport::Source
private
def commonly_interacted_with_accounts
report_statuses.where.not(in_reply_to_account_id: @account.id).group(:in_reply_to_account_id).having('count(*) > 1').order(count_all: :desc).limit(SET_SIZE).count
report_statuses.where.not(in_reply_to_account_id: @account.id).group(:in_reply_to_account_id).having(minimum_interaction_count).order(count_all: :desc).limit(SET_SIZE).count
end
def minimum_interaction_count
Arel.star.count.gt(MINIMUM_INTERACTIONS)
end
end

View File

@ -1,6 +1,7 @@
# frozen_string_literal: true
class AnnualReport::MostRebloggedAccounts < AnnualReport::Source
MINIMUM_REBLOGS = 1
SET_SIZE = 10
def generate
@ -17,6 +18,10 @@ class AnnualReport::MostRebloggedAccounts < AnnualReport::Source
private
def most_reblogged_accounts
report_statuses.where.not(reblog_of_id: nil).joins(reblog: :account).group(accounts: [:id]).having('count(*) > 1').order(count_all: :desc).limit(SET_SIZE).count
report_statuses.where.not(reblog_of_id: nil).joins(reblog: :account).group(accounts: [:id]).having(minimum_reblog_count).order(count_all: :desc).limit(SET_SIZE).count
end
def minimum_reblog_count
Arel.star.count.gt(MINIMUM_REBLOGS)
end
end

View File

@ -1,6 +1,7 @@
# frozen_string_literal: true
class AnnualReport::TopHashtags < AnnualReport::Source
MINIMUM_TAGGINGS = 1
SET_SIZE = 40
def generate
@ -17,7 +18,11 @@ class AnnualReport::TopHashtags < AnnualReport::Source
private
def top_hashtags
Tag.joins(:statuses).where(statuses: { id: report_statuses.select(:id) }).group(coalesced_tag_names).having('count(*) > 1').order(count_all: :desc).limit(SET_SIZE).count
Tag.joins(:statuses).where(statuses: { id: report_statuses.select(:id) }).group(coalesced_tag_names).having(minimum_taggings_count).order(count_all: :desc).limit(SET_SIZE).count
end
def minimum_taggings_count
Arel.star.count.gt(MINIMUM_TAGGINGS)
end
def coalesced_tag_names

View File

@ -48,7 +48,7 @@ class AdminMailer < ApplicationMailer
end
def new_software_updates
@software_updates = SoftwareUpdate.all.to_a.sort_by(&:gem_version)
@software_updates = SoftwareUpdate.by_version
locale_for_account(@me) do
mail subject: default_i18n_subject(instance: @instance)
@ -56,7 +56,7 @@ class AdminMailer < ApplicationMailer
end
def new_critical_software_updates
@software_updates = SoftwareUpdate.where(urgent: true).to_a.sort_by(&:gem_version)
@software_updates = SoftwareUpdate.urgent.by_version
locale_for_account(@me) do
mail subject: default_i18n_subject(instance: @instance)

View File

@ -118,6 +118,7 @@ class Account < ApplicationRecord
validates :display_name, length: { maximum: DISPLAY_NAME_LENGTH_LIMIT }, if: -> { local? && will_save_change_to_display_name? }
validates :note, note_length: { maximum: NOTE_LENGTH_LIMIT }, if: -> { local? && will_save_change_to_note? }
validates :fields, length: { maximum: DEFAULT_FIELDS_SIZE }, if: -> { local? && will_save_change_to_fields? }
validates_with EmptyProfileFieldNamesValidator, if: -> { local? && will_save_change_to_fields? }
with_options on: :create do
validates :uri, absence: true, if: :local?
validates :inbox_url, absence: true, if: :local?
@ -296,7 +297,7 @@ class Account < ApplicationRecord
if attributes.is_a?(Hash)
attributes.each_value do |attr|
next if attr[:name].blank?
next if attr[:name].blank? && attr[:value].blank?
previous = old_fields.find { |item| item['value'] == attr[:value] }

View File

@ -17,6 +17,6 @@ class AccountSummary < ApplicationRecord
has_many :follow_recommendation_suppressions, primary_key: :account_id, foreign_key: :account_id, inverse_of: false, dependent: nil
scope :safe, -> { where(sensitive: false) }
scope :localized, ->(locale) { order(Arel::Nodes::Case.new.when(arel_table[:language].eq(locale)).then(1).else(0).desc) }
scope :localized, ->(locale) { in_order_of(:language, [locale], filter: false) }
scope :filtered, -> { where.missing(:follow_recommendation_suppressions) }
end

View File

@ -20,6 +20,9 @@ class Invite < ApplicationRecord
include Expireable
COMMENT_SIZE_LIMIT = 420
ELIGIBLE_CODE_CHARACTERS = [*('a'..'z'), *('A'..'Z'), *('0'..'9')].freeze
HOMOGLYPHS = %w(0 1 I l O).freeze
VALID_CODE_CHARACTERS = ELIGIBLE_CODE_CHARACTERS - HOMOGLYPHS
belongs_to :user, inverse_of: :invites
has_many :users, inverse_of: :invite, dependent: nil
@ -38,7 +41,7 @@ class Invite < ApplicationRecord
def set_code
loop do
self.code = ([*('a'..'z'), *('A'..'Z'), *('0'..'9')] - %w(0 1 I l O)).sample(8).join
self.code = VALID_CODE_CHARACTERS.sample(8).join
break if Invite.find_by(code: code).nil?
end
end

View File

@ -170,7 +170,7 @@ class PreviewCard < ApplicationRecord
private
def serialized_authors
if author_name? || author_url?
if author_name? || author_url? || author_account_id?
PreviewCard::Author
.new(self)
end

View File

@ -18,6 +18,8 @@ class SoftwareUpdate < ApplicationRecord
enum :type, { patch: 0, minor: 1, major: 2 }, suffix: :type
scope :urgent, -> { where(urgent: true) }
def gem_version
Gem::Version.new(version)
end
@ -35,6 +37,10 @@ class SoftwareUpdate < ApplicationRecord
Rails.configuration.x.mastodon.software_update_url.present?
end
def by_version
all.sort_by(&:gem_version)
end
def pending_to_a
return [] unless check_enabled?

View File

@ -0,0 +1,15 @@
# frozen_string_literal: true
class EmptyProfileFieldNamesValidator < ActiveModel::Validator
def validate(account)
return if account.fields.empty?
account.errors.add(:fields, :fields_with_values_missing_labels) if fields_with_values_missing_names?(account)
end
private
def fields_with_values_missing_names?(account)
account.fields.any? { |field| field.name.blank? && field.value.present? }
end
end

View File

@ -24,6 +24,8 @@ bg:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: съдържа стойности с липсващи етикети
username:
invalid: трябва да е само буквено-цифрено и долни черти
reserved: е запазено

View File

@ -24,6 +24,8 @@ ca:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: conté valors sense etiqueta
username:
invalid: només pot contenir lletres, números i guions baixos
reserved: està reservat

View File

@ -24,6 +24,8 @@ da:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: indeholder værdier med manglende etiketter
username:
invalid: må kun indeholde cifre, bogstaver og understreger
reserved: er reserveret

View File

@ -24,6 +24,8 @@ en:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: contains values with missing labels
username:
invalid: must contain only letters, numbers and underscores
reserved: is reserved

View File

@ -24,6 +24,8 @@ eo:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: enhavas valorojn kun mankantaj etikedoj
username:
invalid: devas enhavi nur literojn, ciferojn kaj substrekojn
reserved: rezervita

View File

@ -24,6 +24,8 @@ es-AR:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: contiene valores con etiquetas faltantes
username:
invalid: sólo letras, números y subguiones ("_")
reserved: está reservado

View File

@ -24,6 +24,8 @@ es-MX:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: contiene valores a los que les faltan etiquetas
username:
invalid: debe contener sólo letras, números y guiones bajos
reserved: está reservado

View File

@ -24,6 +24,8 @@ es:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: contiene valores con etiquetas que faltan
username:
invalid: solo puede contener letras, números y guiones bajos
reserved: está reservado

View File

@ -24,6 +24,8 @@ fi:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: sisältää arvoja, joista puuttuu nimike
username:
invalid: saa sisältää vain kirjaimia, numeroita ja alaviivoja
reserved: on varattu

View File

@ -1 +1,9 @@
---
fil:
activerecord:
errors:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: may mga value na walang label

View File

@ -24,6 +24,8 @@ fo:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: inniheldur virði við manglandi spjøldrum
username:
invalid: kann bara innihalda bókstavir, tøl og botnstriku
reserved: er umbiðið

View File

@ -24,6 +24,8 @@ fr-CA:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: contient des valeurs avec des étiquettes manquantes
username:
invalid: doit ne contenir que des lettres, des nombres et des tirets bas
reserved: est réservé

View File

@ -24,6 +24,8 @@ fr:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: contient des valeurs avec des étiquettes manquantes
username:
invalid: seulement des lettres, des chiffres et des tirets bas
reserved: est réservé

View File

@ -24,6 +24,8 @@ he:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: שדות המכילים ערכים אך חסרים תווית
username:
invalid: ספרות, אותיות לטיניות וקו תחתי בלבד
reserved: שמור

View File

@ -24,6 +24,8 @@ is:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: inniheldur gildi sem vantar merkingar
username:
invalid: má aðeins innihalda bókstafi, tölur og undirstrik
reserved: er frátekið

View File

@ -24,6 +24,8 @@ lt:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: turi reikšmių su trūkstamomis etiketėmis.
username:
invalid: turi būti tik raidės, skaičiai ir pabraukimai.
reserved: užimtas.

View File

@ -1 +1,16 @@
---
nan:
activerecord:
attributes:
poll:
expires_at: 期限
options: 選項
user:
agreement: 服務協議
email: 電子phue地址
locale: 在地化
password: 密碼
user/account:
username: 用者ê名
user/invite_request:
text: 原因

View File

@ -24,6 +24,8 @@ nl:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: bevat waarden met ontbrekende labels
username:
invalid: alleen letters, nummers en underscores
reserved: gereserveerd

View File

@ -24,6 +24,8 @@ nn:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: inneheld verdiar med manglande etikettar
username:
invalid: kan berre innehalda bokstavar, tal og understrekar
reserved: er reservert

View File

@ -24,6 +24,8 @@ sq:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: përmban vlera me etiketa që mungojnë
username:
invalid: duhet të përmbajë vetëm shkronja, numra dhe nënvija
reserved: është i rezervuar

View File

@ -39,6 +39,11 @@ sv:
attributes:
data:
malformed: är felformad
list_account:
attributes:
account_id:
taken: finns redan i listan
must_be_following: måste vara ett följt konto
status:
attributes:
reblog:

View File

@ -39,6 +39,11 @@ th:
attributes:
data:
malformed: ผิดรูปแบบ
list_account:
attributes:
account_id:
taken: อยู่ในรายการอยู่แล้ว
must_be_following: ต้องเป็นบัญชีที่ติดตาม
status:
attributes:
reblog:

View File

@ -24,6 +24,8 @@ tr:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: değerleri eksik etiketler içeriyor
username:
invalid: sadece harfler, sayılar ve alt çizgiler
reserved: kullanılamaz

View File

@ -24,6 +24,8 @@ uk:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: містить значення з відсутніми мітками
username:
invalid: має містити лише літери, цифри та підкреслення
reserved: зарезервовано
@ -43,6 +45,7 @@ uk:
attributes:
account_id:
taken: вже в списку
must_be_following: має бути відстежуваним обліковим записом
status:
attributes:
reblog:

View File

@ -24,6 +24,8 @@ vi:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: chứa giá trị thiếu nhãn
username:
invalid: chỉ chấp nhận ký tự, số và dấu gạch dưới
reserved: bị cấm sử dụng

View File

@ -24,6 +24,8 @@ zh-TW:
models:
account:
attributes:
fields:
fields_with_values_missing_labels: 包含缺少標籤之值
username:
invalid: 只能有字母、數字及底線
reserved: 是保留關鍵字

View File

@ -25,15 +25,19 @@ cs:
one: Příspěvek
other: Příspěvků
posts_tab_heading: Příspěvky
self_follow_error: Sledování vašeho vlastního účtu není povoleno
admin:
account_actions:
action: Vykonat akci
already_silenced: Tento účet je již omezený.
already_suspended: Tento účet již byl pozastaven.
title: Vykonat moderátorskou akci pro účet %{acct}
account_moderation_notes:
create: Zanechat poznámku
created_msg: Moderátorská poznámka byla úspěšně vytvořena!
destroyed_msg: Moderátorská poznámka byla úspěšně zničena!
accounts:
add_email_domain_block: Blokovat e-mailovou doménu
approve: Schválit
approved_msg: Žádost o registraci uživatele %{username} úspěšně schválena
are_you_sure: Opravdu?
@ -48,6 +52,7 @@ cs:
title: Změnit e-mail uživateli %{username}
change_role:
changed_msg: Role úspěšně změněna!
edit_roles: Správa uživatelských rolí
label: Změnit roli
no_role: Žádná role
title: Změnit roli pro %{username}
@ -60,6 +65,7 @@ cs:
demote: Degradovat
destroyed_msg: Data účtu %{username} jsou nyní ve frontě k okamžitému smazání
disable: Zmrazit
disable_sign_in_token_auth: Zrušit ověřování e-mailovým tokenem
disable_two_factor_authentication: Vypnout 2FA
disabled: Zmrazen
display_name: Zobrazované jméno
@ -68,6 +74,7 @@ cs:
email: E-mail
email_status: Stav e-mailu
enable: Rozmrazit
enable_sign_in_token_auth: Povolit ověřování e-mailovým tokenem
enabled: Povoleno
enabled_msg: Účet %{username} byl úspěšně rozmrazen
followers: Sledující
@ -134,6 +141,7 @@ cs:
resubscribe: Znovu odebírat
role: Role
search: Hledat
search_same_email_domain: Ostatní uživatelé se stejnou e-mailovou doménou
search_same_ip: Další uživatelé se stejnou IP adresou
security: Zabezpečení
security_measures:
@ -174,6 +182,7 @@ cs:
approve_appeal: Schválit odvolání
approve_user: Schválit uživatele
assigned_to_self_report: Přiřadit hlášení
change_email_user: Změnit e-mail uživatele
change_role_user: Změnit roli uživatele
confirm_user: Potvrdit uživatele
create_account_warning: Vytvořit varování
@ -435,8 +444,10 @@ cs:
new:
create: Přidat doménu
resolve: Přeložit doménu
title: Blokovat novou e-mailovou doménu
not_permitted: Nepovoleno
resolved_through_html: Přeložena přes %{domain}
title: Blokované e-mailové domény
export_domain_allows:
new:
title: Importovat povolené domény
@ -813,6 +824,7 @@ cs:
batch:
remove_from_report: Odebrat z hlášení
report: Nahlásit
contents: Obsah
deleted: Smazáno
favourites: Oblíbené
history: Historie verzí

View File

@ -1 +1,15 @@
---
nan:
devise:
failure:
locked: Lí ê口座hőng鎖定ah。
not_found_in_database: Bô ha̍p規定ê %{authentication_keys} á是密碼。
pending: Lí ê口座iáu teh審查。
timeout: Lí ê作業階段kàu期ah。請koh登入繼續完成。
mailer:
two_factor_disabled:
title: 2FA關掉ah
two_factor_enabled:
title: 2FA啟用ah
two_factor_recovery_codes_changed:
title: 2FA驗證碼改ah

View File

@ -60,6 +60,7 @@ cs:
error:
title: Vyskytla se chyba
new:
prompt_html: "%{client_name} by chtěl oprávnění k přístupu k vašemu účtu. <strong>Schvalte tuto žádost pouze pokud rozpoznáte a důvěřujete tomuto zdroji.</strong>"
review_permissions: Zkontrolujte oprávnění
title: Je vyžadována autorizace
show:

View File

@ -1 +1,17 @@
---
nan:
activerecord:
attributes:
doorkeeper/application:
name: 應用程式ê名
redirect_uri: 重轉ê URI
scopes: 範圍
website: 應用程式ê網站
errors:
models:
doorkeeper/application:
attributes:
redirect_uri:
invalid_uri: Tio̍h愛是合規定ê URI。
relative_uri: Tio̍h愛是絕對ê URI。
secured_uri: Tio̍h愛是HTTPS/SSL URI。

View File

@ -912,6 +912,11 @@ lv:
search: Meklēt
title: Tēmturi
updated_msg: Tēmtura iestatījumi ir veiksmīgi atjaunināti
terms_of_service:
changelog: Kas ir mainījies
history: Vēsture
publish: Publicēt
published_on_html: Publicēts %{date}
title: Pārvaldība
trends:
allow: Atļaut
@ -1609,6 +1614,7 @@ lv:
scheduled_statuses:
over_daily_limit: Tu esi pārsniedzis šodien ieplānoto %{limit} ziņu ierobežojumu
over_total_limit: Tu esi pārsniedzis ieplānoto %{limit} ziņu ierobežojumu
too_soon: datumam jābūt nākotnē
self_destruct:
lead_html: Diemžēl domēns <strong>%{domain}</strong> tiek neatgriezeniski slēgts. Ja tev tur bija konts, tu nevarēsi turpināt to lietot, taču joprojām vari pieprasīt savu datu kopiju.
title: Šis serveris tiek slēgts

View File

@ -1,6 +1,44 @@
---
nan:
about:
about_mastodon_html: 社交網路ê未來Bô廣告、bô企業監控、設計有道德兼非中心化加入Mastodon保有lí ê資料!
contact_missing: Iáu bē設定
contact_unavailable: 無開放
hosted_on: 佇 %{domain} 運作 ê Mastodon站
title: 關係本站
accounts:
followers:
other: 跟tuè ê
following: Leh跟tuè
last_active: 頂kái活動ê時間
link_verified_on: Tsit ê連結ê所有權佇 %{date} 受檢查
posts:
other: PO文
posts_tab_heading: PO文
admin:
account_moderation_notes:
create: 留記錄
created_msg: 管理記錄成功建立!
destroyed_msg: 管理記錄成功thâi掉
accounts:
deleted: Thâi掉ah
demote: 降級
destroyed_msg: Teh-beh thâi掉 %{username} ê資料
disable: 冷凍
disable_sign_in_token_auth: 停止用電子phue ê token認證
disable_two_factor_authentication: 停止用2FA
disabled: 冷凍起來ah
display_name: 顯示ê名
domain: 域名
edit: 編輯
email: 電子phue箱
email_status: 電子phue ê狀態
enable: 取消冷凍
location:
all: Kui ê
local: 本地
remote: 別ê站
title: 位置
instances:
dashboard:
instance_languages_dimension: Tsia̍p用ê語言
@ -14,3 +52,6 @@ nan:
too_soon: Tio̍h用未來ê日期。
statuses:
default_language: Kap界面ê語言sio kâng
user_mailer:
welcome:
sign_in_action: 登入

View File

@ -127,6 +127,9 @@ cs:
show_application: I tak budete vždy moci vidět, která aplikace zveřejnila váš příspěvek.
tag:
name: Můžete měnit pouze velikost písmen, například kvůli lepší čitelnosti
terms_of_service:
changelog: Může být strukturováno pomocí Markdown syntaxu.
text: Může být strukturováno pomocí Markdown syntaxu.
user:
chosen_languages: Po zaškrtnutí budou ve veřejných časových osách zobrazeny pouze příspěvky ve zvolených jazycích
user_role:
@ -313,6 +316,17 @@ cs:
name: Hashtag
trendable: Povolit zobrazení tohoto hashtagu mezi populárními
usable: Povolit příspěvkům používat tento hashtag lokálně
terms_of_service:
changelog: Co se změnilo?
text: Podmínky užití
terms_of_service_generator:
admin_email: E-mailová adresa pro právní upozornění
arbitration_address: Fyzická adresa pro upozornění na arbitrační řízení
arbitration_website: Webová stránka pro zasílání arbitračních upozornění
dmca_address: Fyzická adresa pro oznámení DMCA/porušení autorských práv
dmca_email: E-mailová adresa pro oznámení DMCA/porušení autorských práv
domain: Doména
jurisdiction: Právní příslušnost
user:
role: Role
time_zone: Časové pásmo

View File

@ -130,6 +130,16 @@ eo:
show_application: Vi ĉiam povos vidi kiu aplikaĵo publikigis vian afiŝon ĉiaokaze.
tag:
name: Vi povas ŝanĝi nur la majuskladon de la literoj, ekzemple, por igi ĝin pli legebla
terms_of_service:
changelog: Povas esti strukturita per sintakso Markdown-a.
text: Povas esti strukturita per sintakso Markdown-a.
terms_of_service_generator:
admin_email: Legalaj sciigoj povas esti kontraŭsciigoj, postulaĵoj de tribunalo, postulaĵoj pri forigo, kaj postulaĵoj de la policaro.
arbitration_address: Povas esti la sama kiel Fizika adreso supre, aŭ "N/A" se oni uzas retpoŝton
arbitration_website: Povas esti retformo, aŭ "N/A" se oni uzas retpoŝton
dmca_address: Por tenantoj en Usono, uzu la adreson registritan en la DMCA Designated Agenŭ Directory. Registrolibro de poŝtskatoloj haveblas per direkta postulo, uzu la DMCA Designated Agent Post Office Box Waiver Request por retpoŝti la Ofico de Kopirajto kaj priskribu, ke vi estas hejm-trovigita administranto por enhavo kaj devas uzi Poŝtskatolon por forigi vian hejmadreson de publika vido.
dmca_email: Povas esti la sama retpoŝtadreso uzita por "Retpoŝtadreso por legalaj sciigoj" supre
domain: Unika identigilo de la retaj servicoj, ke vi provizas.
user:
chosen_languages: Kun tio markita nur mesaĝoj en elektitaj lingvoj aperos en publikaj tempolinioj
role: La rolo kontrolas kiujn permesojn la uzanto havas.

View File

@ -1 +1,11 @@
---
nan:
simple_form:
hints:
account:
display_name: Lí ê全名á是別號。
fields: Lí ê頭頁、代名詞、年歲kap其他beh分享ê。
defaults:
password: 用 8 ê字元以上
setting_display_media_hide_all: 一直khàm掉媒體
setting_display_media_show_all: 一直展示媒體

View File

@ -60,6 +60,7 @@ sv:
setting_display_media_default: Dölj media markerad som känslig
setting_display_media_hide_all: Dölj alltid all media
setting_display_media_show_all: Visa alltid media markerad som känslig
setting_system_scrollbars_ui: Gäller endast för webbläsare som är baserade på Safari och Chrome
setting_use_blurhash: Gradienter är baserade på färgerna av de dolda objekten men fördunklar alla detaljer
setting_use_pending_items: Dölj tidslinjeuppdateringar bakom ett klick istället för att automatiskt bläddra i flödet
username: Du kan använda bokstäver, siffror och understreck

View File

@ -130,6 +130,17 @@ uk:
show_application: Ви завжди зможете побачити, з якого застосунку опубліковано ваш допис.
tag:
name: Тут ви можете лише змінювати регістр літер, щоб підвищити читабельність
terms_of_service:
changelog: Можна структурувати за допомогою синтаксису Markdown.
text: Можна структурувати за допомогою синтаксису Markdown.
terms_of_service_generator:
admin_email: Юридичні повідомлення містять зустрічні повідомлення, ухвали суду, запити на видалення та запити правоохоронних органів.
arbitration_address: Може бути таким самим, як і фізична адреса вище, або "N/A", якщо використано електронну пошту
arbitration_website: Може бути вебформою або "N/A", якщо використано електронну пошту
dmca_address: Для американських операторів використовуйте адресу, зареєстровану в довіднику призначених агентів DMCA. П.О. Перелік скриньок доступний за прямим запитом. Скористайтеся запитом на відмову від поштової скриньки призначеного агента Закону про захист авторських прав у цифрову епоху, щоб надіслати електронний лист до Бюро авторських прав, і опишіть, що ви домашній модератор вмісту, який боїться помсти чи відплати за свої дії та потребує використання P.O. Box, щоб видалити вашу домашню адресу з публічного перегляду.
dmca_email: Це може бути та сама адреса електронної пошти, яку використано в розділі «Електронна адреса для юридичних повідомлень» вище
domain: Унікальна ідентифікація онлайн-сервісу, який ви надаєте.
jurisdiction: Укажіть країну, де живе той, хто платить за рахунками. Якщо це компанія чи інша організація, вкажіть країну, де вона зареєстрована, а також місто, регіон, територію чи штат відповідно.
user:
chosen_languages: У глобальних стрічках будуть показані дописи тільки вибраними мовами
role: Роль визначає, які права має користувач.
@ -214,7 +225,7 @@ uk:
setting_default_privacy: Видимість дописів
setting_default_sensitive: Позначати медіа делікатними
setting_delete_modal: Показувати діалог підтвердження під час видалення допису
setting_disable_hover_cards: Вимкнути попередній перегляд профілю при наведенні
setting_disable_hover_cards: Вимкнути попередній перегляд профілю під час наведення мишки
setting_disable_swiping: Вимкнути рух посування
setting_display_media: Показ медіа
setting_display_media_default: За промовчанням
@ -318,12 +329,18 @@ uk:
listable: Дозволити появу цього хештеґа у каталозі пошуку і пропозицій
name: Хештеґ
trendable: Дозволити появу цього хештеґа у списку популярних хештеґів
usable: Дозволити дописам використовувати цей хештег локально
usable: Дозволити дописам використовувати цей гештеґ локально
terms_of_service:
changelog: Що змінилося?
text: Умови використання
terms_of_service_generator:
admin_email: Адреса електронної пошти для юридичних повідомлень
arbitration_address: Фізична адреса для арбітражних повідомлень
arbitration_website: Сайт для надсилання арбітражних повідомлень
dmca_address: Фізична адреса для сповіщень про DMCA/авторські права
dmca_email: Фізична адреса для сповіщень про DMCA/авторські права
domain: Домен
jurisdiction: Правова юрисдикція
user:
role: Роль
time_zone: Часовий пояс

View File

@ -214,6 +214,7 @@ sv:
enable_user: Aktivera användare
memorialize_account: Minnesmärk konto
promote_user: Befordra användare
publish_terms_of_service: Publicera användarvillkor
reject_appeal: Avvisa överklagande
reject_user: Avvisa användare
remove_avatar_user: Ta bort avatar
@ -278,6 +279,7 @@ sv:
enable_user_html: "%{name} aktiverade inloggning för användaren %{target}"
memorialize_account_html: "%{name} gjorde %{target}s konto till en minnessida"
promote_user_html: "%{name} befordrade användaren %{target}"
publish_terms_of_service_html: "%{name} publicerade uppdateringar till användarvillkoren"
reject_appeal_html: "%{name} avvisade överklagande av modereringsbeslut från %{target}"
reject_user_html: "%{name} avvisade registrering från %{target}"
remove_avatar_user_html: "%{name} tog bort %{target}s avatar"
@ -926,8 +928,33 @@ sv:
title: Hashtaggar
updated_msg: Hashtagg-inställningarna har uppdaterats
terms_of_service:
back: Tillbaka till användarvillkoren
changelog: Vad har ändrats
create: Använd dina egna
current: Nuvarande
draft: Utkast
generate: Använd mall
generates:
action: Generera
chance_to_review_html: "<strong>De genererade villkoren för tjänsten kommer inte att publiceras automatiskt.</strong> Du kommer att ha en chans att granska resultatet. Vänligen fyll i nödvändig information för att fortsätta."
explanation_html: Användarvillkorsmallen tillhandahålls endast i informationssyfte, och skall inte tolkas som juridisk rådgivning i något ämne. Rådgör med ditt eget juridiska ombud om din situation och specifika juridiska frågor du har.
title: Inställningar för användarvillkor
history: Historik
live: Aktuella
no_history: Det finns inga sparade ändringar i användarvillkoren ännu.
no_terms_of_service_html: Du har för närvarande inte några användarvillkor. Användarvillkoren är avsedda att ge klarhet och skydda dig i tvister med dina användare.
notified_on_html: Användare meddelade på %{date}
notify_users: Meddela användare
preview:
explanation_html: 'E-postmeddelandet kommer att skickas till <strong>%{display_count} användare</strong> som har registrerat sig före %{date}. Följande text kommer att inkluderas i meddelandet:'
send_preview: Skicka till %{email} för förhandsgranskning
send_to_all:
one: Skicka %{display_count} meddelande
other: Skicka %{display_count} meddelanden
title: Förhandsgranska användarvillkorsmeddelande
publish: Publicera
published_on_html: Publicerade den %{date}
save_draft: Spara utkast
title: Användarvillkor
title: Administration
trends:
@ -1160,6 +1187,7 @@ sv:
set_new_password: Skriv in nytt lösenord
setup:
email_below_hint_html: Kolla din skräppost-mapp eller begär en ny. Du kan korrigera din e-postadress om den är fel.
email_settings_hint_html: Klicka på länken vi skickade till %{email} för att börja använda Mastodon. Vi väntar här.
link_not_received: Fick du ingen länk?
new_confirmation_instructions_sent: Du kommer att få ett nytt e-postmeddelande med bekräftelselänken om några minuter!
title: Kolla din inkorg
@ -1168,6 +1196,7 @@ sv:
title: Logga in på %{domain}
sign_up:
manual_review: Registreringar på %{domain} går igenom manuell granskning av våra moderatorer. För att hjälpa oss att hantera din registrering, skriv lite om dig själv och varför du vill ha ett konto på %{domain}.
preamble: Med ett konto på denna Mastodon-server kan du följa alla andra personer i fediversum, oavsett vilken server deras konto tillhör.
title: Låt oss få igång dig på %{domain}.
status:
account_status: Kontostatus
@ -1179,6 +1208,7 @@ sv:
view_strikes: Visa tidigare prickar på ditt konto
too_fast: Formuläret har skickats för snabbt, försök igen.
use_security_key: Använd säkerhetsnyckel
user_agreement_html: Jag har läst och godkänner <a href="%{terms_of_service_path}" target="_blank">användarvillkoren</a> och <a href="%{privacy_policy_path}" target="_blank">integritetspolicy</a>
author_attribution:
example_title: Exempeltext
hint_html: Skriver du nyheter eller bloggartiklar utanför Mastodon? Kontrollera hur du får krediteras när de delas på Mastodon.
@ -1677,6 +1707,7 @@ sv:
scheduled_statuses:
over_daily_limit: Du har överskridit dygnsgränsen på %{limit} schemalagda inlägg
over_total_limit: Du har överskridit gränsen på %{limit} schemalagda inlägg
too_soon: datumet måste vara i framtiden
self_destruct:
lead_html: Tyvärr stänger <strong>%{domain}</strong> för gott. Om du hade ett konto där kommer du inte längre kunna använda det, men du kan fortfarande begära en säkerhetskopia av din data.
title: Denna server stänger ned
@ -1901,6 +1932,15 @@ sv:
further_actions_html: Om detta inte var du, rekommenderar vi att du snarast %{action} och aktiverar tvåfaktorsautentisering för att hålla ditt konto säkert.
subject: Ditt konto har nåtts från en ny IP-adress
title: En ny inloggning
terms_of_service_changed:
agreement: Genom att fortsätta använda %{domain} godkänner du dessa villkor. Om du inte håller med om de uppdaterade villkoren kan du när som helst säga upp ditt avtal med %{domain} genom att radera ditt konto.
changelog: 'I korthet, här är vad denna uppdatering innebär för dig:'
description: 'Du får detta e-postmeddelande eftersom vi gör vissa ändringar i våra användarvillkor på %{domain}. Vi uppmanar dig att granska de uppdaterade villkoren i sin helhet här:'
description_html: Du får detta e-postmeddelande eftersom vi gör vissa ändringar i våra användarvillkor på %{domain}. Vi uppmanar dig att granska de uppdaterade villkoren i <a href="%{path}" target="_blank">sin helhet här</a>.
sign_off: "%{domain} teamet"
subject: Uppdateringar till våra användarvillkor
subtitle: Villkoren för tjänsten på %{domain} ändras
title: Viktig uppdatering
warning:
appeal: Skicka överklagan
appeal_description: Om du anser detta felaktigt kan du skicka överklagan till administratörerna av %{instance}.

View File

@ -58,7 +58,7 @@ uk:
title: Змінити роль для %{username}
confirm: Зберегти
confirmed: Підтверджено
confirming: Зберігається
confirming: Підтверджується
custom: Власне
delete: Видалити дані
deleted: Видалено
@ -92,8 +92,8 @@ uk:
title: Розміщення
login_status: Стан входу
media_attachments: Мультимедійні вкладення
memorialize: Меморіалізувати
memorialized: Перетворено на пам'ятник
memorialize: Увічнити
memorialized: Увічнено
memorialized_msg: "%{username} успішно перетворено на пам'ятний обліковий запис"
moderation:
active: Активний
@ -193,6 +193,7 @@ uk:
create_domain_block: Створити блокування домену
create_email_domain_block: Створити блокування домену е-пошти
create_ip_block: Створити правило IP
create_relay: Створити реле
create_unavailable_domain: Створити недоступний домен
create_user_role: Створити роль
demote_user: Понизити користувача
@ -204,18 +205,22 @@ uk:
destroy_email_domain_block: Видалити блокування домену е-пошти
destroy_instance: Очистити домен
destroy_ip_block: Видалити правило IP
destroy_relay: Видалити реле
destroy_status: Видалити допис
destroy_unavailable_domain: Видалити недоступний домен
destroy_user_role: Знищити роль
disable_2fa_user: Вимкнути 2FA
disable_custom_emoji: Вимкнути користувацькі емодзі
disable_relay: Вимкнути реле
disable_sign_in_token_auth_user: Вимкнути автентифікацію за допомогою токена е-пошти для користувача
disable_user: Відключити користувача
enable_custom_emoji: Увімкнути користувацькі емодзі
enable_relay: Увімкнути реле
enable_sign_in_token_auth_user: Увімкнути автентифікацію за допомогою токена е-пошти для користувача
enable_user: Активувати користувача
memorialize_account: Меморіалізувати акаунт
promote_user: Підвищити користувача
publish_terms_of_service: Опублікувати Умови використання
reject_appeal: Відхилити апеляцію
reject_user: Відхилити користувача
remove_avatar_user: Видалити аватар
@ -253,6 +258,7 @@ uk:
create_domain_block_html: "%{name} блокує домен %{target}"
create_email_domain_block_html: "%{name} блокує домен електронної пошти %{target}"
create_ip_block_html: "%{name} створює правило для IP %{target}"
create_relay_html: "%{name} створив реле %{target}"
create_unavailable_domain_html: "%{name} зупиняє доставляння на домен %{target}"
create_user_role_html: "%{name} створює роль %{target}"
demote_user_html: "%{name} понижує користувача %{target}"
@ -264,18 +270,22 @@ uk:
destroy_email_domain_block_html: "%{name} розблоковує домен електронної пошти %{target}"
destroy_instance_html: "%{name} очищує домен %{target}"
destroy_ip_block_html: "%{name} видаляє правило для IP %{target}"
destroy_relay_html: "%{name} видалив реле %{target}"
destroy_status_html: "%{name} вилучає допис %{target}"
destroy_unavailable_domain_html: "%{name} відновлює доставляння на домен %{target}"
destroy_user_role_html: "%{name} видаляє роль %{target}"
disable_2fa_user_html: "%{name} вимикає двоетапну перевірку для користувача %{target}"
disable_custom_emoji_html: "%{name} вимикає емодзі %{target}"
disable_relay_html: "%{name} вимкнув реле %{target}"
disable_sign_in_token_auth_user_html: "%{name} вимикає автентифікацію через токен е-пошти для %{target}"
disable_user_html: "%{name} вимикає вхід для користувача %{target}"
enable_custom_emoji_html: "%{name} вмикає емодзі %{target}"
enable_relay_html: "%{name} увімкнув реле %{target}"
enable_sign_in_token_auth_user_html: "%{name} вмикає автентифікацію через токен е-пошти для %{target}"
enable_user_html: "%{name} вмикає вхід для користувача %{target}"
memorialize_account_html: "%{name} перетворює обліковий запис %{target} на сторінку пам'яті"
promote_user_html: "%{name} підвищує користувача %{target}"
publish_terms_of_service_html: "%{name} опублікував оновлення умов використання"
reject_appeal_html: "%{name} відхилили звернення на оскарження рішення від %{target}"
reject_user_html: "%{name} відхиляє реєстрацію від %{target}"
remove_avatar_user_html: "%{name} прибирає аватар %{target}"
@ -846,8 +856,10 @@ uk:
back_to_account: Назад до сторінки облікового запису
back_to_report: Повернутися до сторінки скарги
batch:
add_to_report: 'Додати до звіту #%{id}'
remove_from_report: Вилучити зі скарги
report: Скарга
contents: Вміст
deleted: Видалено
favourites: Вподобане
history: Історія версій
@ -856,12 +868,17 @@ uk:
media:
title: Медіа
metadata: Метадані
no_history: Цей допис ще не редагували
no_status_selected: Жодного допису не було змінено, оскільки жодного з них не було вибрано
open: Відкрити допис
original_status: Оригінальний допис
reblogs: Поширення
replied_to_html: Відповів %{acct_link}
status_changed: Допис змінено
status_title: "@%{name} опублікував допис"
title: Дописи облікового запису - @%{name}
trending: Популярне
view_publicly: Переглянути привселюдно
visibility: Видимість
with_media: З медіа
strikes:
@ -922,7 +939,7 @@ uk:
moderation:
not_trendable: Не трендові
not_usable: Невикористовувані
pending_review: Очікує розгляду
pending_review: Очікує на розгляд
review_requested: Запит на розгляд
reviewed: Розглянуто
title: Статус
@ -936,8 +953,34 @@ uk:
reset: Скинути
review: Переглянути допис
search: Пошук
title: Хештеги
title: Гештеґи
updated_msg: Параметри хештеґів успішно оновлені
terms_of_service:
back: Назад до умов використання
changelog: Що змінилося
create: Використовувати власний
current: Поточний
draft: Чернетка
generate: Використовувати шаблон
generates:
action: Згенерувати
chance_to_review_html: "<strong>Створені умови використання не опублікуються автоматично.</strong> Ви матимете змогу переглянути результати. Будь ласка, заповніть потрібні дані, щоб перейти далі."
explanation_html: Наданий шаблон умов надання послуг призначений лише для інформаційних цілей і не має розглядатися як юридична консультація з будь-якого питання. Проконсультуйтеся зі своїм юридичним радником щодо вашої ситуації та конкретних юридичних питань, які у вас постали.
title: Налаштування Умов обслуговування
history: Історія
live: Наживо
no_history: Змін умов обслуговування поки що не зафіксовано.
no_terms_of_service_html: Наразі у вас не налаштовано умов використання. Умови використання призначені для забезпечення ясності та захисту від потенційних зобов’язань у суперечках із користувачами.
notified_on_html: Користувачі сповіщені %{date}
notify_users: Сповістити користувачів
preview:
explanation_html: 'Електронний лист буде надіслано <strong>%{display_count} користувачам</strong>, які зареєструвалися до %{date}. Розміщений нижче текст додасться до електронного листа:'
send_preview: Надіслати попередній перегляд на %{email}
title: Попередній перегляд сповіщення про умови використання
publish: Опублікувати
published_on_html: Опубліковано %{date}
save_draft: Зберегти чернетку
title: Умови використання
title: Адміністрування
trends:
allow: Дозволити
@ -1186,6 +1229,7 @@ uk:
title: Увійти до %{domain}
sign_up:
manual_review: Реєстрація на %{domain} проходить через ручний розгляд нашими модераторами. Щоб допомогти нам завершити вашу реєстрацію, напишіть трохи про себе і чому ви хочете зареєструватися на %{domain}.
preamble: За допомогою облікового запису на цьому сервері Mastodon ви зможете стежити за будь-якою іншою людиною у федіверсі незалежно від того, де розміщений обліковий запис.
title: Налаштуймо вас на %{domain}.
status:
account_status: Стан облікового запису
@ -1197,6 +1241,7 @@ uk:
view_strikes: Переглянути попередні попередження вашому обліковому запису
too_fast: Форму подано занадто швидко, спробуйте ще раз.
use_security_key: Використовувати ключ безпеки
user_agreement_html: Я прочитав і приймаю <a href="%{terms_of_service_path}" target="_blank">умови використання</a> та <a href="%{privacy_policy_path}" target="_blank">політику конфіденційності< /a>
author_attribution:
example_title: Зразок тексту
hint_html: Ви пишете новини чи статті в блозі за межами Mastodon? Контролюйте, як вони підписуються, коли ними діляться на Mastodon.
@ -1844,6 +1889,8 @@ uk:
too_late: Запізно оскаржувати це попередження
tags:
does_not_match_previous_name: не збігається з попереднім ім'ям
terms_of_service:
title: Умови використання
themes:
contrast: Mastodon (Висока контрастність)
default: Mastodon (Темна)
@ -1904,6 +1951,15 @@ uk:
further_actions_html: Якщо це були не ви. Радимо вам негайно %{action} й увімкнути двоетапну перевірку, щоб уберегти свій обліковий запис.
subject: До вашого облікового запису отримано доступ з нової IP-адреси
title: Новий вхід
terms_of_service_changed:
agreement: Далі використовуючи %{domain}, ви погоджуєтеся з цими умовами. Якщо ви не згодні з оновленими умовами, ви можете припинити свою угоду з %{domain} будь-якої миті, видаливши ваш обліковий запис.
changelog: 'Коротко, ось що це оновлення означає для вас:'
description: 'Ви отримали цього електронного листа, тому що ми впроваджуємо деякі зміни в наші умови обслуговування в %{domain}. Радимо переглянути оновлені умови повністю тут:'
description_html: Ви отримали цього електронного листа, тому що ми впроваджуємо деякі зміни до наших умов обслуговування в %{domain}. Радимо переглянути <a href="%{path}" target="_blank">повністю оновлені умови тут</a>.
sign_off: Команда %{domain}
subject: Оновлення до наших умов обслуговування
subtitle: Умови використання %{domain} змінюються
title: Важливе оновлення
warning:
appeal: Подати апеляцію
appeal_description: Якщо ви вважаєте, що це помилка, ви можете надіслати оскаржити дії персоналу %{instance}.

View File

@ -17,7 +17,7 @@ SimpleNavigation::Configuration.run do |navigation|
n.item :preferences, safe_join([material_symbol('settings'), t('settings.preferences')]), settings_preferences_path, if: -> { current_user.functional? && !self_destruct } do |s|
s.item :appearance, safe_join([material_symbol('computer'), t('settings.appearance')]), settings_preferences_appearance_path
s.item :notifications, safe_join([material_symbol('mail'), t('settings.notifications')]), settings_preferences_notifications_path
s.item :other, safe_join([material_symbol('settings'), t('preferences.other')]), settings_preferences_other_path
s.item :other, safe_join([material_symbol('tune'), t('preferences.other')]), settings_preferences_other_path
end
n.item :flavours, safe_join([material_symbol('brush'), t('settings.flavours')]), settings_flavours_path do |flavours|
@ -71,7 +71,7 @@ SimpleNavigation::Configuration.run do |navigation|
n.item :admin, safe_join([material_symbol('manufacturing'), t('admin.title')]), nil, if: -> { current_user.can?(:view_dashboard, :manage_settings, :manage_rules, :manage_announcements, :manage_custom_emojis, :manage_webhooks, :manage_federation) && !self_destruct } do |s|
s.item :dashboard, safe_join([material_symbol('speed'), t('admin.dashboard.title')]), admin_dashboard_path, if: -> { current_user.can?(:view_dashboard) }
s.item :settings, safe_join([material_symbol('manufacturing'), t('admin.settings.title')]), admin_settings_path, if: -> { current_user.can?(:manage_settings) }, highlights_on: %r{/admin/settings}
s.item :settings, safe_join([material_symbol('tune'), t('admin.settings.title')]), admin_settings_path, if: -> { current_user.can?(:manage_settings) }, highlights_on: %r{/admin/settings}
s.item :terms_of_service, safe_join([material_symbol('description'), t('admin.terms_of_service.title')]), admin_terms_of_service_index_path, highlights_on: %r{/admin/terms_of_service}, if: -> { current_user.can?(:manage_rules) }
s.item :rules, safe_join([material_symbol('gavel'), t('admin.rules.title')]), admin_rules_path, highlights_on: %r{/admin/rules}, if: -> { current_user.can?(:manage_rules) }
s.item :warning_presets, safe_join([material_symbol('warning'), t('admin.warning_presets.title')]), admin_warning_presets_path, highlights_on: %r{/admin/warning_presets}, if: -> { current_user.can?(:manage_settings) }

View File

@ -1,85 +0,0 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe Admin::WarningPresetsController do
render_views
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user
end
describe 'GET #index' do
it 'returns http success' do
get :index
expect(response).to have_http_status(:success)
end
end
describe 'GET #edit' do
let(:account_warning_preset) { Fabricate(:account_warning_preset) }
it 'returns http success and renders edit' do
get :edit, params: { id: account_warning_preset.id }
expect(response).to have_http_status(:success)
expect(response).to render_template(:edit)
end
end
describe 'POST #create' do
context 'with valid data' do
it 'creates a new account_warning_preset and redirects' do
expect do
post :create, params: { account_warning_preset: { text: 'The account_warning_preset text.' } }
end.to change(AccountWarningPreset, :count).by(1)
expect(response).to redirect_to(admin_warning_presets_path)
end
end
context 'with invalid data' do
it 'does creates a new account_warning_preset and renders index' do
expect do
post :create, params: { account_warning_preset: { text: '' } }
end.to_not change(AccountWarningPreset, :count)
expect(response).to render_template(:index)
end
end
end
describe 'PUT #update' do
let(:account_warning_preset) { Fabricate(:account_warning_preset, text: 'Original text') }
context 'with valid data' do
it 'updates the account_warning_preset and redirects' do
put :update, params: { id: account_warning_preset.id, account_warning_preset: { text: 'Updated text.' } }
expect(response).to redirect_to(admin_warning_presets_path)
end
end
context 'with invalid data' do
it 'does not update the account_warning_preset and renders index' do
put :update, params: { id: account_warning_preset.id, account_warning_preset: { text: '' } }
expect(response).to render_template(:edit)
end
end
end
describe 'DELETE #destroy' do
let!(:account_warning_preset) { Fabricate(:account_warning_preset) }
it 'destroys the account_warning_preset and redirects' do
delete :destroy, params: { id: account_warning_preset.id }
expect { account_warning_preset.reload }.to raise_error(ActiveRecord::RecordNotFound)
expect(response).to redirect_to(admin_warning_presets_path)
end
end
end

View File

@ -822,6 +822,10 @@ RSpec.describe Account do
it { is_expected.to validate_length_of(:display_name).is_at_most(described_class::DISPLAY_NAME_LENGTH_LIMIT) }
it { is_expected.to_not allow_values(account_note_over_limit).for(:note) }
it { is_expected.to allow_value(fields_empty_name_value).for(:fields) }
it { is_expected.to_not allow_value(fields_over_limit).for(:fields) }
it { is_expected.to_not allow_value(fields_empty_name).for(:fields) }
end
context 'when account is remote' do
@ -854,6 +858,18 @@ RSpec.describe Account do
def account_note_over_limit
'a' * described_class::NOTE_LENGTH_LIMIT * 2
end
def fields_empty_name_value
Array.new(4) { { 'name' => '', 'value' => '' } }
end
def fields_over_limit
Array.new(described_class::DEFAULT_FIELDS_SIZE + 1) { { 'name' => 'Name', 'value' => 'Value', 'verified_at' => '01/01/1970' } }
end
def fields_empty_name
[{ 'name' => '', 'value' => 'Value', 'verified_at' => '01/01/1970' }]
end
end
describe 'scopes' do

View File

@ -0,0 +1,26 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe AccountSummary do
describe 'Scopes' do
describe '.localized' do
let(:first) { Fabricate :account }
let(:last) { Fabricate :account }
before do
Fabricate :status, account: first, language: 'en'
Fabricate :status, account: last, language: 'es'
described_class.refresh
end
it 'returns records in order of language' do
expect(described_class.localized('en'))
.to contain_exactly(
have_attributes(account_id: first.id, language: 'en'),
have_attributes(account_id: last.id, language: 'es')
)
end
end
end
end

View File

@ -3,6 +3,29 @@
require 'rails_helper'
RSpec.describe SoftwareUpdate do
describe 'Scopes' do
describe '.urgent' do
let!(:urgent_update) { Fabricate :software_update, urgent: true }
let!(:non_urgent_update) { Fabricate :software_update, urgent: false }
it 'returns records that are urgent' do
expect(described_class.urgent)
.to include(urgent_update)
.and not_include(non_urgent_update)
end
end
end
describe '.by_version' do
let!(:latest_update) { Fabricate :software_update, version: '4.0.0' }
let!(:older_update) { Fabricate :software_update, version: '3.0.0' }
it 'returns record in gem version order' do
expect(described_class.by_version)
.to eq([older_update, latest_update])
end
end
describe '#pending?' do
subject { described_class.new(version: update_version) }

View File

@ -21,7 +21,24 @@ RSpec.describe REST::PreviewCardSerializer do
end
end
context 'when preview card has author data' do
context 'when preview card has fediverse author data' do
let(:preview_card) { Fabricate.build :preview_card, author_account: Fabricate(:account) }
it 'includes populated authors array' do
expect(subject.deep_symbolize_keys)
.to include(
authors: be_an(Array).and(
contain_exactly(
include(
account: be_present
)
)
)
)
end
end
context 'when preview card has non-fediverse author data' do
let(:preview_card) { Fabricate.build :preview_card, author_name: 'Name', author_url: 'https://host.example/123' }
it 'includes populated authors array' do

Some files were not shown because too many files have changed in this diff Show More