Compare commits

..

3 Commits

Author SHA1 Message Date
Matt Jankowski
0c39277b55 Update sidekiq to version 8.0.5 2025-07-04 09:18:45 -04:00
Matt Jankowski
d3343989c5 Update sidekiq to version 8.0.4 2025-07-04 09:18:45 -04:00
Matt Jankowski
f0b9bac9d0 Update sidekiq to version 8 2025-07-04 09:18:45 -04:00
126 changed files with 389 additions and 1667 deletions

View File

@ -14,7 +14,6 @@ on:
- config/locales/devise.en.yml - config/locales/devise.en.yml
- config/locales/doorkeeper.en.yml - config/locales/doorkeeper.en.yml
- .github/workflows/crowdin-upload.yml - .github/workflows/crowdin-upload.yml
workflow_dispatch:
jobs: jobs:
upload-translations: upload-translations:

View File

@ -2,17 +2,7 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
## [4.4.1] - 2025-07-09 ## [4.4.0] - UNRELEASED
### Fixed
- Fix nearly every sub-directory being crawled as part of Vite build (#35323 by @ClearlyClaire)
- Fix assets not building when Redis is unavailable (#35321 by @oneiros)
- Fix replying from media modal or pop-in-player tagging user `@undefined` (#35317 by @ClearlyClaire)
- Fix support for special characters in various environment variables (#35314 by @mjankowski and @ClearlyClaire)
- Fix some database migrations failing for indexes manually removed by admins (#35309 by @mjankowski)
## [4.4.0] - 2025-07-08
### Added ### Added
@ -48,7 +38,7 @@ All notable changes to this project will be documented in this file.
Server administrators can now chose to opt in to transmit referrer information when following an external link. Only the domain name is transmitted, not the referrer path. Server administrators can now chose to opt in to transmit referrer information when following an external link. Only the domain name is transmitted, not the referrer path.
- Add double tap to zoom and swipe to dismiss to media modal in web UI (#34210 by @Gargron) - Add double tap to zoom and swipe to dismiss to media modal in web UI (#34210 by @Gargron)
- Add link from Web UI for Hashtags to the Moderation UI (#31448 by @ThisIsMissEm) - Add link from Web UI for Hashtags to the Moderation UI (#31448 by @ThisIsMissEm)
- **Add terms of service** (#33055, #33233, #33230, #33703, #33699, #33994, #33993, #34105, #34122, #34200, #34527, #35053, #35115, #35126, #35127 and #35233 by @ClearlyClaire, @Gargron, @mjankowski, and @oneiros)\ - **Add terms of service** (#33055, #33233, #33230, #33703, #33699, #33994, #33993, #34105, #34122, #34200, #34527, #35053, #35115, #35126 and #35127 by @ClearlyClaire, @Gargron, @mjankowski, and @oneiros)\
Server administrators can now fill in Terms of Service and notify their users of upcoming changes. Server administrators can now fill in Terms of Service and notify their users of upcoming changes.
- Add optional bulk mailer settings (#35191 and #35203 by @oneiros)\ - Add optional bulk mailer settings (#35191 and #35203 by @oneiros)\
This adds the optional environment variables `BULK_SMTP_PORT`, `BULK_SMTP_SERVER`, `BULK_SMTP_LOGIN` and so on analogous to `SMTP_PORT`, `SMTP_SERVER`, `SMTP_LOGIN` and related SMTP configuration environment variables.\ This adds the optional environment variables `BULK_SMTP_PORT`, `BULK_SMTP_SERVER`, `BULK_SMTP_LOGIN` and so on analogous to `SMTP_PORT`, `SMTP_SERVER`, `SMTP_LOGIN` and related SMTP configuration environment variables.\
@ -61,7 +51,7 @@ All notable changes to this project will be documented in this file.
- Add ability to dismiss alt text badge by tapping it in web UI (#33737 by @Gargron) - Add ability to dismiss alt text badge by tapping it in web UI (#33737 by @Gargron)
- Add loading indicator to timeline gap indicators in web UI (#33762 by @Gargron) - Add loading indicator to timeline gap indicators in web UI (#33762 by @Gargron)
- Add interaction modal when trying to interact with a poll while logged out (#32609 by @ThisIsMissEm) - Add interaction modal when trying to interact with a poll while logged out (#32609 by @ThisIsMissEm)
- **Add experimental FASP support** (#34031, #34415, #34765, #34965, #34964, #34033, #35218, #35262 and #35263 by @oneiros)\ - **Add experimental FASP support** (#34031, #34415, #34765, #34965, #34964, #34033 and #35218 by @oneiros)\
This is a first step towards supporting “Fediverse Auxiliary Service Providers” (https://github.com/mastodon/fediverse_auxiliary_service_provider_specifications). This is mostly interesting to developers who would like to implement their own FASP, but also includes the capability to share data with a discovery provider (see https://www.fediscovery.org). This is a first step towards supporting “Fediverse Auxiliary Service Providers” (https://github.com/mastodon/fediverse_auxiliary_service_provider_specifications). This is mostly interesting to developers who would like to implement their own FASP, but also includes the capability to share data with a discovery provider (see https://www.fediscovery.org).
- Add ability for admins to send announcements to all users via email (#33928 and #34411 by @ClearlyClaire)\ - Add ability for admins to send announcements to all users via email (#33928 and #34411 by @ClearlyClaire)\
This is meant for critical announcements only, as this will potentially send a lot of emails and cannot be opted out of by users. This is meant for critical announcements only, as this will potentially send a lot of emails and cannot be opted out of by users.
@ -74,7 +64,7 @@ All notable changes to this project will be documented in this file.
- Add dropdown menu with quick actions to lists of accounts in web UI (#34391, #34709, and #34767 by @Gargron, @diondiondion, and @mkljczk) - Add dropdown menu with quick actions to lists of accounts in web UI (#34391, #34709, and #34767 by @Gargron, @diondiondion, and @mkljczk)
- Add support for displaying “year in review” notification in web UI (#32710, #32765, #32709, #32807, #32914, #33148, and #33882 by @Gargron and @mjankowski)\ - Add support for displaying “year in review” notification in web UI (#32710, #32765, #32709, #32807, #32914, #33148, and #33882 by @Gargron and @mjankowski)\
Note that the notification is currently not generated automatically, and at the moment requires a manual undocumented administrator action. Note that the notification is currently not generated automatically, and at the moment requires a manual undocumented administrator action.
- Add experimental support for receiving HTTP Message Signatures (RFC9421) (#34814, #35033, #35109 and #35278 by @oneiros)\ - Add experimental support for receiving HTTP Message Signatures (RFC9421) (#34814, #35033 and #35109 by @oneiros)\
For now, this needs to be explicitly enabled through the `http_message_signatures` feature flag (`EXPERIMENTAL_FEATURES=http_message_signatures`). This currently only covers verifying such signatures (inbound HTTP requests), not issuing them (outbound HTTP requests). For now, this needs to be explicitly enabled through the `http_message_signatures` feature flag (`EXPERIMENTAL_FEATURES=http_message_signatures`). This currently only covers verifying such signatures (inbound HTTP requests), not issuing them (outbound HTTP requests).
- Add experimental Async Refreshes API (#34918 by @oneiros) - Add experimental Async Refreshes API (#34918 by @oneiros)
- Add experimental server-side feature to fetch remote replies (#32615, #34147, #34149, #34151, #34615, #34682, and #34702 by @ClearlyClaire and @sneakers-the-rat)\ - Add experimental server-side feature to fetch remote replies (#32615, #34147, #34149, #34151, #34615, #34682, and #34702 by @ClearlyClaire and @sneakers-the-rat)\
@ -228,7 +218,6 @@ All notable changes to this project will be documented in this file.
- Fix admin dashboard crash on specific Elasticsearch connection errors (#34683 by @ClearlyClaire) - Fix admin dashboard crash on specific Elasticsearch connection errors (#34683 by @ClearlyClaire)
- Fix OIDC account creation failing for long display names (#34639 by @defnull) - Fix OIDC account creation failing for long display names (#34639 by @defnull)
- Fix use of the deprecated `/api/v1/instance` endpoint in the moderation interface (#34613 by @renchap) - Fix use of the deprecated `/api/v1/instance` endpoint in the moderation interface (#34613 by @renchap)
- Fix inaccessible “Clear search” button (#35152 and #35281 by @diondiondion)
- Fix search operators sometimes getting lost (#35190 by @ClearlyClaire) - Fix search operators sometimes getting lost (#35190 by @ClearlyClaire)
- Fix directory scroll position reset (#34560 by @przucidlo) - Fix directory scroll position reset (#34560 by @przucidlo)
- Fix needlessly complex SVG paths for oEmbed and logo (#34538 by @edent) - Fix needlessly complex SVG paths for oEmbed and logo (#34538 by @edent)
@ -243,7 +232,7 @@ All notable changes to this project will be documented in this file.
- Fix extra space under left-indented vertical videos (#34313 by @ClearlyClaire) - Fix extra space under left-indented vertical videos (#34313 by @ClearlyClaire)
- Fix glitchy iOS media attachment drag interactions (#35057 by @diondiondion) - Fix glitchy iOS media attachment drag interactions (#35057 by @diondiondion)
- Fix zoomed images being blurry in Safari (#35052 by @diondiondion) - Fix zoomed images being blurry in Safari (#35052 by @diondiondion)
- Fix redundant focus stop within status component in Web UI and make focus style more noticeable (#35037, #35051, #35096, #35150 and #35251 by @diondiondion) - Fix redundant focus stop within status component in Web UI and make focus style more noticeable (#35037, #35051, #35096 and #35150 by @diondiondion)
- Fix digits in media player time readout not having a consistent width (#35038 by @diondiondion) - Fix digits in media player time readout not having a consistent width (#35038 by @diondiondion)
- Fix wrong text color for “Open in advanced web interface” banner in high-contrast theme (#35032 by @diondiondion) - Fix wrong text color for “Open in advanced web interface” banner in high-contrast theme (#35032 by @diondiondion)
- Fix hover card for limited accounts not hiding information as expected (#35024 by @diondiondion) - Fix hover card for limited accounts not hiding information as expected (#35024 by @diondiondion)

View File

@ -186,7 +186,7 @@ FROM build AS libvips
# libvips version to compile, change with [--build-arg VIPS_VERSION="8.15.2"] # libvips version to compile, change with [--build-arg VIPS_VERSION="8.15.2"]
# renovate: datasource=github-releases depName=libvips packageName=libvips/libvips # renovate: datasource=github-releases depName=libvips packageName=libvips/libvips
ARG VIPS_VERSION=8.17.1 ARG VIPS_VERSION=8.17.0
# libvips download URL, change with [--build-arg VIPS_URL="https://github.com/libvips/libvips/releases/download"] # libvips download URL, change with [--build-arg VIPS_URL="https://github.com/libvips/libvips/releases/download"]
ARG VIPS_URL=https://github.com/libvips/libvips/releases/download ARG VIPS_URL=https://github.com/libvips/libvips/releases/download

View File

@ -62,7 +62,7 @@ gem 'inline_svg'
gem 'irb', '~> 1.8' gem 'irb', '~> 1.8'
gem 'kaminari', '~> 1.2' gem 'kaminari', '~> 1.2'
gem 'link_header', '~> 0.0' gem 'link_header', '~> 0.0'
gem 'linzer', '~> 0.7.7' gem 'linzer', '~> 0.7.2'
gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock' gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock'
gem 'mime-types', '~> 3.7.0', require: 'mime/types/columnar' gem 'mime-types', '~> 3.7.0', require: 'mime/types/columnar'
gem 'mutex_m' gem 'mutex_m'

View File

@ -365,7 +365,7 @@ GEM
json-ld-preloaded (3.3.1) json-ld-preloaded (3.3.1)
json-ld (~> 3.3) json-ld (~> 3.3)
rdf (~> 3.3) rdf (~> 3.3)
json-schema (5.2.1) json-schema (5.1.1)
addressable (~> 2.8) addressable (~> 2.8)
bigdecimal (~> 3.1) bigdecimal (~> 3.1)
jsonapi-renderer (0.2.2) jsonapi-renderer (0.2.2)
@ -403,7 +403,7 @@ GEM
rexml rexml
link_header (0.0.8) link_header (0.0.8)
lint_roller (1.1.0) lint_roller (1.1.0)
linzer (0.7.7) linzer (0.7.3)
cgi (~> 0.4.2) cgi (~> 0.4.2)
forwardable (~> 1.3, >= 1.3.3) forwardable (~> 1.3, >= 1.3.3)
logger (~> 1.7, >= 1.7.0) logger (~> 1.7, >= 1.7.0)
@ -761,7 +761,7 @@ GEM
rspec-mocks (~> 3.0) rspec-mocks (~> 3.0)
sidekiq (>= 5, < 9) sidekiq (>= 5, < 9)
rspec-support (3.13.4) rspec-support (3.13.4)
rubocop (1.78.0) rubocop (1.77.0)
json (~> 2.3) json (~> 2.3)
language_server-protocol (~> 3.17.0.2) language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0) lint_roller (~> 1.1.0)
@ -1007,7 +1007,7 @@ DEPENDENCIES
letter_opener (~> 1.8) letter_opener (~> 1.8)
letter_opener_web (~> 3.0) letter_opener_web (~> 3.0)
link_header (~> 0.0) link_header (~> 0.0)
linzer (~> 0.7.7) linzer (~> 0.7.2)
lograge (~> 0.12) lograge (~> 0.12)
mail (~> 2.8) mail (~> 2.8)
mario-redis-lock (~> 1.2) mario-redis-lock (~> 1.2)

View File

@ -13,9 +13,8 @@ A "vulnerability in Mastodon" is a vulnerability in the code distributed through
## Supported Versions ## Supported Versions
| Version | Supported | | Version | Supported |
| ------- | ---------------- | | ------- | --------- |
| 4.4.x | Yes | | 4.3.x | Yes |
| 4.3.x | Yes | | 4.2.x | Yes |
| 4.2.x | Until 2026-01-08 | | < 4.2 | No |
| < 4.2 | No |

View File

@ -64,9 +64,6 @@ module SignatureVerification
return (@signed_request_actor = actor) if signed_request.verified?(actor) return (@signed_request_actor = actor) if signed_request.verified?(actor)
fail_with! "Verification failed for #{actor.to_log_human_identifier} #{actor.uri}" fail_with! "Verification failed for #{actor.to_log_human_identifier} #{actor.uri}"
rescue Mastodon::MalformedHeaderError => e
@signature_verification_failure_code = 400
fail_with! e.message
rescue Mastodon::SignatureVerificationError => e rescue Mastodon::SignatureVerificationError => e
fail_with! e.message fail_with! e.message
rescue *Mastodon::HTTP_CONNECTION_ERRORS => e rescue *Mastodon::HTTP_CONNECTION_ERRORS => e

View File

@ -66,7 +66,7 @@ module ApplicationHelper
def provider_sign_in_link(provider) def provider_sign_in_link(provider)
label = Devise.omniauth_configs[provider]&.strategy&.display_name.presence || I18n.t("auth.providers.#{provider}", default: provider.to_s.chomp('_oauth2').capitalize) label = Devise.omniauth_configs[provider]&.strategy&.display_name.presence || I18n.t("auth.providers.#{provider}", default: provider.to_s.chomp('_oauth2').capitalize)
link_to label, omniauth_authorize_path(:user, provider), class: "btn button-#{provider}", method: :post link_to label, omniauth_authorize_path(:user, provider), class: "button button-#{provider}", method: :post
end end
def locale_direction def locale_direction

View File

@ -47,6 +47,10 @@ const labelForRecentSearch = (search: RecentSearch) => {
} }
}; };
const unfocus = () => {
document.querySelector('.ui')?.parentElement?.focus();
};
const ClearButton: React.FC<{ const ClearButton: React.FC<{
onClick: () => void; onClick: () => void;
hasValue: boolean; hasValue: boolean;
@ -103,11 +107,6 @@ export const Search: React.FC<{
}, [initialValue]); }, [initialValue]);
const searchOptions: SearchOption[] = []; const searchOptions: SearchOption[] = [];
const unfocus = useCallback(() => {
document.querySelector('.ui')?.parentElement?.focus();
setExpanded(false);
}, []);
if (searchEnabled) { if (searchEnabled) {
searchOptions.push( searchOptions.push(
{ {
@ -283,7 +282,7 @@ export const Search: React.FC<{
history.push({ pathname: '/search', search: queryParams.toString() }); history.push({ pathname: '/search', search: queryParams.toString() });
unfocus(); unfocus();
}, },
[dispatch, history, unfocus], [dispatch, history],
); );
const handleChange = useCallback( const handleChange = useCallback(
@ -403,7 +402,7 @@ export const Search: React.FC<{
setQuickActions(newQuickActions); setQuickActions(newQuickActions);
}, },
[signedIn, dispatch, unfocus, history, submit], [dispatch, history, signedIn, setValue, setQuickActions, submit],
); );
const handleClear = useCallback(() => { const handleClear = useCallback(() => {
@ -411,7 +410,7 @@ export const Search: React.FC<{
setQuickActions([]); setQuickActions([]);
setSelectedOption(-1); setSelectedOption(-1);
unfocus(); unfocus();
}, [unfocus]); }, [setValue, setQuickActions, setSelectedOption]);
const handleKeyDown = useCallback( const handleKeyDown = useCallback(
(e: React.KeyboardEvent) => { (e: React.KeyboardEvent) => {
@ -462,7 +461,7 @@ export const Search: React.FC<{
break; break;
} }
}, },
[unfocus, navigableOptions, selectedOption, submit, value], [navigableOptions, value, selectedOption, setSelectedOption, submit],
); );
const handleFocus = useCallback(() => { const handleFocus = useCallback(() => {
@ -482,38 +481,12 @@ export const Search: React.FC<{
}, [setExpanded, setSelectedOption, singleColumn]); }, [setExpanded, setSelectedOption, singleColumn]);
const handleBlur = useCallback(() => { const handleBlur = useCallback(() => {
setExpanded(false);
setSelectedOption(-1); setSelectedOption(-1);
}, [setSelectedOption]); }, [setExpanded, setSelectedOption]);
const formRef = useRef<HTMLFormElement>(null);
useEffect(() => {
// If the search popover is expanded, close it when tabbing or
// clicking outside of it or the search form, while allowing
// tabbing or clicking inside of the popover
if (expanded) {
function closeOnLeave(event: FocusEvent | MouseEvent) {
const form = formRef.current;
const isClickInsideForm =
form &&
(form === event.target || form.contains(event.target as Node));
if (!isClickInsideForm) {
setExpanded(false);
}
}
document.addEventListener('focusin', closeOnLeave);
document.addEventListener('click', closeOnLeave);
return () => {
document.removeEventListener('focusin', closeOnLeave);
document.removeEventListener('click', closeOnLeave);
};
}
return () => null;
}, [expanded]);
return ( return (
<form ref={formRef} className={classNames('search', { active: expanded })}> <form className={classNames('search', { active: expanded })}>
<input <input
ref={searchInputRef} ref={searchInputRef}
className='search__input' className='search__input'
@ -533,7 +506,7 @@ export const Search: React.FC<{
<ClearButton hasValue={hasValue} onClick={handleClear} /> <ClearButton hasValue={hasValue} onClick={handleClear} />
<div className='search__popout' tabIndex={-1}> <div className='search__popout'>
{!hasValue && ( {!hasValue && (
<> <>
<h4> <h4>

View File

@ -1,110 +0,0 @@
// Utility codes
export const VARIATION_SELECTOR_CODE = 0xfe0f;
export const KEYCAP_CODE = 0x20e3;
// Gender codes
export const GENDER_FEMALE_CODE = 0x2640;
export const GENDER_MALE_CODE = 0x2642;
// Skin tone codes
export const SKIN_TONE_CODES = [
0x1f3fb, // Light skin tone
0x1f3fc, // Medium-light skin tone
0x1f3fd, // Medium skin tone
0x1f3fe, // Medium-dark skin tone
0x1f3ff, // Dark skin tone
] as const;
export const EMOJIS_WITH_DARK_BORDER = [
'🎱', // 1F3B1
'🐜', // 1F41C
'⚫', // 26AB
'🖤', // 1F5A4
'⬛', // 2B1B
'◼️', // 25FC-FE0F
'◾', // 25FE
'◼️', // 25FC-FE0F
'✒️', // 2712-FE0F
'▪️', // 25AA-FE0F
'💣', // 1F4A3
'🎳', // 1F3B3
'📷', // 1F4F7
'📸', // 1F4F8
'♣️', // 2663-FE0F
'🕶️', // 1F576-FE0F
'✴️', // 2734-FE0F
'🔌', // 1F50C
'💂‍♀️', // 1F482-200D-2640-FE0F
'📽️', // 1F4FD-FE0F
'🍳', // 1F373
'🦍', // 1F98D
'💂', // 1F482
'🔪', // 1F52A
'🕳️', // 1F573-FE0F
'🕹️', // 1F579-FE0F
'🕋', // 1F54B
'🖊️', // 1F58A-FE0F
'🖋️', // 1F58B-FE0F
'💂‍♂️', // 1F482-200D-2642-FE0F
'🎤', // 1F3A4
'🎓', // 1F393
'🎥', // 1F3A5
'🎼', // 1F3BC
'♠️', // 2660-FE0F
'🎩', // 1F3A9
'🦃', // 1F983
'📼', // 1F4FC
'📹', // 1F4F9
'🎮', // 1F3AE
'🐃', // 1F403
'🏴', // 1F3F4
'🐞', // 1F41E
'🕺', // 1F57A
'📱', // 1F4F1
'📲', // 1F4F2
'🚲', // 1F6B2
'🪮', // 1FAA6
'🐦‍⬛', // 1F426-200D-2B1B
];
export const EMOJIS_WITH_LIGHT_BORDER = [
'👽', // 1F47D
'⚾', // 26BE
'🐔', // 1F414
'☁️', // 2601-FE0F
'💨', // 1F4A8
'🕊️', // 1F54A-FE0F
'👀', // 1F440
'🍥', // 1F365
'👻', // 1F47B
'🐐', // 1F410
'❕', // 2755
'❔', // 2754
'⛸️', // 26F8-FE0F
'🌩️', // 1F329-FE0F
'🔊', // 1F50A
'🔇', // 1F507
'📃', // 1F4C3
'🌧️', // 1F327-FE0F
'🐏', // 1F40F
'🍚', // 1F35A
'🍙', // 1F359
'🐓', // 1F413
'🐑', // 1F411
'💀', // 1F480
'☠️', // 2620-FE0F
'🌨️', // 1F328-FE0F
'🔉', // 1F509
'🔈', // 1F508
'💬', // 1F4AC
'💭', // 1F4AD
'🏐', // 1F3D0
'🏳️', // 1F3F3-FE0F
'⚪', // 26AA
'⬜', // 2B1C
'◽', // 25FD
'◻️', // 25FB-FE0F
'▫️', // 25AB-FE0F
'🪽', // 1FAE8
'🪿', // 1FABF
];

View File

@ -1,102 +0,0 @@
import { SUPPORTED_LOCALES } from 'emojibase';
import type { FlatCompactEmoji, Locale } from 'emojibase';
import type { DBSchema } from 'idb';
import { openDB } from 'idb';
import type { ApiCustomEmojiJSON } from '@/mastodon/api_types/custom_emoji';
import type { LocaleOrCustom } from './locale';
import { toSupportedLocale, toSupportedLocaleOrCustom } from './locale';
interface EmojiDB extends LocaleTables, DBSchema {
custom: {
key: string;
value: ApiCustomEmojiJSON;
indexes: {
category: string;
};
};
etags: {
key: LocaleOrCustom;
value: string;
};
}
interface LocaleTable {
key: string;
value: FlatCompactEmoji;
indexes: {
group: number;
label: string;
order: number;
tags: string[];
};
}
type LocaleTables = Record<Locale, LocaleTable>;
const SCHEMA_VERSION = 1;
const db = await openDB<EmojiDB>('mastodon-emoji', SCHEMA_VERSION, {
upgrade(database) {
const customTable = database.createObjectStore('custom', {
keyPath: 'shortcode',
autoIncrement: false,
});
customTable.createIndex('category', 'category');
database.createObjectStore('etags');
for (const locale of SUPPORTED_LOCALES) {
const localeTable = database.createObjectStore(locale, {
keyPath: 'hexcode',
autoIncrement: false,
});
localeTable.createIndex('group', 'group');
localeTable.createIndex('label', 'label');
localeTable.createIndex('order', 'order');
localeTable.createIndex('tags', 'tags', { multiEntry: true });
}
},
});
export async function putEmojiData(emojis: FlatCompactEmoji[], locale: Locale) {
const trx = db.transaction(locale, 'readwrite');
await Promise.all(emojis.map((emoji) => trx.store.put(emoji)));
await trx.done;
}
export async function putCustomEmojiData(emojis: ApiCustomEmojiJSON[]) {
const trx = db.transaction('custom', 'readwrite');
await Promise.all(emojis.map((emoji) => trx.store.put(emoji)));
await trx.done;
}
export function putLatestEtag(etag: string, localeString: string) {
const locale = toSupportedLocaleOrCustom(localeString);
return db.put('etags', etag, locale);
}
export function searchEmojiByHexcode(hexcode: string, localeString: string) {
const locale = toSupportedLocale(localeString);
return db.get(locale, hexcode);
}
export function searchEmojiByTag(tag: string, localeString: string) {
const locale = toSupportedLocale(localeString);
const range = IDBKeyRange.only(tag.toLowerCase());
return db.getAllFromIndex(locale, 'tags', range);
}
export function searchCustomEmojiByShortcode(shortcode: string) {
return db.get('custom', shortcode);
}
export async function loadLatestEtag(localeString: string) {
const locale = toSupportedLocaleOrCustom(localeString);
const rowCount = await db.count(locale);
if (!rowCount) {
return null; // No data for this locale, return null even if there is an etag.
}
const etag = await db.get('etags', locale);
return etag ?? null;
}

View File

@ -1,38 +0,0 @@
import initialState from '@/mastodon/initial_state';
import { toSupportedLocale } from './locale';
const serverLocale = toSupportedLocale(initialState?.meta.locale ?? 'en');
const worker =
'Worker' in window
? new Worker(new URL('./worker', import.meta.url), {
type: 'module',
})
: null;
export async function initializeEmoji() {
if (worker) {
worker.addEventListener('message', (event: MessageEvent<string>) => {
const { data: message } = event;
if (message === 'ready') {
worker.postMessage(serverLocale);
worker.postMessage('custom');
}
});
} else {
const { importCustomEmojiData, importEmojiData } = await import('./loader');
await Promise.all([importCustomEmojiData(), importEmojiData(serverLocale)]);
}
}
export async function loadEmojiLocale(localeString: string) {
const locale = toSupportedLocale(localeString);
if (worker) {
worker.postMessage(locale);
} else {
const { importEmojiData } = await import('./loader');
await importEmojiData(locale);
}
}

View File

@ -1,77 +0,0 @@
import { flattenEmojiData } from 'emojibase';
import type { CompactEmoji, FlatCompactEmoji } from 'emojibase';
import type { ApiCustomEmojiJSON } from '@/mastodon/api_types/custom_emoji';
import { isDevelopment } from '@/mastodon/utils/environment';
import {
putEmojiData,
putCustomEmojiData,
loadLatestEtag,
putLatestEtag,
} from './database';
import { toSupportedLocale, toSupportedLocaleOrCustom } from './locale';
import type { LocaleOrCustom } from './locale';
export async function importEmojiData(localeString: string) {
const locale = toSupportedLocale(localeString);
const emojis = await fetchAndCheckEtag<CompactEmoji[]>(locale);
if (!emojis) {
return;
}
const flattenedEmojis: FlatCompactEmoji[] = flattenEmojiData(emojis);
await putEmojiData(flattenedEmojis, locale);
}
export async function importCustomEmojiData() {
const emojis = await fetchAndCheckEtag<ApiCustomEmojiJSON[]>('custom');
if (!emojis) {
return;
}
await putCustomEmojiData(emojis);
}
async function fetchAndCheckEtag<ResultType extends object[]>(
localeOrCustom: LocaleOrCustom,
): Promise<ResultType | null> {
const locale = toSupportedLocaleOrCustom(localeOrCustom);
let uri: string;
if (locale === 'custom') {
uri = '/api/v1/custom_emojis';
} else {
uri = `/packs${isDevelopment() ? '-dev' : ''}/emoji/${locale}.json`;
}
const oldEtag = await loadLatestEtag(locale);
const response = await fetch(uri, {
headers: {
'Content-Type': 'application/json',
'If-None-Match': oldEtag ?? '', // Send the old ETag to check for modifications
},
});
// If not modified, return null
if (response.status === 304) {
return null;
}
if (!response.ok) {
throw new Error(
`Failed to fetch emoji data for ${localeOrCustom}: ${response.statusText}`,
);
}
const data = (await response.json()) as ResultType;
if (!Array.isArray(data)) {
throw new Error(
`Unexpected data format for ${localeOrCustom}: expected an array`,
);
}
// Store the ETag for future requests
const etag = response.headers.get('ETag');
if (etag) {
await putLatestEtag(etag, localeOrCustom);
}
return data;
}

View File

@ -1,6 +1,52 @@
import { SUPPORTED_LOCALES } from 'emojibase'; import { flattenEmojiData, SUPPORTED_LOCALES } from 'emojibase';
import emojiEnData from 'emojibase-data/en/compact.json';
import emojiFrData from 'emojibase-data/fr/compact.json';
import { toSupportedLocale, toSupportedLocaleOrCustom } from './locale'; import { toSupportedLocale, unicodeToLocaleLabel } from './locale';
describe('unicodeToLocaleLabel', () => {
const emojiTestCases = [
'1F3CB-1F3FF-200D-2640-FE0F', // 🏋🏿‍♀️ Woman weightlifter, dark skin
'1F468-1F3FB', // 👨🏻 Man, light skin
'1F469-1F3FB-200D-2695-FE0F', // 👩🏻‍⚕️ Woman health worker, light skin
'1F468-1F3FD-200D-1F692', // 👨🏽‍🚒 Man firefighter, medium skin
'1F469-1F3FE', // 👩🏾 Woman, medium-dark skin
'1F469-1F3FF-200D-1F4BB', // 👩🏿‍💻 Woman technologist, dark skin
'1F478-1F3FF', // 👸🏿 Princess with dark skin tone
'1F935-1F3FC-200D-2640-FE0F', // 🤵🏼‍♀️ Woman in tuxedo, medium-light skin
'1F9D1-1F3FC', // 🧑🏼 Person, medium-light skin
'1F9D4-1F3FE', // 🧔🏾 Person with beard, medium-dark skin
];
const flattenedEnData = flattenEmojiData(emojiEnData);
const flattenedFrData = flattenEmojiData(emojiFrData);
const emojiTestEnLabels = new Map(
emojiTestCases.map((code) => [
code,
flattenedEnData.find((emoji) => emoji.hexcode === code)?.label,
]),
);
const emojiTestFrLabels = new Map(
emojiTestCases.map((code) => [
code,
flattenedFrData.find((emoji) => emoji.hexcode === code)?.label,
]),
);
test.for(
emojiTestCases.flatMap((code) => [
[code, 'en', emojiTestEnLabels.get(code)],
[code, 'fr', emojiTestFrLabels.get(code)],
]) satisfies [string, string, string | undefined][],
)(
'returns correct label for %s for %s locale',
async ([unicodeHex, locale, expectedLabel]) => {
const label = await unicodeToLocaleLabel(unicodeHex, locale);
expect(label).toBe(expectedLabel);
},
);
});
describe('toSupportedLocale', () => { describe('toSupportedLocale', () => {
test('returns the same locale if it is supported', () => { test('returns the same locale if it is supported', () => {
@ -16,14 +62,3 @@ describe('toSupportedLocale', () => {
} }
}); });
}); });
describe('toSupportedLocaleOrCustom', () => {
test('returns custom for "custom" locale', () => {
expect(toSupportedLocaleOrCustom('custom')).toBe('custom');
});
test('returns supported locale for valid locales', () => {
for (const locale of SUPPORTED_LOCALES) {
expect(toSupportedLocaleOrCustom(locale)).toBe(locale);
}
});
});

View File

@ -1,23 +1,51 @@
import type { Locale } from 'emojibase'; import type { CompactEmoji, Locale } from 'emojibase';
import { SUPPORTED_LOCALES } from 'emojibase'; import { flattenEmojiData, SUPPORTED_LOCALES } from 'emojibase';
export type LocaleOrCustom = Locale | 'custom'; // Simple cache. This will be replaced with an IndexedDB cache in the future.
const localeCache = new Map<Locale, Map<string, CompactEmoji>>();
export function toSupportedLocale(localeBase: string): Locale { export async function unicodeToLocaleLabel(
const locale = localeBase.toLowerCase(); unicodeHex: string,
localeString: string,
) {
const locale = toSupportedLocale(localeString);
let hexMap = localeCache.get(locale);
if (!hexMap) {
hexMap = await loadLocaleLabels(locale);
localeCache.set(locale, hexMap);
}
const label = hexMap.get(unicodeHex)?.label;
if (!label) {
throw new Error(
`Label for unicode hex ${unicodeHex} not found in locale ${locale}`,
);
}
return label;
}
async function loadLocaleLabels(
locale: Locale,
): Promise<Map<string, CompactEmoji>> {
const { default: localeEmoji } = ((await import(
`emojibase-data/${locale}/compact.json`
)) ?? { default: [] }) as { default: CompactEmoji[] };
if (!Array.isArray(localeEmoji)) {
throw new Error(`Locale data for ${locale} not found`);
}
const hexMapEntries = flattenEmojiData(localeEmoji).map(
(emoji) => [emoji.hexcode, emoji] satisfies [string, CompactEmoji],
);
return new Map(hexMapEntries);
}
export function toSupportedLocale(locale: string): Locale {
if (isSupportedLocale(locale)) { if (isSupportedLocale(locale)) {
return locale; return locale;
} }
return 'en'; // Default to English if unsupported return 'en'; // Default to English if unsupported
} }
export function toSupportedLocaleOrCustom(locale: string): LocaleOrCustom {
if (locale.toLowerCase() === 'custom') {
return 'custom';
}
return toSupportedLocale(locale);
}
function isSupportedLocale(locale: string): locale is Locale { function isSupportedLocale(locale: string): locale is Locale {
return SUPPORTED_LOCALES.includes(locale.toLowerCase() as Locale); return SUPPORTED_LOCALES.includes(locale as Locale);
} }

View File

@ -1,17 +1,9 @@
import { readdir } from 'fs/promises'; import { readdir } from 'fs/promises';
import { basename, resolve } from 'path'; import { basename, resolve } from 'path';
import { flattenEmojiData } from 'emojibase'; import unicodeEmojis from 'emojibase-data/en/data.json';
import unicodeRawEmojis from 'emojibase-data/en/data.json';
import { import { twemojiToUnicodeInfo, unicodeToTwemojiHex } from './normalize';
twemojiHasBorder,
twemojiToUnicodeInfo,
unicodeToTwemojiHex,
CODES_WITH_DARK_BORDER,
CODES_WITH_LIGHT_BORDER,
emojiToUnicodeHex,
} from './normalize';
const emojiSVGFiles = await readdir( const emojiSVGFiles = await readdir(
// This assumes tests are run from project root // This assumes tests are run from project root
@ -21,81 +13,60 @@ const emojiSVGFiles = await readdir(
}, },
); );
const svgFileNames = emojiSVGFiles const svgFileNames = emojiSVGFiles
.filter((file) => file.isFile() && file.name.endsWith('.svg')) .filter(
(file) =>
file.isFile() &&
file.name.endsWith('.svg') &&
!file.name.endsWith('_border.svg'),
)
.map((file) => basename(file.name, '.svg').toUpperCase()); .map((file) => basename(file.name, '.svg').toUpperCase());
const svgFileNamesWithoutBorder = svgFileNames.filter(
(fileName) => !fileName.endsWith('_BORDER'),
);
const unicodeEmojis = flattenEmojiData(unicodeRawEmojis); describe('normalizeEmoji', () => {
describe('unicodeToSVGName', () => {
describe('emojiToUnicodeHex', () => { test.concurrent.for(
test.concurrent.for([ unicodeEmojis
['🎱', '1F3B1'], // Our version of Twemoji only supports up to version 15.1
['🐜', '1F41C'], .filter((emoji) => emoji.version < 16)
['⚫', '26AB'], .map((emoji) => [emoji.hexcode, emoji.label] as [string, string]),
['🖤', '1F5A4'], )('verifying an emoji exists for %s (%s)', ([hexcode], { expect }) => {
['💀', '1F480'], const result = unicodeToTwemojiHex(hexcode);
['💂‍♂️', '1F482-200D-2642-FE0F'], expect(svgFileNames).toContain(result);
] as const)( });
'emojiToUnicodeHex converts %s to %s',
([emoji, hexcode], { expect }) => {
expect(emojiToUnicodeHex(emoji)).toBe(hexcode);
},
);
});
describe('unicodeToTwemojiHex', () => {
test.concurrent.for(
unicodeEmojis
// Our version of Twemoji only supports up to version 15.1
.filter((emoji) => emoji.version < 16)
.map((emoji) => [emoji.hexcode, emoji.label] as [string, string]),
)('verifying an emoji exists for %s (%s)', ([hexcode], { expect }) => {
const result = unicodeToTwemojiHex(hexcode);
expect(svgFileNamesWithoutBorder).toContain(result);
}); });
});
describe('twemojiHasBorder', () => { describe('twemojiToUnicodeInfo', () => {
test.concurrent.for( const unicodeMap = new Map(
svgFileNames unicodeEmojis.flatMap((emoji) => {
.filter((file) => file.endsWith('_BORDER')) const base: [string, string][] = [[emoji.hexcode, emoji.label]];
.map((file) => { if (emoji.skins) {
const hexCode = file.replace('_BORDER', ''); base.push(
return [ ...emoji.skins.map(
hexCode, (skin) => [skin.hexcode, skin.label] as [string, string],
CODES_WITH_LIGHT_BORDER.includes(hexCode), ),
CODES_WITH_DARK_BORDER.includes(hexCode), );
] as const; }
return base;
}), }),
)('twemojiHasBorder for %s', ([hexCode, isLight, isDark], { expect }) => { );
const result = twemojiHasBorder(hexCode);
expect(result).toHaveProperty('hexCode', hexCode); test.concurrent.for(svgFileNames)(
expect(result).toHaveProperty('hasLightBorder', isLight); 'verifying SVG file %s maps to Unicode emoji',
expect(result).toHaveProperty('hasDarkBorder', isDark); (svgFileName, { expect }) => {
assert(!!svgFileName);
const result = twemojiToUnicodeInfo(svgFileName);
const hexcode =
typeof result === 'string' ? result : result.unqualified;
if (!hexcode) {
// No hexcode means this is a special case like the Shibuya 109 emoji
expect(result).toHaveProperty('label');
return;
}
assert(!!hexcode);
expect(
unicodeMap.has(hexcode),
`${hexcode} (${svgFileName}) not found`,
).toBeTruthy();
},
);
}); });
}); });
describe('twemojiToUnicodeInfo', () => {
const unicodeCodeSet = new Set(unicodeEmojis.map((emoji) => emoji.hexcode));
test.concurrent.for(svgFileNamesWithoutBorder)(
'verifying SVG file %s maps to Unicode emoji',
(svgFileName, { expect }) => {
assert(!!svgFileName);
const result = twemojiToUnicodeInfo(svgFileName);
const hexcode = typeof result === 'string' ? result : result.unqualified;
if (!hexcode) {
// No hexcode means this is a special case like the Shibuya 109 emoji
expect(result).toHaveProperty('label');
return;
}
assert(!!hexcode);
expect(
unicodeCodeSet.has(hexcode),
`${hexcode} (${svgFileName}) not found`,
).toBeTruthy();
},
);
});

View File

@ -1,12 +1,19 @@
import { // Utility codes
VARIATION_SELECTOR_CODE, const VARIATION_SELECTOR_CODE = 0xfe0f;
KEYCAP_CODE, const KEYCAP_CODE = 0x20e3;
GENDER_FEMALE_CODE,
GENDER_MALE_CODE, // Gender codes
SKIN_TONE_CODES, const GENDER_FEMALE_CODE = 0x2640;
EMOJIS_WITH_DARK_BORDER, const GENDER_MALE_CODE = 0x2642;
EMOJIS_WITH_LIGHT_BORDER,
} from './constants'; // Skin tone codes
const SKIN_TONE_CODES = [
0x1f3fb, // Light skin tone
0x1f3fc, // Medium-light skin tone
0x1f3fd, // Medium skin tone
0x1f3fe, // Medium-dark skin tone
0x1f3ff, // Dark skin tone
] as const;
// Misc codes that have special handling // Misc codes that have special handling
const SKIER_CODE = 0x26f7; const SKIER_CODE = 0x26f7;
@ -17,17 +24,6 @@ const LEVITATING_PERSON_CODE = 0x1f574;
const SPEECH_BUBBLE_CODE = 0x1f5e8; const SPEECH_BUBBLE_CODE = 0x1f5e8;
const MS_CLAUS_CODE = 0x1f936; const MS_CLAUS_CODE = 0x1f936;
export function emojiToUnicodeHex(emoji: string): string {
const codes: number[] = [];
for (const char of emoji) {
const code = char.codePointAt(0);
if (code !== undefined) {
codes.push(code);
}
}
return hexNumbersToString(codes);
}
export function unicodeToTwemojiHex(unicodeHex: string): string { export function unicodeToTwemojiHex(unicodeHex: string): string {
const codes = hexStringToNumbers(unicodeHex); const codes = hexStringToNumbers(unicodeHex);
const normalizedCodes: number[] = []; const normalizedCodes: number[] = [];
@ -54,35 +50,6 @@ export function unicodeToTwemojiHex(unicodeHex: string): string {
return hexNumbersToString(normalizedCodes, 0); return hexNumbersToString(normalizedCodes, 0);
} }
interface TwemojiBorderInfo {
hexCode: string;
hasLightBorder: boolean;
hasDarkBorder: boolean;
}
export const CODES_WITH_DARK_BORDER =
EMOJIS_WITH_DARK_BORDER.map(emojiToUnicodeHex);
export const CODES_WITH_LIGHT_BORDER =
EMOJIS_WITH_LIGHT_BORDER.map(emojiToUnicodeHex);
export function twemojiHasBorder(twemojiHex: string): TwemojiBorderInfo {
const normalizedHex = twemojiHex.toUpperCase();
let hasLightBorder = false;
let hasDarkBorder = false;
if (CODES_WITH_LIGHT_BORDER.includes(normalizedHex)) {
hasLightBorder = true;
}
if (CODES_WITH_DARK_BORDER.includes(normalizedHex)) {
hasDarkBorder = true;
}
return {
hexCode: normalizedHex,
hasLightBorder,
hasDarkBorder,
};
}
interface TwemojiSpecificEmoji { interface TwemojiSpecificEmoji {
unqualified?: string; unqualified?: string;
gender?: number; gender?: number;
@ -117,16 +84,11 @@ export function twemojiToUnicodeInfo(
let gender: undefined | number; let gender: undefined | number;
let skin: undefined | number; let skin: undefined | number;
for (const code of codes) { for (const code of codes) {
if (!gender && code in GENDER_CODES_MAP) { if (code in GENDER_CODES_MAP) {
gender = GENDER_CODES_MAP[code]; gender = GENDER_CODES_MAP[code];
} else if (!skin && code in SKIN_TONE_CODES) { } else if (code in SKIN_TONE_CODES) {
skin = code; skin = code;
} }
// Exit if we have both skin and gender
if (skin && gender) {
break;
}
} }
let mappedCodes: unknown[] = codes; let mappedCodes: unknown[] = codes;
@ -141,8 +103,8 @@ export function twemojiToUnicodeInfo(
// For key emoji, insert the variation selector // For key emoji, insert the variation selector
mappedCodes = [codes[0], VARIATION_SELECTOR_CODE, KEYCAP_CODE]; mappedCodes = [codes[0], VARIATION_SELECTOR_CODE, KEYCAP_CODE];
} else if ( } else if (
(codes.at(0) === SKIER_CODE || codes.at(0) === LEVITATING_PERSON_CODE) && codes.at(0) === SKIER_CODE ||
codes.length > 1 codes.at(0) === LEVITATING_PERSON_CODE
) { ) {
// Twemoji offers more gender and skin options for the skier and levitating person emoji. // Twemoji offers more gender and skin options for the skier and levitating person emoji.
return { return {

View File

@ -1,13 +0,0 @@
import { importEmojiData, importCustomEmojiData } from './loader';
addEventListener('message', handleMessage);
self.postMessage('ready'); // After the worker is ready, notify the main thread
function handleMessage(event: MessageEvent<string>) {
const { data: locale } = event;
if (locale !== 'custom') {
void importEmojiData(locale);
} else {
void importCustomEmojiData();
}
}

View File

@ -1,4 +1,4 @@
import { useCallback, useMemo } from 'react'; import { useCallback } from 'react';
import { defineMessages, useIntl } from 'react-intl'; import { defineMessages, useIntl } from 'react-intl';
@ -21,9 +21,6 @@ import { openModal } from 'mastodon/actions/modal';
import { IconButton } from 'mastodon/components/icon_button'; import { IconButton } from 'mastodon/components/icon_button';
import { useIdentity } from 'mastodon/identity_context'; import { useIdentity } from 'mastodon/identity_context';
import { me } from 'mastodon/initial_state'; import { me } from 'mastodon/initial_state';
import type { Status } from 'mastodon/models/status';
import { makeGetStatus } from 'mastodon/selectors';
import type { RootState } from 'mastodon/store';
import { useAppSelector, useAppDispatch } from 'mastodon/store'; import { useAppSelector, useAppDispatch } from 'mastodon/store';
const messages = defineMessages({ const messages = defineMessages({
@ -50,11 +47,6 @@ const messages = defineMessages({
open: { id: 'status.open', defaultMessage: 'Expand this status' }, open: { id: 'status.open', defaultMessage: 'Expand this status' },
}); });
type GetStatusSelector = (
state: RootState,
props: { id?: string | null; contextType?: string },
) => Status | null;
export const Footer: React.FC<{ export const Footer: React.FC<{
statusId: string; statusId: string;
withOpenButton?: boolean; withOpenButton?: boolean;
@ -64,8 +56,7 @@ export const Footer: React.FC<{
const intl = useIntl(); const intl = useIntl();
const history = useHistory(); const history = useHistory();
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
const getStatus = useMemo(() => makeGetStatus(), []) as GetStatusSelector; const status = useAppSelector((state) => state.statuses.get(statusId));
const status = useAppSelector((state) => getStatus(state, { id: statusId }));
const accountId = status?.get('account') as string | undefined; const accountId = status?.get('account') as string | undefined;
const account = useAppSelector((state) => const account = useAppSelector((state) =>
accountId ? state.accounts.get(accountId) : undefined, accountId ? state.accounts.get(accountId) : undefined,

View File

@ -1,7 +1,7 @@
{ {
"about.blocks": "خوادم تحت الإشراف", "about.blocks": "خوادم تحت الإشراف",
"about.contact": "للاتصال:", "about.contact": "للاتصال:",
"about.default_locale": "افتراضيالافتراضية", "about.default_locale": "الافتراضية",
"about.disclaimer": "ماستدون برنامج حر ومفتوح المصدر وعلامة تجارية لـ Mastodon GmbH.", "about.disclaimer": "ماستدون برنامج حر ومفتوح المصدر وعلامة تجارية لـ Mastodon GmbH.",
"about.domain_blocks.no_reason_available": "السبب غير متوفر", "about.domain_blocks.no_reason_available": "السبب غير متوفر",
"about.domain_blocks.preamble": "يتيح مَستُدون عمومًا لمستخدميه مطالعة المحتوى من المستخدمين من الخواديم الأخرى في الفدرالية والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادوم.", "about.domain_blocks.preamble": "يتيح مَستُدون عمومًا لمستخدميه مطالعة المحتوى من المستخدمين من الخواديم الأخرى في الفدرالية والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادوم.",

View File

@ -8,7 +8,6 @@
"about.domain_blocks.silenced.title": "Ограничено", "about.domain_blocks.silenced.title": "Ограничено",
"about.domain_blocks.suspended.explanation": "Никакви данни от този сървър няма да се обработват, съхраняват или обменят, правещи невъзможно всяко взаимодействие или комуникация с потребители от тези сървъри.", "about.domain_blocks.suspended.explanation": "Никакви данни от този сървър няма да се обработват, съхраняват или обменят, правещи невъзможно всяко взаимодействие или комуникация с потребители от тези сървъри.",
"about.domain_blocks.suspended.title": "Спряно", "about.domain_blocks.suspended.title": "Спряно",
"about.language_label": "Език",
"about.not_available": "Тази информация не е публична на този сървър.", "about.not_available": "Тази информация не е публична на този сървър.",
"about.powered_by": "Децентрализирана социална мрежа, захранвана от {mastodon}", "about.powered_by": "Децентрализирана социална мрежа, захранвана от {mastodon}",
"about.rules": "Правила на сървъра", "about.rules": "Правила на сървъра",
@ -29,7 +28,6 @@
"account.edit_profile": "Редактиране на профила", "account.edit_profile": "Редактиране на профила",
"account.enable_notifications": "Известяване при публикуване от @{name}", "account.enable_notifications": "Известяване при публикуване от @{name}",
"account.endorse": "Представи в профила", "account.endorse": "Представи в профила",
"account.familiar_followers_many": "Последвано от {name1}, {name2}, и {othersCount, plural, one {един друг, когото познавате} other {# други, които познавате}}",
"account.familiar_followers_one": "Последвано от {name1}", "account.familiar_followers_one": "Последвано от {name1}",
"account.familiar_followers_two": "Последвано от {name1} и {name2}", "account.familiar_followers_two": "Последвано от {name1} и {name2}",
"account.featured": "Препоръчано", "account.featured": "Препоръчано",
@ -42,7 +40,6 @@
"account.followers": "Последователи", "account.followers": "Последователи",
"account.followers.empty": "Още никой не следва потребителя.", "account.followers.empty": "Още никой не следва потребителя.",
"account.followers_counter": "{count, plural, one {{counter} последовател} other {{counter} последователи}}", "account.followers_counter": "{count, plural, one {{counter} последовател} other {{counter} последователи}}",
"account.followers_you_know_counter": "{counter} познавате",
"account.following": "Последвано", "account.following": "Последвано",
"account.following_counter": "{count, plural, one {{counter} последван} other {{counter} последвани}}", "account.following_counter": "{count, plural, one {{counter} последван} other {{counter} последвани}}",
"account.follows.empty": "Потребителят още никого не следва.", "account.follows.empty": "Потребителят още никого не следва.",
@ -188,7 +185,7 @@
"community.column_settings.remote_only": "Само отдалечено", "community.column_settings.remote_only": "Само отдалечено",
"compose.language.change": "Смяна на езика", "compose.language.change": "Смяна на езика",
"compose.language.search": "Търсене на езици...", "compose.language.search": "Търсене на езици...",
"compose.published.body": "Публикувано.", "compose.published.body": "Публикувана публикация.",
"compose.published.open": "Отваряне", "compose.published.open": "Отваряне",
"compose.saved.body": "Запазена публикация.", "compose.saved.body": "Запазена публикация.",
"compose_form.direct_message_warning_learn_more": "Още информация", "compose_form.direct_message_warning_learn_more": "Още информация",
@ -218,13 +215,6 @@
"confirmations.delete_list.confirm": "Изтриване", "confirmations.delete_list.confirm": "Изтриване",
"confirmations.delete_list.message": "Наистина ли искате да изтриете завинаги списъка?", "confirmations.delete_list.message": "Наистина ли искате да изтриете завинаги списъка?",
"confirmations.delete_list.title": "Изтривате ли списъка?", "confirmations.delete_list.title": "Изтривате ли списъка?",
"confirmations.discard_draft.confirm": "Изхвърляне и продължаване",
"confirmations.discard_draft.edit.cancel": "Възобновяване на редактиране",
"confirmations.discard_draft.edit.message": "Продължаването ще изхвърли всякакви промени, които сте правили в публикацията, която сега редактирате.",
"confirmations.discard_draft.edit.title": "Изхвърляте ли промените в публикацията си?",
"confirmations.discard_draft.post.cancel": "Възстановка на чернова",
"confirmations.discard_draft.post.message": "Продължаването ще изхвърли публикацията, която сега съставяте.",
"confirmations.discard_draft.post.title": "Изхвърляте ли черновата си публикация?",
"confirmations.discard_edit_media.confirm": "Отхвърляне", "confirmations.discard_edit_media.confirm": "Отхвърляне",
"confirmations.discard_edit_media.message": "Не сте запазили промени на описанието или огледа на мултимедията, отхвърляте ли ги?", "confirmations.discard_edit_media.message": "Не сте запазили промени на описанието или огледа на мултимедията, отхвърляте ли ги?",
"confirmations.follow_to_list.confirm": "Последване и добавяне в списък", "confirmations.follow_to_list.confirm": "Последване и добавяне в списък",
@ -334,15 +324,9 @@
"errors.unexpected_crash.copy_stacktrace": "Копиране на трасето на стека в буферната памет", "errors.unexpected_crash.copy_stacktrace": "Копиране на трасето на стека в буферната памет",
"errors.unexpected_crash.report_issue": "Сигнал за проблем", "errors.unexpected_crash.report_issue": "Сигнал за проблем",
"explore.suggested_follows": "Хора", "explore.suggested_follows": "Хора",
"explore.title": "Вървежно",
"explore.trending_links": "Новини", "explore.trending_links": "Новини",
"explore.trending_statuses": "Публикации", "explore.trending_statuses": "Публикации",
"explore.trending_tags": "Хаштагове", "explore.trending_tags": "Хаштагове",
"featured_carousel.header": "{count, plural, one {закачена публикация} other {закачени публикации}}",
"featured_carousel.next": "Напред",
"featured_carousel.post": "Публикация",
"featured_carousel.previous": "Назад",
"featured_carousel.slide": "{index} от {total}",
"filter_modal.added.context_mismatch_explanation": "Тази категория филтър не е приложима към контекста, в който достъпвате тази публикация. Ако желаете да филтрирате публикациите в този контекст, трябва да изберете друг филтър.", "filter_modal.added.context_mismatch_explanation": "Тази категория филтър не е приложима към контекста, в който достъпвате тази публикация. Ако желаете да филтрирате публикациите в този контекст, трябва да изберете друг филтър.",
"filter_modal.added.context_mismatch_title": "Несъвпадащ контекст!", "filter_modal.added.context_mismatch_title": "Несъвпадащ контекст!",
"filter_modal.added.expired_explanation": "Валидността на тази категория филтър е изтекла. Сменете срока на валидност, за да я приложите.", "filter_modal.added.expired_explanation": "Валидността на тази категория филтър е изтекла. Сменете срока на валидност, за да я приложите.",
@ -421,7 +405,6 @@
"hints.profiles.see_more_posts": "Преглед на още публикации на {domain}", "hints.profiles.see_more_posts": "Преглед на още публикации на {domain}",
"hints.threads.replies_may_be_missing": "Отговори от други сървъри може да липсват.", "hints.threads.replies_may_be_missing": "Отговори от други сървъри може да липсват.",
"hints.threads.see_more": "Преглед на още отговори на {domain}", "hints.threads.see_more": "Преглед на още отговори на {domain}",
"home.column_settings.show_quotes": "Показване на цитираното",
"home.column_settings.show_reblogs": "Показване на подсилванията", "home.column_settings.show_reblogs": "Показване на подсилванията",
"home.column_settings.show_replies": "Показване на отговорите", "home.column_settings.show_replies": "Показване на отговорите",
"home.hide_announcements": "Скриване на оповестяванията", "home.hide_announcements": "Скриване на оповестяванията",
@ -544,10 +527,8 @@
"mute_modal.you_wont_see_mentions": "Няма да виждате споменаващите ги публикации.", "mute_modal.you_wont_see_mentions": "Няма да виждате споменаващите ги публикации.",
"mute_modal.you_wont_see_posts": "Още могат да виждат публикациите ви, но вие техните не.", "mute_modal.you_wont_see_posts": "Още могат да виждат публикациите ви, но вие техните не.",
"navigation_bar.about": "Относно", "navigation_bar.about": "Относно",
"navigation_bar.account_settings": "Парола и сигурност",
"navigation_bar.administration": "Администрация", "navigation_bar.administration": "Администрация",
"navigation_bar.advanced_interface": "Отваряне в разширен уебинтерфейс", "navigation_bar.advanced_interface": "Отваряне в разширен уебинтерфейс",
"navigation_bar.automated_deletion": "Автоматично изтриване на публикации",
"navigation_bar.blocks": "Блокирани потребители", "navigation_bar.blocks": "Блокирани потребители",
"navigation_bar.bookmarks": "Отметки", "navigation_bar.bookmarks": "Отметки",
"navigation_bar.direct": "Частни споменавания", "navigation_bar.direct": "Частни споменавания",
@ -557,17 +538,13 @@
"navigation_bar.follow_requests": "Заявки за последване", "navigation_bar.follow_requests": "Заявки за последване",
"navigation_bar.followed_tags": "Последвани хаштагове", "navigation_bar.followed_tags": "Последвани хаштагове",
"navigation_bar.follows_and_followers": "Последвания и последователи", "navigation_bar.follows_and_followers": "Последвания и последователи",
"navigation_bar.import_export": "Внасяне и изнасяне",
"navigation_bar.lists": "Списъци", "navigation_bar.lists": "Списъци",
"navigation_bar.logout": "Излизане", "navigation_bar.logout": "Излизане",
"navigation_bar.moderation": "Модериране", "navigation_bar.moderation": "Модериране",
"navigation_bar.more": "Още",
"navigation_bar.mutes": "Заглушени потребители", "navigation_bar.mutes": "Заглушени потребители",
"navigation_bar.opened_in_classic_interface": "Публикации, акаунти и други особени страници се отварят по подразбиране в класическия мрежови интерфейс.", "navigation_bar.opened_in_classic_interface": "Публикации, акаунти и други особени страници се отварят по подразбиране в класическия мрежови интерфейс.",
"navigation_bar.preferences": "Предпочитания", "navigation_bar.preferences": "Предпочитания",
"navigation_bar.privacy_and_reach": "Поверителност и обхват",
"navigation_bar.search": "Търсене", "navigation_bar.search": "Търсене",
"navigation_bar.search_trends": "Търсене / Вървежно",
"not_signed_in_indicator.not_signed_in": "Трябва ви вход за достъп до ресурса.", "not_signed_in_indicator.not_signed_in": "Трябва ви вход за достъп до ресурса.",
"notification.admin.report": "{name} докладва {target}", "notification.admin.report": "{name} докладва {target}",
"notification.admin.report_account": "{name} докладва {count, plural, one {публикация} other {# публикации}} от {target} за {category}", "notification.admin.report_account": "{name} докладва {count, plural, one {публикация} other {# публикации}} от {target} за {category}",
@ -794,7 +771,6 @@
"report_notification.categories.violation": "Нарушение на правилото", "report_notification.categories.violation": "Нарушение на правилото",
"report_notification.categories.violation_sentence": "нарушение на правило", "report_notification.categories.violation_sentence": "нарушение на правило",
"report_notification.open": "Отваряне на доклада", "report_notification.open": "Отваряне на доклада",
"search.clear": "Изчистване на търсенето",
"search.no_recent_searches": "Няма скорошни търсения", "search.no_recent_searches": "Няма скорошни търсения",
"search.placeholder": "Търсене", "search.placeholder": "Търсене",
"search.quick_action.account_search": "Съвпадение на профили {x}", "search.quick_action.account_search": "Съвпадение на профили {x}",
@ -861,13 +837,6 @@
"status.mute_conversation": "Заглушаване на разговора", "status.mute_conversation": "Заглушаване на разговора",
"status.open": "Разширяване на публикацията", "status.open": "Разширяване на публикацията",
"status.pin": "Закачане в профила", "status.pin": "Закачане в профила",
"status.quote_error.filtered": "Скрито поради един от филтрите ви",
"status.quote_error.not_found": "Публикацията не може да се показва.",
"status.quote_error.pending_approval": "Публикацията чака одобрение от първоначалния автор.",
"status.quote_error.rejected": "Публикацията не може да се показва като първоначалния автор не позволява цитирането ѝ.",
"status.quote_error.removed": "Публикацията е премахната от автора ѝ.",
"status.quote_error.unauthorized": "Публикацията не може да се показва, тъй като не сте упълномощени да я гледате.",
"status.quote_post_author": "Публикация от {name}",
"status.read_more": "Още за четене", "status.read_more": "Още за четене",
"status.reblog": "Подсилване", "status.reblog": "Подсилване",
"status.reblog_private": "Подсилване с оригиналната видимост", "status.reblog_private": "Подсилване с оригиналната видимост",
@ -897,10 +866,7 @@
"subscribed_languages.save": "Запазване на промените", "subscribed_languages.save": "Запазване на промените",
"subscribed_languages.target": "Промяна на абонираните езици за {target}", "subscribed_languages.target": "Промяна на абонираните езици за {target}",
"tabs_bar.home": "Начало", "tabs_bar.home": "Начало",
"tabs_bar.menu": "Меню",
"tabs_bar.notifications": "Известия", "tabs_bar.notifications": "Известия",
"tabs_bar.publish": "Нова публикация",
"tabs_bar.search": "Търсене",
"terms_of_service.effective_as_of": "В сила от {date}", "terms_of_service.effective_as_of": "В сила от {date}",
"terms_of_service.title": "Условия на услугата", "terms_of_service.title": "Условия на услугата",
"terms_of_service.upcoming_changes_on": "Предстоящи промени на {date}", "terms_of_service.upcoming_changes_on": "Предстоящи промени на {date}",

View File

@ -83,7 +83,7 @@
"account.unendorse": "Vis ikke på profil", "account.unendorse": "Vis ikke på profil",
"account.unfollow": "Følg ikke længere", "account.unfollow": "Følg ikke længere",
"account.unmute": "Vis @{name} igen", "account.unmute": "Vis @{name} igen",
"account.unmute_notifications_short": "Vis notifikationer igen", "account.unmute_notifications_short": "Tænd for notifikationer",
"account.unmute_short": "Vis igen", "account.unmute_short": "Vis igen",
"account_note.placeholder": "Klik for at tilføje notat", "account_note.placeholder": "Klik for at tilføje notat",
"admin.dashboard.daily_retention": "Brugerfastholdelsesrate pr. dag efter tilmelding", "admin.dashboard.daily_retention": "Brugerfastholdelsesrate pr. dag efter tilmelding",
@ -130,7 +130,7 @@
"attachments_list.unprocessed": "(ubehandlet)", "attachments_list.unprocessed": "(ubehandlet)",
"audio.hide": "Skjul lyd", "audio.hide": "Skjul lyd",
"block_modal.remote_users_caveat": "Serveren {domain} vil blive bedt om at respektere din beslutning. Overholdelse er dog ikke garanteret, da nogle servere kan håndtere blokke forskelligt. Offentlige indlæg kan stadig være synlige for ikke-indloggede brugere.", "block_modal.remote_users_caveat": "Serveren {domain} vil blive bedt om at respektere din beslutning. Overholdelse er dog ikke garanteret, da nogle servere kan håndtere blokke forskelligt. Offentlige indlæg kan stadig være synlige for ikke-indloggede brugere.",
"block_modal.show_less": "Vis mindre", "block_modal.show_less": "Vis færre",
"block_modal.show_more": "Vis flere", "block_modal.show_more": "Vis flere",
"block_modal.they_cant_mention": "Vedkommende kan ikke omtale eller følge dig.", "block_modal.they_cant_mention": "Vedkommende kan ikke omtale eller følge dig.",
"block_modal.they_cant_see_posts": "Vedkommende kan ikke se dine indlæg, og du vil ikke se vedkommendes.", "block_modal.they_cant_see_posts": "Vedkommende kan ikke se dine indlæg, og du vil ikke se vedkommendes.",
@ -239,9 +239,9 @@
"confirmations.missing_alt_text.secondary": "Læg op alligevel", "confirmations.missing_alt_text.secondary": "Læg op alligevel",
"confirmations.missing_alt_text.title": "Tilføj alt-tekst?", "confirmations.missing_alt_text.title": "Tilføj alt-tekst?",
"confirmations.mute.confirm": "Skjul", "confirmations.mute.confirm": "Skjul",
"confirmations.redraft.confirm": "Slet og omskriv", "confirmations.redraft.confirm": "Slet og omformulér",
"confirmations.redraft.message": "Sikker på, at dette indlæg skal slettes og omskrives? Favoritter og fremhævelser går tabt, og svar til det oprindelige indlæg mister tilknytningen.", "confirmations.redraft.message": "Sikker på, at dette indlæg skal slettes og omskrives? Favoritter og fremhævelser går tabt, og svar til det oprindelige indlæg mister tilknytningen.",
"confirmations.redraft.title": "Slet og omskriv indlæg?", "confirmations.redraft.title": "Slet og omformulér indlæg?",
"confirmations.remove_from_followers.confirm": "Fjern følger", "confirmations.remove_from_followers.confirm": "Fjern følger",
"confirmations.remove_from_followers.message": "{name} vil ikke længere følge dig. Er du sikker på, at du vil fortsætte?", "confirmations.remove_from_followers.message": "{name} vil ikke længere følge dig. Er du sikker på, at du vil fortsætte?",
"confirmations.remove_from_followers.title": "Fjern følger?", "confirmations.remove_from_followers.title": "Fjern følger?",
@ -279,14 +279,14 @@
"domain_pill.activitypub_lets_connect": "Det muliggører at forbinde og interagere med folk, ikke kun på Mastodon, men også på tværs af forskellige sociale apps.", "domain_pill.activitypub_lets_connect": "Det muliggører at forbinde og interagere med folk, ikke kun på Mastodon, men også på tværs af forskellige sociale apps.",
"domain_pill.activitypub_like_language": "ActivityPub er \"sproget\", som Mastodon taler med andre sociale netværk.", "domain_pill.activitypub_like_language": "ActivityPub er \"sproget\", som Mastodon taler med andre sociale netværk.",
"domain_pill.server": "Server", "domain_pill.server": "Server",
"domain_pill.their_handle": "Deres handle:", "domain_pill.their_handle": "Deres greb:",
"domain_pill.their_server": "Det digitale hjem, hvor alle indlæggene findes.", "domain_pill.their_server": "Det digitale hjem, hvor alle indlæggene findes.",
"domain_pill.their_username": "Entydig identifikator på denne server. Det er muligt at finde brugere med samme brugernavn på forskellige servere.", "domain_pill.their_username": "Entydig identifikator på denne server. Det er muligt at finde brugere med samme brugernavn på forskellige servere.",
"domain_pill.username": "Brugernavn", "domain_pill.username": "Brugernavn",
"domain_pill.whats_in_a_handle": "Hvad indeholder et handle?", "domain_pill.whats_in_a_handle": "Hvad er der i et greb?",
"domain_pill.who_they_are": "Da et handle fortæller, hvem nogen er, og hvor de er, kan du interagere med folk på tværs af det sociale net af <button>ActivityPub-drevne platforme</button>.", "domain_pill.who_they_are": "Da et handle fortæller, hvem nogen er, og hvor de er, kan du interagere med folk på tværs af det sociale net af <button>ActivityPub-drevne platforme</button>.",
"domain_pill.who_you_are": "Fordi dit handle fortæller, hvem du er, og hvor du er, kan du interagere med folk på tværs af det sociale net af <button>ActivityPub-drevne platforme</button>.", "domain_pill.who_you_are": "Fordi dit handle fortæller, hvem du er, og hvor du er, kan du interagere med folk på tværs af det sociale net af <button>ActivityPub-drevne platforme</button>.",
"domain_pill.your_handle": "Dit handle:", "domain_pill.your_handle": "Dit greb:",
"domain_pill.your_server": "Dit digitale hjem, hvor alle dine indlæg lever. Synes ikke om den her server? Du kan til enhver tid rykke over på en anden server og beholde dine følgere.", "domain_pill.your_server": "Dit digitale hjem, hvor alle dine indlæg lever. Synes ikke om den her server? Du kan til enhver tid rykke over på en anden server og beholde dine følgere.",
"domain_pill.your_username": "Din entydige identifikator på denne server. Det er muligt at finde brugere med samme brugernavn på forskellige servere.", "domain_pill.your_username": "Din entydige identifikator på denne server. Det er muligt at finde brugere med samme brugernavn på forskellige servere.",
"embed.instructions": "Indlejr dette indlæg på din hjemmeside ved at kopiere nedenstående kode.", "embed.instructions": "Indlejr dette indlæg på din hjemmeside ved at kopiere nedenstående kode.",
@ -386,7 +386,7 @@
"follow_suggestions.similar_to_recently_followed_longer": "Minder om profiler, du har fulgt for nylig", "follow_suggestions.similar_to_recently_followed_longer": "Minder om profiler, du har fulgt for nylig",
"follow_suggestions.view_all": "Vis alle", "follow_suggestions.view_all": "Vis alle",
"follow_suggestions.who_to_follow": "Hvem, som skal følges", "follow_suggestions.who_to_follow": "Hvem, som skal følges",
"followed_tags": "Hashtags, som følges", "followed_tags": "Hashtag, som følges",
"footer.about": "Om", "footer.about": "Om",
"footer.directory": "Profiloversigt", "footer.directory": "Profiloversigt",
"footer.get_app": "Hent appen", "footer.get_app": "Hent appen",
@ -414,7 +414,7 @@
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}} i dag", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}} i dag",
"hashtag.feature": "Fremhæv på profil", "hashtag.feature": "Fremhæv på profil",
"hashtag.follow": "Følg hashtag", "hashtag.follow": "Følg hashtag",
"hashtag.mute": "Skjul #{hashtag}", "hashtag.mute": "Tavsgør #{hashtag}",
"hashtag.unfeature": "Fremhæv ikke på profil", "hashtag.unfeature": "Fremhæv ikke på profil",
"hashtag.unfollow": "Følg ikke længere hashtag", "hashtag.unfollow": "Følg ikke længere hashtag",
"hashtags.and_other": "…og {count, plural, one {}other {# flere}}", "hashtags.and_other": "…og {count, plural, one {}other {# flere}}",
@ -543,10 +543,10 @@
"mute_modal.hide_options": "Skjul valgmuligheder", "mute_modal.hide_options": "Skjul valgmuligheder",
"mute_modal.indefinite": "Indtil jeg vælger at se dem igen", "mute_modal.indefinite": "Indtil jeg vælger at se dem igen",
"mute_modal.show_options": "Vis valgmuligheder", "mute_modal.show_options": "Vis valgmuligheder",
"mute_modal.they_can_mention_and_follow": "Vedkommende kan nævne og følge dig, men vil ikke blive vist.", "mute_modal.they_can_mention_and_follow": "De kan omtale og følge dig, men du vil ikke se dem.",
"mute_modal.they_wont_know": "De vil ikke vide, at de er blevet skjult.", "mute_modal.they_wont_know": "De vil ikke vide, at de er blevet skjult.",
"mute_modal.title": "Skjul bruger?", "mute_modal.title": "Skjul bruger?",
"mute_modal.you_wont_see_mentions": "Indlæg, som nævner vedkommende, vises ikke.", "mute_modal.you_wont_see_mentions": "Du vil ikke se indlæg som omtaler dem.",
"mute_modal.you_wont_see_posts": "De kan stadig se dine indlæg, men du vil ikke se deres.", "mute_modal.you_wont_see_posts": "De kan stadig se dine indlæg, men du vil ikke se deres.",
"navigation_bar.about": "Om", "navigation_bar.about": "Om",
"navigation_bar.account_settings": "Adgangskode og sikkerhed", "navigation_bar.account_settings": "Adgangskode og sikkerhed",
@ -560,7 +560,7 @@
"navigation_bar.favourites": "Favoritter", "navigation_bar.favourites": "Favoritter",
"navigation_bar.filters": "Skjulte ord", "navigation_bar.filters": "Skjulte ord",
"navigation_bar.follow_requests": "Følgeanmodninger", "navigation_bar.follow_requests": "Følgeanmodninger",
"navigation_bar.followed_tags": "Hashtags, som følges", "navigation_bar.followed_tags": "Hashtag, som følges",
"navigation_bar.follows_and_followers": "Følges og følgere", "navigation_bar.follows_and_followers": "Følges og følgere",
"navigation_bar.import_export": "Import og eksport", "navigation_bar.import_export": "Import og eksport",
"navigation_bar.lists": "Lister", "navigation_bar.lists": "Lister",
@ -686,11 +686,11 @@
"notifications.policy.filter_limited_accounts_hint": "Begrænset af servermoderatorer", "notifications.policy.filter_limited_accounts_hint": "Begrænset af servermoderatorer",
"notifications.policy.filter_limited_accounts_title": "Modererede konti", "notifications.policy.filter_limited_accounts_title": "Modererede konti",
"notifications.policy.filter_new_accounts.hint": "Oprettet indenfor {days, plural, one {den seneste dag} other {de seneste # dage}}", "notifications.policy.filter_new_accounts.hint": "Oprettet indenfor {days, plural, one {den seneste dag} other {de seneste # dage}}",
"notifications.policy.filter_new_accounts_title": "Nye konti", "notifications.policy.filter_new_accounts_title": "Ny konti",
"notifications.policy.filter_not_followers_hint": "Inklusiv personer, som har fulgt dig {days, plural, one {mindre end én dag} other {mindre end # dage}}", "notifications.policy.filter_not_followers_hint": "Inklusiv personer, som har fulgt dig {days, plural, one {mindre end én dag} other {færre end # dage}}",
"notifications.policy.filter_not_followers_title": "Personer, som ikke følger dig", "notifications.policy.filter_not_followers_title": "Folk, som ikke følger dig",
"notifications.policy.filter_not_following_hint": "Indtil du manuelt godkender dem", "notifications.policy.filter_not_following_hint": "Indtil du manuelt godkender dem",
"notifications.policy.filter_not_following_title": "Personer, du ikke følger", "notifications.policy.filter_not_following_title": "Folk, du ikke følger",
"notifications.policy.filter_private_mentions_hint": "Filtreret, medmindre det er i svar på egen omtale, eller hvis afsenderen følges", "notifications.policy.filter_private_mentions_hint": "Filtreret, medmindre det er i svar på egen omtale, eller hvis afsenderen følges",
"notifications.policy.filter_private_mentions_title": "Uopfordrede private omtaler", "notifications.policy.filter_private_mentions_title": "Uopfordrede private omtaler",
"notifications.policy.title": "Håndtér notifikationer fra…", "notifications.policy.title": "Håndtér notifikationer fra…",
@ -830,7 +830,7 @@
"search_results.see_all": "Vis alle", "search_results.see_all": "Vis alle",
"search_results.statuses": "Indlæg", "search_results.statuses": "Indlæg",
"search_results.title": "Søg efter \"{q}\"", "search_results.title": "Søg efter \"{q}\"",
"server_banner.about_active_users": "Personer, som brugte denne server de seneste 30 dage (månedlige aktive brugere)", "server_banner.about_active_users": "Folk, som brugte denne server de seneste 30 dage (månedlige aktive brugere)",
"server_banner.active_users": "aktive brugere", "server_banner.active_users": "aktive brugere",
"server_banner.administered_by": "Håndteres af:", "server_banner.administered_by": "Håndteres af:",
"server_banner.is_one_of_many": "{domain} er en af de mange uafhængige Mastodon-servere, du kan bruge for at deltage i fediverset.", "server_banner.is_one_of_many": "{domain} er en af de mange uafhængige Mastodon-servere, du kan bruge for at deltage i fediverset.",
@ -885,10 +885,10 @@
"status.reblogged_by": "{name} fremhævede", "status.reblogged_by": "{name} fremhævede",
"status.reblogs": "{count, plural, one {# fremhævelse} other {# fremhævelser}}", "status.reblogs": "{count, plural, one {# fremhævelse} other {# fremhævelser}}",
"status.reblogs.empty": "Ingen har endnu fremhævet dette indlæg. Når nogen gør, vil det fremgå hér.", "status.reblogs.empty": "Ingen har endnu fremhævet dette indlæg. Når nogen gør, vil det fremgå hér.",
"status.redraft": "Slet og omskriv", "status.redraft": "Slet og omformulér",
"status.remove_bookmark": "Fjern bogmærke", "status.remove_bookmark": "Fjern bogmærke",
"status.remove_favourite": "Fjern fra favoritter", "status.remove_favourite": "Fjern fra favoritter",
"status.replied_in_thread": "Svarede i tråd", "status.replied_in_thread": "Svaret i tråd",
"status.replied_to": "Svarede {name}", "status.replied_to": "Svarede {name}",
"status.reply": "Besvar", "status.reply": "Besvar",
"status.replyAll": "Svar alle", "status.replyAll": "Svar alle",
@ -902,7 +902,7 @@
"status.translate": "Oversæt", "status.translate": "Oversæt",
"status.translated_from_with": "Oversat fra {lang} ved brug af {provider}", "status.translated_from_with": "Oversat fra {lang} ved brug af {provider}",
"status.uncached_media_warning": "Ingen forhåndsvisning", "status.uncached_media_warning": "Ingen forhåndsvisning",
"status.unmute_conversation": "Vis samtale", "status.unmute_conversation": "Genaktivér samtale",
"status.unpin": "Frigør fra profil", "status.unpin": "Frigør fra profil",
"subscribed_languages.lead": "Efter ændringen vises kun indlæg på de valgte sprog på din hjem- og listetidslinje. Vælger du ingen, vil du modtage indlæg på alle sprog.", "subscribed_languages.lead": "Efter ændringen vises kun indlæg på de valgte sprog på din hjem- og listetidslinje. Vælger du ingen, vil du modtage indlæg på alle sprog.",
"subscribed_languages.save": "Gem ændringer", "subscribed_languages.save": "Gem ændringer",

View File

@ -219,13 +219,6 @@
"confirmations.delete_list.confirm": "Delete", "confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
"confirmations.delete_list.title": "Delete list?", "confirmations.delete_list.title": "Delete list?",
"confirmations.discard_draft.confirm": "Discard and continue",
"confirmations.discard_draft.edit.cancel": "Resume editing",
"confirmations.discard_draft.edit.message": "Continuing will discard any changes you have made to the post you are currently editing.",
"confirmations.discard_draft.edit.title": "Discard changes to your post?",
"confirmations.discard_draft.post.cancel": "Resume draft",
"confirmations.discard_draft.post.message": "Continuing will discard the post you are currently composing.",
"confirmations.discard_draft.post.title": "Discard your draft post?",
"confirmations.discard_edit_media.confirm": "Discard", "confirmations.discard_edit_media.confirm": "Discard",
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.follow_to_list.confirm": "Follow and add to list", "confirmations.follow_to_list.confirm": "Follow and add to list",
@ -337,7 +330,6 @@
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Report issue",
"explore.suggested_follows": "People", "explore.suggested_follows": "People",
"explore.title": "Trending",
"explore.trending_links": "News", "explore.trending_links": "News",
"explore.trending_statuses": "Posts", "explore.trending_statuses": "Posts",
"explore.trending_tags": "Hashtags", "explore.trending_tags": "Hashtags",
@ -549,10 +541,8 @@
"mute_modal.you_wont_see_mentions": "You won't see posts that mention them.", "mute_modal.you_wont_see_mentions": "You won't see posts that mention them.",
"mute_modal.you_wont_see_posts": "They can still see your posts, but you won't see theirs.", "mute_modal.you_wont_see_posts": "They can still see your posts, but you won't see theirs.",
"navigation_bar.about": "About", "navigation_bar.about": "About",
"navigation_bar.account_settings": "Password and security",
"navigation_bar.administration": "Administration", "navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Open in advanced web interface", "navigation_bar.advanced_interface": "Open in advanced web interface",
"navigation_bar.automated_deletion": "Automated post deletion",
"navigation_bar.blocks": "Blocked users", "navigation_bar.blocks": "Blocked users",
"navigation_bar.bookmarks": "Bookmarks", "navigation_bar.bookmarks": "Bookmarks",
"navigation_bar.direct": "Private mentions", "navigation_bar.direct": "Private mentions",
@ -562,23 +552,13 @@
"navigation_bar.follow_requests": "Follow requests", "navigation_bar.follow_requests": "Follow requests",
"navigation_bar.followed_tags": "Followed hashtags", "navigation_bar.followed_tags": "Followed hashtags",
"navigation_bar.follows_and_followers": "Follows and followers", "navigation_bar.follows_and_followers": "Follows and followers",
"navigation_bar.import_export": "Import and export",
"navigation_bar.lists": "Lists", "navigation_bar.lists": "Lists",
"navigation_bar.live_feed_local": "Live feed (local)",
"navigation_bar.live_feed_public": "Live feed (public)",
"navigation_bar.logout": "Logout", "navigation_bar.logout": "Logout",
"navigation_bar.moderation": "Moderation", "navigation_bar.moderation": "Moderation",
"navigation_bar.more": "More",
"navigation_bar.mutes": "Muted users", "navigation_bar.mutes": "Muted users",
"navigation_bar.opened_in_classic_interface": "Posts, accounts, and other specific pages are opened by default in the classic web interface.", "navigation_bar.opened_in_classic_interface": "Posts, accounts, and other specific pages are opened by default in the classic web interface.",
"navigation_bar.preferences": "Preferences", "navigation_bar.preferences": "Preferences",
"navigation_bar.privacy_and_reach": "Privacy and reach",
"navigation_bar.search": "Search", "navigation_bar.search": "Search",
"navigation_bar.search_trends": "Search / Trending",
"navigation_panel.collapse_followed_tags": "Collapse followed hashtags menu",
"navigation_panel.collapse_lists": "Collapse list menu",
"navigation_panel.expand_followed_tags": "Expand followed hashtags menu",
"navigation_panel.expand_lists": "Expand list menu",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.report": "{name} reported {target}", "notification.admin.report": "{name} reported {target}",
"notification.admin.report_account": "{name} reported {count, plural, one {one post} other {# posts}} from {target} for {category}", "notification.admin.report_account": "{name} reported {count, plural, one {one post} other {# posts}} from {target} for {category}",
@ -805,7 +785,6 @@
"report_notification.categories.violation": "Rule violation", "report_notification.categories.violation": "Rule violation",
"report_notification.categories.violation_sentence": "rule violation", "report_notification.categories.violation_sentence": "rule violation",
"report_notification.open": "Open report", "report_notification.open": "Open report",
"search.clear": "Clear search",
"search.no_recent_searches": "No recent searches", "search.no_recent_searches": "No recent searches",
"search.placeholder": "Search", "search.placeholder": "Search",
"search.quick_action.account_search": "Profiles matching {x}", "search.quick_action.account_search": "Profiles matching {x}",
@ -908,10 +887,7 @@
"subscribed_languages.save": "Save changes", "subscribed_languages.save": "Save changes",
"subscribed_languages.target": "Change subscribed languages for {target}", "subscribed_languages.target": "Change subscribed languages for {target}",
"tabs_bar.home": "Home", "tabs_bar.home": "Home",
"tabs_bar.menu": "Menu",
"tabs_bar.notifications": "Notifications", "tabs_bar.notifications": "Notifications",
"tabs_bar.publish": "New Post",
"tabs_bar.search": "Search",
"terms_of_service.effective_as_of": "Effective as of {date}", "terms_of_service.effective_as_of": "Effective as of {date}",
"terms_of_service.title": "Terms of Service", "terms_of_service.title": "Terms of Service",
"terms_of_service.upcoming_changes_on": "Upcoming changes on {date}", "terms_of_service.upcoming_changes_on": "Upcoming changes on {date}",

View File

@ -327,14 +327,10 @@
"errors.unexpected_crash.copy_stacktrace": "Kopiatu irteera arbelera", "errors.unexpected_crash.copy_stacktrace": "Kopiatu irteera arbelera",
"errors.unexpected_crash.report_issue": "Eman arazoaren berri", "errors.unexpected_crash.report_issue": "Eman arazoaren berri",
"explore.suggested_follows": "Jendea", "explore.suggested_follows": "Jendea",
"explore.title": "Joerak",
"explore.trending_links": "Berriak", "explore.trending_links": "Berriak",
"explore.trending_statuses": "Tutak", "explore.trending_statuses": "Tutak",
"explore.trending_tags": "Traolak", "explore.trending_tags": "Traolak",
"featured_carousel.next": "Hurrengoa",
"featured_carousel.post": "Argitaratu",
"featured_carousel.previous": "Aurrekoa", "featured_carousel.previous": "Aurrekoa",
"featured_carousel.slide": "{total}-tik {index}",
"filter_modal.added.context_mismatch_explanation": "Iragazki-kategoria hau ez zaio aplikatzen bidalketa honetara sartzeko erabili duzun testuinguruari. Bidalketa testuinguru horretan ere iragaztea nahi baduzu, iragazkia editatu beharko duzu.", "filter_modal.added.context_mismatch_explanation": "Iragazki-kategoria hau ez zaio aplikatzen bidalketa honetara sartzeko erabili duzun testuinguruari. Bidalketa testuinguru horretan ere iragaztea nahi baduzu, iragazkia editatu beharko duzu.",
"filter_modal.added.context_mismatch_title": "Testuingurua ez dator bat!", "filter_modal.added.context_mismatch_title": "Testuingurua ez dator bat!",
"filter_modal.added.expired_explanation": "Iragazki kategoria hau iraungi da, eragina izan dezan bere iraungitze-data aldatu beharko duzu.", "filter_modal.added.expired_explanation": "Iragazki kategoria hau iraungi da, eragina izan dezan bere iraungitze-data aldatu beharko duzu.",
@ -387,8 +383,6 @@
"generic.saved": "Gordea", "generic.saved": "Gordea",
"getting_started.heading": "Menua", "getting_started.heading": "Menua",
"hashtag.admin_moderation": "#{name}-(r)en moderazio-interfazea ireki", "hashtag.admin_moderation": "#{name}-(r)en moderazio-interfazea ireki",
"hashtag.browse": "Arakatu bidalketak #{hashtag}(e)n",
"hashtag.browse_from_account": "Arakatu @{name}(r)en bidalketak #{hashtag}(e)n",
"hashtag.column_header.tag_mode.all": "eta {osagarria}", "hashtag.column_header.tag_mode.all": "eta {osagarria}",
"hashtag.column_header.tag_mode.any": "edo {osagarria}", "hashtag.column_header.tag_mode.any": "edo {osagarria}",
"hashtag.column_header.tag_mode.none": "gabe {osagarria}", "hashtag.column_header.tag_mode.none": "gabe {osagarria}",
@ -401,10 +395,7 @@
"hashtag.counter_by_accounts": "{count, plural, one {{counter} parte-hartzaile} other {{counter} parte-hartzaile}}", "hashtag.counter_by_accounts": "{count, plural, one {{counter} parte-hartzaile} other {{counter} parte-hartzaile}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} argitalpen} other {{counter} argitalpen}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} argitalpen} other {{counter} argitalpen}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} argitalpen} other {{counter} argitalpen}} gaur", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} argitalpen} other {{counter} argitalpen}} gaur",
"hashtag.feature": "Nabarmendu profilean",
"hashtag.follow": "Jarraitu traolari", "hashtag.follow": "Jarraitu traolari",
"hashtag.mute": "Mututu #{hashtag}",
"hashtag.unfeature": "Ez nabarmendu profilean",
"hashtag.unfollow": "Utzi traola jarraitzeari", "hashtag.unfollow": "Utzi traola jarraitzeari",
"hashtags.and_other": "…eta {count, plural, one {}other {# gehiago}}", "hashtags.and_other": "…eta {count, plural, one {}other {# gehiago}}",
"hints.profiles.followers_may_be_missing": "Baliteke profil honen jarraitzaile guztiak ez agertzea.", "hints.profiles.followers_may_be_missing": "Baliteke profil honen jarraitzaile guztiak ez agertzea.",
@ -415,7 +406,6 @@
"hints.profiles.see_more_posts": "Ikusi bidalketa gehiago {domain}-(e)n", "hints.profiles.see_more_posts": "Ikusi bidalketa gehiago {domain}-(e)n",
"hints.threads.replies_may_be_missing": "Baliteke beste zerbitzari batzuen erantzun batzuk ez erakustea.", "hints.threads.replies_may_be_missing": "Baliteke beste zerbitzari batzuen erantzun batzuk ez erakustea.",
"hints.threads.see_more": "Ikusi erantzun gehiago {domain}-(e)n", "hints.threads.see_more": "Ikusi erantzun gehiago {domain}-(e)n",
"home.column_settings.show_quotes": "Erakutsi aipamenak",
"home.column_settings.show_reblogs": "Erakutsi bultzadak", "home.column_settings.show_reblogs": "Erakutsi bultzadak",
"home.column_settings.show_replies": "Erakutsi erantzunak", "home.column_settings.show_replies": "Erakutsi erantzunak",
"home.hide_announcements": "Ezkutatu iragarpenak", "home.hide_announcements": "Ezkutatu iragarpenak",
@ -434,11 +424,6 @@
"ignore_notifications_modal.not_followers_title": "Jarraitzen ez zaituzten pertsonen jakinarazpenei ez ikusiarena egin?", "ignore_notifications_modal.not_followers_title": "Jarraitzen ez zaituzten pertsonen jakinarazpenei ez ikusiarena egin?",
"ignore_notifications_modal.not_following_title": "Jarraitzen ez dituzun pertsonen jakinarazpenei ez ikusiarena egin?", "ignore_notifications_modal.not_following_title": "Jarraitzen ez dituzun pertsonen jakinarazpenei ez ikusiarena egin?",
"ignore_notifications_modal.private_mentions_title": "Eskatu gabeko aipamen pribatuen jakinarazpenei ez ikusiarena egin?", "ignore_notifications_modal.private_mentions_title": "Eskatu gabeko aipamen pribatuen jakinarazpenei ez ikusiarena egin?",
"info_button.label": "Laguntza",
"interaction_modal.action.favourite": "Jarraitzeko, zure kontutik atsegindu behar duzu.",
"interaction_modal.action.follow": "Jarraitzeko zure kontutik jarraitu behar duzu.",
"interaction_modal.action.reply": "Jarraitzeko zure kontutik erantzun behar duzu.",
"interaction_modal.action.vote": "Jarraitzeko, zure kontutik bozkatu behar duzu.",
"interaction_modal.go": "Joan", "interaction_modal.go": "Joan",
"interaction_modal.no_account_yet": "Ez al duzu konturik oraindik?", "interaction_modal.no_account_yet": "Ez al duzu konturik oraindik?",
"interaction_modal.on_another_server": "Beste zerbitzari batean", "interaction_modal.on_another_server": "Beste zerbitzari batean",
@ -483,14 +468,11 @@
"keyboard_shortcuts.toggle_hidden": "testua erakustea/ezkutatzea abisu baten atzean", "keyboard_shortcuts.toggle_hidden": "testua erakustea/ezkutatzea abisu baten atzean",
"keyboard_shortcuts.toggle_sensitivity": "multimedia erakutsi/ezkutatzeko", "keyboard_shortcuts.toggle_sensitivity": "multimedia erakutsi/ezkutatzeko",
"keyboard_shortcuts.toot": "Hasi bidalketa berri bat", "keyboard_shortcuts.toot": "Hasi bidalketa berri bat",
"keyboard_shortcuts.translate": "bidalketa itzultzeko",
"keyboard_shortcuts.unfocus": "testua konposatzeko area / bilaketatik fokua kentzea", "keyboard_shortcuts.unfocus": "testua konposatzeko area / bilaketatik fokua kentzea",
"keyboard_shortcuts.up": "zerrendan gora mugitzea", "keyboard_shortcuts.up": "zerrendan gora mugitzea",
"lightbox.close": "Itxi", "lightbox.close": "Itxi",
"lightbox.next": "Hurrengoa", "lightbox.next": "Hurrengoa",
"lightbox.previous": "Aurrekoa", "lightbox.previous": "Aurrekoa",
"lightbox.zoom_in": "Zooma egungo tamainara",
"lightbox.zoom_out": "Zooma egokitzeko",
"limited_account_hint.action": "Erakutsi profila hala ere", "limited_account_hint.action": "Erakutsi profila hala ere",
"limited_account_hint.title": "Profil hau ezkutatu egin dute {domain} zerbitzariko moderatzaileek.", "limited_account_hint.title": "Profil hau ezkutatu egin dute {domain} zerbitzariko moderatzaileek.",
"link_preview.author": "Egilea: {name}", "link_preview.author": "Egilea: {name}",
@ -500,24 +482,13 @@
"lists.add_to_list": "Gehitu zerrendara", "lists.add_to_list": "Gehitu zerrendara",
"lists.add_to_lists": "Gehitu {name} zerrendetara", "lists.add_to_lists": "Gehitu {name} zerrendetara",
"lists.create": "Sortu", "lists.create": "Sortu",
"lists.create_a_list_to_organize": "Sortu zerrenda berria zure Hasierako jarioa antolatzeko",
"lists.create_list": "Sortu zerrenda", "lists.create_list": "Sortu zerrenda",
"lists.delete": "Ezabatu zerrenda", "lists.delete": "Ezabatu zerrenda",
"lists.done": "Egina", "lists.done": "Egina",
"lists.edit": "Editatu zerrenda", "lists.edit": "Editatu zerrenda",
"lists.exclusive": "Ezkutatu kideak Hasieran",
"lists.exclusive_hint": "Norbait zerrenda honetan badago, ezkutatu zure Hasierako jariotik mezuak bi aldiz ez ikusteko.",
"lists.find_users_to_add": "Bilatu erabiltzaileak gehitzeko",
"lists.list_name": "Zerrenda izena",
"lists.new_list_name": "Zerrenda izen berria",
"lists.no_lists_yet": "Ez duzu zerrendarik oraindik.",
"lists.no_members_yet": "Ez duzu kiderik oraindik.",
"lists.no_results_found": "Ez da emaitzarik aurkitu.",
"lists.remove_member": "Ezabatu",
"lists.replies_policy.followed": "Jarraitutako edozein erabiltzaile", "lists.replies_policy.followed": "Jarraitutako edozein erabiltzaile",
"lists.replies_policy.list": "Zerrendako kideak", "lists.replies_policy.list": "Zerrendako kideak",
"lists.replies_policy.none": "Bat ere ez", "lists.replies_policy.none": "Bat ere ez",
"lists.save": "Gorde",
"lists.search": "Bilatu", "lists.search": "Bilatu",
"load_pending": "{count, plural, one {elementu berri #} other {# elementu berri}}", "load_pending": "{count, plural, one {elementu berri #} other {# elementu berri}}",
"loading_indicator.label": "Kargatzen…", "loading_indicator.label": "Kargatzen…",
@ -533,10 +504,8 @@
"mute_modal.you_wont_see_mentions": "Ez duzu ikusiko bera aipatzen duen argitalpenik.", "mute_modal.you_wont_see_mentions": "Ez duzu ikusiko bera aipatzen duen argitalpenik.",
"mute_modal.you_wont_see_posts": "Zure argitalpenak ikus ditzake, baina ez dituzu bereak ikusiko.", "mute_modal.you_wont_see_posts": "Zure argitalpenak ikus ditzake, baina ez dituzu bereak ikusiko.",
"navigation_bar.about": "Honi buruz", "navigation_bar.about": "Honi buruz",
"navigation_bar.account_settings": "Pasahitza eta segurtasuna",
"navigation_bar.administration": "Administrazioa", "navigation_bar.administration": "Administrazioa",
"navigation_bar.advanced_interface": "Ireki web interfaze aurreratuan", "navigation_bar.advanced_interface": "Ireki web interfaze aurreratuan",
"navigation_bar.automated_deletion": "Bidalketa automatikoaren ezabaketa",
"navigation_bar.blocks": "Blokeatutako erabiltzaileak", "navigation_bar.blocks": "Blokeatutako erabiltzaileak",
"navigation_bar.bookmarks": "Laster-markak", "navigation_bar.bookmarks": "Laster-markak",
"navigation_bar.direct": "Aipamen pribatuak", "navigation_bar.direct": "Aipamen pribatuak",
@ -546,19 +515,13 @@
"navigation_bar.follow_requests": "Jarraitzeko eskaerak", "navigation_bar.follow_requests": "Jarraitzeko eskaerak",
"navigation_bar.followed_tags": "Jarraitutako traolak", "navigation_bar.followed_tags": "Jarraitutako traolak",
"navigation_bar.follows_and_followers": "Jarraitutakoak eta jarraitzaileak", "navigation_bar.follows_and_followers": "Jarraitutakoak eta jarraitzaileak",
"navigation_bar.import_export": "Inportazioa eta esportazioa",
"navigation_bar.lists": "Zerrendak", "navigation_bar.lists": "Zerrendak",
"navigation_bar.live_feed_local": "Zuzeneko jarioa (lokala)",
"navigation_bar.live_feed_public": "Zuzeneko jarioa (publikoa)",
"navigation_bar.logout": "Amaitu saioa", "navigation_bar.logout": "Amaitu saioa",
"navigation_bar.moderation": "Moderazioa", "navigation_bar.moderation": "Moderazioa",
"navigation_bar.more": "Gehiago",
"navigation_bar.mutes": "Mutututako erabiltzaileak", "navigation_bar.mutes": "Mutututako erabiltzaileak",
"navigation_bar.opened_in_classic_interface": "Argitalpenak, kontuak eta beste orri jakin batzuk lehenespenez irekitzen dira web-interfaze klasikoan.", "navigation_bar.opened_in_classic_interface": "Argitalpenak, kontuak eta beste orri jakin batzuk lehenespenez irekitzen dira web-interfaze klasikoan.",
"navigation_bar.preferences": "Hobespenak", "navigation_bar.preferences": "Hobespenak",
"navigation_bar.privacy_and_reach": "Pribatutasuna eta irismena",
"navigation_bar.search": "Bilatu", "navigation_bar.search": "Bilatu",
"navigation_bar.search_trends": "Bilatu / Joera",
"not_signed_in_indicator.not_signed_in": "Baliabide honetara sarbidea izateko saioa hasi behar duzu.", "not_signed_in_indicator.not_signed_in": "Baliabide honetara sarbidea izateko saioa hasi behar duzu.",
"notification.admin.report": "{name} erabiltzaileak {target} salatu du", "notification.admin.report": "{name} erabiltzaileak {target} salatu du",
"notification.admin.report_account": "{name}-(e)k {target}-ren {count, plural, one {bidalketa bat} other {# bidalketa}} salatu zituen {category} delakoagatik", "notification.admin.report_account": "{name}-(e)k {target}-ren {count, plural, one {bidalketa bat} other {# bidalketa}} salatu zituen {category} delakoagatik",
@ -569,7 +532,6 @@
"notification.admin.sign_up.name_and_others": "{name} eta {count, plural, one {erabiltzaile # gehiago} other {# erabiltzaile gehiago}} erregistratu dira", "notification.admin.sign_up.name_and_others": "{name} eta {count, plural, one {erabiltzaile # gehiago} other {# erabiltzaile gehiago}} erregistratu dira",
"notification.favourite": "{name}(e)k zure bidalketa gogoko du", "notification.favourite": "{name}(e)k zure bidalketa gogoko du",
"notification.favourite.name_and_others_with_link": "{name} eta <a>{count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}}</a> zure bidalketa gogoko dute", "notification.favourite.name_and_others_with_link": "{name} eta <a>{count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}}</a> zure bidalketa gogoko dute",
"notification.favourite_pm": "{name}-ek zure aipamen pribatua gogokoetan jarri du",
"notification.follow": "{name}(e)k jarraitzen dizu", "notification.follow": "{name}(e)k jarraitzen dizu",
"notification.follow_request": "{name}(e)k zu jarraitzeko eskaera egin du", "notification.follow_request": "{name}(e)k zu jarraitzeko eskaera egin du",
"notification.follow_request.name_and_others": "{name} eta {count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}} zu jarraitzeko eskaera egin dute", "notification.follow_request.name_and_others": "{name} eta {count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}} zu jarraitzeko eskaera egin dute",
@ -578,7 +540,6 @@
"notification.label.private_reply": "Erantzun pribatua", "notification.label.private_reply": "Erantzun pribatua",
"notification.label.reply": "Erantzuna", "notification.label.reply": "Erantzuna",
"notification.mention": "Aipamena", "notification.mention": "Aipamena",
"notification.mentioned_you": "{name}(e)k aipatu zaitu",
"notification.moderation-warning.learn_more": "Informazio gehiago", "notification.moderation-warning.learn_more": "Informazio gehiago",
"notification.moderation_warning": "Moderazio-abisu bat jaso duzu", "notification.moderation_warning": "Moderazio-abisu bat jaso duzu",
"notification.moderation_warning.action_delete_statuses": "Argitalpen batzuk kendu dira.", "notification.moderation_warning.action_delete_statuses": "Argitalpen batzuk kendu dira.",
@ -625,7 +586,6 @@
"notifications.column_settings.filter_bar.category": "Iragazki-barra bizkorra", "notifications.column_settings.filter_bar.category": "Iragazki-barra bizkorra",
"notifications.column_settings.follow": "Jarraitzaile berriak:", "notifications.column_settings.follow": "Jarraitzaile berriak:",
"notifications.column_settings.follow_request": "Jarraitzeko eskaera berriak:", "notifications.column_settings.follow_request": "Jarraitzeko eskaera berriak:",
"notifications.column_settings.group": "Taldea",
"notifications.column_settings.mention": "Aipamenak:", "notifications.column_settings.mention": "Aipamenak:",
"notifications.column_settings.poll": "Inkestaren emaitzak:", "notifications.column_settings.poll": "Inkestaren emaitzak:",
"notifications.column_settings.push": "Push jakinarazpenak", "notifications.column_settings.push": "Push jakinarazpenak",
@ -776,7 +736,6 @@
"report_notification.categories.violation": "Arau haustea", "report_notification.categories.violation": "Arau haustea",
"report_notification.categories.violation_sentence": "arau haustea", "report_notification.categories.violation_sentence": "arau haustea",
"report_notification.open": "Ireki salaketa", "report_notification.open": "Ireki salaketa",
"search.clear": "Garbitu bilaketa",
"search.no_recent_searches": "Duela gutxiko bilaketarik ez", "search.no_recent_searches": "Duela gutxiko bilaketarik ez",
"search.placeholder": "Bilatu", "search.placeholder": "Bilatu",
"search.quick_action.account_search": "{x}-(r)ekin bat datozen profilak", "search.quick_action.account_search": "{x}-(r)ekin bat datozen profilak",
@ -841,8 +800,6 @@
"status.mute_conversation": "Mututu elkarrizketa", "status.mute_conversation": "Mututu elkarrizketa",
"status.open": "Hedatu bidalketa hau", "status.open": "Hedatu bidalketa hau",
"status.pin": "Finkatu profilean", "status.pin": "Finkatu profilean",
"status.quote_error.not_found": "Bidalketa hau ezin da erakutsi.",
"status.quote_error.pending_approval": "Bidalketa hau egile originalak onartzeko zain dago.",
"status.read_more": "Irakurri gehiago", "status.read_more": "Irakurri gehiago",
"status.reblog": "Bultzada", "status.reblog": "Bultzada",
"status.reblog_private": "Bultzada jatorrizko hartzaileei", "status.reblog_private": "Bultzada jatorrizko hartzaileei",
@ -871,11 +828,7 @@
"subscribed_languages.save": "Gorde aldaketak", "subscribed_languages.save": "Gorde aldaketak",
"subscribed_languages.target": "Aldatu {target}(e)n harpidetutako hizkuntzak", "subscribed_languages.target": "Aldatu {target}(e)n harpidetutako hizkuntzak",
"tabs_bar.home": "Hasiera", "tabs_bar.home": "Hasiera",
"tabs_bar.menu": "Menua",
"tabs_bar.notifications": "Jakinarazpenak", "tabs_bar.notifications": "Jakinarazpenak",
"tabs_bar.publish": "Bidalketa berria",
"tabs_bar.search": "Bilatu",
"terms_of_service.title": "Zerbitzuaren baldintzak",
"time_remaining.days": "{number, plural, one {egun #} other {# egun}} amaitzeko", "time_remaining.days": "{number, plural, one {egun #} other {# egun}} amaitzeko",
"time_remaining.hours": "{number, plural, one {ordu #} other {# ordu}} amaitzeko", "time_remaining.hours": "{number, plural, one {ordu #} other {# ordu}} amaitzeko",
"time_remaining.minutes": "{number, plural, one {minutu #} other {# minutu}} amaitzeko", "time_remaining.minutes": "{number, plural, one {minutu #} other {# minutu}} amaitzeko",
@ -902,8 +855,5 @@
"video.fullscreen": "Pantaila osoa", "video.fullscreen": "Pantaila osoa",
"video.hide": "Ezkutatu bideoa", "video.hide": "Ezkutatu bideoa",
"video.pause": "Pausatu", "video.pause": "Pausatu",
"video.play": "Jo", "video.play": "Jo"
"video.unmute": "Soinua ezarri",
"video.volume_down": "Bolumena jaitsi",
"video.volume_up": "Bolumena Igo"
} }

View File

@ -564,8 +564,6 @@
"navigation_bar.follows_and_followers": "Folgers en folgjenden", "navigation_bar.follows_and_followers": "Folgers en folgjenden",
"navigation_bar.import_export": "Ymportearje en eksportearje", "navigation_bar.import_export": "Ymportearje en eksportearje",
"navigation_bar.lists": "Listen", "navigation_bar.lists": "Listen",
"navigation_bar.live_feed_local": "Livefeed (lokaal)",
"navigation_bar.live_feed_public": "Livefeed (iepenbier)",
"navigation_bar.logout": "Ofmelde", "navigation_bar.logout": "Ofmelde",
"navigation_bar.moderation": "Moderaasje", "navigation_bar.moderation": "Moderaasje",
"navigation_bar.more": "Mear", "navigation_bar.more": "Mear",
@ -805,7 +803,6 @@
"report_notification.categories.violation": "Skeinde regels", "report_notification.categories.violation": "Skeinde regels",
"report_notification.categories.violation_sentence": "skeinde regels", "report_notification.categories.violation_sentence": "skeinde regels",
"report_notification.open": "Rapport iepenje", "report_notification.open": "Rapport iepenje",
"search.clear": "Sykopdracht wiskje",
"search.no_recent_searches": "Gjin resinte sykopdrachten", "search.no_recent_searches": "Gjin resinte sykopdrachten",
"search.placeholder": "Sykje", "search.placeholder": "Sykje",
"search.quick_action.account_search": "Accounts dyt oerienkomme mei {x}", "search.quick_action.account_search": "Accounts dyt oerienkomme mei {x}",

View File

@ -6,7 +6,6 @@
"about.domain_blocks.preamble": "Maṣṭudun s umata yeḍmen-ak ad teẓreḍ agbur, ad tesdemreḍ akked yimseqdacen-nniḍen seg yal aqeddac deg fedivers. Ha-tent-an ɣur-k tsuraf i yellan deg uqeddac-agi.", "about.domain_blocks.preamble": "Maṣṭudun s umata yeḍmen-ak ad teẓreḍ agbur, ad tesdemreḍ akked yimseqdacen-nniḍen seg yal aqeddac deg fedivers. Ha-tent-an ɣur-k tsuraf i yellan deg uqeddac-agi.",
"about.domain_blocks.silenced.title": "Ɣur-s talast", "about.domain_blocks.silenced.title": "Ɣur-s talast",
"about.domain_blocks.suspended.title": "Yettwaḥbes", "about.domain_blocks.suspended.title": "Yettwaḥbes",
"about.language_label": "Tutlayt",
"about.not_available": "Talɣut-a ur tettwabder ara deg uqeddac-a.", "about.not_available": "Talɣut-a ur tettwabder ara deg uqeddac-a.",
"about.powered_by": "Azeṭṭa inmetti yettwasɣelsen sɣur {mastodon}", "about.powered_by": "Azeṭṭa inmetti yettwasɣelsen sɣur {mastodon}",
"about.rules": "Ilugan n uqeddac", "about.rules": "Ilugan n uqeddac",
@ -238,10 +237,6 @@
"explore.trending_links": "Isallen", "explore.trending_links": "Isallen",
"explore.trending_statuses": "Tisuffaɣ", "explore.trending_statuses": "Tisuffaɣ",
"explore.trending_tags": "Ihacṭagen", "explore.trending_tags": "Ihacṭagen",
"featured_carousel.next": "Uḍfiṛ",
"featured_carousel.post": "Tasuffeɣt",
"featured_carousel.previous": "Uzwir",
"featured_carousel.slide": "{index} ɣef {total}",
"filter_modal.added.review_and_configure_title": "Iɣewwaṛen n imzizdig", "filter_modal.added.review_and_configure_title": "Iɣewwaṛen n imzizdig",
"filter_modal.added.settings_link": "asebter n yiɣewwaṛen", "filter_modal.added.settings_link": "asebter n yiɣewwaṛen",
"filter_modal.added.short_explanation": "Tasuffeɣt-a tettwarna ɣer taggayt-a n yimsizdegen: {title}.", "filter_modal.added.short_explanation": "Tasuffeɣt-a tettwarna ɣer taggayt-a n yimsizdegen: {title}.",
@ -362,7 +357,6 @@
"lists.add_to_list": "Rnu ɣer tebdart", "lists.add_to_list": "Rnu ɣer tebdart",
"lists.add_to_lists": "Rnu {name} ɣer tebdarin", "lists.add_to_lists": "Rnu {name} ɣer tebdarin",
"lists.create": "Snulfu-d", "lists.create": "Snulfu-d",
"lists.create_list": "Snulfu-d tabdart",
"lists.delete": "Kkes tabdart", "lists.delete": "Kkes tabdart",
"lists.done": "Immed", "lists.done": "Immed",
"lists.edit": "Ẓreg tabdart", "lists.edit": "Ẓreg tabdart",
@ -403,7 +397,6 @@
"navigation_bar.lists": "Tibdarin", "navigation_bar.lists": "Tibdarin",
"navigation_bar.logout": "Ffeɣ", "navigation_bar.logout": "Ffeɣ",
"navigation_bar.moderation": "Aseɣyed", "navigation_bar.moderation": "Aseɣyed",
"navigation_bar.more": "Ugar",
"navigation_bar.mutes": "Iseqdacen yettwasusmen", "navigation_bar.mutes": "Iseqdacen yettwasusmen",
"navigation_bar.opened_in_classic_interface": "Tisuffaɣ, imiḍanen akked isebtar-nniḍen igejdanen ldin-d s wudem amezwer deg ugrudem web aklasiki.", "navigation_bar.opened_in_classic_interface": "Tisuffaɣ, imiḍanen akked isebtar-nniḍen igejdanen ldin-d s wudem amezwer deg ugrudem web aklasiki.",
"navigation_bar.preferences": "Imenyafen", "navigation_bar.preferences": "Imenyafen",
@ -617,7 +610,6 @@
"status.mute_conversation": "Sgugem adiwenni", "status.mute_conversation": "Sgugem adiwenni",
"status.open": "Semɣeṛ tasuffeɣt-ayi", "status.open": "Semɣeṛ tasuffeɣt-ayi",
"status.pin": "Senteḍ-itt deg umaɣnu", "status.pin": "Senteḍ-itt deg umaɣnu",
"status.quote_post_author": "Izen sɣur {name}",
"status.read_more": "Issin ugar", "status.read_more": "Issin ugar",
"status.reblog": "Bḍu", "status.reblog": "Bḍu",
"status.reblogged_by": "Yebḍa-tt {name}", "status.reblogged_by": "Yebḍa-tt {name}",
@ -643,10 +635,7 @@
"status.unpin": "Kkes asenteḍ seg umaɣnu", "status.unpin": "Kkes asenteḍ seg umaɣnu",
"subscribed_languages.save": "Sekles ibeddilen", "subscribed_languages.save": "Sekles ibeddilen",
"tabs_bar.home": "Agejdan", "tabs_bar.home": "Agejdan",
"tabs_bar.menu": "Umuɣ",
"tabs_bar.notifications": "Ilɣa", "tabs_bar.notifications": "Ilɣa",
"tabs_bar.publish": "Tasuffeɣt tamaynut",
"tabs_bar.search": "Nadi",
"terms_of_service.title": "Tiwtilin n useqdec", "terms_of_service.title": "Tiwtilin n useqdec",
"time_remaining.days": "Mazal {number, plural, one {# wass} other {# wussan}}", "time_remaining.days": "Mazal {number, plural, one {# wass} other {# wussan}}",
"time_remaining.hours": "Mazal {number, plural, one {# usarag} other {# yisragen}}", "time_remaining.hours": "Mazal {number, plural, one {# usarag} other {# yisragen}}",

View File

@ -356,7 +356,6 @@
"hashtag.counter_by_accounts": "{count, plural, one {{counter} partisipante} other {{counter} partisipantes}}", "hashtag.counter_by_accounts": "{count, plural, one {{counter} partisipante} other {{counter} partisipantes}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}} oy", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}} oy",
"hashtag.feature": "Avalia en profil",
"hashtag.follow": "Sige etiketa", "hashtag.follow": "Sige etiketa",
"hashtag.mute": "Silensia #{hashtag}", "hashtag.mute": "Silensia #{hashtag}",
"hashtag.unfeature": "No avalia en profil", "hashtag.unfeature": "No avalia en profil",
@ -391,7 +390,6 @@
"interaction_modal.title.reblog": "Repartaja publikasyon de {name}", "interaction_modal.title.reblog": "Repartaja publikasyon de {name}",
"interaction_modal.title.reply": "Arisponde a publikasyon de {name}", "interaction_modal.title.reply": "Arisponde a publikasyon de {name}",
"interaction_modal.title.vote": "Vota en la anketa de {name}", "interaction_modal.title.vote": "Vota en la anketa de {name}",
"interaction_modal.username_prompt": "Por enshemplo {example}",
"intervals.full.days": "{number, plural, one {# diya} other {# diyas}}", "intervals.full.days": "{number, plural, one {# diya} other {# diyas}}",
"intervals.full.hours": "{number, plural, one {# ora} other {# oras}}", "intervals.full.hours": "{number, plural, one {# ora} other {# oras}}",
"intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
@ -444,7 +442,6 @@
"lists.delete": "Efasa lista", "lists.delete": "Efasa lista",
"lists.done": "Fecho", "lists.done": "Fecho",
"lists.edit": "Edita lista", "lists.edit": "Edita lista",
"lists.list_name": "Nombre de lista",
"lists.new_list_name": "Nombre de mueva lista", "lists.new_list_name": "Nombre de mueva lista",
"lists.replies_policy.followed": "Kualseker utilizador segido", "lists.replies_policy.followed": "Kualseker utilizador segido",
"lists.replies_policy.list": "Miembros de la lista", "lists.replies_policy.list": "Miembros de la lista",
@ -741,7 +738,6 @@
"status.reblogs.empty": "Ainda nadie tiene repartajado esta publikasyon. Kuando algien lo aga, se amostrara aki.", "status.reblogs.empty": "Ainda nadie tiene repartajado esta publikasyon. Kuando algien lo aga, se amostrara aki.",
"status.redraft": "Efasa i eskrive de muevo", "status.redraft": "Efasa i eskrive de muevo",
"status.remove_bookmark": "Kita markador", "status.remove_bookmark": "Kita markador",
"status.remove_favourite": "Kita de los favoritos",
"status.replied_in_thread": "Arispondo en filo", "status.replied_in_thread": "Arispondo en filo",
"status.replied_to": "Arispondio a {name}", "status.replied_to": "Arispondio a {name}",
"status.reply": "Arisponde", "status.reply": "Arisponde",
@ -762,7 +758,6 @@
"subscribed_languages.save": "Guadra trokamientos", "subscribed_languages.save": "Guadra trokamientos",
"subscribed_languages.target": "Troka linguas abonadas para {target}", "subscribed_languages.target": "Troka linguas abonadas para {target}",
"tabs_bar.home": "Linya prinsipala", "tabs_bar.home": "Linya prinsipala",
"tabs_bar.menu": "Menu",
"tabs_bar.notifications": "Avizos", "tabs_bar.notifications": "Avizos",
"tabs_bar.publish": "Mueva publikasyon", "tabs_bar.publish": "Mueva publikasyon",
"tabs_bar.search": "Bushkeda", "tabs_bar.search": "Bushkeda",

View File

@ -1,7 +1,6 @@
{ {
"about.blocks": "Servidores moderados", "about.blocks": "Servidores moderados",
"about.contact": "Contato:", "about.contact": "Contato:",
"about.default_locale": "Padrão",
"about.disclaimer": "Mastodon é um software de código aberto e livre, e uma marca registrada de Mastodon gGmbH.", "about.disclaimer": "Mastodon é um software de código aberto e livre, e uma marca registrada de Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Razão não disponível", "about.domain_blocks.no_reason_available": "Razão não disponível",
"about.domain_blocks.preamble": "O Mastodon geralmente permite que você veja o conteúdo e interaja com usuários de qualquer outro servidor no fediverso. Estas são as exceções deste servidor em específico.", "about.domain_blocks.preamble": "O Mastodon geralmente permite que você veja o conteúdo e interaja com usuários de qualquer outro servidor no fediverso. Estas são as exceções deste servidor em específico.",
@ -9,7 +8,6 @@
"about.domain_blocks.silenced.title": "Limitado", "about.domain_blocks.silenced.title": "Limitado",
"about.domain_blocks.suspended.explanation": "Nenhum dado desse servidor será processado, armazenado ou trocado, impossibilitando qualquer interação ou comunicação com os usuários deste servidor.", "about.domain_blocks.suspended.explanation": "Nenhum dado desse servidor será processado, armazenado ou trocado, impossibilitando qualquer interação ou comunicação com os usuários deste servidor.",
"about.domain_blocks.suspended.title": "Suspenso", "about.domain_blocks.suspended.title": "Suspenso",
"about.language_label": "Idioma",
"about.not_available": "Esta informação não foi disponibilizada neste servidor.", "about.not_available": "Esta informação não foi disponibilizada neste servidor.",
"about.powered_by": "Redes sociais descentralizadas alimentadas por {mastodon}", "about.powered_by": "Redes sociais descentralizadas alimentadas por {mastodon}",
"about.rules": "Regras do servidor", "about.rules": "Regras do servidor",
@ -219,11 +217,6 @@
"confirmations.delete_list.confirm": "Excluir", "confirmations.delete_list.confirm": "Excluir",
"confirmations.delete_list.message": "Você tem certeza de que deseja excluir esta lista?", "confirmations.delete_list.message": "Você tem certeza de que deseja excluir esta lista?",
"confirmations.delete_list.title": "Excluir lista?", "confirmations.delete_list.title": "Excluir lista?",
"confirmations.discard_draft.confirm": "Descartar e continuar",
"confirmations.discard_draft.edit.cancel": "Continuar editando",
"confirmations.discard_draft.edit.message": "Continuar vai descartar quaisquer mudanças feitas ao post sendo editado.",
"confirmations.discard_draft.edit.title": "Descartar mudanças no seu post?",
"confirmations.discard_draft.post.cancel": "Continuar rascunho",
"confirmations.discard_edit_media.confirm": "Descartar", "confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Há mudanças não salvas na descrição ou pré-visualização da mídia. Descartar assim mesmo?", "confirmations.discard_edit_media.message": "Há mudanças não salvas na descrição ou pré-visualização da mídia. Descartar assim mesmo?",
"confirmations.follow_to_list.confirm": "Seguir e adicionar à lista", "confirmations.follow_to_list.confirm": "Seguir e adicionar à lista",

View File

@ -363,7 +363,7 @@
"filter_modal.select_filter.title": "Фильтровать этот пост", "filter_modal.select_filter.title": "Фильтровать этот пост",
"filter_modal.title.status": "Фильтровать пост", "filter_modal.title.status": "Фильтровать пост",
"filter_warning.matches_filter": "Соответствует фильтру «<span>{title}</span>»", "filter_warning.matches_filter": "Соответствует фильтру «<span>{title}</span>»",
"filtered_notifications_banner.pending_requests": "От {count, plural, =0 {незнакомых вам людей} one {# человека, которого вы можете знать} other {# человек, которых вы можете знать}}", "filtered_notifications_banner.pending_requests": "От {count, plural, =0 {не знакомых вам людей} one {# человека, которого вы можете знать} other {# человек, которых вы можете знать}}",
"filtered_notifications_banner.title": "Отфильтрованные уведомления", "filtered_notifications_banner.title": "Отфильтрованные уведомления",
"firehose.all": "Всё вместе", "firehose.all": "Всё вместе",
"firehose.local": "Этот сервер", "firehose.local": "Этот сервер",

View File

@ -27,7 +27,6 @@
"account.edit_profile": "Upraviť profil", "account.edit_profile": "Upraviť profil",
"account.enable_notifications": "Zapnúť upozornenia na príspevky od @{name}", "account.enable_notifications": "Zapnúť upozornenia na príspevky od @{name}",
"account.endorse": "Zobraziť na vlastnom profile", "account.endorse": "Zobraziť na vlastnom profile",
"account.featured": "Zviditeľnené",
"account.featured.accounts": "Profily", "account.featured.accounts": "Profily",
"account.featured.hashtags": "Hashtagy", "account.featured.hashtags": "Hashtagy",
"account.featured_tags.last_status_at": "Posledný príspevok dňa {date}", "account.featured_tags.last_status_at": "Posledný príspevok dňa {date}",

View File

@ -1,7 +1,6 @@
{ {
"about.blocks": "เซิร์ฟเวอร์ที่ได้รับการกลั่นกรอง", "about.blocks": "เซิร์ฟเวอร์ที่ได้รับการกลั่นกรอง",
"about.contact": "ติดต่อ:", "about.contact": "ติดต่อ:",
"about.default_locale": "ค่าเริ่มต้น",
"about.disclaimer": "Mastodon เป็นซอฟต์แวร์เสรี โอเพนซอร์ส และเครื่องหมายการค้าของ Mastodon gGmbH", "about.disclaimer": "Mastodon เป็นซอฟต์แวร์เสรี โอเพนซอร์ส และเครื่องหมายการค้าของ Mastodon gGmbH",
"about.domain_blocks.no_reason_available": "เหตุผลไม่พร้อมใช้งาน", "about.domain_blocks.no_reason_available": "เหตุผลไม่พร้อมใช้งาน",
"about.domain_blocks.preamble": "โดยทั่วไป Mastodon อนุญาตให้คุณดูเนื้อหาจากและโต้ตอบกับผู้ใช้จากเซิร์ฟเวอร์อื่นใดในจักรวาลสหพันธ์ นี่คือข้อยกเว้นที่ทำขึ้นในเซิร์ฟเวอร์นี้โดยเฉพาะ", "about.domain_blocks.preamble": "โดยทั่วไป Mastodon อนุญาตให้คุณดูเนื้อหาจากและโต้ตอบกับผู้ใช้จากเซิร์ฟเวอร์อื่นใดในจักรวาลสหพันธ์ นี่คือข้อยกเว้นที่ทำขึ้นในเซิร์ฟเวอร์นี้โดยเฉพาะ",
@ -9,7 +8,6 @@
"about.domain_blocks.silenced.title": "จำกัดอยู่", "about.domain_blocks.silenced.title": "จำกัดอยู่",
"about.domain_blocks.suspended.explanation": "จะไม่ประมวลผล จัดเก็บ หรือแลกเปลี่ยนข้อมูลจากเซิร์ฟเวอร์นี้ ทำให้การโต้ตอบหรือการสื่อสารใด ๆ กับผู้ใช้จากเซิร์ฟเวอร์นี้เป็นไปไม่ได้", "about.domain_blocks.suspended.explanation": "จะไม่ประมวลผล จัดเก็บ หรือแลกเปลี่ยนข้อมูลจากเซิร์ฟเวอร์นี้ ทำให้การโต้ตอบหรือการสื่อสารใด ๆ กับผู้ใช้จากเซิร์ฟเวอร์นี้เป็นไปไม่ได้",
"about.domain_blocks.suspended.title": "ระงับอยู่", "about.domain_blocks.suspended.title": "ระงับอยู่",
"about.language_label": "ภาษา",
"about.not_available": "ไม่ได้ทำให้ข้อมูลนี้พร้อมใช้งานในเซิร์ฟเวอร์นี้", "about.not_available": "ไม่ได้ทำให้ข้อมูลนี้พร้อมใช้งานในเซิร์ฟเวอร์นี้",
"about.powered_by": "สื่อสังคมแบบกระจายศูนย์ที่ขับเคลื่อนโดย {mastodon}", "about.powered_by": "สื่อสังคมแบบกระจายศูนย์ที่ขับเคลื่อนโดย {mastodon}",
"about.rules": "กฎของเซิร์ฟเวอร์", "about.rules": "กฎของเซิร์ฟเวอร์",
@ -21,18 +19,14 @@
"account.block_domain": "ปิดกั้นโดเมน {domain}", "account.block_domain": "ปิดกั้นโดเมน {domain}",
"account.block_short": "ปิดกั้น", "account.block_short": "ปิดกั้น",
"account.blocked": "ปิดกั้นอยู่", "account.blocked": "ปิดกั้นอยู่",
"account.blocking": "กำลังปิดกั้น",
"account.cancel_follow_request": "ยกเลิกการติดตาม", "account.cancel_follow_request": "ยกเลิกการติดตาม",
"account.copy": "คัดลอกลิงก์ไปยังโปรไฟล์", "account.copy": "คัดลอกลิงก์ไปยังโปรไฟล์",
"account.direct": "กล่าวถึง @{name} แบบส่วนตัว", "account.direct": "กล่าวถึง @{name} แบบส่วนตัว",
"account.disable_notifications": "หยุดแจ้งเตือนฉันเมื่อ @{name} โพสต์", "account.disable_notifications": "หยุดแจ้งเตือนฉันเมื่อ @{name} โพสต์",
"account.domain_blocking": "กำลังปิดกั้นโดเมน", "account.domain_blocking": "โดเมน",
"account.edit_profile": "แก้ไขโปรไฟล์", "account.edit_profile": "แก้ไขโปรไฟล์",
"account.enable_notifications": "แจ้งเตือนฉันเมื่อ @{name} โพสต์", "account.enable_notifications": "แจ้งเตือนฉันเมื่อ @{name} โพสต์",
"account.endorse": "แสดงในโปรไฟล์", "account.endorse": "แสดงในโปรไฟล์",
"account.featured": "น่าสนใจ",
"account.featured.accounts": "โปรไฟล์",
"account.featured.hashtags": "แฮชแท็ก",
"account.featured_tags.last_status_at": "โพสต์ล่าสุดเมื่อ {date}", "account.featured_tags.last_status_at": "โพสต์ล่าสุดเมื่อ {date}",
"account.featured_tags.last_status_never": "ไม่มีโพสต์", "account.featured_tags.last_status_never": "ไม่มีโพสต์",
"account.follow": "ติดตาม", "account.follow": "ติดตาม",
@ -43,7 +37,6 @@
"account.following": "กำลังติดตาม", "account.following": "กำลังติดตาม",
"account.following_counter": "{count, plural, other {{counter} กำลังติดตาม}}", "account.following_counter": "{count, plural, other {{counter} กำลังติดตาม}}",
"account.follows.empty": "ผู้ใช้นี้ยังไม่ได้ติดตามใคร", "account.follows.empty": "ผู้ใช้นี้ยังไม่ได้ติดตามใคร",
"account.follows_you": "ติดตามคุณ",
"account.go_to_profile": "ไปยังโปรไฟล์", "account.go_to_profile": "ไปยังโปรไฟล์",
"account.hide_reblogs": "ซ่อนการดันจาก @{name}", "account.hide_reblogs": "ซ่อนการดันจาก @{name}",
"account.in_memoriam": "เพื่อระลึกถึง", "account.in_memoriam": "เพื่อระลึกถึง",
@ -58,7 +51,6 @@
"account.mute_notifications_short": "ซ่อนการแจ้งเตือน", "account.mute_notifications_short": "ซ่อนการแจ้งเตือน",
"account.mute_short": "ซ่อน", "account.mute_short": "ซ่อน",
"account.muted": "ซ่อนอยู่", "account.muted": "ซ่อนอยู่",
"account.muting": "กำลังซ่อน",
"account.no_bio": "ไม่ได้ให้คำอธิบาย", "account.no_bio": "ไม่ได้ให้คำอธิบาย",
"account.open_original_page": "เปิดหน้าดั้งเดิม", "account.open_original_page": "เปิดหน้าดั้งเดิม",
"account.posts": "โพสต์", "account.posts": "โพสต์",
@ -313,14 +305,9 @@
"errors.unexpected_crash.copy_stacktrace": "คัดลอกการติดตามสแตกไปยังคลิปบอร์ด", "errors.unexpected_crash.copy_stacktrace": "คัดลอกการติดตามสแตกไปยังคลิปบอร์ด",
"errors.unexpected_crash.report_issue": "รายงานปัญหา", "errors.unexpected_crash.report_issue": "รายงานปัญหา",
"explore.suggested_follows": "ผู้คน", "explore.suggested_follows": "ผู้คน",
"explore.title": "กำลังนิยม",
"explore.trending_links": "ข่าว", "explore.trending_links": "ข่าว",
"explore.trending_statuses": "โพสต์", "explore.trending_statuses": "โพสต์",
"explore.trending_tags": "แฮชแท็ก", "explore.trending_tags": "แฮชแท็ก",
"featured_carousel.next": "ถัดไป",
"featured_carousel.post": "โพสต์",
"featured_carousel.previous": "ก่อนหน้า",
"featured_carousel.slide": "{index} จาก {total}",
"filter_modal.added.context_mismatch_explanation": "หมวดหมู่ตัวกรองนี้ไม่นำไปใช้กับบริบทที่คุณได้เข้าถึงโพสต์นี้ หากคุณต้องการกรองโพสต์ในบริบทนี้ด้วย คุณจะต้องแก้ไขตัวกรอง", "filter_modal.added.context_mismatch_explanation": "หมวดหมู่ตัวกรองนี้ไม่นำไปใช้กับบริบทที่คุณได้เข้าถึงโพสต์นี้ หากคุณต้องการกรองโพสต์ในบริบทนี้ด้วย คุณจะต้องแก้ไขตัวกรอง",
"filter_modal.added.context_mismatch_title": "บริบทไม่ตรงกัน!", "filter_modal.added.context_mismatch_title": "บริบทไม่ตรงกัน!",
"filter_modal.added.expired_explanation": "หมวดหมู่ตัวกรองนี้หมดอายุแล้ว คุณจะต้องเปลี่ยนวันหมดอายุสำหรับหมวดหมู่เพื่อนำไปใช้", "filter_modal.added.expired_explanation": "หมวดหมู่ตัวกรองนี้หมดอายุแล้ว คุณจะต้องเปลี่ยนวันหมดอายุสำหรับหมวดหมู่เพื่อนำไปใช้",
@ -385,10 +372,7 @@
"hashtag.counter_by_accounts": "{count, plural, other {{counter} ผู้มีส่วนร่วม}}", "hashtag.counter_by_accounts": "{count, plural, other {{counter} ผู้มีส่วนร่วม}}",
"hashtag.counter_by_uses": "{count, plural, other {{counter} โพสต์}}", "hashtag.counter_by_uses": "{count, plural, other {{counter} โพสต์}}",
"hashtag.counter_by_uses_today": "{count, plural, other {{counter} โพสต์}}วันนี้", "hashtag.counter_by_uses_today": "{count, plural, other {{counter} โพสต์}}วันนี้",
"hashtag.feature": "แสดงในโปรไฟล์",
"hashtag.follow": "ติดตามแฮชแท็ก", "hashtag.follow": "ติดตามแฮชแท็ก",
"hashtag.mute": "ซ่อน #{hashtag}",
"hashtag.unfeature": "ไม่แสดงในโปรไฟล์",
"hashtag.unfollow": "เลิกติดตามแฮชแท็ก", "hashtag.unfollow": "เลิกติดตามแฮชแท็ก",
"hashtags.and_other": "…และอีก {count, plural, other {# เพิ่มเติม}}", "hashtags.and_other": "…และอีก {count, plural, other {# เพิ่มเติม}}",
"hints.profiles.followers_may_be_missing": "ผู้ติดตามสำหรับโปรไฟล์นี้อาจขาดหายไป", "hints.profiles.followers_may_be_missing": "ผู้ติดตามสำหรับโปรไฟล์นี้อาจขาดหายไป",
@ -520,10 +504,8 @@
"mute_modal.you_wont_see_mentions": "คุณจะไม่เห็นโพสต์ที่กล่าวถึงเขา", "mute_modal.you_wont_see_mentions": "คุณจะไม่เห็นโพสต์ที่กล่าวถึงเขา",
"mute_modal.you_wont_see_posts": "เขายังคงสามารถเห็นโพสต์ของคุณ แต่คุณจะไม่เห็นโพสต์ของเขา", "mute_modal.you_wont_see_posts": "เขายังคงสามารถเห็นโพสต์ของคุณ แต่คุณจะไม่เห็นโพสต์ของเขา",
"navigation_bar.about": "เกี่ยวกับ", "navigation_bar.about": "เกี่ยวกับ",
"navigation_bar.account_settings": "รหัสผ่านและความปลอดภัย",
"navigation_bar.administration": "การดูแล", "navigation_bar.administration": "การดูแล",
"navigation_bar.advanced_interface": "เปิดในส่วนติดต่อเว็บขั้นสูง", "navigation_bar.advanced_interface": "เปิดในส่วนติดต่อเว็บขั้นสูง",
"navigation_bar.automated_deletion": "การลบโพสต์แบบอัตโนมัติ",
"navigation_bar.blocks": "ผู้ใช้ที่ปิดกั้นอยู่", "navigation_bar.blocks": "ผู้ใช้ที่ปิดกั้นอยู่",
"navigation_bar.bookmarks": "ที่คั่นหน้า", "navigation_bar.bookmarks": "ที่คั่นหน้า",
"navigation_bar.direct": "การกล่าวถึงแบบส่วนตัว", "navigation_bar.direct": "การกล่าวถึงแบบส่วนตัว",
@ -533,15 +515,12 @@
"navigation_bar.follow_requests": "คำขอติดตาม", "navigation_bar.follow_requests": "คำขอติดตาม",
"navigation_bar.followed_tags": "แฮชแท็กที่ติดตาม", "navigation_bar.followed_tags": "แฮชแท็กที่ติดตาม",
"navigation_bar.follows_and_followers": "การติดตามและผู้ติดตาม", "navigation_bar.follows_and_followers": "การติดตามและผู้ติดตาม",
"navigation_bar.import_export": "การนำเข้าและการส่งออก",
"navigation_bar.lists": "รายการ", "navigation_bar.lists": "รายการ",
"navigation_bar.logout": "ออกจากระบบ", "navigation_bar.logout": "ออกจากระบบ",
"navigation_bar.moderation": "การกลั่นกรอง", "navigation_bar.moderation": "การกลั่นกรอง",
"navigation_bar.more": "เพิ่มเติม",
"navigation_bar.mutes": "ผู้ใช้ที่ซ่อนอยู่", "navigation_bar.mutes": "ผู้ใช้ที่ซ่อนอยู่",
"navigation_bar.opened_in_classic_interface": "จะเปิดโพสต์, บัญชี และหน้าที่เฉพาะเจาะจงอื่น ๆ เป็นค่าเริ่มต้นในส่วนติดต่อเว็บแบบคลาสสิก", "navigation_bar.opened_in_classic_interface": "จะเปิดโพสต์, บัญชี และหน้าที่เฉพาะเจาะจงอื่น ๆ เป็นค่าเริ่มต้นในส่วนติดต่อเว็บแบบคลาสสิก",
"navigation_bar.preferences": "การกำหนดลักษณะ", "navigation_bar.preferences": "การกำหนดลักษณะ",
"navigation_bar.privacy_and_reach": "ความเป็นส่วนตัวและการเข้าถึง",
"navigation_bar.search": "ค้นหา", "navigation_bar.search": "ค้นหา",
"not_signed_in_indicator.not_signed_in": "คุณจำเป็นต้องเข้าสู่ระบบเพื่อเข้าถึงทรัพยากรนี้", "not_signed_in_indicator.not_signed_in": "คุณจำเป็นต้องเข้าสู่ระบบเพื่อเข้าถึงทรัพยากรนี้",
"notification.admin.report": "{name} ได้รายงาน {target}", "notification.admin.report": "{name} ได้รายงาน {target}",
@ -768,7 +747,6 @@
"report_notification.categories.violation": "การละเมิดกฎ", "report_notification.categories.violation": "การละเมิดกฎ",
"report_notification.categories.violation_sentence": "การละเมิดกฎ", "report_notification.categories.violation_sentence": "การละเมิดกฎ",
"report_notification.open": "รายงานที่เปิด", "report_notification.open": "รายงานที่เปิด",
"search.clear": "ล้างการค้นหา",
"search.no_recent_searches": "ไม่มีการค้นหาล่าสุด", "search.no_recent_searches": "ไม่มีการค้นหาล่าสุด",
"search.placeholder": "ค้นหา", "search.placeholder": "ค้นหา",
"search.quick_action.account_search": "โปรไฟล์ที่ตรงกับ {x}", "search.quick_action.account_search": "โปรไฟล์ที่ตรงกับ {x}",
@ -834,7 +812,6 @@
"status.mute_conversation": "ซ่อนการสนทนา", "status.mute_conversation": "ซ่อนการสนทนา",
"status.open": "ขยายโพสต์นี้", "status.open": "ขยายโพสต์นี้",
"status.pin": "ปักหมุดในโปรไฟล์", "status.pin": "ปักหมุดในโปรไฟล์",
"status.quote_post_author": "โพสต์โดย {name}",
"status.read_more": "อ่านเพิ่มเติม", "status.read_more": "อ่านเพิ่มเติม",
"status.reblog": "ดัน", "status.reblog": "ดัน",
"status.reblog_private": "ดันด้วยการมองเห็นดั้งเดิม", "status.reblog_private": "ดันด้วยการมองเห็นดั้งเดิม",
@ -864,10 +841,7 @@
"subscribed_languages.save": "บันทึกการเปลี่ยนแปลง", "subscribed_languages.save": "บันทึกการเปลี่ยนแปลง",
"subscribed_languages.target": "เปลี่ยนภาษาที่บอกรับสำหรับ {target}", "subscribed_languages.target": "เปลี่ยนภาษาที่บอกรับสำหรับ {target}",
"tabs_bar.home": "หน้าแรก", "tabs_bar.home": "หน้าแรก",
"tabs_bar.menu": "เมนู",
"tabs_bar.notifications": "การแจ้งเตือน", "tabs_bar.notifications": "การแจ้งเตือน",
"tabs_bar.publish": "โพสต์ใหม่",
"tabs_bar.search": "ค้นหา",
"terms_of_service.title": "เงื่อนไขการให้บริการ", "terms_of_service.title": "เงื่อนไขการให้บริการ",
"time_remaining.days": "เหลืออีก {number, plural, other {# วัน}}", "time_remaining.days": "เหลืออีก {number, plural, other {# วัน}}",
"time_remaining.hours": "เหลืออีก {number, plural, other {# ชั่วโมง}}", "time_remaining.hours": "เหลืออีก {number, plural, other {# ชั่วโมง}}",

View File

@ -218,9 +218,6 @@
"confirmations.delete_list.confirm": "删除", "confirmations.delete_list.confirm": "删除",
"confirmations.delete_list.message": "确定要永久删除此列表吗?", "confirmations.delete_list.message": "确定要永久删除此列表吗?",
"confirmations.delete_list.title": "确定要删除列表?", "confirmations.delete_list.title": "确定要删除列表?",
"confirmations.discard_draft.confirm": "放弃并继续",
"confirmations.discard_draft.edit.cancel": "恢复编辑",
"confirmations.discard_draft.post.cancel": "恢复草稿",
"confirmations.discard_edit_media.confirm": "丢弃", "confirmations.discard_edit_media.confirm": "丢弃",
"confirmations.discard_edit_media.message": "你还有未保存的媒体描述或预览修改,仍要丢弃吗?", "confirmations.discard_edit_media.message": "你还有未保存的媒体描述或预览修改,仍要丢弃吗?",
"confirmations.follow_to_list.confirm": "关注并添加到列表", "confirmations.follow_to_list.confirm": "关注并添加到列表",

View File

@ -28,7 +28,7 @@ class AnnualReport::Archetype < AnnualReport::Source
end end
def polls_count def polls_count
@polls_count ||= report_statuses.only_polls.count @polls_count ||= report_statuses.where.not(poll_id: nil).count
end end
def reblogs_count def reblogs_count
@ -36,7 +36,7 @@ class AnnualReport::Archetype < AnnualReport::Source
end end
def replies_count def replies_count
@replies_count ||= report_statuses.where.not(in_reply_to_id: nil).not_replying_to_account(@account).count @replies_count ||= report_statuses.where.not(in_reply_to_id: nil).where.not(in_reply_to_account_id: @account.id).count
end end
def standalone_count def standalone_count

View File

@ -18,7 +18,7 @@ class AnnualReport::CommonlyInteractedWithAccounts < AnnualReport::Source
private private
def commonly_interacted_with_accounts def commonly_interacted_with_accounts
report_statuses.not_replying_to_account(@account).group(:in_reply_to_account_id).having(minimum_interaction_count).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 end
def minimum_interaction_count def minimum_interaction_count

View File

@ -2,44 +2,20 @@
class AnnualReport::TopStatuses < AnnualReport::Source class AnnualReport::TopStatuses < AnnualReport::Source
def generate def generate
top_reblogs = base_scope.order(reblogs_count: :desc).first&.id
top_favourites = base_scope.where.not(id: top_reblogs).order(favourites_count: :desc).first&.id
top_replies = base_scope.where.not(id: [top_reblogs, top_favourites]).order(replies_count: :desc).first&.id
{ {
top_statuses: { top_statuses: {
by_reblogs: status_identifier(most_reblogged_status), by_reblogs: top_reblogs&.to_s,
by_favourites: status_identifier(most_favourited_status), by_favourites: top_favourites&.to_s,
by_replies: status_identifier(most_replied_status), by_replies: top_replies&.to_s,
}, },
} }
end end
private
def status_identifier(status)
status.id.to_s if status.present?
end
def most_reblogged_status
base_scope
.order(reblogs_count: :desc)
.first
end
def most_favourited_status
base_scope
.excluding(most_reblogged_status)
.order(favourites_count: :desc)
.first
end
def most_replied_status
base_scope
.excluding(most_reblogged_status, most_favourited_status)
.order(replies_count: :desc)
.first
end
def base_scope def base_scope
report_statuses report_statuses.public_visibility.joins(:status_stat)
.public_visibility
.joins(:status_stat)
end end
end end

View File

@ -6,7 +6,7 @@ class AnnualReport::TypeDistribution < AnnualReport::Source
type_distribution: { type_distribution: {
total: report_statuses.count, total: report_statuses.count,
reblogs: report_statuses.only_reblogs.count, reblogs: report_statuses.only_reblogs.count,
replies: report_statuses.where.not(in_reply_to_id: nil).not_replying_to_account(@account).count, replies: report_statuses.where.not(in_reply_to_id: nil).where.not(in_reply_to_account_id: @account.id).count,
standalone: report_statuses.without_replies.without_reblogs.count, standalone: report_statuses.without_replies.without_reblogs.count,
}, },
} }

View File

@ -196,8 +196,6 @@ class SignedRequest
return if body_digest == received_digest return if body_digest == received_digest
raise Mastodon::SignatureVerificationError, "Invalid Digest value. Computed SHA-256 digest: #{body_digest}; given: #{received_digest}" raise Mastodon::SignatureVerificationError, "Invalid Digest value. Computed SHA-256 digest: #{body_digest}; given: #{received_digest}"
rescue Starry::ParseError
raise Mastodon::MalformedHeaderError, 'Content-Digest could not be parsed. It does not contain a valid RFC8941 dictionary.'
end end
def created_time def created_time

View File

@ -138,7 +138,10 @@ class Account < ApplicationRecord
scope :partitioned, -> { order(Arel.sql('row_number() over (partition by domain)')) } scope :partitioned, -> { order(Arel.sql('row_number() over (partition by domain)')) }
scope :without_instance_actor, -> { where.not(id: INSTANCE_ACTOR_ID) } scope :without_instance_actor, -> { where.not(id: INSTANCE_ACTOR_ID) }
scope :recent, -> { reorder(id: :desc) } scope :recent, -> { reorder(id: :desc) }
scope :bots, -> { where(actor_type: AUTOMATED_ACTOR_TYPES) }
scope :non_automated, -> { where.not(actor_type: AUTOMATED_ACTOR_TYPES) } scope :non_automated, -> { where.not(actor_type: AUTOMATED_ACTOR_TYPES) }
scope :groups, -> { where(actor_type: 'Group') }
scope :alphabetic, -> { order(domain: :asc, username: :asc) }
scope :matches_uri_prefix, ->(value) { where(arel_table[:uri].matches("#{sanitize_sql_like(value)}/%", false, true)).or(where(uri: value)) } scope :matches_uri_prefix, ->(value) { where(arel_table[:uri].matches("#{sanitize_sql_like(value)}/%", false, true)).or(where(uri: value)) }
scope :matches_username, ->(value) { where('lower((username)::text) LIKE lower(?)', "#{value}%") } scope :matches_username, ->(value) { where('lower((username)::text) LIKE lower(?)', "#{value}%") }
scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) } scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) }

View File

@ -161,7 +161,7 @@ class AccountStatusesCleanupPolicy < ApplicationRecord
end end
def without_poll_scope def without_poll_scope
Status.without_polls Status.where(poll_id: nil)
end end
def without_popular_scope def without_popular_scope

View File

@ -4,8 +4,14 @@ module FollowLimitable
extend ActiveSupport::Concern extend ActiveSupport::Concern
included do included do
validates_with FollowLimitValidator, on: :create, unless: :bypass_follow_limit validates_with FollowLimitValidator, on: :create, unless: :bypass_follow_limit?
end
attribute :bypass_follow_limit, :boolean, default: false def bypass_follow_limit=(value)
@bypass_follow_limit = value
end
def bypass_follow_limit?
@bypass_follow_limit
end end
end end

View File

@ -24,7 +24,7 @@ class GeneratedAnnualReport < ApplicationRecord
end end
def view! def view!
touch(:viewed_at) update!(viewed_at: Time.now.utc)
end end
def account_ids def account_ids

View File

@ -121,10 +121,7 @@ class Status < ApplicationRecord
scope :without_replies, -> { not_reply.or(reply_to_account) } scope :without_replies, -> { not_reply.or(reply_to_account) }
scope :not_reply, -> { where(reply: false) } scope :not_reply, -> { where(reply: false) }
scope :only_reblogs, -> { where.not(reblog_of_id: nil) } scope :only_reblogs, -> { where.not(reblog_of_id: nil) }
scope :only_polls, -> { where.not(poll_id: nil) }
scope :without_polls, -> { where(poll_id: nil) }
scope :reply_to_account, -> { where(arel_table[:in_reply_to_account_id].eq arel_table[:account_id]) } scope :reply_to_account, -> { where(arel_table[:in_reply_to_account_id].eq arel_table[:account_id]) }
scope :not_replying_to_account, ->(account) { where.not(in_reply_to_account: account) }
scope :without_reblogs, -> { where(statuses: { reblog_of_id: nil }) } scope :without_reblogs, -> { where(statuses: { reblog_of_id: nil }) }
scope :tagged_with, ->(tag_ids) { joins(:statuses_tags).where(statuses_tags: { tag_id: tag_ids }) } scope :tagged_with, ->(tag_ids) { joins(:statuses_tags).where(statuses_tags: { tag_id: tag_ids }) }
scope :not_excluded_by_account, ->(account) { where.not(account_id: account.excluded_from_timeline_account_ids) } scope :not_excluded_by_account, ->(account) { where.not(account_id: account.excluded_from_timeline_account_ids) }

View File

@ -49,8 +49,8 @@ class Tag < ApplicationRecord
validates :name, presence: true, format: { with: HASHTAG_NAME_RE } validates :name, presence: true, format: { with: HASHTAG_NAME_RE }
validates :display_name, format: { with: HASHTAG_NAME_RE } validates :display_name, format: { with: HASHTAG_NAME_RE }
validate :validate_name_change, on: :update, if: :name_changed? validate :validate_name_change, if: -> { !new_record? && name_changed? }
validate :validate_display_name_change, on: :update, if: :display_name_changed? validate :validate_display_name_change, if: -> { !new_record? && display_name_changed? }
scope :pending_review, -> { unreviewed.where.not(requested_review_at: nil) } scope :pending_review, -> { unreviewed.where.not(requested_review_at: nil) }
scope :usable, -> { where(usable: [true, nil]) } scope :usable, -> { where(usable: [true, nil]) }

View File

@ -35,7 +35,6 @@ class UserSettings
setting :expand_content_warnings, default: false setting :expand_content_warnings, default: false
setting :display_media, default: 'default', in: %w(default show_all hide_all) setting :display_media, default: 'default', in: %w(default show_all hide_all)
setting :auto_play, default: false setting :auto_play, default: false
setting :emoji_style, default: 'auto', in: %w(auto native twemoji)
end end
namespace :notification_emails do namespace :notification_emails do

View File

@ -31,17 +31,6 @@
label: I18n.t('simple_form.labels.defaults.setting_theme'), label: I18n.t('simple_form.labels.defaults.setting_theme'),
wrapper: :with_label wrapper: :with_label
- if Mastodon::Feature.modern_emojis_enabled?
.fields-group
= f.simple_fields_for :settings, current_user.settings do |ff|
= ff.input :'web.emoji_style',
collection: %w(auto twemoji native),
include_blank: false,
hint: I18n.t('simple_form.hints.defaults.setting_emoji_style'),
label: I18n.t('simple_form.labels.defaults.setting_emoji_style'),
label_method: ->(emoji_style) { I18n.t("emoji_styles.#{emoji_style}", default: emoji_style) },
wrapper: :with_label
- unless I18n.locale == :en - unless I18n.locale == :en
.flash-message.translation-prompt .flash-message.translation-prompt
#{t 'appearance.localization.body'} #{content_tag(:a, t('appearance.localization.guide_link_text'), href: t('appearance.localization.guide_link'), target: '_blank', rel: 'noopener')} #{t 'appearance.localization.body'} #{content_tag(:a, t('appearance.localization.guide_link_text'), href: t('appearance.localization.guide_link'), target: '_blank', rel: 'noopener')}

View File

@ -1,5 +1,5 @@
shared: shared:
enabled: <%= ENV.fetch('CACHE_BUSTER_ENABLED', 'false') == 'true' %> enabled: <%= ENV.fetch('CACHE_BUSTER_ENABLED', 'false') == 'true' %>
secret_header: <%= ENV.fetch('CACHE_BUSTER_SECRET_HEADER', nil)&.to_json %> secret_header: <%= ENV.fetch('CACHE_BUSTER_SECRET_HEADER', nil) %>
secret: <%= ENV.fetch('CACHE_BUSTER_SECRET', nil)&.to_json %> secret: <%= ENV.fetch('CACHE_BUSTER_SECRET', nil) %>
http_method: <%= ENV.fetch('CACHE_BUSTER_HTTP_METHOD', 'GET') %> http_method: <%= ENV.fetch('CACHE_BUSTER_HTTP_METHOD', 'GET') %>

View File

@ -2,14 +2,14 @@
# keys are added here. # keys are added here.
production: production:
delivery_method: <%= ENV.fetch('SMTP_DELIVERY_METHOD', 'smtp') %> delivery_method: <%= ENV.fetch('SMTP_DELIVERY_METHOD', 'smtp') %>
from_address: <%= ENV.fetch('SMTP_FROM_ADDRESS', 'notifications@localhost')&.to_json %> from_address: <%= ENV.fetch('SMTP_FROM_ADDRESS', 'notifications@localhost') %>
reply_to: <%= ENV.fetch('SMTP_REPLY_TO', nil)&.to_json %> reply_to: <%= ENV.fetch('SMTP_REPLY_TO', nil) %>
return_path: <%= ENV.fetch('SMTP_RETURN_PATH', nil)&.to_json %> return_path: <%= ENV.fetch('SMTP_RETURN_PATH', nil) %>
smtp_settings: smtp_settings:
port: <%= ENV.fetch('SMTP_PORT', nil) %> port: <%= ENV.fetch('SMTP_PORT', nil) %>
address: <%= ENV.fetch('SMTP_SERVER', nil)&.to_json %> address: <%= ENV.fetch('SMTP_SERVER', nil) %>
user_name: <%= ENV.fetch('SMTP_LOGIN', nil)&.to_json %> user_name: <%= ENV.fetch('SMTP_LOGIN', nil) %>
password: <%= ENV.fetch('SMTP_PASSWORD', nil)&.to_json %> password: <%= ENV.fetch('SMTP_PASSWORD', nil) %>
domain: <%= ENV.fetch('SMTP_DOMAIN', ENV.fetch('LOCAL_DOMAIN', nil)) %> domain: <%= ENV.fetch('SMTP_DOMAIN', ENV.fetch('LOCAL_DOMAIN', nil)) %>
authentication: <%= ENV.fetch('SMTP_AUTH_METHOD', 'plain') %> authentication: <%= ENV.fetch('SMTP_AUTH_METHOD', 'plain') %>
ca_file: <%= ENV.fetch('SMTP_CA_FILE', '/etc/ssl/certs/ca-certificates.crt') %> ca_file: <%= ENV.fetch('SMTP_CA_FILE', '/etc/ssl/certs/ca-certificates.crt') %>
@ -22,9 +22,9 @@ production:
bulk_mail: bulk_mail:
smtp_settings: smtp_settings:
port: <%= ENV.fetch('BULK_SMTP_PORT', nil) %> port: <%= ENV.fetch('BULK_SMTP_PORT', nil) %>
address: <%= ENV.fetch('BULK_SMTP_SERVER', nil)&.to_json %> address: <%= ENV.fetch('BULK_SMTP_SERVER', nil) %>
user_name: <%= ENV.fetch('BULK_SMTP_LOGIN', nil)&.to_json %> user_name: <%= ENV.fetch('BULK_SMTP_LOGIN', nil) %>
password: <%= ENV.fetch('BULK_SMTP_PASSWORD', nil)&.to_json %> password: <%= ENV.fetch('BULK_SMTP_PASSWORD', nil) %>
domain: <%= ENV.fetch('BULK_SMTP_DOMAIN', ENV.fetch('LOCAL_DOMAIN', nil)) %> domain: <%= ENV.fetch('BULK_SMTP_DOMAIN', ENV.fetch('LOCAL_DOMAIN', nil)) %>
authentication: <%= ENV.fetch('BULK_SMTP_AUTH_METHOD', 'plain') %> authentication: <%= ENV.fetch('BULK_SMTP_AUTH_METHOD', 'plain') %>
ca_file: <%= ENV.fetch('BULK_SMTP_CA_FILE', '/etc/ssl/certs/ca-certificates.crt') %> ca_file: <%= ENV.fetch('BULK_SMTP_CA_FILE', '/etc/ssl/certs/ca-certificates.crt') %>

View File

@ -5,14 +5,24 @@ require 'linzer/message/adapter/http_gem/response'
module Linzer::Message::Adapter module Linzer::Message::Adapter
module ActionDispatch module ActionDispatch
class Response < Linzer::Message::Adapter::Generic::Response class Response < Linzer::Message::Adapter::Abstract
private def initialize(operation, **_options) # rubocop:disable Lint/MissingSuper
@operation = operation
end
def header(name)
@operation.headers[name]
end
def attach!(signature)
signature.to_h.each { |h, v| @operation.headers[h] = v }
end
# Incomplete, but sufficient for FASP # Incomplete, but sufficient for FASP
def derived(name) def [](field_name)
case name.value return @operation.status if field_name == '@status'
when '@status' then @operation.status
end @operation.headers[field_name]
end end
end end
end end

View File

@ -3,7 +3,7 @@
Rails.application.config.to_prepare do Rails.application.config.to_prepare do
custom_css = begin custom_css = begin
Setting.custom_css Setting.custom_css
rescue # Running without a cache, database, not migrated, no connection, etc rescue ActiveRecord::AdapterError # Running without a database, not migrated, no connection, etc
nil nil
end end

View File

@ -49,14 +49,8 @@ en-GB:
attributes: attributes:
reblog: reblog:
taken: of post already exists taken: of post already exists
terms_of_service:
attributes:
effective_date:
too_soon: is too soon, must be later than %{date}
user: user:
attributes: attributes:
date_of_birth:
below_limit: is below the age limit
email: email:
blocked: uses a disallowed e-mail provider blocked: uses a disallowed e-mail provider
unreachable: does not seem to exist unreachable: does not seem to exist

View File

@ -49,14 +49,8 @@ eu:
attributes: attributes:
reblog: reblog:
taken: mezu honentzat bazegoen aurretik taken: mezu honentzat bazegoen aurretik
terms_of_service:
attributes:
effective_date:
too_soon: goizegi da, %{date} baino geroagokoa izan behar da
user: user:
attributes: attributes:
date_of_birth:
below_limit: adinaren mugaren azpitik dago
email: email:
blocked: onartu gabeko e-posta hornitzaile bat erabiltzen du blocked: onartu gabeko e-posta hornitzaile bat erabiltzen du
unreachable: dirudienez ez da existitzen unreachable: dirudienez ez da existitzen

View File

@ -566,13 +566,6 @@ bg:
all: Всичко all: Всичко
limited: Ограничено limited: Ограничено
title: Mодериране title: Mодериране
moderation_notes:
create: Добавяне на бележка за модериране
created_msg: Успешно създадена бележка за модериране на екземпляр!
description_html: Прегледайте и оставете бележки за други модератори и за вас в бъдеще
destroyed_msg: Успешно изтрита бележка за модериране на екземпляр!
placeholder: Сведенията за този екземпляр, предприети действия, или всичко друго, което ще ви помогне да модерирате този екземпляр в бъдеще.
title: Бележки за модериране
private_comment: Личен коментар private_comment: Личен коментар
public_comment: Публичен коментар public_comment: Публичен коментар
purge: Чистка purge: Чистка
@ -781,16 +774,11 @@ bg:
title: Роли title: Роли
rules: rules:
add_new: Добавяне на правило add_new: Добавяне на правило
add_translation: Добавяне на превод
delete: Изтриване delete: Изтриване
description_html: Дори повечето хора да отбелязват, че са прочели и са съгласни с условията на услугата, обикновено хората не ги четат, докато не се сблъскат с проблем. <strong>Улеснете четенето на правилата за сървъра си, представяйки ги като списък с точки.</strong> Опитайте да се придържате към кратки и прости правила, но не ги разпилявайте в премного точки. description_html: Дори повечето хора да отбелязват, че са прочели и са съгласни с условията на услугата, обикновено хората не ги четат, докато не се сблъскат с проблем. <strong>Улеснете четенето на правилата за сървъра си, представяйки ги като списък с точки.</strong> Опитайте да се придържате към кратки и прости правила, но не ги разпилявайте в премного точки.
edit: Промяна на правило edit: Промяна на правило
empty: Още няма определени правила на сървъра. empty: Още няма определени правила на сървъра.
move_down: Преместване надолу
move_up: Преместване нагоре
title: Сървърни правила title: Сървърни правила
translation: Превод
translations: Преводи
settings: settings:
about: about:
manage_rules: Управление на правилата на сървъра manage_rules: Управление на правилата на сървъра
@ -816,7 +804,6 @@ bg:
discovery: discovery:
follow_recommendations: Препоръки за следване follow_recommendations: Препоръки за следване
preamble: За потребители, които са нови и не познават никого в Mastodon, показването на интересно съдържание е ключово. Настройте начина, по който различни функции по откриване на съдържание работят на вашия сървър. preamble: За потребители, които са нови и не познават никого в Mastodon, показването на интересно съдържание е ключово. Настройте начина, по който различни функции по откриване на съдържание работят на вашия сървър.
privacy: Поверителност
profile_directory: Указател на профила profile_directory: Указател на профила
public_timelines: Публични хронологии public_timelines: Публични хронологии
publish_statistics: Публикуване на статистиката publish_statistics: Публикуване на статистиката
@ -903,8 +890,6 @@ bg:
system_checks: system_checks:
database_schema_check: database_schema_check:
message_html: Има миграции на базата данни, които чакат да бъдат изпълнени. Моля, изпълнете ги, за да осигурите изправността на приложението message_html: Има миграции на базата данни, които чакат да бъдат изпълнени. Моля, изпълнете ги, за да осигурите изправността на приложението
elasticsearch_analysis_index_mismatch:
message_html: Настройките за анализиращия индекс Elasticsearch са остарели. Пуснете <code>tootctl search deploy --only-mapping --only=%{value}</code>
elasticsearch_health_red: elasticsearch_health_red:
message_html: Клъстерът Elasticsearch е нездрав (червено състояние), функциите за търсене не са налични message_html: Клъстерът Elasticsearch е нездрав (червено състояние), функциите за търсене не са налични
elasticsearch_health_yellow: elasticsearch_health_yellow:
@ -1856,10 +1841,6 @@ bg:
limit: Вече сте закачили максималния брой публикации limit: Вече сте закачили максималния брой публикации
ownership: Публикация на някого другиго не може да бъде закачена ownership: Публикация на някого другиго не може да бъде закачена
reblog: Раздуване не може да бъде закачано reblog: Раздуване не може да бъде закачано
quote_policies:
followers: Последователи и споменати потребители
nobody: Само споменатите потребители
public: Всеки
title: "%{name}: „%{quote}“" title: "%{name}: „%{quote}“"
visibilities: visibilities:
direct: Директно direct: Директно
@ -1913,11 +1894,6 @@ bg:
does_not_match_previous_name: не съвпада с предишното име does_not_match_previous_name: не съвпада с предишното име
terms_of_service: terms_of_service:
title: Условия на услугата title: Условия на услугата
terms_of_service_interstitial:
future_preamble_html: Правим някои промени в условията на услугата ни, което ще влезе в сила на <strong>%{date}</strong>. Насърчаваме ви да разгледате обновените условия.
past_preamble_html: Променихме условията на услугата ни от последното ви посещение. Насърчаваме ви да разгледате обновените условия.
review_link: Разглеждане на условията на услугата
title: Условията на услугата на %{domain} се променят
themes: themes:
contrast: Mastodon (висок контраст) contrast: Mastodon (висок контраст)
default: Mastodon (тъмно) default: Mastodon (тъмно)

View File

@ -396,9 +396,6 @@ br:
created_at: Deiziad created_at: Deiziad
title_actions: title_actions:
none: Diwall none: Diwall
emoji_styles:
auto: Emgefreek
twemoji: Twemoji
exports: exports:
archive_takeout: archive_takeout:
date: Deiziad date: Deiziad

View File

@ -1387,10 +1387,6 @@ cs:
basic_information: Základní informace basic_information: Základní informace
hint_html: "<strong>Nastavte si, co lidé uvidí na vašem veřejném profilu a vedle vašich příspěvků.</strong> Ostatní lidé vás budou spíše sledovat a komunikovat s vámi, když budete mít vyplněný profil a profilový obrázek." hint_html: "<strong>Nastavte si, co lidé uvidí na vašem veřejném profilu a vedle vašich příspěvků.</strong> Ostatní lidé vás budou spíše sledovat a komunikovat s vámi, když budete mít vyplněný profil a profilový obrázek."
other: Další other: Další
emoji_styles:
auto: Auto
native: Výchozí
twemoji: Twemoji
errors: errors:
'400': Žádost, kterou jste odeslali, byla neplatná nebo poškozená. '400': Žádost, kterou jste odeslali, byla neplatná nebo poškozená.
'403': Nejste oprávněni tuto stránku zobrazit. '403': Nejste oprávněni tuto stránku zobrazit.

View File

@ -1006,7 +1006,7 @@ da:
one: Send %{display_count} e-mail one: Send %{display_count} e-mail
other: Send %{display_count} e-mails other: Send %{display_count} e-mails
title: Forhåndsvis Tjenestevilkår-underretning title: Forhåndsvis Tjenestevilkår-underretning
publish: Publicér publish: Udgiv
published_on_html: Udgivet pr. %{date} published_on_html: Udgivet pr. %{date}
save_draft: Gem udkast save_draft: Gem udkast
title: Tjenestevilkår title: Tjenestevilkår
@ -1347,12 +1347,8 @@ da:
your_appeal_rejected: Din appel er afvist your_appeal_rejected: Din appel er afvist
edit_profile: edit_profile:
basic_information: Oplysninger basic_information: Oplysninger
hint_html: "<strong>Tilpas, hvad folk ser på din offentlige profil og ved siden af dine indlæg.</strong> Andre personer er mere tilbøjelige til at følge dig tilbage og interagere med dig, når du har en udfyldt profil og et profilbillede." hint_html: "<strong>Tilpas hvad folk ser på din offentlige profil og ved siden af dine indlæg.</strong> Andre personer vil mere sandsynligt følge dig tilbage og interagere med dig, når du har en udfyldt profil og et profilbillede."
other: Andre other: Andre
emoji_styles:
auto: Auto
native: Indbygget
twemoji: Twemoji
errors: errors:
'400': Din indsendte anmodning er ugyldig eller fejlbehæftet. '400': Din indsendte anmodning er ugyldig eller fejlbehæftet.
'403': Du har ikke tilladelse til at se denne side. '403': Du har ikke tilladelse til at se denne side.
@ -1489,8 +1485,8 @@ da:
one: Man er ved at <strong>erstatte sine lister</strong> med indhold fra <strong>%{filename}</strong>. <strong>%{count} konto</strong> føjes til nye lister. one: Man er ved at <strong>erstatte sine lister</strong> med indhold fra <strong>%{filename}</strong>. <strong>%{count} konto</strong> føjes til nye lister.
other: Man er ved at <strong>erstatte sine lister</strong> med indhold fra <strong>%{filename}</strong>. Op til <strong>%{count} konti</strong> føjes til nye lister. other: Man er ved at <strong>erstatte sine lister</strong> med indhold fra <strong>%{filename}</strong>. Op til <strong>%{count} konti</strong> føjes til nye lister.
muting_html: muting_html:
one: Du er ved at <strong>erstatte din liste over en skjult konto</strong> med op til <strong>%{count} konto</strong> fra <strong>%{filename}</strong>. one: Man er ved at <strong>sin liste over en tavsgjort konto</strong> med <strong>%{count} konto</strong> fra <strong>%{filename}</strong>.
other: Du er ved at <strong>erstatte din liste over skjulte konti</strong> med op til <strong>%{count} konti</strong> fra <strong>%{filename}</strong>. other: Du er ved at <strong>erstatte din liste over skjulte kontoer</strong> med op til <strong>%{count} kontoer</strong> fra <strong>%{filename}</strong>.
preambles: preambles:
blocking_html: blocking_html:
one: Man er ved at <strong>blokere</strong> <strong>%{count} konto</strong> fra <strong>%{filename}</strong>. one: Man er ved at <strong>blokere</strong> <strong>%{count} konto</strong> fra <strong>%{filename}</strong>.
@ -1508,8 +1504,8 @@ da:
one: Man er ved at tilføje <strong>%{count} konto</strong> fra <strong>%{filename}</strong> til sine <strong>lister</strong>. Nye lister oprettes, hvis der ikke findes nogen liste at tilføje til. one: Man er ved at tilføje <strong>%{count} konto</strong> fra <strong>%{filename}</strong> til sine <strong>lister</strong>. Nye lister oprettes, hvis der ikke findes nogen liste at tilføje til.
other: Man er ved at tilføje <strong>%{count} konti</strong> fra <strong>%{filename}</strong> til sine <strong>lister</strong>. Nye lister oprettes, hvis der ikke findes nogen liste at tilføje til. other: Man er ved at tilføje <strong>%{count} konti</strong> fra <strong>%{filename}</strong> til sine <strong>lister</strong>. Nye lister oprettes, hvis der ikke findes nogen liste at tilføje til.
muting_html: muting_html:
one: Du er ved at <strong>skjule</strong> op til <strong>%{count} konto</strong> fra <strong>%{filename}</strong>. one: Man er ved at <strong>tavsgøre</strong> <strong>%{count} konto</strong> fra <strong>%{filename}</strong>.
other: Du er ved at <strong>skjule</strong> op til <strong>%{count} konti</strong> fra <strong>%{filename}</strong>. other: Du er ved at <strong>skjule</strong> op til <strong>%{count} kontoer</strong> fra <strong>%{filename}</strong>.
preface: Du kan importere data, du har eksporteret fra en anden server, såsom en liste over folk du følger eller blokerer. preface: Du kan importere data, du har eksporteret fra en anden server, såsom en liste over folk du følger eller blokerer.
recent_imports: Seneste importer recent_imports: Seneste importer
states: states:
@ -1526,11 +1522,11 @@ da:
domain_blocking: Importerer blokerede konti domain_blocking: Importerer blokerede konti
following: Importerer fulgte konti following: Importerer fulgte konti
lists: Import af lister lists: Import af lister
muting: Importerer skjulte konti muting: Importerer skjulte kontoer
type: Importtype type: Importtype
type_groups: type_groups:
constructive: Følger og Bogmærker constructive: Følger og Bogmærker
destructive: Blokerede og skjulte konti destructive: Blokerede og skjulte kontoer
types: types:
blocking: Blokeringsliste blocking: Blokeringsliste
bookmarks: Bogmærker bookmarks: Bogmærker
@ -1632,7 +1628,7 @@ da:
title: Moderation title: Moderation
move_handler: move_handler:
carry_blocks_over_text: Denne bruger er flyttet fra %{acct}, som du har haft blokeret. carry_blocks_over_text: Denne bruger er flyttet fra %{acct}, som du har haft blokeret.
carry_mutes_over_text: Denne bruger flyttede fra %{acct}, som du havde skjult. carry_mutes_over_text: Denne bruger er flyttet fra %{acct}, som du har haft skjult.
copy_account_note_text: 'Denne bruger er flyttet fra %{acct}, hvor dine tidligere noter om dem var:' copy_account_note_text: 'Denne bruger er flyttet fra %{acct}, hvor dine tidligere noter om dem var:'
navigation: navigation:
toggle_menu: Åbn/luk menu toggle_menu: Åbn/luk menu
@ -1836,7 +1832,7 @@ da:
profile: Offentlig profil profile: Offentlig profil
relationships: Følger og følgere relationships: Følger og følgere
severed_relationships: Afbrudte forhold severed_relationships: Afbrudte forhold
statuses_cleanup: Automatiseret sletning af indlæg statuses_cleanup: Auto-indlægssletning
strikes: Moderationsadvarsler strikes: Moderationsadvarsler
two_factor_authentication: Tofaktorgodkendelse two_factor_authentication: Tofaktorgodkendelse
webauthn_authentication: Sikkerhedsnøgler webauthn_authentication: Sikkerhedsnøgler
@ -1909,9 +1905,9 @@ da:
keep_polls: Behold afstemninger keep_polls: Behold afstemninger
keep_polls_hint: Sletter ingen af dine afstemninger keep_polls_hint: Sletter ingen af dine afstemninger
keep_self_bookmark: Behold bogmærkede indlæg keep_self_bookmark: Behold bogmærkede indlæg
keep_self_bookmark_hint: Sletter ikke dine egne indlæg, hvis du har bogmærket dem keep_self_bookmark_hint: Sletter ikke dine egne indlæg, såfremt de er bogmærket
keep_self_fav: Behold favoritmarkerede indlæg keep_self_fav: Behold favoritmarkerede indlæg
keep_self_fav_hint: Sletter ikke dine egne indlæg, hvis du har favoritmarkeret dem keep_self_fav_hint: Sletter ikke dine egne indlæg, såfremt de er favoritmarkeret
min_age: min_age:
'1209600': 2 uger '1209600': 2 uger
'15778476': 6 måneder '15778476': 6 måneder

View File

@ -1349,10 +1349,6 @@ de:
basic_information: Allgemeine Informationen basic_information: Allgemeine Informationen
hint_html: "<strong>Bestimme, was andere auf deinem öffentlichen Profil und neben deinen Beiträgen sehen können.</strong> Wenn du ein Profilbild festlegst und dein Profil vervollständigst, werden andere eher mit dir interagieren und dir folgen." hint_html: "<strong>Bestimme, was andere auf deinem öffentlichen Profil und neben deinen Beiträgen sehen können.</strong> Wenn du ein Profilbild festlegst und dein Profil vervollständigst, werden andere eher mit dir interagieren und dir folgen."
other: Andere other: Andere
emoji_styles:
auto: Automatisch
native: Nativ
twemoji: Twemoji
errors: errors:
'400': Die Anfrage, die du gestellt hast, war ungültig oder fehlerhaft. '400': Die Anfrage, die du gestellt hast, war ungültig oder fehlerhaft.
'403': Dir fehlt die Berechtigung, diese Seite aufzurufen. '403': Dir fehlt die Berechtigung, diese Seite aufzurufen.
@ -1944,7 +1940,7 @@ de:
contrast: Mastodon (Hoher Kontrast) contrast: Mastodon (Hoher Kontrast)
default: Mastodon (Dunkel) default: Mastodon (Dunkel)
mastodon-light: Mastodon (Hell) mastodon-light: Mastodon (Hell)
system: Automatisch (wie Betriebssystem) system: Automatisch (mit System synchronisieren)
time: time:
formats: formats:
default: "%d. %b %Y, %H:%M Uhr" default: "%d. %b %Y, %H:%M Uhr"

View File

@ -49,14 +49,14 @@ vi:
title: Đổi lại mật khẩu title: Đổi lại mật khẩu
two_factor_disabled: two_factor_disabled:
explanation: Đăng nhập bây giờ chỉ có thể sử dụng địa chỉ email và mật khẩu. explanation: Đăng nhập bây giờ chỉ có thể sử dụng địa chỉ email và mật khẩu.
subject: 'Mastodon: Xác thực 2 bước đã bị vô hiệu hóa' subject: 'Mastodon: Xác minh 2 bước đã bị vô hiệu hóa'
subtitle: Xác thực 2 bước cho tài khoản của bạn đã bị vô hiệu hóa. subtitle: Xác minh hai bước cho tài khoản của bạn đã bị vô hiệu hóa.
title: Vô hiệu hóa xác thực 2 bước title: Vô hiệu hóa xác minh 2 bước
two_factor_enabled: two_factor_enabled:
explanation: Cần có mã token được tạo bởi ứng dụng TOTP được ghép nối để đăng nhập. explanation: Cần có mã token được tạo bởi ứng dụng TOTP được ghép nối để đăng nhập.
subject: 'Mastodon: Kích hoạt xác thực 2 bước' subject: 'Mastodon: Kích hoạt xác minh 2 bước'
subtitle: Xác thực 2 bước đã được bật cho tài khoản của bạn. subtitle: Xác minh hai bước đã được bật cho tài khoản của bạn.
title: Kích hoạt xác thực 2 bước title: Kích hoạt xác minh 2 bước
two_factor_recovery_codes_changed: two_factor_recovery_codes_changed:
explanation: Các mã khôi phục trước đó đã bị vô hiệu hóa và thay bằng mã mới. explanation: Các mã khôi phục trước đó đã bị vô hiệu hóa và thay bằng mã mới.
subject: 'Mastodon: Mã khôi phục xác thực hai yếu tố đã được tạo lại' subject: 'Mastodon: Mã khôi phục xác thực hai yếu tố đã được tạo lại'

View File

@ -29,7 +29,7 @@ cs:
edit: edit:
title: Upravit aplikaci title: Upravit aplikaci
form: form:
error: A jéje! Zkontrolujte formulář pro případné chyby error: A jéje! Zkontrolujte ve formuláři případné chyby
help: help:
native_redirect_uri: Pro místní testy použijte %{native_redirect_uri} native_redirect_uri: Pro místní testy použijte %{native_redirect_uri}
redirect_uri: Jedno URI na každý řádek redirect_uri: Jedno URI na každý řádek

View File

@ -130,11 +130,11 @@ da:
crypto: Ende-til-ende kryptering crypto: Ende-til-ende kryptering
favourites: Favoritter favourites: Favoritter
filters: Filtre filters: Filtre
follow: Fulgte, skjulte og blokerede konti follow: Fulgte, skjjulte og blokerede kontoer
follows: Følger follows: Følger
lists: Lister lists: Lister
media: Medievedhæftninger media: Medievedhæftninger
mutes: Skjulte mutes: Skjulte kontoer
notifications: Notifikationer notifications: Notifikationer
profile: Din Mastodon-profil profile: Din Mastodon-profil
push: Push-notifikationer push: Push-notifikationer
@ -177,7 +177,7 @@ da:
read:filters: se dine filtre read:filters: se dine filtre
read:follows: se dine følger read:follows: se dine følger
read:lists: se dine lister read:lists: se dine lister
read:mutes: se dine skjulte konti read:mutes: se dine skjulte kontoer
read:notifications: se dine notifikationer read:notifications: se dine notifikationer
read:reports: se dine anmeldelser read:reports: se dine anmeldelser
read:search: søg på dine vegne read:search: søg på dine vegne

View File

@ -309,7 +309,6 @@ en-GB:
title: Audit log title: Audit log
unavailable_instance: "(domain name unavailable)" unavailable_instance: "(domain name unavailable)"
announcements: announcements:
back: Back to announcements
destroyed_msg: Announcement successfully deleted! destroyed_msg: Announcement successfully deleted!
edit: edit:
title: Edit announcement title: Edit announcement
@ -318,10 +317,6 @@ en-GB:
new: new:
create: Create announcement create: Create announcement
title: New announcement title: New announcement
preview:
disclaimer: As users cannot opt out of them, email notifications should be limited to important announcements such as personal data breach or server closure notifications.
explanation_html: 'The email will be sent to <strong>%{display_count} users</strong>. The following text will be included in the e-mail:'
title: Preview announcement notification
publish: Publish publish: Publish
published_msg: Announcement successfully published! published_msg: Announcement successfully published!
scheduled_for: Scheduled for %{time} scheduled_for: Scheduled for %{time}
@ -480,36 +475,6 @@ en-GB:
new: new:
title: Import domain blocks title: Import domain blocks
no_file: No file selected no_file: No file selected
fasp:
debug:
callbacks:
created_at: Created at
delete: Delete
ip: IP address
request_body: Request body
title: Debug Callbacks
providers:
active: Active
base_url: Base URL
callback: Callback
delete: Delete
edit: Edit Provider
finish_registration: Finish registration
name: Name
providers: Providers
public_key_fingerprint: Public key fingerprint
registration_requested: Registration requested
registrations:
confirm: Confirm
description: You received a registration from a FASP. Reject it if you did not initiate this. If you initiated this, carefully compare name and key fingerprint before confirming the registration.
reject: Reject
title: Confirm FASP Registration
save: Save
select_capabilities: Select Capabilities
sign_in: Sign In
status: Status
title: Fediverse Auxiliary Service Providers
title: FASP
follow_recommendations: follow_recommendations:
description_html: "<strong>Follow recommendations help new users quickly find interesting content</strong>. When a user has not interacted with others enough to form personalised follow recommendations, these accounts are recommended instead. They are re-calculated on a daily basis from a mix of accounts with the highest recent engagements and highest local follower counts for a given language." description_html: "<strong>Follow recommendations help new users quickly find interesting content</strong>. When a user has not interacted with others enough to form personalised follow recommendations, these accounts are recommended instead. They are re-calculated on a daily basis from a mix of accounts with the highest recent engagements and highest local follower counts for a given language."
language: For language language: For language
@ -578,13 +543,6 @@ en-GB:
all: All all: All
limited: Limited limited: Limited
title: Moderation title: Moderation
moderation_notes:
create: Add Moderation Note
created_msg: Instance moderation note successfully created!
description_html: View and leave notes for other moderators and your future self
destroyed_msg: Instance moderation note successfully deleted!
placeholder: Information about this instance, actions taken, or anything else that will help you moderate this instance in the future.
title: Moderation Notes
private_comment: Private comment private_comment: Private comment
public_comment: Public comment public_comment: Public comment
purge: Purge purge: Purge
@ -793,26 +751,17 @@ en-GB:
title: Roles title: Roles
rules: rules:
add_new: Add rule add_new: Add rule
add_translation: Add translation
delete: Delete delete: Delete
description_html: While most claim to have read and agree to the terms of service, usually people do not read through until after a problem arises. <strong>Make it easier to see your server's rules at a glance by providing them in a flat bullet point list.</strong> Try to keep individual rules short and simple, but try not to split them up into many separate items either. description_html: While most claim to have read and agree to the terms of service, usually people do not read through until after a problem arises. <strong>Make it easier to see your server's rules at a glance by providing them in a flat bullet point list.</strong> Try to keep individual rules short and simple, but try not to split them up into many separate items either.
edit: Edit rule edit: Edit rule
empty: No server rules have been defined yet. empty: No server rules have been defined yet.
move_down: Move down
move_up: Move up
title: Server rules title: Server rules
translation: Translation
translations: Translations
translations_explanation: You can optionally add translations for the rules. The default value will be shown if no translated version is available. Please always ensure any provided translation is in sync with the default value.
settings: settings:
about: about:
manage_rules: Manage server rules manage_rules: Manage server rules
preamble: Provide in-depth information about how the server is operated, moderated, funded. preamble: Provide in-depth information about how the server is operated, moderated, funded.
rules_hint: There is a dedicated area for rules that your users are expected to adhere to. rules_hint: There is a dedicated area for rules that your users are expected to adhere to.
title: About title: About
allow_referrer_origin:
desc: When your users click links to external sites, their browser may send the address of your Mastodon server as the referrer. Disable this if this would uniquely identify your users, e.g. if this is a personal Mastodon server.
title: Allow external sites to see your Mastodon server as a traffic source
appearance: appearance:
preamble: Customise Mastodon's web interface. preamble: Customise Mastodon's web interface.
title: Appearance title: Appearance
@ -832,7 +781,6 @@ en-GB:
discovery: discovery:
follow_recommendations: Follow recommendations follow_recommendations: Follow recommendations
preamble: Surfacing interesting content is instrumental in onboarding new users who may not know anyone Mastodon. Control how various discovery features work on your server. preamble: Surfacing interesting content is instrumental in onboarding new users who may not know anyone Mastodon. Control how various discovery features work on your server.
privacy: Privacy
profile_directory: Profile directory profile_directory: Profile directory
public_timelines: Public timelines public_timelines: Public timelines
publish_statistics: Publish statistics publish_statistics: Publish statistics
@ -919,8 +867,6 @@ en-GB:
system_checks: system_checks:
database_schema_check: database_schema_check:
message_html: There are pending database migrations. Please run them to ensure the application behaves as expected message_html: There are pending database migrations. Please run them to ensure the application behaves as expected
elasticsearch_analysis_index_mismatch:
message_html: Elasticsearch index analyser settings are outdated. Please run <code>tootctl search deploy --only-mapping --only=%{value}</code>
elasticsearch_health_red: elasticsearch_health_red:
message_html: Elasticsearch cluster is unhealthy (red status), search features are unavailable message_html: Elasticsearch cluster is unhealthy (red status), search features are unavailable
elasticsearch_health_yellow: elasticsearch_health_yellow:
@ -992,7 +938,6 @@ en-GB:
chance_to_review_html: "<strong>The generated terms of service will not be published automatically.</strong> You will have a chance to review the results. Please fill in the necessary details to proceed." chance_to_review_html: "<strong>The generated terms of service will not be published automatically.</strong> You will have a chance to review the results. Please fill in the necessary details to proceed."
explanation_html: The terms of service template provided is for informational purposes only, and should not be construed as legal advice on any subject matter. Please consult with your own legal counsel on your situation and specific legal questions you have. explanation_html: The terms of service template provided is for informational purposes only, and should not be construed as legal advice on any subject matter. Please consult with your own legal counsel on your situation and specific legal questions you have.
title: Terms of Service Setup title: Terms of Service Setup
going_live_on_html: Live, effective %{date}
history: History history: History
live: Live live: Live
no_history: There are no recorded changes of the terms of service yet. no_history: There are no recorded changes of the terms of service yet.
@ -1349,10 +1294,6 @@ en-GB:
basic_information: Basic information basic_information: Basic information
hint_html: "<strong>Customise what people see on your public profile and next to your posts.</strong> Other people are more likely to follow you back and interact with you when you have a filled out profile and a profile picture." hint_html: "<strong>Customise what people see on your public profile and next to your posts.</strong> Other people are more likely to follow you back and interact with you when you have a filled out profile and a profile picture."
other: Other other: Other
emoji_styles:
auto: Auto
native: Native
twemoji: Twemoji
errors: errors:
'400': The request you submitted was invalid or malformed. '400': The request you submitted was invalid or malformed.
'403': You don't have permission to view this page. '403': You don't have permission to view this page.
@ -1878,10 +1819,6 @@ en-GB:
limit: You have already pinned the maximum number of posts limit: You have already pinned the maximum number of posts
ownership: Someone else's post cannot be pinned ownership: Someone else's post cannot be pinned
reblog: A boost cannot be pinned reblog: A boost cannot be pinned
quote_policies:
followers: Followers and mentioned users
nobody: Only mentioned users
public: Everyone
title: '%{name}: "%{quote}"' title: '%{name}: "%{quote}"'
visibilities: visibilities:
direct: Direct direct: Direct
@ -1935,11 +1872,6 @@ en-GB:
does_not_match_previous_name: does not match the previous name does_not_match_previous_name: does not match the previous name
terms_of_service: terms_of_service:
title: Terms of Service title: Terms of Service
terms_of_service_interstitial:
future_preamble_html: We're making some changes to our terms of service, which will be effective on <strong>%{date}</strong>. We encourage you to review the updated terms.
past_preamble_html: We have changed our terms of service since your last visit. We encourage you to review the updated terms.
review_link: Review terms of service
title: The terms of service of %{domain} are changing
themes: themes:
contrast: Mastodon (High contrast) contrast: Mastodon (High contrast)
default: Mastodon (Dark) default: Mastodon (Dark)
@ -1971,10 +1903,6 @@ en-GB:
recovery_instructions_html: If you ever lose access to your phone, you can use one of the recovery codes below to regain access to your account. <strong>Keep the recovery codes safe</strong>. For example, you may print them and store them with other important documents. recovery_instructions_html: If you ever lose access to your phone, you can use one of the recovery codes below to regain access to your account. <strong>Keep the recovery codes safe</strong>. For example, you may print them and store them with other important documents.
webauthn: Security keys webauthn: Security keys
user_mailer: user_mailer:
announcement_published:
description: 'The administrators of %{domain} are making an announcement:'
subject: Service announcement
title: "%{domain} service announcement"
appeal_approved: appeal_approved:
action: Account Settings action: Account Settings
explanation: The appeal of the strike against your account on %{strike_date} that you submitted on %{appeal_date} has been approved. Your account is once again in good standing. explanation: The appeal of the strike against your account on %{strike_date} that you submitted on %{appeal_date} has been approved. Your account is once again in good standing.
@ -2007,8 +1935,6 @@ en-GB:
terms_of_service_changed: terms_of_service_changed:
agreement: By continuing to use %{domain}, you are agreeing to these terms. If you disagree with the updated terms, you may terminate your agreement with %{domain} at any time by deleting your account. agreement: By continuing to use %{domain}, you are agreeing to these terms. If you disagree with the updated terms, you may terminate your agreement with %{domain} at any time by deleting your account.
changelog: 'At a glance, here is what this update means for you:' changelog: 'At a glance, here is what this update means for you:'
description: 'You are receiving this e-mail because we''re making some changes to our terms of service at %{domain}. These updates will take effect on %{date}. We encourage you to review the updated terms in full here:'
description_html: You are receiving this e-mail because we're making some changes to our terms of service at %{domain}. These updates will take effect on <strong>%{date}</strong>. We encourage you to review the <a href="%{path}" target="_blank">updated terms in full here</a>.
sign_off: The %{domain} team sign_off: The %{domain} team
subject: Updates to our terms of service subject: Updates to our terms of service
subtitle: The terms of service of %{domain} are changing subtitle: The terms of service of %{domain} are changing

View File

@ -1349,10 +1349,6 @@ en:
basic_information: Basic information basic_information: Basic information
hint_html: "<strong>Customize what people see on your public profile and next to your posts.</strong> Other people are more likely to follow you back and interact with you when you have a filled out profile and a profile picture." hint_html: "<strong>Customize what people see on your public profile and next to your posts.</strong> Other people are more likely to follow you back and interact with you when you have a filled out profile and a profile picture."
other: Other other: Other
emoji_styles:
auto: Auto
native: Native
twemoji: Twemoji
errors: errors:
'400': The request you submitted was invalid or malformed. '400': The request you submitted was invalid or malformed.
'403': You don't have permission to view this page. '403': You don't have permission to view this page.

View File

@ -1349,10 +1349,6 @@ es-AR:
basic_information: Información básica basic_information: Información básica
hint_html: "<strong>Personalizá lo que la gente ve en tu perfil público y junto a tus publicaciones.</strong> Es más probable que otras personas te sigan e interactúen con vos cuando tengas un perfil completo y una foto de perfil." hint_html: "<strong>Personalizá lo que la gente ve en tu perfil público y junto a tus publicaciones.</strong> Es más probable que otras personas te sigan e interactúen con vos cuando tengas un perfil completo y una foto de perfil."
other: Otros other: Otros
emoji_styles:
auto: Automático
native: Nativo
twemoji: Twemoji
errors: errors:
'400': La solicitud que enviaste no era válida o estaba corrompida. '400': La solicitud que enviaste no era válida o estaba corrompida.
'403': No tenés permiso para ver esta página. '403': No tenés permiso para ver esta página.

View File

@ -1349,10 +1349,6 @@ es-MX:
basic_information: Información básica basic_information: Información básica
hint_html: "<strong>Personaliza lo que la gente ve en tu perfil público junto a tus publicaciones.</strong> Es más probable que otras personas te sigan e interactúen contigo cuando completes tu perfil y agregues una foto." hint_html: "<strong>Personaliza lo que la gente ve en tu perfil público junto a tus publicaciones.</strong> Es más probable que otras personas te sigan e interactúen contigo cuando completes tu perfil y agregues una foto."
other: Otro other: Otro
emoji_styles:
auto: Automático
native: Nativo
twemoji: Twemoji
errors: errors:
'400': La solicitud que has enviado no es valida o estaba malformada. '400': La solicitud que has enviado no es valida o estaba malformada.
'403': No tienes permiso para acceder a esta página. '403': No tienes permiso para acceder a esta página.

View File

@ -1349,10 +1349,6 @@ es:
basic_information: Información básica basic_information: Información básica
hint_html: "<strong>Personaliza lo que la gente ve en tu perfil público junto a tus publicaciones.</strong> Es más probable que otras personas te sigan e interactúen contigo cuando completas tu perfil y foto." hint_html: "<strong>Personaliza lo que la gente ve en tu perfil público junto a tus publicaciones.</strong> Es más probable que otras personas te sigan e interactúen contigo cuando completas tu perfil y foto."
other: Otros other: Otros
emoji_styles:
auto: Automático
native: Nativo
twemoji: Twemoji
errors: errors:
'400': La solicitud que has enviado no es valida o estaba malformada. '400': La solicitud que has enviado no es valida o estaba malformada.
'403': No tienes permiso para acceder a esta página. '403': No tienes permiso para acceder a esta página.

View File

@ -187,7 +187,6 @@ eu:
create_domain_block: Sortu domeinu blokeoa create_domain_block: Sortu domeinu blokeoa
create_email_domain_block: Sortu email domeinu blokeoa create_email_domain_block: Sortu email domeinu blokeoa
create_ip_block: Sortu IP araua create_ip_block: Sortu IP araua
create_relay: Erreleboa sortu
create_unavailable_domain: Sortu eskuragarri ez dagoen domeinua create_unavailable_domain: Sortu eskuragarri ez dagoen domeinua
create_user_role: Sortu rola create_user_role: Sortu rola
demote_user: Jaitsi erabiltzailearen maila demote_user: Jaitsi erabiltzailearen maila
@ -199,13 +198,11 @@ eu:
destroy_email_domain_block: Ezabatu email domeinu blokeoa destroy_email_domain_block: Ezabatu email domeinu blokeoa
destroy_instance: Ezabatu betiko domeinua destroy_instance: Ezabatu betiko domeinua
destroy_ip_block: Ezabatu IP araua destroy_ip_block: Ezabatu IP araua
destroy_relay: Erreleboa ezabatu
destroy_status: Ezabatu bidalketa destroy_status: Ezabatu bidalketa
destroy_unavailable_domain: Ezabatu eskuragarri ez dagoen domeinua destroy_unavailable_domain: Ezabatu eskuragarri ez dagoen domeinua
destroy_user_role: Ezabatu rola destroy_user_role: Ezabatu rola
disable_2fa_user: Desgaitu 2FA disable_2fa_user: Desgaitu 2FA
disable_custom_emoji: Desgaitu emoji pertsonalizatua disable_custom_emoji: Desgaitu emoji pertsonalizatua
disable_relay: Erreleboa desaktibatu
disable_sign_in_token_auth_user: Desgaitu email token autentifikazioa erabiltzailearentzat disable_sign_in_token_auth_user: Desgaitu email token autentifikazioa erabiltzailearentzat
disable_user: Desgaitu erabiltzailea disable_user: Desgaitu erabiltzailea
enable_custom_emoji: Gaitu emoji pertsonalizatua enable_custom_emoji: Gaitu emoji pertsonalizatua
@ -213,7 +210,6 @@ eu:
enable_user: Gaitu erabiltzailea enable_user: Gaitu erabiltzailea
memorialize_account: Bihurtu kontua oroigarri memorialize_account: Bihurtu kontua oroigarri
promote_user: Igo erabiltzailea mailaz promote_user: Igo erabiltzailea mailaz
publish_terms_of_service: Zerbitzu-baldintzak argitaratu
reject_appeal: Baztertu apelazioa reject_appeal: Baztertu apelazioa
reject_user: Baztertu erabiltzailea reject_user: Baztertu erabiltzailea
remove_avatar_user: Kendu abatarra remove_avatar_user: Kendu abatarra
@ -233,29 +229,23 @@ eu:
update_custom_emoji: Eguneratu emoji pertsonalizatua update_custom_emoji: Eguneratu emoji pertsonalizatua
update_domain_block: Eguneratu domeinu-blokeoa update_domain_block: Eguneratu domeinu-blokeoa
update_ip_block: Eguneratu IP araua update_ip_block: Eguneratu IP araua
update_report: Txostena eguneratu
update_status: Eguneratu bidalketa update_status: Eguneratu bidalketa
update_user_role: Eguneratu rola update_user_role: Eguneratu rola
actions: actions:
approve_appeal_html: "%{name} erabiltzaileak %{target} erabiltzailearen moderazio erabakiaren apelazioa onartu du" approve_appeal_html: "%{name} erabiltzaileak %{target} erabiltzailearen moderazio erabakiaren apelazioa onartu du"
approve_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen izen-ematea onartu du" approve_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen izen-ematea onartu du"
assigned_to_self_report_html: "%{name} erabiltzaileak %{target} salaketa bere buruari esleitu dio" assigned_to_self_report_html: "%{name} erabiltzaileak %{target} salaketa bere buruari esleitu dio"
change_email_user_html: "%{name}(e)k %{target} erabiltzailearen e-posta helbidea aldatu du"
change_role_user_html: "%{name} erabiltzaileak %{target} kontuaren rola aldatu du" change_role_user_html: "%{name} erabiltzaileak %{target} kontuaren rola aldatu du"
confirm_user_html: "%{name}(e)k %{target} erabiltzailearen e-posta helbidea berretsi du"
create_account_warning_html: "%{name} erabiltzaileak abisua bidali dio %{target} erabiltzaileari" create_account_warning_html: "%{name} erabiltzaileak abisua bidali dio %{target} erabiltzaileari"
create_announcement_html: "%{name} erabiltzaileak %{target} iragarpen berria sortu du" create_announcement_html: "%{name} erabiltzaileak %{target} iragarpen berria sortu du"
create_canonical_email_block_html: "%{name}(e)k %{target} hash-a duen helbide elektronikoa blokeatu du"
create_custom_emoji_html: "%{name} erabiltzaileak %{target} emoji berria kargatu du" create_custom_emoji_html: "%{name} erabiltzaileak %{target} emoji berria kargatu du"
create_domain_allow_html: "%{name} erabiltzaileak %{target} domeinuarekin federazioa onartu du" create_domain_allow_html: "%{name} erabiltzaileak %{target} domeinuarekin federazioa onartu du"
create_domain_block_html: "%{name} erabiltzaileak %{target} domeinua blokeatu du" create_domain_block_html: "%{name} erabiltzaileak %{target} domeinua blokeatu du"
create_email_domain_block_html: "%{name}(e)k %{target} e-posta helbideen domeinua blokeatu du"
create_ip_block_html: "%{name} kontuak %{target} IParen araua sortu du" create_ip_block_html: "%{name} kontuak %{target} IParen araua sortu du"
create_unavailable_domain_html: "%{name}(e)k %{target} domeinurako banaketa gelditu du" create_unavailable_domain_html: "%{name}(e)k %{target} domeinurako banaketa gelditu du"
create_user_role_html: "%{name} erabiltzaileak %{target} rola sortu du" create_user_role_html: "%{name} erabiltzaileak %{target} rola sortu du"
demote_user_html: "%{name} erabiltzaileak %{target} erabiltzailea mailaz jaitsi du" demote_user_html: "%{name} erabiltzaileak %{target} erabiltzailea mailaz jaitsi du"
destroy_announcement_html: "%{name} erabiltzaileak %{target} iragarpena ezabatu du" destroy_announcement_html: "%{name} erabiltzaileak %{target} iragarpena ezabatu du"
destroy_canonical_email_block_html: "%{name}(e)k %{target} hash-a duen helbide elektronikoa desblokeatu du"
destroy_custom_emoji_html: "%{name} erabiltzaileak %{target} emoji-a ezabatu du" destroy_custom_emoji_html: "%{name} erabiltzaileak %{target} emoji-a ezabatu du"
destroy_domain_allow_html: "%{name} erabiltzaileak %{target} domeinuarekin federatzea debekatu du" destroy_domain_allow_html: "%{name} erabiltzaileak %{target} domeinuarekin federatzea debekatu du"
destroy_domain_block_html: "%{name} erabiltzaileak %{target} domeinua desblokeatu du" destroy_domain_block_html: "%{name} erabiltzaileak %{target} domeinua desblokeatu du"
@ -296,9 +286,7 @@ eu:
filter_by_action: Iragazi ekintzen arabera filter_by_action: Iragazi ekintzen arabera
filter_by_user: Iragazi erabiltzaileen arabera filter_by_user: Iragazi erabiltzaileen arabera
title: Auditoria-egunkaria title: Auditoria-egunkaria
unavailable_instance: "(domeinu izena ez dago erabilgarri)"
announcements: announcements:
back: Oharretara bueltatu
destroyed_msg: Iragarpena ongi ezabatu da! destroyed_msg: Iragarpena ongi ezabatu da!
edit: edit:
title: Editatu iragarpena title: Editatu iragarpena
@ -445,10 +433,8 @@ eu:
new: new:
create: Gehitu domeinua create: Gehitu domeinua
resolve: Ebatzi domeinua resolve: Ebatzi domeinua
title: Posta domeinu berria blokeatu
not_permitted: Baimendu gabea not_permitted: Baimendu gabea
resolved_through_html: "%{domain} domeinuaren bidez ebatzia" resolved_through_html: "%{domain} domeinuaren bidez ebatzia"
title: Email domeinua blokeatuta
export_domain_allows: export_domain_allows:
new: new:
title: Baimendutako domeinuak inportatu title: Baimendutako domeinuak inportatu
@ -464,32 +450,6 @@ eu:
new: new:
title: Domeinu-blokeoak inportatu title: Domeinu-blokeoak inportatu
no_file: Ez da fitxategirik hautatu no_file: Ez da fitxategirik hautatu
fasp:
debug:
callbacks:
created_at: Sortua hemen
delete: Ezabatu
ip: IP helbidea
request_body: Eskaeraren edukia
title: Atzera-deiak araztu
providers:
active: Aktibo
base_url: Oinarrizko URL-a
delete: Ezabatu
edit: Editatu hornitzailea
finish_registration: Izen-ematea bukatu
name: Izena
providers: Hornitzaileak
public_key_fingerprint: Gako publikoaren hatz-marka
registration_requested: Izen-ematea eskatuta
registrations:
confirm: Berretsi
reject: Ukatu
save: Gorde
sign_in: Hasi saioa
status: Egoera
title: Fedibertsoko zerbitzu osagarrien hornitzaileak
title: FZOH
follow_recommendations: follow_recommendations:
description_html: "<strong>Jarraitzeko gomendioek erabiltzaile berriei eduki interesgarria azkar aurkitzen laguntzen diete</strong>. Erabiltzaile batek jarraitzeko gomendio pertsonalizatuak jasotzeko adina interakzio izan ez duenean, kontu hauek gomendatzen zaizkio. Egunero birkalkulatzen dira hizkuntza bakoitzerako, azken aldian parte-hartze handiena izan duten eta jarraitzaile lokal gehien dituzten kontuak nahasiz." description_html: "<strong>Jarraitzeko gomendioek erabiltzaile berriei eduki interesgarria azkar aurkitzen laguntzen diete</strong>. Erabiltzaile batek jarraitzeko gomendio pertsonalizatuak jasotzeko adina interakzio izan ez duenean, kontu hauek gomendatzen zaizkio. Egunero birkalkulatzen dira hizkuntza bakoitzerako, azken aldian parte-hartze handiena izan duten eta jarraitzaile lokal gehien dituzten kontuak nahasiz."
language: Hizkuntza language: Hizkuntza
@ -555,10 +515,6 @@ eu:
all: Denak all: Denak
limited: Mugatua limited: Mugatua
title: Moderazioa title: Moderazioa
moderation_notes:
create: Gehitu Moderazio Oharra
created_msg: Instantziako moderazio oharra ongi sortu da!
description_html: Ikusi eta idatzi oharrak beste moderatzaileentzat eta zuretzat etorkizunerako
private_comment: Iruzkin pribatua private_comment: Iruzkin pribatua
public_comment: Iruzkin publikoa public_comment: Iruzkin publikoa
purge: Ezabatu betiko purge: Ezabatu betiko
@ -761,14 +717,11 @@ eu:
title: Rolak title: Rolak
rules: rules:
add_new: Gehitu araua add_new: Gehitu araua
add_translation: Gehitu itzulpena
delete: Ezabatu delete: Ezabatu
description_html: Gehienek erabilera baldintzak irakurri eta onartu dituztela baieztatzen badute ere, orokorrean arazoren bat dagoen arte ez dituzte irakurtzen. <strong>Zerbitzariaren arauak begirada batean ikustea errazteko buletadun zerrenda batean bildu.</strong> Saiatu arauak labur eta sinple idazten, baina elementu askotan banatu gabe. description_html: Gehienek erabilera baldintzak irakurri eta onartu dituztela baieztatzen badute ere, orokorrean arazoren bat dagoen arte ez dituzte irakurtzen. <strong>Zerbitzariaren arauak begirada batean ikustea errazteko buletadun zerrenda batean bildu.</strong> Saiatu arauak labur eta sinple idazten, baina elementu askotan banatu gabe.
edit: Editatu araua edit: Editatu araua
empty: Ez da zerbitzariko araurik definitu oraindik. empty: Ez da zerbitzariko araurik definitu oraindik.
title: Zerbitzariaren arauak title: Zerbitzariaren arauak
translation: Itzulpena
translations: Itzulpenak
settings: settings:
about: about:
manage_rules: Kudeatu zerbitzariaren arauak manage_rules: Kudeatu zerbitzariaren arauak
@ -794,7 +747,6 @@ eu:
discovery: discovery:
follow_recommendations: Jarraitzeko gomendioak follow_recommendations: Jarraitzeko gomendioak
preamble: Eduki interesgarria aurkitzea garrantzitsua da Mastodoneko erabiltzaile berrientzat, behar bada inor ez dutelako ezagutuko. Kontrolatu zure zerbitzariko aurkikuntza-ezaugarriek nola funtzionatzen duten. preamble: Eduki interesgarria aurkitzea garrantzitsua da Mastodoneko erabiltzaile berrientzat, behar bada inor ez dutelako ezagutuko. Kontrolatu zure zerbitzariko aurkikuntza-ezaugarriek nola funtzionatzen duten.
privacy: Pribatutasuna
profile_directory: Profil-direktorioa profile_directory: Profil-direktorioa
public_timelines: Denbora-lerro publikoak public_timelines: Denbora-lerro publikoak
publish_statistics: Argitaratu estatistikak publish_statistics: Argitaratu estatistikak
@ -825,7 +777,6 @@ eu:
destroyed_msg: Guneko igoera ongi ezabatu da! destroyed_msg: Guneko igoera ongi ezabatu da!
software_updates: software_updates:
critical_update: Kritikoa — mesedez, eguneratu azkar critical_update: Kritikoa — mesedez, eguneratu azkar
description: Gomendagarria da Mastodon instalazioa eguneratuta mantentzea azken konponketa eta funtzioez baliatzeko. Gainera, batzuetan ezinbestekoa da Mastodon garaiz eguneratzea segurtasun arazoak saihesteko. Arrazoi hauengatik, Mastodonek 30 minuturo eguneratzeak egiaztatzen ditu, eta zure posta elektroniko bidezko jakinarazpenen lehentasunen arabera jakinaraziko dizu.
documentation_link: Informazio gehiago documentation_link: Informazio gehiago
release_notes: Bertsio oharrak release_notes: Bertsio oharrak
title: Eguneraketak eskuragarri title: Eguneraketak eskuragarri
@ -843,7 +794,6 @@ eu:
batch: batch:
remove_from_report: Kendu txostenetik remove_from_report: Kendu txostenetik
report: Salatu report: Salatu
contents: Edukiak
deleted: Ezabatuta deleted: Ezabatuta
favourites: Gogokoak favourites: Gogokoak
history: Bertsio-historia history: Bertsio-historia
@ -852,7 +802,6 @@ eu:
media: media:
title: Multimedia title: Multimedia
metadata: Metadatuak metadata: Metadatuak
no_history: Bidalketa hau ez da editatu
no_status_selected: Ez da bidalketarik aldatu ez delako bat ere hautatu no_status_selected: Ez da bidalketarik aldatu ez delako bat ere hautatu
open: Ireki bidalketa open: Ireki bidalketa
original_status: Jatorrizko bidalketa original_status: Jatorrizko bidalketa
@ -900,8 +849,6 @@ eu:
message_html: Ez duzu zerbitzariaren araurik definitu. message_html: Ez duzu zerbitzariaren araurik definitu.
sidekiq_process_check: sidekiq_process_check:
message_html: Ez da ari Sidekiq prozesurik exekutatzen %{value} ilad(et)an. Egiaztatu Sidekiq konfigurazioa message_html: Ez da ari Sidekiq prozesurik exekutatzen %{value} ilad(et)an. Egiaztatu Sidekiq konfigurazioa
software_version_check:
message_html: Mastodon eguneratze bat eskuragarri dago.
software_version_critical_check: software_version_critical_check:
action: Ikusi eguneraketa eskuragarriak action: Ikusi eguneraketa eskuragarriak
message_html: Mastodon eguneraketa kritikoa eskuragarri, mesedez eguneratu ahal bezain azkar. message_html: Mastodon eguneraketa kritikoa eskuragarri, mesedez eguneratu ahal bezain azkar.
@ -915,35 +862,8 @@ eu:
action: Ikus hemen informazio gehiagorako action: Ikus hemen informazio gehiagorako
message_html: "<strong>Zure objektuen biltegiratzea ez dago ongi konfiguratua. Zure erabiltzaileen pribatutasuna arriskuan dago.</strong>" message_html: "<strong>Zure objektuen biltegiratzea ez dago ongi konfiguratua. Zure erabiltzaileen pribatutasuna arriskuan dago.</strong>"
tags: tags:
moderation:
not_usable: Ez erabilgarri
pending_review: Berrikusketaren zain
reviewed: Berrikusita
title: Egoera
unreviewed: Berrikusi gabe
usable: Erabilgarri
name: Izena
newest: Berriena
oldest: Zaharrena
open: Publikoki ikusi
reset: Berrezarri
review: Berrikusketaren egoera review: Berrikusketaren egoera
search: Bilatu
title: Traolak
updated_msg: Traola-ezarpenak ongi eguneratu dira updated_msg: Traola-ezarpenak ongi eguneratu dira
terms_of_service:
changelog: Zer aldatu da
current: Oraingoa
draft: Zirriborroa
generate: Txantiloila erabili
generates:
action: Sortu
history: Historia
live: Zuzenean
publish: Argitaratu
published_on_html: "%{date}(e)an argitaratua"
save_draft: Gorde zirriborroa
title: Zerbitzuaren baldintzak
title: Administrazioa title: Administrazioa
trends: trends:
allow: Onartu allow: Onartu
@ -1136,7 +1056,6 @@ eu:
migrate_account_html: Kontu hau beste batera birbideratu nahi baduzu, <a href="%{path}">hemen konfiguratu</a> dezakezu. migrate_account_html: Kontu hau beste batera birbideratu nahi baduzu, <a href="%{path}">hemen konfiguratu</a> dezakezu.
or_log_in_with: Edo hasi saioa honekin or_log_in_with: Edo hasi saioa honekin
progress: progress:
confirm: Berretsi e-mail helbidea
details: Zure xehetasunak details: Zure xehetasunak
review: Gure berrikuspena review: Gure berrikuspena
rules: Onartu arauak rules: Onartu arauak
@ -1158,7 +1077,6 @@ eu:
security: Segurtasuna security: Segurtasuna
set_new_password: Ezarri pasahitza berria set_new_password: Ezarri pasahitza berria
setup: setup:
email_below_hint_html: Begiratu zure spameko karpetan, edo eskatu beste bat. Zure helbide elektronikoa zuzen dezakezu oker badago.
link_not_received: Ez duzu estekarik jaso? link_not_received: Ez duzu estekarik jaso?
title: Begiratu zure sarrera-ontzia title: Begiratu zure sarrera-ontzia
sign_in: sign_in:
@ -1669,12 +1587,10 @@ eu:
delete: Kontuaren ezabaketa delete: Kontuaren ezabaketa
development: Garapena development: Garapena
edit_profile: Editatu profila edit_profile: Editatu profila
export: Esportatu
featured_tags: Nabarmendutako traolak featured_tags: Nabarmendutako traolak
import: Inportazioa import: Inportazioa
import_and_export: Inportatu eta esportatu import_and_export: Inportatu eta esportatu
migrate: Kontuaren migrazioa migrate: Kontuaren migrazioa
notifications: Posta bidezko jakinarazpenak
preferences: Hobespenak preferences: Hobespenak
profile: Profila profile: Profila
relationships: Jarraitutakoak eta jarraitzaileak relationships: Jarraitutakoak eta jarraitzaileak
@ -1721,10 +1637,6 @@ eu:
limit: Gehienez finkatu daitekeen bidalketa kopurua finkatu duzu jada limit: Gehienez finkatu daitekeen bidalketa kopurua finkatu duzu jada
ownership: Ezin duzu beste norbaiten bidalketa bat finkatu ownership: Ezin duzu beste norbaiten bidalketa bat finkatu
reblog: Bultzada bat ezin da finkatu reblog: Bultzada bat ezin da finkatu
quote_policies:
followers: Jarraitzaileak eta aipatutako erabiltzaileak
nobody: Aipatutako erabiltzaileak soilik
public: Guztiak
title: '%{name}: "%{quote}"' title: '%{name}: "%{quote}"'
visibilities: visibilities:
direct: Zuzena direct: Zuzena
@ -1776,8 +1688,6 @@ eu:
too_late: Beranduegi da neurri hau apelatzeko too_late: Beranduegi da neurri hau apelatzeko
tags: tags:
does_not_match_previous_name: ez dator aurreko izenarekin bat does_not_match_previous_name: ez dator aurreko izenarekin bat
terms_of_service:
title: Erabilera baldintzak
themes: themes:
contrast: Mastodon (Kontraste altua) contrast: Mastodon (Kontraste altua)
default: Mastodon (Iluna) default: Mastodon (Iluna)
@ -1923,7 +1833,6 @@ eu:
instructions_html: Kopiatu eta itsatsi ondoko kodea zure webguneko HTMLan. Ondoren, gehitu zure webgunearen helbidea zure profileko eremu gehigarrietako batean, "Editatu profila" fitxatik eta gorde aldaketak. instructions_html: Kopiatu eta itsatsi ondoko kodea zure webguneko HTMLan. Ondoren, gehitu zure webgunearen helbidea zure profileko eremu gehigarrietako batean, "Editatu profila" fitxatik eta gorde aldaketak.
verification: Egiaztaketa verification: Egiaztaketa
verified_links: Zure lotura egiaztatuak verified_links: Zure lotura egiaztatuak
website_verification: Web orriaren egiaztapena
webauthn_credentials: webauthn_credentials:
add: Gehitu segurtasun gako berria add: Gehitu segurtasun gako berria
create: create:

View File

@ -1347,10 +1347,6 @@ fi:
basic_information: Perustiedot basic_information: Perustiedot
hint_html: "<strong>Mukauta, mitä ihmiset näkevät julkisessa profiilissasi ja julkaisujesi vieressä.</strong> Sinua seurataan takaisin ja kanssasi ollaan vuorovaikutuksessa todennäköisemmin, kun sinulla on täytetty profiili ja profiilikuva." hint_html: "<strong>Mukauta, mitä ihmiset näkevät julkisessa profiilissasi ja julkaisujesi vieressä.</strong> Sinua seurataan takaisin ja kanssasi ollaan vuorovaikutuksessa todennäköisemmin, kun sinulla on täytetty profiili ja profiilikuva."
other: Muut other: Muut
emoji_styles:
auto: Automaattinen
native: Natiivi
twemoji: Twemoji
errors: errors:
'400': Lähettämäsi pyyntö oli virheellinen tai muotoiltu virheellisesti. '400': Lähettämäsi pyyntö oli virheellinen tai muotoiltu virheellisesti.
'403': Sinulla ei ole oikeutta nähdä tätä sivua. '403': Sinulla ei ole oikeutta nähdä tätä sivua.

View File

@ -1349,10 +1349,6 @@ fo:
basic_information: Grundleggjandi upplýsingar basic_information: Grundleggjandi upplýsingar
hint_html: "<strong>Tillaga tað, sum fólk síggja á tínum almenna vanga og við síðna av tínum postum.</strong> Sannlíkindini fyri, at onnur fylgja tær og virka saman við tær eru størri, tá tú hevur fylt út vangan og eina vangamynd." hint_html: "<strong>Tillaga tað, sum fólk síggja á tínum almenna vanga og við síðna av tínum postum.</strong> Sannlíkindini fyri, at onnur fylgja tær og virka saman við tær eru størri, tá tú hevur fylt út vangan og eina vangamynd."
other: Onnur other: Onnur
emoji_styles:
auto: Sjálvvirkandi
native: Upprunalig
twemoji: Twitter kenslutekn
errors: errors:
'400': Umbønin, sum tú sendi inn, var ógildug ella hevði skeivt skap. '400': Umbønin, sum tú sendi inn, var ógildug ella hevði skeivt skap.
'403': Tú hevur ikki loyvi at síggja hesa síðuna. '403': Tú hevur ikki loyvi at síggja hesa síðuna.

View File

@ -1851,8 +1851,6 @@ fr-CA:
limit: Vous avez déjà épinglé le nombre maximum de messages limit: Vous avez déjà épinglé le nombre maximum de messages
ownership: Vous ne pouvez pas épingler un message ne vous appartenant pas ownership: Vous ne pouvez pas épingler un message ne vous appartenant pas
reblog: Un partage ne peut pas être épinglé reblog: Un partage ne peut pas être épinglé
quote_policies:
followers: Abonné·e·s et utilisateur·trice·s mentionné·e·s
title: "%{name}: « %{quote} »" title: "%{name}: « %{quote} »"
visibilities: visibilities:
direct: Direct direct: Direct
@ -1906,8 +1904,6 @@ fr-CA:
does_not_match_previous_name: ne correspond pas au nom précédent does_not_match_previous_name: ne correspond pas au nom précédent
terms_of_service: terms_of_service:
title: Conditions d'utilisation title: Conditions d'utilisation
terms_of_service_interstitial:
title: Les conditions d'utilisation de %{domain} ont changées
themes: themes:
contrast: Mastodon (Contraste élevé) contrast: Mastodon (Contraste élevé)
default: Mastodon (Sombre) default: Mastodon (Sombre)

View File

@ -1851,8 +1851,6 @@ fr:
limit: Vous avez déjà épinglé le nombre maximum de messages limit: Vous avez déjà épinglé le nombre maximum de messages
ownership: Vous ne pouvez pas épingler un message ne vous appartenant pas ownership: Vous ne pouvez pas épingler un message ne vous appartenant pas
reblog: Un partage ne peut pas être épinglé reblog: Un partage ne peut pas être épinglé
quote_policies:
followers: Abonné·e·s et utilisateur·trice·s mentionné·e·s
title: "%{name}: « %{quote} »" title: "%{name}: « %{quote} »"
visibilities: visibilities:
direct: Direct direct: Direct
@ -1906,8 +1904,6 @@ fr:
does_not_match_previous_name: ne correspond pas au nom précédent does_not_match_previous_name: ne correspond pas au nom précédent
terms_of_service: terms_of_service:
title: Conditions d'utilisation title: Conditions d'utilisation
terms_of_service_interstitial:
title: Les conditions d'utilisation de %{domain} ont changées
themes: themes:
contrast: Mastodon (Contraste élevé) contrast: Mastodon (Contraste élevé)
default: Mastodon (Sombre) default: Mastodon (Sombre)

View File

@ -578,13 +578,6 @@ fy:
all: Alle all: Alle
limited: Beheind limited: Beheind
title: Moderaasje title: Moderaasje
moderation_notes:
create: Moderaasje-opmerking oanmeitsje
created_msg: Oanmeitsjen fan servermoderaasje-opmerking slagge!
description_html: Opmerkingen besjen en foar josele en oare moderatoaren efterlitte
destroyed_msg: Fuortsmiten fan servermoderaasje-opmerking slagge!
placeholder: Ynformaasje oer dizze server, nommen aksjes of wat oars dyt jo helpe kinne om dizze server yn de takomst te moderearjen.
title: Moderaasje-opmerkingen
private_comment: Priveeopmerking private_comment: Priveeopmerking
public_comment: Iepenbiere opmerking public_comment: Iepenbiere opmerking
purge: Folslein fuortsmite purge: Folslein fuortsmite
@ -1349,10 +1342,6 @@ fy:
basic_information: Algemiene ynformaasje basic_information: Algemiene ynformaasje
hint_html: "<strong>Pas oan wat minsken op jo iepenbiere profyl en njonken jo berjochten sjogge.</strong> Oare minsken sille jo earder folgje en mei jo kommunisearje wanneart jo profyl ynfolle is en jo in profylfoto hawwe." hint_html: "<strong>Pas oan wat minsken op jo iepenbiere profyl en njonken jo berjochten sjogge.</strong> Oare minsken sille jo earder folgje en mei jo kommunisearje wanneart jo profyl ynfolle is en jo in profylfoto hawwe."
other: Oars other: Oars
emoji_styles:
auto: Automatysk
native: Systeemeigen
twemoji: Twemoji
errors: errors:
'400': De oanfraach dyt jo yntsjinne hawwe wie ûnjildich of fout. '400': De oanfraach dyt jo yntsjinne hawwe wie ûnjildich of fout.
'403': Jo hawwe gjin tastimming om dizze side te besjen. '403': Jo hawwe gjin tastimming om dizze side te besjen.

View File

@ -1406,10 +1406,6 @@ ga:
basic_information: Eolas bunúsach basic_information: Eolas bunúsach
hint_html: "<strong>Saincheap a bhfeiceann daoine ar do phróifíl phoiblí agus in aice le do phostálacha.</strong> Is dóichí go leanfaidh daoine eile ar ais tú agus go n-idirghníomhóidh siad leat nuair a bhíonn próifíl líonta agus pictiúr próifíle agat." hint_html: "<strong>Saincheap a bhfeiceann daoine ar do phróifíl phoiblí agus in aice le do phostálacha.</strong> Is dóichí go leanfaidh daoine eile ar ais tú agus go n-idirghníomhóidh siad leat nuair a bhíonn próifíl líonta agus pictiúr próifíle agat."
other: Eile other: Eile
emoji_styles:
auto: Uath
native: Dúchasach
twemoji: Twemoji
errors: errors:
'400': Bhí an t-iarratas a chuir tú isteach neamhbhailí nó míchumtha. '400': Bhí an t-iarratas a chuir tú isteach neamhbhailí nó míchumtha.
'403': Níl cead agat an leathanach seo a fheiceáil. '403': Níl cead agat an leathanach seo a fheiceáil.

View File

@ -1349,10 +1349,6 @@ gl:
basic_information: Información básica basic_information: Información básica
hint_html: "<strong>Personaliza o que van ver no teu perfil público e ao lado das túas publicacións.</strong> As outras persoas estarán máis animadas a seguirte e interactuar contigo se engades algún dato sobre ti así como unha imaxe de perfil." hint_html: "<strong>Personaliza o que van ver no teu perfil público e ao lado das túas publicacións.</strong> As outras persoas estarán máis animadas a seguirte e interactuar contigo se engades algún dato sobre ti así como unha imaxe de perfil."
other: Outros other: Outros
emoji_styles:
auto: Auto
native: Nativo
twemoji: Twemoji
errors: errors:
'400': A solicitude que enviou non é válida ou ten formato incorrecto. '400': A solicitude que enviou non é válida ou ten formato incorrecto.
'403': Non ten permiso para ver esta páxina. '403': Non ten permiso para ver esta páxina.

View File

@ -1387,10 +1387,6 @@ he:
basic_information: מידע בסיסי basic_information: מידע בסיסי
hint_html: "<strong>התאמה אישית של מה שיראו אחרים בפרופיל הציבורי שלך וליד הודעותיך.</strong> אחרים עשויים יותר להחזיר עוקב וליצור אתך שיחה אם הפרופיל והתמונה יהיו מלאים." hint_html: "<strong>התאמה אישית של מה שיראו אחרים בפרופיל הציבורי שלך וליד הודעותיך.</strong> אחרים עשויים יותר להחזיר עוקב וליצור אתך שיחה אם הפרופיל והתמונה יהיו מלאים."
other: אחר other: אחר
emoji_styles:
auto: אוטומטי
native: מקומי
twemoji: Twemoji
errors: errors:
'400': הבקשה שהגשת לא תקינה. '400': הבקשה שהגשת לא תקינה.
'403': חסרות לך הרשאות לצפיה בעמוד זה. '403': חסרות לך הרשאות לצפיה בעמוד זה.

View File

@ -1353,10 +1353,6 @@ is:
basic_information: Grunnupplýsingar basic_information: Grunnupplýsingar
hint_html: "<strong>Sérsníddu hvað fólk sér á opinbera notandasniðinu þínu og næst færslunum þínum.</strong> Annað fólk er líklegra til að fylgjast með þér og eiga í samskiptum við þig ef þú fyllir út notandasniðið og setur auðkennismynd." hint_html: "<strong>Sérsníddu hvað fólk sér á opinbera notandasniðinu þínu og næst færslunum þínum.</strong> Annað fólk er líklegra til að fylgjast með þér og eiga í samskiptum við þig ef þú fyllir út notandasniðið og setur auðkennismynd."
other: Annað other: Annað
emoji_styles:
auto: Sjálfvirkt
native: Innbyggt
twemoji: Twemoji
errors: errors:
'400': Beiðnin sem þú sendir er ógild eða rangt uppsett. '400': Beiðnin sem þú sendir er ógild eða rangt uppsett.
'403': Þú hefur ekki heimildir til að skoða þessari síðu. '403': Þú hefur ekki heimildir til að skoða þessari síðu.

View File

@ -1351,10 +1351,6 @@ it:
basic_information: Informazioni di base basic_information: Informazioni di base
hint_html: "<strong>Personalizza ciò che le persone vedono sul tuo profilo pubblico e accanto ai tuoi post.</strong> È più probabile che altre persone ti seguano e interagiscano con te quando hai un profilo compilato e un'immagine del profilo." hint_html: "<strong>Personalizza ciò che le persone vedono sul tuo profilo pubblico e accanto ai tuoi post.</strong> È più probabile che altre persone ti seguano e interagiscano con te quando hai un profilo compilato e un'immagine del profilo."
other: Altro other: Altro
emoji_styles:
auto: Automatico
native: Nativo
twemoji: Twemoji
errors: errors:
'400': La richiesta che hai inviato non è valida o non è corretta. '400': La richiesta che hai inviato non è valida o non è corretta.
'403': Non sei autorizzato a visualizzare questa pagina. '403': Non sei autorizzato a visualizzare questa pagina.

View File

@ -280,7 +280,6 @@ kab:
registrations: registrations:
confirm: Sentem confirm: Sentem
save: Sekles save: Sekles
sign_in: Qqen
title: FASP title: FASP
follow_recommendations: follow_recommendations:
language: I tutlayt language: I tutlayt
@ -384,9 +383,6 @@ kab:
updated_at: Yettwaleqqem updated_at: Yettwaleqqem
view_profile: Wali amaɣnu view_profile: Wali amaɣnu
roles: roles:
assigned_users:
one: "%{count} n useqdac"
other: "%{count} n iseqdacen"
categories: categories:
administration: Tadbelt administration: Tadbelt
invites: Iɛeṛṛuḍen invites: Iɛeṛṛuḍen
@ -399,20 +395,16 @@ kab:
view_dashboard: Timẓriwt n tfelwit view_dashboard: Timẓriwt n tfelwit
rules: rules:
add_new: Rnu alugen add_new: Rnu alugen
add_translation: Ad yernu tasuqilt
delete: Kkes delete: Kkes
edit: Ẓreg alugen edit: Ẓreg alugen
empty: Mazal ur ttwasbadun ara yilugan n uqeddac. empty: Mazal ur ttwasbadun ara yilugan n uqeddac.
title: Ilugan n uqeddac title: Ilugan n uqeddac
translation: Tasuqilt
translations: Tisuqilin
settings: settings:
about: about:
title: Ɣef title: Ɣef
appearance: appearance:
title: Udem title: Udem
discovery: discovery:
privacy: Tabaḍnit
profile_directory: Akaram n imaɣnuten profile_directory: Akaram n imaɣnuten
title: Asnirem title: Asnirem
trends: Ayen mucaɛen trends: Ayen mucaɛen
@ -448,10 +440,6 @@ kab:
visibility: Abani visibility: Abani
with_media: S umidya with_media: S umidya
system_checks: system_checks:
elasticsearch_preset:
action: Wali tasemlit
elasticsearch_preset_single_node:
action: Wali tasemlit
rules_check: rules_check:
action: Sefrek ilugan n uqeddac action: Sefrek ilugan n uqeddac
software_version_critical_check: software_version_critical_check:
@ -613,8 +601,6 @@ kab:
basic_information: Talɣut tamatut basic_information: Talɣut tamatut
hint_html: "<strong>Mudd udem i wayen ttwalin medden deg umaɣnu-inek azayez ɣer yidis n yiznan-ik.</strong> Imdanen niḍen zemren ad k-ḍefren yernu ad gen assaɣ yid-k mi ara tesɛuḍ amaɣnu yeccuṛen ed tugna n umaɣnu." hint_html: "<strong>Mudd udem i wayen ttwalin medden deg umaɣnu-inek azayez ɣer yidis n yiznan-ik.</strong> Imdanen niḍen zemren ad k-ḍefren yernu ad gen assaɣ yid-k mi ara tesɛuḍ amaɣnu yeccuṛen ed tugna n umaɣnu."
other: Ayen nniḍen other: Ayen nniḍen
emoji_styles:
auto: Awurman
errors: errors:
'404': Asebter i tettnadiḍ ulac-it da. '404': Asebter i tettnadiḍ ulac-it da.
'500': '500':
@ -849,8 +835,6 @@ kab:
one: "%{count} n tbidyutt" one: "%{count} n tbidyutt"
other: "%{count} n tbidyutin" other: "%{count} n tbidyutin"
edited_at_html: Tettwaẓreg ass n %{date} edited_at_html: Tettwaẓreg ass n %{date}
quote_policies:
public: Yal yiwen
title: '%{name}: "%{quote}"' title: '%{name}: "%{quote}"'
visibilities: visibilities:
direct: Usrid direct: Usrid

View File

@ -1332,10 +1332,6 @@ ko:
basic_information: 기본 정보 basic_information: 기본 정보
hint_html: "<strong>사람들이 공개 프로필을 보고서 게시물을 볼 때를 위한 프로필을 꾸밉니다.</strong> 프로필과 프로필 사진을 채우면 다른 사람들이 나를 팔로우하고 나와 교류할 기회가 더 많아집니다." hint_html: "<strong>사람들이 공개 프로필을 보고서 게시물을 볼 때를 위한 프로필을 꾸밉니다.</strong> 프로필과 프로필 사진을 채우면 다른 사람들이 나를 팔로우하고 나와 교류할 기회가 더 많아집니다."
other: 기타 other: 기타
emoji_styles:
auto: 자동
native: 시스템 기본
twemoji: 트웨모지
errors: errors:
'400': 제출한 요청이 올바르지 않습니다. '400': 제출한 요청이 올바르지 않습니다.
'403': 이 페이지를 표시할 권한이 없습니다. '403': 이 페이지를 표시할 권한이 없습니다.

View File

@ -186,7 +186,6 @@ lad:
create_domain_block: Kriya bloko de domeno create_domain_block: Kriya bloko de domeno
create_email_domain_block: Kriya bloko de domeno de posta create_email_domain_block: Kriya bloko de domeno de posta
create_ip_block: Kriya regla de IP create_ip_block: Kriya regla de IP
create_relay: Kriya relevo
create_unavailable_domain: Kriya domeno no desponivle create_unavailable_domain: Kriya domeno no desponivle
create_user_role: Kriya rolo create_user_role: Kriya rolo
demote_user: Degrada utilizador demote_user: Degrada utilizador
@ -198,7 +197,6 @@ lad:
destroy_email_domain_block: Efasa bloko de domeno de posta destroy_email_domain_block: Efasa bloko de domeno de posta
destroy_instance: Efasa domeno destroy_instance: Efasa domeno
destroy_ip_block: Efasa regla de IP destroy_ip_block: Efasa regla de IP
destroy_relay: Efasa relevo
destroy_status: Efasa publikasyon destroy_status: Efasa publikasyon
destroy_unavailable_domain: Efasa domeno no desponivle destroy_unavailable_domain: Efasa domeno no desponivle
destroy_user_role: Efasa rolo destroy_user_role: Efasa rolo
@ -207,7 +205,6 @@ lad:
disable_sign_in_token_auth_user: Inkapasita la autentifikasyon por token de posta elektronika para el utilizador disable_sign_in_token_auth_user: Inkapasita la autentifikasyon por token de posta elektronika para el utilizador
disable_user: Inkapasita utilizador disable_user: Inkapasita utilizador
enable_custom_emoji: Kapasita emoji personalizados enable_custom_emoji: Kapasita emoji personalizados
enable_relay: Aktiva relevo
enable_sign_in_token_auth_user: Kapasita la autentifikasyon por token de posta para el utilizador enable_sign_in_token_auth_user: Kapasita la autentifikasyon por token de posta para el utilizador
enable_user: Kapasita utilizador enable_user: Kapasita utilizador
memorialize_account: Transforma en kuento komemorativo memorialize_account: Transforma en kuento komemorativo
@ -232,7 +229,6 @@ lad:
update_custom_emoji: Aktualiza emoji personalizado update_custom_emoji: Aktualiza emoji personalizado
update_domain_block: Aktualiza bloko de domeno update_domain_block: Aktualiza bloko de domeno
update_ip_block: Aktualiza regla de IP update_ip_block: Aktualiza regla de IP
update_report: Aktualiza raporto
update_status: Aktualiza publikasyon update_status: Aktualiza publikasyon
update_user_role: Aktualiza rolo update_user_role: Aktualiza rolo
actions: actions:
@ -470,13 +466,10 @@ lad:
fasp: fasp:
debug: debug:
callbacks: callbacks:
created_at: Kriyado en
delete: Efasa delete: Efasa
ip: Adreso IP
providers: providers:
active: Aktivo active: Aktivo
delete: Efasa delete: Efasa
finish_registration: Finaliza enrejistrasyon
name: Nombre name: Nombre
registrations: registrations:
confirm: Konfirma confirm: Konfirma
@ -549,12 +542,6 @@ lad:
all: Todos all: Todos
limited: Limitado limited: Limitado
title: Moderasyon title: Moderasyon
moderation_notes:
create: Adjusta nota de moderasyon
created_msg: Nota de moderasyon de sirvidor kriyada kon sukseso!
description_html: Ve i desha notas a otros moderadores i a tu yo futuro
destroyed_msg: Nota de moderasyon de sirvidor efasada kon sukseso!
title: Notas de moderasyon
private_comment: Komento privado private_comment: Komento privado
public_comment: Komento publiko public_comment: Komento publiko
purge: Purga purge: Purga
@ -761,7 +748,6 @@ lad:
title: Rolos title: Rolos
rules: rules:
add_new: Adjusta regla add_new: Adjusta regla
add_translation: Adjusta traduksyon
delete: Efasa delete: Efasa
description_html: Aunke la majorita afirma aver meldado i estar de akodro kon los terminos de servisyo, la djente normalmente no los melda asta dempues de ke surja algun problema. <strong>Az ke sea mas kolay ver las normas de tu sirvidor de un vistazo estipulándolas en una lista de puntos.</strong> Aprova ke kada norma sea corta i kolay, ama sin estar divididas en munchos puntos. description_html: Aunke la majorita afirma aver meldado i estar de akodro kon los terminos de servisyo, la djente normalmente no los melda asta dempues de ke surja algun problema. <strong>Az ke sea mas kolay ver las normas de tu sirvidor de un vistazo estipulándolas en una lista de puntos.</strong> Aprova ke kada norma sea corta i kolay, ama sin estar divididas en munchos puntos.
edit: Edita regla edit: Edita regla
@ -934,9 +920,6 @@ lad:
updated_msg: Konfigurasyon de etiketas aktualizada kon sukseso updated_msg: Konfigurasyon de etiketas aktualizada kon sukseso
terms_of_service: terms_of_service:
changelog: Ke troko changelog: Ke troko
current: Aktual
generates:
action: Djenera
history: Istorya history: Istorya
live: En bivo live: En bivo
publish: Publika publish: Publika
@ -1262,10 +1245,6 @@ lad:
basic_information: Enformasyon bazika basic_information: Enformasyon bazika
hint_html: "<strong>Personaliza lo ke la djente ve en tu profil publiko i kon tus publikasyones.</strong> Es mas probavle ke otras personas te sigan i enteraktuen kontigo kuando kompletas tu profil i foto." hint_html: "<strong>Personaliza lo ke la djente ve en tu profil publiko i kon tus publikasyones.</strong> Es mas probavle ke otras personas te sigan i enteraktuen kontigo kuando kompletas tu profil i foto."
other: Otros other: Otros
emoji_styles:
auto: Otomatiko
native: Nativo
twemoji: Twemoji
errors: errors:
'400': La solisitasyon ke enviates no fue valida o fue malformada. '400': La solisitasyon ke enviates no fue valida o fue malformada.
'403': No tienes permiso para ver esta pajina. '403': No tienes permiso para ver esta pajina.

View File

@ -346,68 +346,6 @@ nan:
enabled: 啟用ê enabled: 啟用ê
enabled_msg: Hit ê emoji成功啟用ah enabled_msg: Hit ê emoji成功啟用ah
image_hint: Sài-suh無超過 %{size} ê PNG á是 GIF image_hint: Sài-suh無超過 %{size} ê PNG á是 GIF
list: 列單
listed: 加入列單ah
new:
title: 加添新ê自訂emoji
no_emoji_selected: 因為無揀任何emoji所以lóng無改變
not_permitted: Lí無允准行tsit ê動作
overwrite: Khàm掉
shortcode: 短碼
shortcode_hint: 字元上少2 êkan-ta接受字母、數字kap底線(_)
title: 自訂emoji
uncategorized: Iáu無分類
unlist: Tuì列單the̍h掉
unlisted: The̍h掉ah
update_failed_msg: Bē當更新hit ê emoji
updated_msg: Emoji成功更新ah
upload: 傳上去
dashboard:
active_users: 活動ê用者
interactions: 互動
media_storage: 媒體儲存
new_users: 新用者
opened_reports: 拍開ê報告
pending_appeals_html:
other: "<strong>%{count}</strong> ê投訴愛處理"
pending_reports_html:
other: "<strong>%{count}</strong> ê檢舉愛處理"
pending_tags_html:
other: "<strong>%{count}</strong> ê hashtag愛處理"
pending_users_html:
other: "<strong>%{count}</strong> ê用者愛處理"
resolved_reports: 解決ê報告
software: 軟體
sources: 註冊ê源頭
space: 空間ê使用
title: Le-jí-páng (dashboard)
top_languages: 上tsia̍p出現ê語言
top_servers: 上tsia̍p活動ê服侍器
website: 網站
disputes:
appeals:
empty: Tshuē無投訴。
title: 投訴
domain_allows:
add_new: 允准kap tsit ê域名相連
created_msg: 域名已經成功允准相連
destroyed_msg: 域名已經成功取消相連
export: 輸出
import: 輸入
undo: 禁止kap tsit ê域名相連
domain_blocks:
add_new: 加添新ê封鎖域名
confirm_suspension:
cancel: 取消
confirm: 中止權限
permanent_action: 取消中止權限bē當復原任何資料á是關係。
preamble_html: Lí teh beh停止 <strong>%{domain}</strong> kap伊ê kiánn域名ê權限。
remove_all_data: Tse ē tī lí ê服侍器內底kā tuì tsit ê域名ê口座來ê所有內容、媒體kap個人資料lóng thâi掉。
stop_communication: Lí ê服侍器ē停止kap hia ê服侍器聯絡。
title: 確認封鎖域名 %{domain}
edit: 編輯域名封鎖
export: 輸出
import: 輸入
instances: instances:
dashboard: dashboard:
instance_languages_dimension: Tsia̍p用ê語言 instance_languages_dimension: Tsia̍p用ê語言

View File

@ -583,7 +583,7 @@ nl:
created_msg: Aanmaken van servermoderatie-opmerking geslaagd! created_msg: Aanmaken van servermoderatie-opmerking geslaagd!
description_html: Opmerkingen bekijken, en voor jezelf en andere moderatoren achterlaten description_html: Opmerkingen bekijken, en voor jezelf en andere moderatoren achterlaten
destroyed_msg: Verwijderen van servermoderatie-opmerking geslaagd! destroyed_msg: Verwijderen van servermoderatie-opmerking geslaagd!
placeholder: Informatie over deze server, genomen acties of iets anders die jou kunnen helpen om deze server in de toekomst te modereren. placeholder: Informatie over deze server, genomen acties of iets anders die jou kunnen helpen om deze server in de toekomst te moderen.
title: Moderatie-opmerkingen title: Moderatie-opmerkingen
private_comment: Privé-opmerking private_comment: Privé-opmerking
public_comment: Openbare opmerking public_comment: Openbare opmerking
@ -1349,10 +1349,6 @@ nl:
basic_information: Algemene informatie basic_information: Algemene informatie
hint_html: "<strong>Wat mensen op jouw openbare profiel en naast je berichten zien aanpassen.</strong> Andere mensen gaan je waarschijnlijk eerder volgen en hebben vaker interactie met je, wanneer je profiel is ingevuld en je een profielfoto hebt." hint_html: "<strong>Wat mensen op jouw openbare profiel en naast je berichten zien aanpassen.</strong> Andere mensen gaan je waarschijnlijk eerder volgen en hebben vaker interactie met je, wanneer je profiel is ingevuld en je een profielfoto hebt."
other: Overige other: Overige
emoji_styles:
auto: Auto
native: Systeemeigen
twemoji: Twemoji
errors: errors:
'400': De aanvraag die je hebt ingediend was ongeldig of foutief. '400': De aanvraag die je hebt ingediend was ongeldig of foutief.
'403': Jij hebt geen toestemming om deze pagina te bekijken. '403': Jij hebt geen toestemming om deze pagina te bekijken.

View File

@ -578,8 +578,6 @@ pt-BR:
all: Todos all: Todos
limited: Limitados limited: Limitados
title: Moderação title: Moderação
moderation_notes:
title: Notas de Moderação
private_comment: Comentário privado private_comment: Comentário privado
public_comment: Comentário público public_comment: Comentário público
purge: Limpar purge: Limpar

View File

@ -49,7 +49,6 @@ br:
setting_display_media_default: Dre ziouer setting_display_media_default: Dre ziouer
setting_display_media_hide_all: Kuzhat pep tra setting_display_media_hide_all: Kuzhat pep tra
setting_display_media_show_all: Diskouez pep tra setting_display_media_show_all: Diskouez pep tra
setting_emoji_style: Stil an emojioù
setting_theme: Neuz al lec'hienn setting_theme: Neuz al lec'hienn
setting_use_pending_items: Mod gorrek setting_use_pending_items: Mod gorrek
title: Titl title: Titl

View File

@ -61,7 +61,6 @@ cs:
setting_display_media_default: Skrývat média označená jako citlivá setting_display_media_default: Skrývat média označená jako citlivá
setting_display_media_hide_all: Vždy skrývat média setting_display_media_hide_all: Vždy skrývat média
setting_display_media_show_all: Vždy zobrazovat média setting_display_media_show_all: Vždy zobrazovat média
setting_emoji_style: Jak se budou zobrazovat emoji. "Auto" zkusí použít výchozí emoji, ale pro starší prohlížeče použije Twemoji.
setting_system_scrollbars_ui: Platí pouze pro desktopové prohlížeče založené na Safari nebo Chrome setting_system_scrollbars_ui: Platí pouze pro desktopové prohlížeče založené na Safari nebo Chrome
setting_use_blurhash: Gradienty jsou vytvořeny na základě barvev skrytých médií, ale zakrývají veškeré detaily setting_use_blurhash: Gradienty jsou vytvořeny na základě barvev skrytých médií, ale zakrývají veškeré detaily
setting_use_pending_items: Aktualizovat časovou osu až po kliknutí namísto automatického rolování kanálu setting_use_pending_items: Aktualizovat časovou osu až po kliknutí namísto automatického rolování kanálu
@ -244,7 +243,6 @@ cs:
setting_display_media_default: Výchozí setting_display_media_default: Výchozí
setting_display_media_hide_all: Skrýt vše setting_display_media_hide_all: Skrýt vše
setting_display_media_show_all: Zobrazit vše setting_display_media_show_all: Zobrazit vše
setting_emoji_style: Styl emoji
setting_expand_spoilers: Vždy rozbalit příspěvky označené varováními o obsahu setting_expand_spoilers: Vždy rozbalit příspěvky označené varováními o obsahu
setting_hide_network: Skrýt mou síť setting_hide_network: Skrýt mou síť
setting_missing_alt_text_modal: Zobrazit potvrzovací dialog před odesláním médií bez alt textu setting_missing_alt_text_modal: Zobrazit potvrzovací dialog před odesláním médií bez alt textu

View File

@ -61,7 +61,6 @@ da:
setting_display_media_default: Skjul medier med sensitiv-markering setting_display_media_default: Skjul medier med sensitiv-markering
setting_display_media_hide_all: Skjul altid medier setting_display_media_hide_all: Skjul altid medier
setting_display_media_show_all: Vis altid medier setting_display_media_show_all: Vis altid medier
setting_emoji_style: Hvordan emojis skal vises. "Auto" vil forsøge at bruge indbyggede emojis, men skifter tilbage til Twemoji i ældre webbrowsere.
setting_system_scrollbars_ui: Gælder kun for computerwebbrowsere baseret på Safari og Chrome setting_system_scrollbars_ui: Gælder kun for computerwebbrowsere baseret på Safari og Chrome
setting_use_blurhash: Gradienter er baseret på de skjulte grafikelementers farver, men slører alle detaljer setting_use_blurhash: Gradienter er baseret på de skjulte grafikelementers farver, men slører alle detaljer
setting_use_pending_items: Skjul tidslinjeopdateringer bag et klik i stedet for brug af auto-feedrulning setting_use_pending_items: Skjul tidslinjeopdateringer bag et klik i stedet for brug af auto-feedrulning
@ -242,7 +241,6 @@ da:
setting_display_media_default: Standard setting_display_media_default: Standard
setting_display_media_hide_all: Skjul alle setting_display_media_hide_all: Skjul alle
setting_display_media_show_all: Vis alle setting_display_media_show_all: Vis alle
setting_emoji_style: Emoji-stil
setting_expand_spoilers: Udvid altid indlæg markeret med indholdsadvarsler setting_expand_spoilers: Udvid altid indlæg markeret med indholdsadvarsler
setting_hide_network: Skjul din sociale graf setting_hide_network: Skjul din sociale graf
setting_missing_alt_text_modal: Vis bekræftelsesdialog inden medier uden alt-tekst lægges op setting_missing_alt_text_modal: Vis bekræftelsesdialog inden medier uden alt-tekst lægges op

View File

@ -61,7 +61,6 @@ de:
setting_display_media_default: Medien mit Inhaltswarnung ausblenden setting_display_media_default: Medien mit Inhaltswarnung ausblenden
setting_display_media_hide_all: Medien immer ausblenden setting_display_media_hide_all: Medien immer ausblenden
setting_display_media_show_all: Medien mit Inhaltswarnung immer anzeigen setting_display_media_show_all: Medien mit Inhaltswarnung immer anzeigen
setting_emoji_style: 'Wie Emojis dargestellt werden: „Automatisch“ verwendet native Emojis, für veraltete Browser wird jedoch Twemoji verwendet.'
setting_system_scrollbars_ui: Betrifft nur Desktop-Browser, die auf Chrome oder Safari basieren setting_system_scrollbars_ui: Betrifft nur Desktop-Browser, die auf Chrome oder Safari basieren
setting_use_blurhash: Der Farbverlauf basiert auf den Farben der ausgeblendeten Medien, verschleiert aber jegliche Details setting_use_blurhash: Der Farbverlauf basiert auf den Farben der ausgeblendeten Medien, verschleiert aber jegliche Details
setting_use_pending_items: Neue Beiträge hinter einem Klick verstecken, anstatt automatisch zu scrollen setting_use_pending_items: Neue Beiträge hinter einem Klick verstecken, anstatt automatisch zu scrollen
@ -242,13 +241,12 @@ de:
setting_display_media_default: Standard setting_display_media_default: Standard
setting_display_media_hide_all: Alle Medien ausblenden setting_display_media_hide_all: Alle Medien ausblenden
setting_display_media_show_all: Alle Medien anzeigen setting_display_media_show_all: Alle Medien anzeigen
setting_emoji_style: Emoji-Stil
setting_expand_spoilers: Beiträge mit Inhaltswarnung immer ausklappen setting_expand_spoilers: Beiträge mit Inhaltswarnung immer ausklappen
setting_hide_network: Follower und „Folge ich“ nicht anzeigen setting_hide_network: Follower und „Folge ich“ nicht anzeigen
setting_missing_alt_text_modal: Bestätigungsdialog anzeigen, bevor Medien ohne Bildbeschreibung veröffentlicht werden setting_missing_alt_text_modal: Bestätigungsdialog anzeigen, bevor Medien ohne Bildbeschreibung veröffentlicht werden
setting_reduce_motion: Bewegung in Animationen verringern setting_reduce_motion: Bewegung in Animationen verringern
setting_system_font_ui: Standardschriftart des Browsers verwenden setting_system_font_ui: Standardschriftart des Browsers verwenden
setting_system_scrollbars_ui: Bildlaufleiste des Betriebssystems verwenden setting_system_scrollbars_ui: Bildlaufleiste des Systems verwenden
setting_theme: Design setting_theme: Design
setting_trends: Heutige Trends anzeigen setting_trends: Heutige Trends anzeigen
setting_unfollow_modal: Bestätigungsdialog beim Entfolgen eines Profils anzeigen setting_unfollow_modal: Bestätigungsdialog beim Entfolgen eines Profils anzeigen

View File

@ -56,12 +56,10 @@ en-GB:
scopes: Which APIs the application will be allowed to access. If you select a top-level scope, you don't need to select individual ones. scopes: Which APIs the application will be allowed to access. If you select a top-level scope, you don't need to select individual ones.
setting_aggregate_reblogs: Do not show new boosts for posts that have been recently boosted (only affects newly-received boosts) setting_aggregate_reblogs: Do not show new boosts for posts that have been recently boosted (only affects newly-received boosts)
setting_always_send_emails: Normally e-mail notifications won't be sent when you are actively using Mastodon setting_always_send_emails: Normally e-mail notifications won't be sent when you are actively using Mastodon
setting_default_quote_policy: Mentioned users are always allowed to quote. This setting will only take effect for posts created with the next Mastodon version, but you can select your preference in preparation
setting_default_sensitive: Sensitive media is hidden by default and can be revealed with a click setting_default_sensitive: Sensitive media is hidden by default and can be revealed with a click
setting_display_media_default: Hide media marked as sensitive setting_display_media_default: Hide media marked as sensitive
setting_display_media_hide_all: Always hide media setting_display_media_hide_all: Always hide media
setting_display_media_show_all: Always show media setting_display_media_show_all: Always show media
setting_emoji_style: How to display emojis. "Auto" will try using native emoji, but falls back to Twemoji for legacy browsers.
setting_system_scrollbars_ui: Applies only to desktop browsers based on Safari and Chrome setting_system_scrollbars_ui: Applies only to desktop browsers based on Safari and Chrome
setting_use_blurhash: Gradients are based on the colors of the hidden visuals but obfuscate any details setting_use_blurhash: Gradients are based on the colors of the hidden visuals but obfuscate any details
setting_use_pending_items: Hide timeline updates behind a click instead of automatically scrolling the feed setting_use_pending_items: Hide timeline updates behind a click instead of automatically scrolling the feed
@ -77,7 +75,6 @@ en-GB:
filters: filters:
action: Chose which action to perform when a post matches the filter action: Chose which action to perform when a post matches the filter
actions: actions:
blur: Hide media behind a warning, without hiding the text itself
hide: Completely hide the filtered content, behaving as if it did not exist hide: Completely hide the filtered content, behaving as if it did not exist
warn: Hide the filtered content behind a warning mentioning the filter's title warn: Hide the filtered content behind a warning mentioning the filter's title
form_admin_settings: form_admin_settings:
@ -91,7 +88,6 @@ en-GB:
favicon: WEBP, PNG, GIF or JPG. Overrides the default Mastodon favicon with a custom icon. favicon: WEBP, PNG, GIF or JPG. Overrides the default Mastodon favicon with a custom icon.
mascot: Overrides the illustration in the advanced web interface. mascot: Overrides the illustration in the advanced web interface.
media_cache_retention_period: Media files from posts made by remote users are cached on your server. When set to a positive value, media will be deleted after the specified number of days. If the media data is requested after it is deleted, it will be re-downloaded, if the source content is still available. Due to restrictions on how often link preview cards poll third-party sites, it is recommended to set this value to at least 14 days, or link preview cards will not be updated on demand before that time. media_cache_retention_period: Media files from posts made by remote users are cached on your server. When set to a positive value, media will be deleted after the specified number of days. If the media data is requested after it is deleted, it will be re-downloaded, if the source content is still available. Due to restrictions on how often link preview cards poll third-party sites, it is recommended to set this value to at least 14 days, or link preview cards will not be updated on demand before that time.
min_age: Users will be asked to confirm their date of birth during sign-up
peers_api_enabled: A list of domain names this server has encountered in the fediverse. No data is included here about whether you federate with a given server, just that your server knows about it. This is used by services that collect statistics on federation in a general sense. peers_api_enabled: A list of domain names this server has encountered in the fediverse. No data is included here about whether you federate with a given server, just that your server knows about it. This is used by services that collect statistics on federation in a general sense.
profile_directory: The profile directory lists all users who have opted-in to be discoverable. profile_directory: The profile directory lists all users who have opted-in to be discoverable.
require_invite_text: When sign-ups require manual approval, make the “Why do you want to join?” text input mandatory rather than optional require_invite_text: When sign-ups require manual approval, make the “Why do you want to join?” text input mandatory rather than optional
@ -136,23 +132,14 @@ en-GB:
name: You can only change the casing of the letters, for example, to make it more readable name: You can only change the casing of the letters, for example, to make it more readable
terms_of_service: terms_of_service:
changelog: Can be structured with Markdown syntax. changelog: Can be structured with Markdown syntax.
effective_date: A reasonable timeframe can range anywhere from 10 to 30 days from the date you notify your users.
text: Can be structured with Markdown syntax. text: Can be structured with Markdown syntax.
terms_of_service_generator: terms_of_service_generator:
admin_email: Legal notices include counternotices, court orders, takedown requests, and law enforcement requests. admin_email: Legal notices include counternotices, court orders, takedown requests, and law enforcement requests.
arbitration_address: Can be the same as Physical address above, or “N/A” if using email.
arbitration_website: Can be a web form, or “N/A” if using email.
choice_of_law: City, region, territory or state the internal substantive laws of which shall govern any and all claims.
dmca_address: For US operators, use the address registered in the DMCA Designated Agent Directory. A P.O. Box listing is available upon direct request, use the DMCA Designated Agent Post Office Box Waiver Request to email the Copyright Office and describe that you are a home-based content moderator who fears revenge or retribution for your actions and need to use a P.O. Box to remove your home address from public view. dmca_address: For US operators, use the address registered in the DMCA Designated Agent Directory. A P.O. Box listing is available upon direct request, use the DMCA Designated Agent Post Office Box Waiver Request to email the Copyright Office and describe that you are a home-based content moderator who fears revenge or retribution for your actions and need to use a P.O. Box to remove your home address from public view.
dmca_email: Can be the same email used for “Email address for legal notices” above.
domain: Unique identification of the online service you are providing. domain: Unique identification of the online service you are providing.
jurisdiction: List the country where whoever pays the bills lives. If its a company or other entity, list the country where its incorporated, and the city, region, territory or state as appropriate. jurisdiction: List the country where whoever pays the bills lives. If its a company or other entity, list the country where its incorporated, and the city, region, territory or state as appropriate.
min_age: Should not be below the minimum age required by the laws of your jurisdiction.
user: user:
chosen_languages: When checked, only posts in selected languages will be displayed in public timelines chosen_languages: When checked, only posts in selected languages will be displayed in public timelines
date_of_birth:
one: We have to make sure you're at least %{count} to use Mastodon. We won't store this.
other: We have to make sure you're at least %{count} to use Mastodon. We won't store this.
role: The role controls which permissions the user has. role: The role controls which permissions the user has.
user_role: user_role:
color: Color to be used for the role throughout the UI, as RGB in hex format color: Color to be used for the role throughout the UI, as RGB in hex format
@ -233,7 +220,6 @@ en-GB:
setting_boost_modal: Show confirmation dialogue before boosting setting_boost_modal: Show confirmation dialogue before boosting
setting_default_language: Posting language setting_default_language: Posting language
setting_default_privacy: Posting privacy setting_default_privacy: Posting privacy
setting_default_quote_policy: Who can quote
setting_default_sensitive: Always mark media as sensitive setting_default_sensitive: Always mark media as sensitive
setting_delete_modal: Show confirmation dialogue before deleting a post setting_delete_modal: Show confirmation dialogue before deleting a post
setting_disable_hover_cards: Disable profile preview on hover setting_disable_hover_cards: Disable profile preview on hover
@ -242,7 +228,6 @@ en-GB:
setting_display_media_default: Default setting_display_media_default: Default
setting_display_media_hide_all: Hide all setting_display_media_hide_all: Hide all
setting_display_media_show_all: Show all setting_display_media_show_all: Show all
setting_emoji_style: Emoji style
setting_expand_spoilers: Always expand posts marked with content warnings setting_expand_spoilers: Always expand posts marked with content warnings
setting_hide_network: Hide your social graph setting_hide_network: Hide your social graph
setting_missing_alt_text_modal: Show confirmation dialogue before posting media without alt text setting_missing_alt_text_modal: Show confirmation dialogue before posting media without alt text
@ -267,7 +252,6 @@ en-GB:
name: Hashtag name: Hashtag
filters: filters:
actions: actions:
blur: Hide media with a warning
hide: Hide completely hide: Hide completely
warn: Hide with a warning warn: Hide with a warning
form_admin_settings: form_admin_settings:
@ -281,7 +265,6 @@ en-GB:
favicon: Favicon favicon: Favicon
mascot: Custom mascot (legacy) mascot: Custom mascot (legacy)
media_cache_retention_period: Media cache retention period media_cache_retention_period: Media cache retention period
min_age: Minimum age requirement
peers_api_enabled: Publish list of discovered servers in the API peers_api_enabled: Publish list of discovered servers in the API
profile_directory: Enable profile directory profile_directory: Enable profile directory
registrations_mode: Who can sign-up registrations_mode: Who can sign-up
@ -347,22 +330,16 @@ en-GB:
usable: Allow posts to use this hashtag locally usable: Allow posts to use this hashtag locally
terms_of_service: terms_of_service:
changelog: What's changed? changelog: What's changed?
effective_date: Effective date
text: Terms of Service text: Terms of Service
terms_of_service_generator: terms_of_service_generator:
admin_email: Email address for legal notices admin_email: Email address for legal notices
arbitration_address: Physical address for arbitration notices arbitration_address: Physical address for arbitration notices
arbitration_website: Website for submitting arbitration notices arbitration_website: Website for submitting arbitration notices
choice_of_law: Choice of Law
dmca_address: Physical address for DMCA/copyright notices dmca_address: Physical address for DMCA/copyright notices
dmca_email: Email address for DMCA/copyright notices dmca_email: Email address for DMCA/copyright notices
domain: Domain domain: Domain
jurisdiction: Legal jurisdiction jurisdiction: Legal jurisdiction
min_age: Minimum age
user: user:
date_of_birth_1i: Day
date_of_birth_2i: Month
date_of_birth_3i: Year
role: Role role: Role
time_zone: Time Zone time_zone: Time Zone
user_role: user_role:

View File

@ -61,7 +61,6 @@ en:
setting_display_media_default: Hide media marked as sensitive setting_display_media_default: Hide media marked as sensitive
setting_display_media_hide_all: Always hide media setting_display_media_hide_all: Always hide media
setting_display_media_show_all: Always show media setting_display_media_show_all: Always show media
setting_emoji_style: How to display emojis. "Auto" will try using native emoji, but falls back to Twemoji for legacy browsers.
setting_system_scrollbars_ui: Applies only to desktop browsers based on Safari and Chrome setting_system_scrollbars_ui: Applies only to desktop browsers based on Safari and Chrome
setting_use_blurhash: Gradients are based on the colors of the hidden visuals but obfuscate any details setting_use_blurhash: Gradients are based on the colors of the hidden visuals but obfuscate any details
setting_use_pending_items: Hide timeline updates behind a click instead of automatically scrolling the feed setting_use_pending_items: Hide timeline updates behind a click instead of automatically scrolling the feed
@ -242,7 +241,6 @@ en:
setting_display_media_default: Default setting_display_media_default: Default
setting_display_media_hide_all: Hide all setting_display_media_hide_all: Hide all
setting_display_media_show_all: Show all setting_display_media_show_all: Show all
setting_emoji_style: Emoji style
setting_expand_spoilers: Always expand posts marked with content warnings setting_expand_spoilers: Always expand posts marked with content warnings
setting_hide_network: Hide your social graph setting_hide_network: Hide your social graph
setting_missing_alt_text_modal: Show confirmation dialog before posting media without alt text setting_missing_alt_text_modal: Show confirmation dialog before posting media without alt text

View File

@ -61,7 +61,6 @@ es-AR:
setting_display_media_default: Ocultar medios marcados como sensibles setting_display_media_default: Ocultar medios marcados como sensibles
setting_display_media_hide_all: Siempre ocultar todos los medios setting_display_media_hide_all: Siempre ocultar todos los medios
setting_display_media_show_all: Siempre mostrar todos los medios setting_display_media_show_all: Siempre mostrar todos los medios
setting_emoji_style: Cómo se mostrarán los emojis. "Automático" intentará usar emojis nativos, cambiando a Twemoji en navegadores antiguos.
setting_system_scrollbars_ui: Solo aplica para navegadores web de escritorio basados en Safari y Chrome setting_system_scrollbars_ui: Solo aplica para navegadores web de escritorio basados en Safari y Chrome
setting_use_blurhash: Los gradientes se basan en los colores de las imágenes ocultas pero haciendo borrosos los detalles setting_use_blurhash: Los gradientes se basan en los colores de las imágenes ocultas pero haciendo borrosos los detalles
setting_use_pending_items: Ocultar actualizaciones de la línea temporal detrás de un clic en lugar de desplazar automáticamente el flujo setting_use_pending_items: Ocultar actualizaciones de la línea temporal detrás de un clic en lugar de desplazar automáticamente el flujo
@ -242,7 +241,6 @@ es-AR:
setting_display_media_default: Predeterminada setting_display_media_default: Predeterminada
setting_display_media_hide_all: Ocultar todo setting_display_media_hide_all: Ocultar todo
setting_display_media_show_all: Mostrar todo setting_display_media_show_all: Mostrar todo
setting_emoji_style: Estilo de emoji
setting_expand_spoilers: Siempre expandir los mensajes marcados con advertencias de contenido setting_expand_spoilers: Siempre expandir los mensajes marcados con advertencias de contenido
setting_hide_network: Ocultá tu gráfica social setting_hide_network: Ocultá tu gráfica social
setting_missing_alt_text_modal: Mostrar diálogo de confirmación antes de enviar medios sin texto alternativo setting_missing_alt_text_modal: Mostrar diálogo de confirmación antes de enviar medios sin texto alternativo

View File

@ -61,7 +61,6 @@ es-MX:
setting_display_media_default: Ocultar contenido multimedia marcado como sensible setting_display_media_default: Ocultar contenido multimedia marcado como sensible
setting_display_media_hide_all: Siempre ocultar todo el contenido multimedia setting_display_media_hide_all: Siempre ocultar todo el contenido multimedia
setting_display_media_show_all: Mostrar siempre contenido multimedia marcado como sensible setting_display_media_show_all: Mostrar siempre contenido multimedia marcado como sensible
setting_emoji_style: Cómo se mostrarán los emojis. "Auto" intentará usar emojis nativos, cambiando a Twemoji en navegadores antiguos.
setting_system_scrollbars_ui: Solo se aplica a los navegadores de escritorio basados en Safari y Chrome setting_system_scrollbars_ui: Solo se aplica a los navegadores de escritorio basados en Safari y Chrome
setting_use_blurhash: Los degradados se basan en los colores de los elementos visuales ocultos, pero ocultan cualquier detalle setting_use_blurhash: Los degradados se basan en los colores de los elementos visuales ocultos, pero ocultan cualquier detalle
setting_use_pending_items: Ocultar las publicaciones de la línea de tiempo tras un clic en lugar de desplazar automáticamente el feed setting_use_pending_items: Ocultar las publicaciones de la línea de tiempo tras un clic en lugar de desplazar automáticamente el feed
@ -242,7 +241,6 @@ es-MX:
setting_display_media_default: Por defecto setting_display_media_default: Por defecto
setting_display_media_hide_all: Ocultar todo setting_display_media_hide_all: Ocultar todo
setting_display_media_show_all: Mostrar todo setting_display_media_show_all: Mostrar todo
setting_emoji_style: Estilo de emoji
setting_expand_spoilers: Siempre expandir las publicaciones marcadas con advertencias de contenido setting_expand_spoilers: Siempre expandir las publicaciones marcadas con advertencias de contenido
setting_hide_network: Ocultar tu red setting_hide_network: Ocultar tu red
setting_missing_alt_text_modal: Mostrar cuadro de diálogo de confirmación antes de publicar contenido multimedia sin texto alternativo setting_missing_alt_text_modal: Mostrar cuadro de diálogo de confirmación antes de publicar contenido multimedia sin texto alternativo

View File

@ -61,7 +61,6 @@ es:
setting_display_media_default: Ocultar contenido multimedia marcado como sensible setting_display_media_default: Ocultar contenido multimedia marcado como sensible
setting_display_media_hide_all: Siempre ocultar todo el contenido multimedia setting_display_media_hide_all: Siempre ocultar todo el contenido multimedia
setting_display_media_show_all: Mostrar siempre contenido multimedia marcado como sensible setting_display_media_show_all: Mostrar siempre contenido multimedia marcado como sensible
setting_emoji_style: Cómo se mostrarán los emojis. "Auto" intentará usar emojis nativos, cambiando a Twemoji en navegadores antiguos.
setting_system_scrollbars_ui: Solo aplica para navegadores de escritorio basados en Safari y Chrome setting_system_scrollbars_ui: Solo aplica para navegadores de escritorio basados en Safari y Chrome
setting_use_blurhash: Los gradientes se basan en los colores de las imágenes ocultas pero haciendo borrosos los detalles setting_use_blurhash: Los gradientes se basan en los colores de las imágenes ocultas pero haciendo borrosos los detalles
setting_use_pending_items: Ocultar nuevas publicaciones detrás de un clic en lugar de desplazar automáticamente el feed setting_use_pending_items: Ocultar nuevas publicaciones detrás de un clic en lugar de desplazar automáticamente el feed
@ -242,7 +241,6 @@ es:
setting_display_media_default: Por defecto setting_display_media_default: Por defecto
setting_display_media_hide_all: Ocultar todo setting_display_media_hide_all: Ocultar todo
setting_display_media_show_all: Mostrar todo setting_display_media_show_all: Mostrar todo
setting_emoji_style: Estilo de emoji
setting_expand_spoilers: Siempre expandir las publicaciones marcadas con advertencias de contenido setting_expand_spoilers: Siempre expandir las publicaciones marcadas con advertencias de contenido
setting_hide_network: Ocultar tu red setting_hide_network: Ocultar tu red
setting_missing_alt_text_modal: Mostrar diálogo de confirmación antes de publicar medios sin texto alternativo setting_missing_alt_text_modal: Mostrar diálogo de confirmación antes de publicar medios sin texto alternativo

View File

@ -56,7 +56,6 @@ eu:
scopes: Zeintzuk API atzitu ditzakeen aplikazioak. Goi mailako arloa aukeratzen baduzu, ez dituzu azpikoak aukeratu behar. scopes: Zeintzuk API atzitu ditzakeen aplikazioak. Goi mailako arloa aukeratzen baduzu, ez dituzu azpikoak aukeratu behar.
setting_aggregate_reblogs: Ez erakutsi bultzada berriak berriki bultzada jaso duten tootentzat (berriki jasotako bultzadei eragiten die bakarrik) setting_aggregate_reblogs: Ez erakutsi bultzada berriak berriki bultzada jaso duten tootentzat (berriki jasotako bultzadei eragiten die bakarrik)
setting_always_send_emails: Normalean eposta jakinarazpenak ez dira bidaliko Mastodon aktiboki erabiltzen ari zaren bitartean setting_always_send_emails: Normalean eposta jakinarazpenak ez dira bidaliko Mastodon aktiboki erabiltzen ari zaren bitartean
setting_default_quote_policy: Aipaturiko erabiltzaileek beti dute aipatzeko baimena. Ezarpen honek Mastodon-en hurrengo bertsioarekin sortutako argitalpenetan bakarrik izango du eragina, baina prestatzean lehentasuna hauta dezakezu
setting_default_sensitive: Multimedia hunkigarria lehenetsita ezkutatzen da, eta sakatuz ikusi daiteke setting_default_sensitive: Multimedia hunkigarria lehenetsita ezkutatzen da, eta sakatuz ikusi daiteke
setting_display_media_default: Ezkutatu hunkigarri gisa markatutako multimedia setting_display_media_default: Ezkutatu hunkigarri gisa markatutako multimedia
setting_display_media_hide_all: Ezkutatu multimedia guztia beti setting_display_media_hide_all: Ezkutatu multimedia guztia beti
@ -76,7 +75,6 @@ eu:
filters: filters:
action: Aukeratu ze ekintza burutu behar den bidalketa bat iragazkiarekin bat datorrenean action: Aukeratu ze ekintza burutu behar den bidalketa bat iragazkiarekin bat datorrenean
actions: actions:
blur: Ezkutatu edukia ohar baten atzean, testua bera ezkutatu gabe
hide: Ezkutatu erabat iragazitako edukia, existituko ez balitz bezala hide: Ezkutatu erabat iragazitako edukia, existituko ez balitz bezala
warn: Ezkutatu iragazitako edukia iragazkiaren izenburua duen abisu batekin warn: Ezkutatu iragazitako edukia iragazkiaren izenburua duen abisu batekin
form_admin_settings: form_admin_settings:
@ -90,7 +88,6 @@ eu:
favicon: WEBP, PNG, GIF or JPG. Mastodon-en favicon-a gainidazten du ikono pertsonalizatu batekin. favicon: WEBP, PNG, GIF or JPG. Mastodon-en favicon-a gainidazten du ikono pertsonalizatu batekin.
mascot: Web interfaze aurreratuko ilustrazioa gainidazten du. mascot: Web interfaze aurreratuko ilustrazioa gainidazten du.
media_cache_retention_period: Multimedia-fitxategiak dituzten urruneko erabiltzaileen argitalpenak zure zerbitzarian gordetzen dira cachean. Balio positiboa ezartzean, multimedia zehazturiko egunen buruan ezabatuko da. Multimedia-datuak eskatzen badira ezabatu ostean, berriro deskargatuko dira, iturburuko edukia oraindik erabilgarri badago. Estekaren aurrebistako txartelek hirugarrenen guneei zenbatetan dei diezaieketen mugatzen dieten murrizketak direla eta, balio honi, gutxienez, 14 egunen balioa ezartzea gomendatzen da, bestela, esteken aurrebistako txartelak ez dira eguneratuko eskatu ahala denbora horren aurretik. media_cache_retention_period: Multimedia-fitxategiak dituzten urruneko erabiltzaileen argitalpenak zure zerbitzarian gordetzen dira cachean. Balio positiboa ezartzean, multimedia zehazturiko egunen buruan ezabatuko da. Multimedia-datuak eskatzen badira ezabatu ostean, berriro deskargatuko dira, iturburuko edukia oraindik erabilgarri badago. Estekaren aurrebistako txartelek hirugarrenen guneei zenbatetan dei diezaieketen mugatzen dieten murrizketak direla eta, balio honi, gutxienez, 14 egunen balioa ezartzea gomendatzen da, bestela, esteken aurrebistako txartelak ez dira eguneratuko eskatu ahala denbora horren aurretik.
min_age: Erabiltzaileei jaiotze-data berresteko eskatuko zaie izen-ematean
peers_api_enabled: Zerbitzari honek fedibertsoan ikusi dituen zerbitzarien domeinu-izenen zerrenda. Ez da daturik ematen zerbitzari jakin batekin federatzearen ala ez federatzearen inguruan, zerbitzariak haien berri duela soilik. Federazioari buruzko estatistika orokorrak biltzen dituzten zerbitzuek erabiltzen dute hau. peers_api_enabled: Zerbitzari honek fedibertsoan ikusi dituen zerbitzarien domeinu-izenen zerrenda. Ez da daturik ematen zerbitzari jakin batekin federatzearen ala ez federatzearen inguruan, zerbitzariak haien berri duela soilik. Federazioari buruzko estatistika orokorrak biltzen dituzten zerbitzuek erabiltzen dute hau.
profile_directory: Profilen direktorioan ikusgai egotea aukeratu duten erabiltzaile guztiak zerrendatzen dira. profile_directory: Profilen direktorioan ikusgai egotea aukeratu duten erabiltzaile guztiak zerrendatzen dira.
require_invite_text: Izen emateak eskuz onartu behar direnean, "Zergatik elkartu nahi duzu?" testu sarrera derrigorrezko bezala ezarri, ez hautazko require_invite_text: Izen emateak eskuz onartu behar direnean, "Zergatik elkartu nahi duzu?" testu sarrera derrigorrezko bezala ezarri, ez hautazko
@ -135,12 +132,9 @@ eu:
name: Letrak maiuskula/minuskulara aldatu ditzakezu besterik ez, adibidez irakurterrazago egiteko name: Letrak maiuskula/minuskulara aldatu ditzakezu besterik ez, adibidez irakurterrazago egiteko
terms_of_service: terms_of_service:
changelog: Markdown-en sintaxiarekin egitura daiteke. changelog: Markdown-en sintaxiarekin egitura daiteke.
effective_date: Zentzuzko epe bat 10 eta 30 egun bitartekoa izan daiteke, erabiltzaileei jakinarazten diezun egunetik kontatzen hasita.
text: Markdown-en sintaxiarekin egitura daiteke. text: Markdown-en sintaxiarekin egitura daiteke.
terms_of_service_generator: terms_of_service_generator:
admin_email: Legezko abisuak, kontraindikazioak, agindu judizialak, erretiratzeko eskaerak eta legea betetzeko eskaerak barne. admin_email: Legezko abisuak, kontraindikazioak, agindu judizialak, erretiratzeko eskaerak eta legea betetzeko eskaerak barne.
arbitration_address: Goiko helbide fisikoa edo "N/A" bera izan daiteke posta elektronikoa erabiliz gero.
arbitration_website: Web formularioa izan daiteke, edo "N/A" posta elektronikoa erabiliz gero.
user: user:
chosen_languages: Markatzean, hautatutako hizkuntzetan dauden tutak besterik ez dira erakutsiko. chosen_languages: Markatzean, hautatutako hizkuntzetan dauden tutak besterik ez dira erakutsiko.
user_role: user_role:
@ -333,9 +327,6 @@ eu:
terms_of_service_generator: terms_of_service_generator:
domain: Domeinua domain: Domeinua
user: user:
date_of_birth_1i: Eguna
date_of_birth_2i: Hilabetea
date_of_birth_3i: Urtea
role: Rola role: Rola
time_zone: Ordu zona time_zone: Ordu zona
user_role: user_role:

View File

@ -240,7 +240,6 @@ fi:
setting_display_media_default: Oletus setting_display_media_default: Oletus
setting_display_media_hide_all: Piilota kaikki setting_display_media_hide_all: Piilota kaikki
setting_display_media_show_all: Näytä kaikki setting_display_media_show_all: Näytä kaikki
setting_emoji_style: Emojityyli
setting_expand_spoilers: Laajenna aina sisältövaroituksilla merkityt julkaisut setting_expand_spoilers: Laajenna aina sisältövaroituksilla merkityt julkaisut
setting_hide_network: Piilota verkostotietosi setting_hide_network: Piilota verkostotietosi
setting_missing_alt_text_modal: Näytä vahvistusikkuna ennen kuin julkaistaan mediaa ilman vaihtoehtoista tekstiä setting_missing_alt_text_modal: Näytä vahvistusikkuna ennen kuin julkaistaan mediaa ilman vaihtoehtoista tekstiä

View File

@ -61,7 +61,6 @@ fo:
setting_display_media_default: Fjal miðlafílur, sum eru merktar sum viðkvæmar setting_display_media_default: Fjal miðlafílur, sum eru merktar sum viðkvæmar
setting_display_media_hide_all: Fjal altíð miðlafílur setting_display_media_hide_all: Fjal altíð miðlafílur
setting_display_media_show_all: Vís altíð miðlafílur setting_display_media_show_all: Vís altíð miðlafílur
setting_emoji_style: Hvussu kenslutekn vera víst. "Sjálvvirkandi" roynir at brúka upprunalig kenslutekn, men fellir aftur á Twitter kenslutekn í eldri kagum.
setting_system_scrollbars_ui: Er einans viðkomandi fyri skriviborðskagar grundaðir á Safari og Chrome setting_system_scrollbars_ui: Er einans viðkomandi fyri skriviborðskagar grundaðir á Safari og Chrome
setting_use_blurhash: Gradientar eru grundaðir á litirnar av fjaldu myndunum, men grugga allar smálutir setting_use_blurhash: Gradientar eru grundaðir á litirnar av fjaldu myndunum, men grugga allar smálutir
setting_use_pending_items: Fjal tíðarlinjudagføringar aftan fyri eitt klikk heldur enn at skrulla tilføringina sjálvvirkandi setting_use_pending_items: Fjal tíðarlinjudagføringar aftan fyri eitt klikk heldur enn at skrulla tilføringina sjálvvirkandi
@ -242,7 +241,6 @@ fo:
setting_display_media_default: Sjálvvirði setting_display_media_default: Sjálvvirði
setting_display_media_hide_all: Fjal alt setting_display_media_hide_all: Fjal alt
setting_display_media_show_all: Vís alt setting_display_media_show_all: Vís alt
setting_emoji_style: Kensluteknsstílur
setting_expand_spoilers: Víðka altíð postar, sum eru merktir við innihaldsávaringum setting_expand_spoilers: Víðka altíð postar, sum eru merktir við innihaldsávaringum
setting_hide_network: Fjal sosiala grafin hjá tær setting_hide_network: Fjal sosiala grafin hjá tær
setting_missing_alt_text_modal: Spyr um góðkenning áðrenn miðlar uttan alternativan tekst verða postaðir setting_missing_alt_text_modal: Spyr um góðkenning áðrenn miðlar uttan alternativan tekst verða postaðir

View File

@ -61,7 +61,6 @@ fy:
setting_display_media_default: As gefoelich markearre media ferstopje setting_display_media_default: As gefoelich markearre media ferstopje
setting_display_media_hide_all: Media altyd ferstopje setting_display_media_hide_all: Media altyd ferstopje
setting_display_media_show_all: Media altyd toane setting_display_media_show_all: Media altyd toane
setting_emoji_style: Wêrmei moatte emojis werjûn wurde. Automatysk probearret de systeemeigen emojis te brûken, mar falt werom op Twemoji foar âldere browsers.
setting_system_scrollbars_ui: Allinnich fan tapassing op desktopbrowsers basearre op Safari en Chromium setting_system_scrollbars_ui: Allinnich fan tapassing op desktopbrowsers basearre op Safari en Chromium
setting_use_blurhash: Dizige kleuroergongen binne basearre op de kleuren fan de ferstoppe media, wêrmei elk detail ferdwynt setting_use_blurhash: Dizige kleuroergongen binne basearre op de kleuren fan de ferstoppe media, wêrmei elk detail ferdwynt
setting_use_pending_items: De tiidline wurdt bywurke troch op it oantal nije items te klikken, yn stee fan dat dizze automatysk bywurke wurdt setting_use_pending_items: De tiidline wurdt bywurke troch op it oantal nije items te klikken, yn stee fan dat dizze automatysk bywurke wurdt
@ -242,7 +241,6 @@ fy:
setting_display_media_default: Standert setting_display_media_default: Standert
setting_display_media_hide_all: Alles ferstopje setting_display_media_hide_all: Alles ferstopje
setting_display_media_show_all: Alles toane setting_display_media_show_all: Alles toane
setting_emoji_style: Emojistyl
setting_expand_spoilers: Berjochten mei ynhâldswarskôgingen altyd útklappe setting_expand_spoilers: Berjochten mei ynhâldswarskôgingen altyd útklappe
setting_hide_network: Jo folgers en wat jo folget ferstopje setting_hide_network: Jo folgers en wat jo folget ferstopje
setting_missing_alt_text_modal: Befêstigingsfinster toane foar it pleatsen fan media sûnder alt-tekst setting_missing_alt_text_modal: Befêstigingsfinster toane foar it pleatsen fan media sûnder alt-tekst

View File

@ -61,7 +61,6 @@ ga:
setting_display_media_default: Folaigh meáin atá marcáilte mar íogair setting_display_media_default: Folaigh meáin atá marcáilte mar íogair
setting_display_media_hide_all: Folaigh meáin i gcónaí setting_display_media_hide_all: Folaigh meáin i gcónaí
setting_display_media_show_all: Taispeáin meáin i gcónaí setting_display_media_show_all: Taispeáin meáin i gcónaí
setting_emoji_style: Conas emojis a thaispeáint. Déanfaidh "Auto" iarracht emoji dúchasacha a úsáid, ach titeann sé ar ais go Twemoji le haghaidh seanbhrabhsálaithe.
setting_system_scrollbars_ui: Ní bhaineann sé ach le brabhsálaithe deisce bunaithe ar Safari agus Chrome setting_system_scrollbars_ui: Ní bhaineann sé ach le brabhsálaithe deisce bunaithe ar Safari agus Chrome
setting_use_blurhash: Tá grádáin bunaithe ar dhathanna na n-amharcanna ceilte ach cuireann siad salach ar aon mhionsonraí setting_use_blurhash: Tá grádáin bunaithe ar dhathanna na n-amharcanna ceilte ach cuireann siad salach ar aon mhionsonraí
setting_use_pending_items: Folaigh nuashonruithe amlíne taobh thiar de chlic seachas an fotha a scrollú go huathoibríoch setting_use_pending_items: Folaigh nuashonruithe amlíne taobh thiar de chlic seachas an fotha a scrollú go huathoibríoch
@ -245,7 +244,6 @@ ga:
setting_display_media_default: Réamhshocrú setting_display_media_default: Réamhshocrú
setting_display_media_hide_all: Cuir uile i bhfolach setting_display_media_hide_all: Cuir uile i bhfolach
setting_display_media_show_all: Taispeáin uile setting_display_media_show_all: Taispeáin uile
setting_emoji_style: Stíl Emoji
setting_expand_spoilers: Méadaigh postálacha atá marcáilte le rabhaidh inneachair i gcónaí setting_expand_spoilers: Méadaigh postálacha atá marcáilte le rabhaidh inneachair i gcónaí
setting_hide_network: Folaigh do ghraf sóisialta setting_hide_network: Folaigh do ghraf sóisialta
setting_missing_alt_text_modal: Taispeáin dialóg deimhnithe sula bpostálann tú meán gan alt téacs setting_missing_alt_text_modal: Taispeáin dialóg deimhnithe sula bpostálann tú meán gan alt téacs

View File

@ -61,7 +61,6 @@ gl:
setting_display_media_default: Ocultar medios marcados como sensibles setting_display_media_default: Ocultar medios marcados como sensibles
setting_display_media_hide_all: Ocultar sempre os medios setting_display_media_hide_all: Ocultar sempre os medios
setting_display_media_show_all: Mostrar sempre os medios marcados como sensibles setting_display_media_show_all: Mostrar sempre os medios marcados como sensibles
setting_emoji_style: Forma de mostrar emojis. «Auto» intentará usar os emojis nativos, e se falla recurrirase a Twemoji en navegadores antigos.
setting_system_scrollbars_ui: Aplícase só en navegadores de escritorio baseados en Safari e Chrome setting_system_scrollbars_ui: Aplícase só en navegadores de escritorio baseados en Safari e Chrome
setting_use_blurhash: Os gradientes toman as cores da imaxe oculta pero esvaecendo tódolos detalles setting_use_blurhash: Os gradientes toman as cores da imaxe oculta pero esvaecendo tódolos detalles
setting_use_pending_items: Agochar actualizacións da cronoloxía tras un click no lugar de desprazar automáticamente os comentarios setting_use_pending_items: Agochar actualizacións da cronoloxía tras un click no lugar de desprazar automáticamente os comentarios
@ -242,7 +241,6 @@ gl:
setting_display_media_default: Por defecto setting_display_media_default: Por defecto
setting_display_media_hide_all: Ocultar todo setting_display_media_hide_all: Ocultar todo
setting_display_media_show_all: Mostrar todo setting_display_media_show_all: Mostrar todo
setting_emoji_style: Estilo dos emojis
setting_expand_spoilers: Despregar sempre as publicacións marcadas con avisos de contido setting_expand_spoilers: Despregar sempre as publicacións marcadas con avisos de contido
setting_hide_network: Non mostrar contactos setting_hide_network: Non mostrar contactos
setting_missing_alt_text_modal: Mostrar mensaxe de confirmación antes de publicar multimedia sen texto descritivo setting_missing_alt_text_modal: Mostrar mensaxe de confirmación antes de publicar multimedia sen texto descritivo

View File

@ -61,7 +61,6 @@ he:
setting_display_media_default: הסתרת מדיה המסומנת כרגישה setting_display_media_default: הסתרת מדיה המסומנת כרגישה
setting_display_media_hide_all: הסתר מדיה תמיד setting_display_media_hide_all: הסתר מדיה תמיד
setting_display_media_show_all: גלה מדיה תמיד setting_display_media_show_all: גלה מדיה תמיד
setting_emoji_style: כיצד להציג רגישונים. "אוטומטי" ינסה להציג מסט האימוג'י המקומי, אבל נופל לערכת Twemoji כברירת מחדל עבור דפדפנים ישנים.
setting_system_scrollbars_ui: נוגע רק לגבי דפדפני דסקטופ מבוססים ספארי וכרום setting_system_scrollbars_ui: נוגע רק לגבי דפדפני דסקטופ מבוססים ספארי וכרום
setting_use_blurhash: הגראדיינטים מבוססים על תוכן התמונה המוסתרת, אבל מסתירים את כל הפרטים setting_use_blurhash: הגראדיינטים מבוססים על תוכן התמונה המוסתרת, אבל מסתירים את כל הפרטים
setting_use_pending_items: הסתר עדכוני פיד מאחורי קליק במקום לגלול את הפיד אוטומטית setting_use_pending_items: הסתר עדכוני פיד מאחורי קליק במקום לגלול את הפיד אוטומטית
@ -244,7 +243,6 @@ he:
setting_display_media_default: ברירת מחדל setting_display_media_default: ברירת מחדל
setting_display_media_hide_all: להסתיר הכל setting_display_media_hide_all: להסתיר הכל
setting_display_media_show_all: להציג הכול setting_display_media_show_all: להציג הכול
setting_emoji_style: סגנון רגישונים (אמוג'י)
setting_expand_spoilers: להרחיב תמיד הודעות מסומנות באזהרת תוכן setting_expand_spoilers: להרחיב תמיד הודעות מסומנות באזהרת תוכן
setting_hide_network: להחביא את הגרף החברתי שלך setting_hide_network: להחביא את הגרף החברתי שלך
setting_missing_alt_text_modal: הצג כרטיס אישור לפני פרסום קובץ גרפי ללא תיאור מילולי setting_missing_alt_text_modal: הצג כרטיס אישור לפני פרסום קובץ גרפי ללא תיאור מילולי

View File

@ -61,7 +61,6 @@ is:
setting_display_media_default: Fela myndefni sem merkt er viðkvæmt setting_display_media_default: Fela myndefni sem merkt er viðkvæmt
setting_display_media_hide_all: Alltaf fela allt myndefni setting_display_media_hide_all: Alltaf fela allt myndefni
setting_display_media_show_all: Alltaf birta myndefni sem merkt er viðkvæmt setting_display_media_show_all: Alltaf birta myndefni sem merkt er viðkvæmt
setting_emoji_style: Hvernig birta skal tjáningartákn (emoji). "Sjálfvirkt" mun reyna að nota innbyggð tjáningartákn, en til vara verða notuð Twemoji-tákn fyrir eldri vafra.
setting_system_scrollbars_ui: Á einungis við um vafra fyrir vinnutölvur sem byggjast á Safari og Chrome setting_system_scrollbars_ui: Á einungis við um vafra fyrir vinnutölvur sem byggjast á Safari og Chrome
setting_use_blurhash: Litstiglarnir byggja á litunum í földu myndunum, en gera öll smáatriði óskýr setting_use_blurhash: Litstiglarnir byggja á litunum í földu myndunum, en gera öll smáatriði óskýr
setting_use_pending_items: Fela uppfærslur tímalínu þar til smellt er, í stað þess að hún skruni streyminu sjálfvirkt setting_use_pending_items: Fela uppfærslur tímalínu þar til smellt er, í stað þess að hún skruni streyminu sjálfvirkt
@ -242,7 +241,6 @@ is:
setting_display_media_default: Sjálfgefið setting_display_media_default: Sjálfgefið
setting_display_media_hide_all: Fela allt setting_display_media_hide_all: Fela allt
setting_display_media_show_all: Birta allt setting_display_media_show_all: Birta allt
setting_emoji_style: Stíll tjáningartákna
setting_expand_spoilers: Alltaf útfella færslur sem eru með aðvörun vegna efnisins setting_expand_spoilers: Alltaf útfella færslur sem eru með aðvörun vegna efnisins
setting_hide_network: Fela félagsnetið þitt setting_hide_network: Fela félagsnetið þitt
setting_missing_alt_text_modal: Birta staðfestingarglugga áður en myndefni án ALT-hjálpartexta er birt setting_missing_alt_text_modal: Birta staðfestingarglugga áður en myndefni án ALT-hjálpartexta er birt

View File

@ -61,7 +61,6 @@ it:
setting_display_media_default: Nascondi media segnati come sensibili setting_display_media_default: Nascondi media segnati come sensibili
setting_display_media_hide_all: Nascondi sempre tutti i media setting_display_media_hide_all: Nascondi sempre tutti i media
setting_display_media_show_all: Mostra sempre i media segnati come sensibili setting_display_media_show_all: Mostra sempre i media segnati come sensibili
setting_emoji_style: Come visualizzare gli emoji. "Automatico" proverà a usare gli emoji nativi, ma per i browser più vecchi ricorrerà a Twemoji.
setting_system_scrollbars_ui: Si applica solo ai browser desktop basati su Safari e Chrome setting_system_scrollbars_ui: Si applica solo ai browser desktop basati su Safari e Chrome
setting_use_blurhash: I gradienti sono basati sui colori delle immagini nascoste ma offuscano tutti i dettagli setting_use_blurhash: I gradienti sono basati sui colori delle immagini nascoste ma offuscano tutti i dettagli
setting_use_pending_items: Fare clic per mostrare i nuovi messaggi invece di aggiornare la timeline automaticamente setting_use_pending_items: Fare clic per mostrare i nuovi messaggi invece di aggiornare la timeline automaticamente
@ -242,7 +241,6 @@ it:
setting_display_media_default: Predefinita setting_display_media_default: Predefinita
setting_display_media_hide_all: Nascondi tutti setting_display_media_hide_all: Nascondi tutti
setting_display_media_show_all: Mostra tutti setting_display_media_show_all: Mostra tutti
setting_emoji_style: Stile emoji
setting_expand_spoilers: Espandi sempre post con content warning setting_expand_spoilers: Espandi sempre post con content warning
setting_hide_network: Nascondi la tua rete setting_hide_network: Nascondi la tua rete
setting_missing_alt_text_modal: Chiedi di confermare prima di pubblicare media senza testo alternativo setting_missing_alt_text_modal: Chiedi di confermare prima di pubblicare media senza testo alternativo

View File

@ -61,7 +61,6 @@ ko:
setting_display_media_default: 민감함으로 표시된 미디어 가리기 setting_display_media_default: 민감함으로 표시된 미디어 가리기
setting_display_media_hide_all: 모든 미디어를 가리기 setting_display_media_hide_all: 모든 미디어를 가리기
setting_display_media_show_all: 모든 미디어를 보이기 setting_display_media_show_all: 모든 미디어를 보이기
setting_emoji_style: 에모지 표현 방식. "자동"은 시스템 기본 에모지를 적용하고 그렇지 못하는 오래된 브라우저의 경우 트웨모지를 사용합니다.
setting_system_scrollbars_ui: 사파리와 크롬 기반의 데스크탑 브라우저만 적용됩니다 setting_system_scrollbars_ui: 사파리와 크롬 기반의 데스크탑 브라우저만 적용됩니다
setting_use_blurhash: 그라디언트는 숨겨진 내용의 색상을 기반으로 하지만 상세 내용은 보이지 않게 합니다 setting_use_blurhash: 그라디언트는 숨겨진 내용의 색상을 기반으로 하지만 상세 내용은 보이지 않게 합니다
setting_use_pending_items: 타임라인의 새 게시물을 자동으로 보여 주는 대신, 클릭해서 나타내도록 합니다 setting_use_pending_items: 타임라인의 새 게시물을 자동으로 보여 주는 대신, 클릭해서 나타내도록 합니다
@ -241,7 +240,6 @@ ko:
setting_display_media_default: 기본 setting_display_media_default: 기본
setting_display_media_hide_all: 모두 가리기 setting_display_media_hide_all: 모두 가리기
setting_display_media_show_all: 모두 보이기 setting_display_media_show_all: 모두 보이기
setting_emoji_style: 에모지 스타일
setting_expand_spoilers: 내용 경고로 표시된 게시물을 항상 펼치기 setting_expand_spoilers: 내용 경고로 표시된 게시물을 항상 펼치기
setting_hide_network: 내 인맥 숨기기 setting_hide_network: 내 인맥 숨기기
setting_missing_alt_text_modal: 대체 텍스트 없이 미디어를 게시하려고 할 때 확인창을 띄웁니다 setting_missing_alt_text_modal: 대체 텍스트 없이 미디어를 게시하려고 할 때 확인창을 띄웁니다

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