Merge branch 'mastodon:main' into main

This commit is contained in:
Andrés Felipe Carranza 2024-03-26 16:26:55 -05:00 committed by GitHub
commit 7fd23387c2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
74 changed files with 412 additions and 438 deletions

View File

@ -41,12 +41,6 @@ Layout/FirstHashElementIndentation:
Layout/LineLength:
Max: 320 # Default of 120 causes a duplicate entry in generated todo file
# Reason:
# https://docs.rubocop.org/rubocop/cops_lint.html#lintuselessaccessmodifier
Lint/UselessAccessModifier:
ContextCreatingMethods:
- class_methods
## Disable most Metrics/*Length cops
# Reason: those are often triggered and force significant refactors when this happend
# but the team feel they are not really improving the code quality.

View File

@ -99,20 +99,20 @@ GEM
ast (2.4.2)
attr_encrypted (4.0.0)
encryptor (~> 3.0.0)
attr_required (1.0.1)
attr_required (1.0.2)
awrence (1.2.1)
aws-eventstream (1.3.0)
aws-partitions (1.873.0)
aws-sdk-core (3.190.1)
aws-partitions (1.899.0)
aws-sdk-core (3.191.4)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.8)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.75.0)
aws-sdk-core (~> 3, >= 3.188.0)
aws-sdk-kms (1.78.0)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.142.0)
aws-sdk-core (~> 3, >= 3.189.0)
aws-sdk-s3 (1.146.0)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.8)
aws-sigv4 (1.8.0)
@ -132,7 +132,7 @@ GEM
erubi (>= 1.0.0)
rack (>= 0.9.0)
rouge (>= 1.0.0)
better_html (2.0.2)
better_html (2.1.1)
actionview (>= 6.0)
activesupport (>= 6.0)
ast (~> 2.0)
@ -140,9 +140,9 @@ GEM
parser (>= 2.4)
smart_properties
bigdecimal (3.1.7)
bindata (2.4.15)
binding_of_caller (1.0.0)
debug_inspector (>= 0.0.1)
bindata (2.5.0)
binding_of_caller (1.0.1)
debug_inspector (>= 1.2.0)
blurhash (0.1.7)
bootsnap (1.18.3)
msgpack (~> 1.2)
@ -167,7 +167,7 @@ GEM
xpath (~> 3.2)
case_transform (0.2)
activesupport
cbor (0.5.9.6)
cbor (0.5.9.8)
charlock_holmes (0.7.7)
chewy (7.5.1)
activesupport (>= 5.2)
@ -182,13 +182,13 @@ GEM
cose (1.3.0)
cbor (~> 0.5.9)
openssl-signature_algorithm (~> 1.0)
crack (0.4.6)
crack (1.0.0)
bigdecimal
rexml
crass (1.0.6)
css_parser (1.14.0)
css_parser (1.16.0)
addressable
csv (3.2.8)
csv (3.3.0)
database_cleaner-active_record (2.1.0)
activerecord (>= 5.a)
database_cleaner-core (~> 2.0.0)
@ -197,7 +197,7 @@ GEM
debug (1.9.1)
irb (~> 1.10)
reline (>= 0.3.8)
debug_inspector (1.1.0)
debug_inspector (1.2.0)
devise (4.9.3)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
@ -217,8 +217,7 @@ GEM
discard (1.3.0)
activerecord (>= 4.2, < 8)
docile (1.4.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
domain_name (0.6.20240107)
doorkeeper (5.6.9)
railties (>= 5)
dotenv (2.8.1)
@ -242,11 +241,11 @@ GEM
mail (~> 2.7)
encryptor (3.0.0)
erubi (1.12.0)
et-orbi (1.2.7)
et-orbi (1.2.10)
tzinfo
excon (0.109.0)
excon (0.110.0)
fabrication (2.31.0)
faker (3.2.3)
faker (3.3.0)
i18n (>= 1.8.11, < 2)
faraday (1.10.3)
faraday-em_http (~> 1.0)
@ -275,7 +274,7 @@ GEM
faraday (~> 1.0)
fast_blank (1.0.1)
fastimage (2.3.0)
ffi (1.15.5)
ffi (1.16.3)
ffi-compiler (1.0.1)
ffi (>= 1.0.0)
rake
@ -291,7 +290,7 @@ GEM
fog-core (~> 2.1)
fog-json (>= 1.0)
formatador (1.1.0)
fugit (1.8.1)
fugit (1.10.1)
et-orbi (~> 1, >= 1.2.7)
raabro (~> 1.4)
fuubar (2.5.1)
@ -423,7 +422,7 @@ GEM
net-imap
net-pop
net-smtp
marcel (1.0.2)
marcel (1.0.4)
mario-redis-lock (1.2.1)
redis (>= 3.0.5)
matrix (0.4.2)
@ -434,7 +433,7 @@ GEM
memory_profiler (1.0.1)
mime-types (3.5.2)
mime-types-data (~> 3.2015)
mime-types-data (3.2023.1205)
mime-types-data (3.2024.0305)
mini_mime (1.1.5)
mini_portile2 (2.8.5)
minitest (5.22.3)
@ -456,7 +455,7 @@ GEM
timeout
net-smtp (0.4.0.1)
net-protocol
nio4r (2.5.9)
nio4r (2.7.1)
nokogiri (1.16.3)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
@ -511,7 +510,7 @@ GEM
pghero (3.4.1)
activerecord (>= 6)
posix-spawn (0.3.15)
premailer (1.21.0)
premailer (1.23.0)
addressable
css_parser (>= 1.12.0)
htmlentities (>= 4.0.0)
@ -618,7 +617,7 @@ GEM
railties (>= 5.2)
rexml (3.2.6)
rotp (6.3.0)
rouge (4.1.2)
rouge (4.2.1)
rpam2 (4.0.2)
rqrcode (2.2.0)
chunky_png (~> 1.0)
@ -668,7 +667,7 @@ GEM
rubocop-performance (1.20.2)
rubocop (>= 1.48.1, < 2.0)
rubocop-ast (>= 1.30.0, < 2.0)
rubocop-rails (2.24.0)
rubocop-rails (2.24.1)
activesupport (>= 4.2.0)
rack (>= 1.1)
rubocop (>= 1.33.0, < 2.0)
@ -763,7 +762,7 @@ GEM
tty-cursor (~> 0.7)
tty-screen (~> 0.8)
wisper (~> 2.0)
tty-screen (0.8.1)
tty-screen (0.8.2)
twitter-text (3.1.0)
idn-ruby
unf (~> 0.1.0)
@ -773,7 +772,7 @@ GEM
tzinfo (>= 1.0.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.8.2)
unf_ext (0.0.9.1)
unicode-display_width (2.5.0)
uri (0.12.2)
validate_email (0.1.6)
@ -796,7 +795,7 @@ GEM
webfinger (1.2.0)
activesupport
httpclient (>= 2.4)
webmock (3.22.0)
webmock (3.23.0)
addressable (>= 2.8.0)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
@ -956,4 +955,4 @@ RUBY VERSION
ruby 3.2.2p53
BUNDLED WITH
2.5.4
2.5.7

View File

@ -160,6 +160,15 @@ module ApplicationHelper
output.compact_blank.join(' ')
end
def theme_style_tags(theme)
if theme == 'system'
concat stylesheet_pack_tag('mastodon-light', media: 'not all and (prefers-color-scheme: dark)', crossorigin: 'anonymous')
concat stylesheet_pack_tag('default', media: '(prefers-color-scheme: dark)', crossorigin: 'anonymous')
else
stylesheet_pack_tag theme, media: 'all', crossorigin: 'anonymous'
end
end
def cdn_host
Rails.configuration.action_controller.asset_host
end

View File

@ -22,23 +22,23 @@ describe('emoji', () => {
it('does unicode', () => {
expect(emojify('\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66')).toEqual(
'<img draggable="false" class="emojione" alt="👩‍👩‍👦‍👦" title=":woman-woman-boy-boy:" src="/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg">');
'<picture><img draggable="false" class="emojione" alt="👩‍👩‍👦‍👦" title=":woman-woman-boy-boy:" src="/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg"></picture>');
expect(emojify('👨‍👩‍👧‍👧')).toEqual(
'<img draggable="false" class="emojione" alt="👨‍👩‍👧‍👧" title=":man-woman-girl-girl:" src="/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg">');
expect(emojify('👩‍👩‍👦')).toEqual('<img draggable="false" class="emojione" alt="👩‍👩‍👦" title=":woman-woman-boy:" src="/emoji/1f469-200d-1f469-200d-1f466.svg">');
'<picture><img draggable="false" class="emojione" alt="👨‍👩‍👧‍👧" title=":man-woman-girl-girl:" src="/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg"></picture>');
expect(emojify('👩‍👩‍👦')).toEqual('<picture><img draggable="false" class="emojione" alt="👩‍👩‍👦" title=":woman-woman-boy:" src="/emoji/1f469-200d-1f469-200d-1f466.svg"></picture>');
expect(emojify('\u2757')).toEqual(
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg">');
'<picture><img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"></picture>');
});
it('does multiple unicode', () => {
expect(emojify('\u2757 #\uFE0F\u20E3')).toEqual(
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg">');
'<picture><img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"></picture> <picture><img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg"></picture>');
expect(emojify('\u2757#\uFE0F\u20E3')).toEqual(
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"><img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg">');
'<picture><img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"></picture><picture><img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg"></picture>');
expect(emojify('\u2757 #\uFE0F\u20E3 \u2757')).toEqual(
'<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg"> <img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg">');
'<picture><img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"></picture> <picture><img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg"></picture> <picture><img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"></picture>');
expect(emojify('foo \u2757 #\uFE0F\u20E3 bar')).toEqual(
'foo <img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg"> bar');
'foo <picture><img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"></picture> <picture><img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg"></picture> bar');
});
it('ignores unicode inside of tags', () => {
@ -46,16 +46,16 @@ describe('emoji', () => {
});
it('does multiple emoji properly (issue 5188)', () => {
expect(emojify('👌🌈💕')).toEqual('<img draggable="false" class="emojione" alt="👌" title=":ok_hand:" src="/emoji/1f44c.svg"><img draggable="false" class="emojione" alt="🌈" title=":rainbow:" src="/emoji/1f308.svg"><img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg">');
expect(emojify('👌 🌈 💕')).toEqual('<img draggable="false" class="emojione" alt="👌" title=":ok_hand:" src="/emoji/1f44c.svg"> <img draggable="false" class="emojione" alt="🌈" title=":rainbow:" src="/emoji/1f308.svg"> <img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg">');
expect(emojify('👌🌈💕')).toEqual('<picture><img draggable="false" class="emojione" alt="👌" title=":ok_hand:" src="/emoji/1f44c.svg"></picture><picture><img draggable="false" class="emojione" alt="🌈" title=":rainbow:" src="/emoji/1f308.svg"></picture><picture><img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg"></picture>');
expect(emojify('👌 🌈 💕')).toEqual('<picture><img draggable="false" class="emojione" alt="👌" title=":ok_hand:" src="/emoji/1f44c.svg"></picture> <picture><img draggable="false" class="emojione" alt="🌈" title=":rainbow:" src="/emoji/1f308.svg"></picture> <picture><img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg"></picture>');
});
it('does an emoji that has no shortcode', () => {
expect(emojify('👁‍🗨')).toEqual('<img draggable="false" class="emojione" alt="👁‍🗨" title="" src="/emoji/1f441-200d-1f5e8.svg">');
expect(emojify('👁‍🗨')).toEqual('<picture><img draggable="false" class="emojione" alt="👁‍🗨" title="" src="/emoji/1f441-200d-1f5e8.svg"></picture>');
});
it('does an emoji whose filename is irregular', () => {
expect(emojify('↙️')).toEqual('<img draggable="false" class="emojione" alt="↙️" title=":arrow_lower_left:" src="/emoji/2199.svg">');
expect(emojify('↙️')).toEqual('<picture><img draggable="false" class="emojione" alt="↙️" title=":arrow_lower_left:" src="/emoji/2199.svg"></picture>');
});
it('avoid emojifying on invisible text', () => {
@ -67,11 +67,11 @@ describe('emoji', () => {
it('avoid emojifying on invisible text with nested tags', () => {
expect(emojify('<span class="invisible">😄<span class="foo">bar</span>😴</span>😇'))
.toEqual('<span class="invisible">😄<span class="foo">bar</span>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg">');
.toEqual('<span class="invisible">😄<span class="foo">bar</span>😴</span><picture><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg"></picture>');
expect(emojify('<span class="invisible">😄<span class="invisible">😕</span>😴</span>😇'))
.toEqual('<span class="invisible">😄<span class="invisible">😕</span>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg">');
.toEqual('<span class="invisible">😄<span class="invisible">😕</span>😴</span><picture><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg"></picture>');
expect(emojify('<span class="invisible">😄<br>😴</span>😇'))
.toEqual('<span class="invisible">😄<br>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg">');
.toEqual('<span class="invisible">😄<br>😴</span><picture><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg"></picture>');
});
it('does not emojify emojis with textual presentation VS15 character', () => {
@ -79,19 +79,19 @@ describe('emoji', () => {
.toEqual('✴︎');
});
it('does an simple emoji properly', () => {
it('does a simple emoji properly', () => {
expect(emojify('♀♂'))
.toEqual('<img draggable="false" class="emojione" alt="♀" title=":female_sign:" src="/emoji/2640.svg"><img draggable="false" class="emojione" alt="♂" title=":male_sign:" src="/emoji/2642.svg">');
.toEqual('<picture><img draggable="false" class="emojione" alt="♀" title=":female_sign:" src="/emoji/2640.svg"></picture><picture><img draggable="false" class="emojione" alt="♂" title=":male_sign:" src="/emoji/2642.svg"></picture>');
});
it('does an emoji containing ZWJ properly', () => {
expect(emojify('💂‍♀️💂‍♂️'))
.toEqual('<img draggable="false" class="emojione" alt="💂\u200D♀" title=":female-guard:" src="/emoji/1f482-200d-2640-fe0f_border.svg"><img draggable="false" class="emojione" alt="💂\u200D♂" title=":male-guard:" src="/emoji/1f482-200d-2642-fe0f_border.svg">');
.toEqual('<picture><img draggable="false" class="emojione" alt="💂\u200D♀" title=":female-guard:" src="/emoji/1f482-200d-2640-fe0f_border.svg"></picture><picture><img draggable="false" class="emojione" alt="💂\u200D♂" title=":male-guard:" src="/emoji/1f482-200d-2642-fe0f_border.svg"></picture>');
});
it('keeps ordering as expected (issue fixed by PR 20677)', () => {
expect(emojify('<p>💕 <a class="hashtag" href="https://example.com/tags/foo" rel="nofollow noopener noreferrer" target="_blank">#<span>foo</span></a> test: foo.</p>'))
.toEqual('<p><img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg"> <a class="hashtag" href="https://example.com/tags/foo" rel="nofollow noopener noreferrer" target="_blank">#<span>foo</span></a> test: foo.</p>');
.toEqual('<p><picture><img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg"></picture> <a class="hashtag" href="https://example.com/tags/foo" rel="nofollow noopener noreferrer" target="_blank">#<span>foo</span></a> test: foo.</p>');
});
});
});

View File

@ -17,8 +17,13 @@ const emojiFilenames = (emojis) => {
const darkEmoji = emojiFilenames(['🎱', '🐜', '⚫', '🖤', '⬛', '◼️', '◾', '◼️', '✒️', '▪️', '💣', '🎳', '📷', '📸', '♣️', '🕶️', '✴️', '🔌', '💂‍♀️', '📽️', '🍳', '🦍', '💂', '🔪', '🕳️', '🕹️', '🕋', '🖊️', '🖋️', '💂‍♂️', '🎤', '🎓', '🎥', '🎼', '♠️', '🎩', '🦃', '📼', '📹', '🎮', '🐃', '🏴', '🐞', '🕺', '📱', '📲', '🚲', '🪮', '🐦‍⬛']);
const lightEmoji = emojiFilenames(['👽', '⚾', '🐔', '☁️', '💨', '🕊️', '👀', '🍥', '👻', '🐐', '❕', '❔', '⛸️', '🌩️', '🔊', '🔇', '📃', '🌧️', '🐏', '🍚', '🍙', '🐓', '🐑', '💀', '☠️', '🌨️', '🔉', '🔈', '💬', '💭', '🏐', '🏳️', '⚪', '⬜', '◽', '◻️', '▫️', '🪽', '🪿']);
const emojiFilename = (filename) => {
const borderedEmoji = (document.body && document.body.classList.contains('theme-mastodon-light')) ? lightEmoji : darkEmoji;
/**
* @param {string} filename
* @param {"light" | "dark" } colorScheme
* @returns {string}
*/
const emojiFilename = (filename, colorScheme) => {
const borderedEmoji = colorScheme === "light" ? lightEmoji : darkEmoji;
return borderedEmoji.includes(filename) ? (filename + '_border') : filename;
};
@ -92,12 +97,30 @@ const emojifyTextNode = (node, customEmojis) => {
const { filename, shortCode } = unicodeMapping[unicode_emoji];
const title = shortCode ? `:${shortCode}:` : '';
replacement = document.createElement('img');
replacement.setAttribute('draggable', 'false');
replacement.setAttribute('class', 'emojione');
replacement.setAttribute('alt', unicode_emoji);
replacement.setAttribute('title', title);
replacement.setAttribute('src', `${assetHost}/emoji/${emojiFilename(filename)}.svg`);
replacement = document.createElement('picture');
const isSystemTheme = !!document.body?.classList.contains('theme-system');
if(isSystemTheme) {
let source = document.createElement('source');
source.setAttribute('media', '(prefers-color-scheme: dark)');
source.setAttribute('srcset', `${assetHost}/emoji/${emojiFilename(filename, "dark")}.svg`);
replacement.appendChild(source);
}
let img = document.createElement('img');
img.setAttribute('draggable', 'false');
img.setAttribute('class', 'emojione');
img.setAttribute('alt', unicode_emoji);
img.setAttribute('title', title);
let theme = "light";
if(!isSystemTheme && !document.body?.classList.contains('theme-mastodon-light'))
theme = "dark";
img.setAttribute('src', `${assetHost}/emoji/${emojiFilename(filename, theme)}.svg`);
replacement.appendChild(img);
}
// Add the processed-up-to-now string and the emoji replacement

View File

@ -471,7 +471,6 @@
"notification.own_poll": "Ваша апытанне скончылася",
"notification.poll": "Апытанне, дзе вы прынялі ўдзел, скончылася",
"notification.reblog": "{name} пашырыў ваш допіс",
"notification.severed_relationships": "Зносіны з {name} былі разарваныя",
"notification.status": "Новы допіс ад {name}",
"notification.update": "Допіс {name} адрэдагаваны",
"notification_requests.accept": "Прыняць",
@ -589,8 +588,6 @@
"refresh": "Абнавiць",
"regeneration_indicator.label": "Загрузка…",
"regeneration_indicator.sublabel": "Пачакайце, рыхтуем вашу стужку!",
"relationship_severance_notification.types.user_domain_block": "Вы заблакіравалі гэты дамен",
"relationship_severance_notification.view": "Праглядзець",
"relative_time.days": "{number} д",
"relative_time.full.days": "{number, plural, one {# дзень} few {# дні} many {# дзён} other {# дня}} таму",
"relative_time.full.hours": "{number, plural, one {# гадзіна} few {# гадзіны} many {# гадзін} other {# гадзіны}} таму",

View File

@ -471,7 +471,6 @@
"notification.own_poll": "Анкетата ви приключи",
"notification.poll": "Анкета, в която гласувахте, приключи",
"notification.reblog": "{name} подсили ваша публикация",
"notification.severed_relationships": "Връзката с {name} е прекъсната",
"notification.status": "{name} току-що публикува",
"notification.update": "{name} промени публикация",
"notification_requests.accept": "Приемам",
@ -484,6 +483,8 @@
"notifications.column_settings.admin.sign_up": "Нови регистрации:",
"notifications.column_settings.alert": "Известия на работния плот",
"notifications.column_settings.favourite": "Любими:",
"notifications.column_settings.filter_bar.advanced": "Показване на всички категории",
"notifications.column_settings.filter_bar.category": "Лента за бърз филтър",
"notifications.column_settings.follow": "Нови последователи:",
"notifications.column_settings.follow_request": "Нови заявки за последване:",
"notifications.column_settings.mention": "Споменавания:",
@ -588,12 +589,6 @@
"refresh": "Опресняване",
"regeneration_indicator.label": "Зареждане…",
"regeneration_indicator.sublabel": "Подготовка на началния ви инфоканал!",
"relationship_severance_notification.purged_data": "прочистено от администраторите",
"relationship_severance_notification.relationships": "{count, plural, one {# връзка} other {# връзки}}",
"relationship_severance_notification.types.account_suspension": "Акаунтът е спрян",
"relationship_severance_notification.types.domain_block": "Домейнът е спрян",
"relationship_severance_notification.types.user_domain_block": "Блокирахте този домейн",
"relationship_severance_notification.view": "Преглед",
"relative_time.days": "{number} д.",
"relative_time.full.days": "преди {number, plural, one {# ден} other {# дни}}",
"relative_time.full.hours": "преди {number, plural, one {# час} other {# часа}}",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "Filtra aquest tut",
"filter_modal.title.status": "Filtra un tut",
"filtered_notifications_banner.pending_requests": "Notificacions {count, plural, =0 {de ningú} one {d'una persona} other {de # persones}} que potser coneixes",
"filtered_notifications_banner.private_mentions": "{count, plural, one {menció privada} other {mencions privades}}",
"filtered_notifications_banner.title": "Notificacions filtrades",
"firehose.all": "Tots",
"firehose.local": "Aquest servidor",
@ -471,7 +472,11 @@
"notification.own_poll": "La teva enquesta ha finalitzat",
"notification.poll": "Ha finalitzat una enquesta en què has votat",
"notification.reblog": "{name} t'ha impulsat",
"notification.severed_relationships": "S'han eliminat les relacions amb {name}",
"notification.relationships_severance_event": "Connexions perdudes amb {name}",
"notification.relationships_severance_event.account_suspension": "Un administrador de {from} ha suspès {target}; això vol dir que ja no en podreu rebre actualitzacions o interactuar-hi.",
"notification.relationships_severance_event.domain_block": "Un administrador de {from} ha blocat {target}, incloent-hi {followersCount} dels vostres seguidors i {followingCount, plural, one {# compte} other {# comptes}} que seguiu.",
"notification.relationships_severance_event.learn_more": "Per a saber-ne més",
"notification.relationships_severance_event.user_domain_block": "Heu blocat {target}, eliminant {followersCount} dels vostres seguidors i {followingCount, plural, one {# compte} other {# comptes}} que seguiu.",
"notification.status": "{name} acaba de publicar",
"notification.update": "{name} ha editat un tut",
"notification_requests.accept": "Accepta",
@ -484,6 +489,8 @@
"notifications.column_settings.admin.sign_up": "Registres nous:",
"notifications.column_settings.alert": "Notificacions d'escriptori",
"notifications.column_settings.favourite": "Favorits:",
"notifications.column_settings.filter_bar.advanced": "Mostra totes les categories",
"notifications.column_settings.filter_bar.category": "Barra ràpida de filtres",
"notifications.column_settings.follow": "Nous seguidors:",
"notifications.column_settings.follow_request": "Noves sol·licituds de seguiment:",
"notifications.column_settings.mention": "Mencions:",
@ -588,12 +595,6 @@
"refresh": "Actualitza",
"regeneration_indicator.label": "Es carrega…",
"regeneration_indicator.sublabel": "Es prepara la teva línia de temps d'Inici!",
"relationship_severance_notification.purged_data": "purgat pels administradors",
"relationship_severance_notification.relationships": "{count, plural, one {# relació} other {# relacions}}",
"relationship_severance_notification.types.account_suspension": "S'ha suspès el compte",
"relationship_severance_notification.types.domain_block": "S'ha suspès el domini",
"relationship_severance_notification.types.user_domain_block": "Heu blocat aquest domini",
"relationship_severance_notification.view": "Visualitza",
"relative_time.days": "{number}d",
"relative_time.full.days": "fa {number, plural, one {# dia} other {# dies}}",
"relative_time.full.hours": "fa {number, plural, one {# hora} other {# hores}}",

View File

@ -296,6 +296,7 @@
"filter_modal.select_filter.title": "Filtrér dette indlæg",
"filter_modal.title.status": "Filtrér et indlæg",
"filtered_notifications_banner.pending_requests": "Notifikationer fra {count, plural, =0 {ingen} one {én person} other {# personer}} du måske kender",
"filtered_notifications_banner.private_mentions": "{count, plural, one {privat omtale} other {private omtaler}}",
"filtered_notifications_banner.title": "Filtrerede notifikationer",
"firehose.all": "Alle",
"firehose.local": "Denne server",
@ -469,6 +470,11 @@
"notification.own_poll": "Din afstemning er afsluttet",
"notification.poll": "En afstemning, hvori du stemte, er slut",
"notification.reblog": "{name} boostede dit indlæg",
"notification.relationships_severance_event": "Mistede forbindelser med {name}",
"notification.relationships_severance_event.account_suspension": "En admin fra {from} har suspenderet {target}, hvofor opdateringer herfra eller interaktion hermed ikke længer er mulig.",
"notification.relationships_severance_event.domain_block": "En admin fra {from} har blokeret {target}, herunder {followersCount} tilhængere og {followingCount, plural, one {# konto, der} other {# konti, som}} følges.",
"notification.relationships_severance_event.learn_more": "Læs mere",
"notification.relationships_severance_event.user_domain_block": "{target} er blevet blokeret, og {followersCount} tilhængere samt {followingCount, plural, one {# konto, der} other {# konti, som}} følges, er hermed fjernet.",
"notification.status": "{name} har netop postet",
"notification.update": "{name} redigerede et indlæg",
"notification_requests.accept": "Acceptér",
@ -587,12 +593,6 @@
"refresh": "Genindlæs",
"regeneration_indicator.label": "Indlæser…",
"regeneration_indicator.sublabel": "Din hjemmetidslinje klargøres!",
"relationship_severance_notification.purged_data": "renset af administratorer",
"relationship_severance_notification.relationships": "{count, plural, one {# forhold} other {# forhold}}",
"relationship_severance_notification.types.account_suspension": "Konto er blevet suspenderet",
"relationship_severance_notification.types.domain_block": "Domæne er blevet suspenderet",
"relationship_severance_notification.types.user_domain_block": "Dette domæne blev blokeret",
"relationship_severance_notification.view": "Vis",
"relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# dag} other {# dage}} siden",
"relative_time.full.hours": "{number, plural, one {# time} other {# timer}} siden",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "Diesen Beitrag filtern",
"filter_modal.title.status": "Beitrag per Filter ausblenden",
"filtered_notifications_banner.pending_requests": "Benachrichtigungen von {count, plural, =0 {keinem Profil, das du möglicherweise kennst} one {einem Profil, das du möglicherweise kennst} other {# Profilen, die du möglicherweise kennst}}",
"filtered_notifications_banner.private_mentions": "{count, plural, one {private Erwähnung} other {private Erwähnungen}}",
"filtered_notifications_banner.title": "Gefilterte Benachrichtigungen",
"firehose.all": "Alles",
"firehose.local": "Dieser Server",
@ -471,7 +472,11 @@
"notification.own_poll": "Deine Umfrage ist beendet",
"notification.poll": "Eine Umfrage, an der du teilgenommen hast, ist beendet",
"notification.reblog": "{name} teilte deinen Beitrag",
"notification.severed_relationships": "Beziehungen zu {name} getrennt",
"notification.relationships_severance_event": "Verbindungen mit {name} verloren",
"notification.relationships_severance_event.account_suspension": "Ein Admin von {from} hat {target} gesperrt. Du wirst von diesem Profil keine Updates mehr erhalten und auch nicht mit ihm interagieren können.",
"notification.relationships_severance_event.domain_block": "Ein Admin von {from} hat {target} blockiert darunter {followersCount} deiner Follower und {followingCount, plural, one {# Konto, dem} other {# Konten, denen}} du folgst.",
"notification.relationships_severance_event.learn_more": "Mehr erfahren",
"notification.relationships_severance_event.user_domain_block": "Du hast {target} blockiert {followersCount} deiner Follower und {followingCount, plural, one {# Konto, dem} other {# Konten, denen}} du folgst, wurden entfernt.",
"notification.status": "{name} hat gerade etwas gepostet",
"notification.update": "{name} bearbeitete einen Beitrag",
"notification_requests.accept": "Akzeptieren",
@ -590,12 +595,6 @@
"refresh": "Aktualisieren",
"regeneration_indicator.label": "Wird geladen …",
"regeneration_indicator.sublabel": "Deine Startseite wird gerade vorbereitet!",
"relationship_severance_notification.purged_data": "von Administrator*innen entfernt",
"relationship_severance_notification.relationships": "{count, plural, one {# Beziehung} other {# Beziehungen}}",
"relationship_severance_notification.types.account_suspension": "Konto wurde gesperrt",
"relationship_severance_notification.types.domain_block": "Domain wurde gesperrt",
"relationship_severance_notification.types.user_domain_block": "Du hast diese Domain blockiert",
"relationship_severance_notification.view": "Anzeigen",
"relative_time.days": "{number} T.",
"relative_time.full.days": "vor {number, plural, one {# Tag} other {# Tagen}}",
"relative_time.full.hours": "vor {number, plural, one {# Stunde} other {# Stunden}}",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "Filtrar este mensaje",
"filter_modal.title.status": "Filtrar un mensaje",
"filtered_notifications_banner.pending_requests": "Notificaciones de {count, plural, =0 {nadie} one {una persona} other {# personas}} que podrías conocer",
"filtered_notifications_banner.private_mentions": "{count, plural, one {mención privada} other {menciones privadas}}",
"filtered_notifications_banner.title": "Notificaciones filtradas",
"firehose.all": "Todos",
"firehose.local": "Este servidor",
@ -471,7 +472,11 @@
"notification.own_poll": "Tu encuesta finalizó",
"notification.poll": "Finalizó una encuesta en la que votaste",
"notification.reblog": "{name} adhirió a tu mensaje",
"notification.severed_relationships": "Relaciones con {name} cortadas",
"notification.relationships_severance_event": "Conexiones perdidas con {name}",
"notification.relationships_severance_event.account_suspension": "Un administrador de {from} suspendió a {target}, lo que significa que ya no podés recibir actualizaciones de esa cuenta o interactuar con la misma.",
"notification.relationships_severance_event.domain_block": "Un administrador de {from} bloqueó a {target}, incluyendo {followersCount} de tus seguidores y {followingCount, plural, one {# cuenta} other {# cuentas}} que seguís.",
"notification.relationships_severance_event.learn_more": "Aprendé más",
"notification.relationships_severance_event.user_domain_block": "Bloqueaste a {target}, eliminando {followersCount} de tus seguidores y {followingCount, plural, one {# cuenta} other {# cuentas}} que seguís.",
"notification.status": "{name} acaba de enviar un mensaje",
"notification.update": "{name} editó un mensaje",
"notification_requests.accept": "Aceptar",
@ -590,12 +595,6 @@
"refresh": "Refrescar",
"regeneration_indicator.label": "Cargando…",
"regeneration_indicator.sublabel": "¡Se está preparando tu línea temporal principal!",
"relationship_severance_notification.purged_data": "purgada por administradores",
"relationship_severance_notification.relationships": "{count, plural, one {# relación} other {# relaciones}}",
"relationship_severance_notification.types.account_suspension": "La cuenta fue suspendida",
"relationship_severance_notification.types.domain_block": "El dominio fue suspendido",
"relationship_severance_notification.types.user_domain_block": "Bloqueaste este dominio",
"relationship_severance_notification.view": "Ver",
"relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural,one {hace # día} other {hace # días}}",
"relative_time.full.hours": "{number, plural,one {hace # hora} other {hace # horas}}",

View File

@ -471,7 +471,11 @@
"notification.own_poll": "Tu encuesta ha terminado",
"notification.poll": "Una encuesta en la que has votado ha terminado",
"notification.reblog": "{name} ha retooteado tu estado",
"notification.severed_relationships": "Se han cortado las relaciones con {name}",
"notification.relationships_severance_event": "Conexiones perdidas con {name}",
"notification.relationships_severance_event.account_suspension": "Un administrador de {from} ha suspendido {target}, lo que significa que ya no puedes recibir actualizaciones de sus cuentas o interactuar con ellas.",
"notification.relationships_severance_event.domain_block": "Un administrador de {from} ha bloqueado {target}, incluyendo {followersCount} de tus seguidores y {followingCount, plural, one {# cuenta} other {# cuentas}} que sigues.",
"notification.relationships_severance_event.learn_more": "Más información",
"notification.relationships_severance_event.user_domain_block": "Has bloqueado {target}, eliminando {followersCount} de tus seguidores y {followingCount, plural, one {# cuenta} other {# cuentas}} que sigues.",
"notification.status": "{name} acaba de publicar",
"notification.update": "{name} editó una publicación",
"notification_requests.accept": "Aceptar",
@ -590,12 +594,6 @@
"refresh": "Actualizar",
"regeneration_indicator.label": "Cargando…",
"regeneration_indicator.sublabel": "¡Tu historia de inicio se está preparando!",
"relationship_severance_notification.purged_data": "purgado por administradores",
"relationship_severance_notification.relationships": "{count, plural, one {# relación} other {# relaciones}}",
"relationship_severance_notification.types.account_suspension": "La cuenta ha sido suspendida",
"relationship_severance_notification.types.domain_block": "El dominio ha sido suspendido",
"relationship_severance_notification.types.user_domain_block": "Bloqueaste este dominio",
"relationship_severance_notification.view": "Ver",
"relative_time.days": "{number} d",
"relative_time.full.days": "{number, plural, one {# día} other {# días hace}}",
"relative_time.full.hours": "{number, plural, one {# hora} other {# horas}} hace",

View File

@ -471,7 +471,11 @@
"notification.own_poll": "Tu encuesta ha terminado",
"notification.poll": "Una encuesta en la que has votado ha terminado",
"notification.reblog": "{name} ha impulsado tu publicación",
"notification.severed_relationships": "Se han cortado las relaciones con {name}",
"notification.relationships_severance_event": "Conexiones perdidas con {name}",
"notification.relationships_severance_event.account_suspension": "Un administrador de {from} ha suspendido {target}, lo que significa que ya no puedes recibir actualizaciones de sus cuentas o interactuar con ellas.",
"notification.relationships_severance_event.domain_block": "Un administrador de {from} ha bloqueado {target}, incluyendo {followersCount} de tus seguidores y {followingCount, plural, one {# cuenta} other {# cuentas}} que sigues.",
"notification.relationships_severance_event.learn_more": "Más información",
"notification.relationships_severance_event.user_domain_block": "Has bloqueado {target}, eliminando {followersCount} de tus seguidores y {followingCount, plural, one {# cuenta} other {# cuentas}} que sigues.",
"notification.status": "{name} acaba de publicar",
"notification.update": "{name} editó una publicación",
"notification_requests.accept": "Aceptar",
@ -590,12 +594,6 @@
"refresh": "Actualizar",
"regeneration_indicator.label": "Cargando…",
"regeneration_indicator.sublabel": "¡Tu historia de inicio se está preparando!",
"relationship_severance_notification.purged_data": "purgado por administradores",
"relationship_severance_notification.relationships": "{count, plural, one {# relación} other {# relaciones}}",
"relationship_severance_notification.types.account_suspension": "La cuenta ha sido suspendida",
"relationship_severance_notification.types.domain_block": "El dominio ha sido suspendido",
"relationship_severance_notification.types.user_domain_block": "Bloqueaste este dominio",
"relationship_severance_notification.view": "Ver",
"relative_time.days": "{number} d",
"relative_time.full.days": "hace {number, plural, one {# día} other {# días}}",
"relative_time.full.hours": "hace {number, plural, one {# hora} other {# horas}}",

View File

@ -471,7 +471,9 @@
"notification.own_poll": "Zure inkesta amaitu da",
"notification.poll": "Zuk erantzun duzun inkesta bat bukatu da",
"notification.reblog": "{name}(e)k bultzada eman dio zure bidalketari",
"notification.severed_relationships": "{name} erabiltzailearekin zenuen erlazioa galdu da",
"notification.relationships_severance_event": "{name} erabiltzailearekin galdutako konexioak",
"notification.relationships_severance_event.account_suspension": "{from} zerbitzariko administratzaile batek {target} bertan behera utzi du, hau da, ezin izango dituzu jaso hango eguneratzerik edo hangoekin elkarreragin.",
"notification.relationships_severance_event.learn_more": "Informazio gehiago",
"notification.status": "{name} erabiltzaileak bidalketa egin berri du",
"notification.update": "{name} erabiltzaileak bidalketa bat editatu du",
"notification_requests.accept": "Onartu",
@ -590,12 +592,6 @@
"refresh": "Berritu",
"regeneration_indicator.label": "Kargatzen…",
"regeneration_indicator.sublabel": "Zure hasiera-jarioa prestatzen ari da!",
"relationship_severance_notification.purged_data": "administratzaileek kendua",
"relationship_severance_notification.relationships": "{count, plural, one {Erlazio #} other {# erlazio}}",
"relationship_severance_notification.types.account_suspension": "Kontua bertan behera utzi da",
"relationship_severance_notification.types.domain_block": "Domeinua bertan behera utzi da",
"relationship_severance_notification.types.user_domain_block": "Domeinu hau blokeatu duzu",
"relationship_severance_notification.view": "Ikusi",
"relative_time.days": "{number}e",
"relative_time.full.days": "Duela {number, plural, one {egun #} other {# egun}}",
"relative_time.full.hours": "Duela {number, plural, one {ordu #} other {# ordu}}",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "Suodata tämä julkaisu",
"filter_modal.title.status": "Suodata julkaisu",
"filtered_notifications_banner.pending_requests": "Ilmoitukset {count, plural, =0 {ei keltään} one {yhdeltä henkilöltä} other {# henkilöltä}}, jonka saatat tuntea",
"filtered_notifications_banner.private_mentions": "{count, plural, one {yksityismaininta} other {yksityismainintaa}}",
"filtered_notifications_banner.title": "Suodatetut ilmoitukset",
"firehose.all": "Kaikki",
"firehose.local": "Tämä palvelin",
@ -471,7 +472,7 @@
"notification.own_poll": "Äänestyksesi on päättynyt",
"notification.poll": "Kysely, johon osallistuit, on päättynyt",
"notification.reblog": "{name} tehosti julkaisuasi",
"notification.severed_relationships": "Suhteet palvelimeen {name} katkenneet",
"notification.relationships_severance_event.learn_more": "Lue lisää",
"notification.status": "{name} julkaisi juuri",
"notification.update": "{name} muokkasi julkaisua",
"notification_requests.accept": "Hyväksy",
@ -590,12 +591,6 @@
"refresh": "Päivitä",
"regeneration_indicator.label": "Ladataan…",
"regeneration_indicator.sublabel": "Kotisyötettäsi valmistellaan!",
"relationship_severance_notification.purged_data": "ylläpitäjien tyhjentämä",
"relationship_severance_notification.relationships": "{count, plural, one {# suhde} other {# suhdetta}}",
"relationship_severance_notification.types.account_suspension": "Tili on jäädytetty",
"relationship_severance_notification.types.domain_block": "Verkkotunnus on jäädytetty",
"relationship_severance_notification.types.user_domain_block": "Estit tämän verkkotunnuksen",
"relationship_severance_notification.view": "Näytä",
"relative_time.days": "{number} pv",
"relative_time.full.days": "{number, plural, one {# päivä} other {# päivää}} sitten",
"relative_time.full.hours": "{number, plural, one {# tunti} other {# tuntia}} sitten",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "Filtrera hendan postin",
"filter_modal.title.status": "Filtrera ein post",
"filtered_notifications_banner.pending_requests": "Fráboðanir frá {count, plural, =0 {ongum} one {einum persóni} other {# persónum}}, sum tú kanska kennir",
"filtered_notifications_banner.private_mentions": "{count, plural, one {privat umrøða} other {privatar umrøður}}",
"filtered_notifications_banner.title": "Sáldaðar fráboðanir",
"firehose.all": "Allar",
"firehose.local": "Hesin ambætarin",
@ -471,7 +472,11 @@
"notification.own_poll": "Tín atkvøðugreiðsla er endað",
"notification.poll": "Ein atkvøðugreiðsla, har tú hevur atkvøtt, er endað",
"notification.reblog": "{name} lyfti tín post",
"notification.severed_relationships": "Tilknýti við {name} avbrotið",
"notification.relationships_severance_event": "Mist sambond við {name}",
"notification.relationships_severance_event.account_suspension": "Ein umsitari frá {from} hevur gjørt {target} óvirkna, sum merkir, at tú ikki kanst móttaka dagføringar ella virka saman við teimum longur.",
"notification.relationships_severance_event.domain_block": "Ein umsitari frá {from} hevur blokerað {target}, íroknað {followersCount} av tínum fylgjarum og {followingCount, plural, one {# kontu} other {# kontur}}, sum tú fylgir.",
"notification.relationships_severance_event.learn_more": "Lær meira",
"notification.relationships_severance_event.user_domain_block": "Tú hevur blokerað {target}, strikað {followersCount} av tínum fylgjarum og {followingCount, plural, one {# kontu} other {# kontur}}, sum tú fylgir.",
"notification.status": "{name} hevur júst postað",
"notification.update": "{name} rættaði ein post",
"notification_requests.accept": "Góðtak",
@ -590,12 +595,6 @@
"refresh": "Endurles",
"regeneration_indicator.label": "Innlesur…",
"regeneration_indicator.sublabel": "Tín heimarás verður gjørd klár!",
"relationship_severance_notification.purged_data": "reinsað av umsitarum",
"relationship_severance_notification.relationships": "{count, plural, one {# tilknýti} other {# tilknýti}}",
"relationship_severance_notification.types.account_suspension": "Kontan er ógildað",
"relationship_severance_notification.types.domain_block": "Økisnavn er ógildað",
"relationship_severance_notification.types.user_domain_block": "Tú hevur forðað hesum økisnavni",
"relationship_severance_notification.view": "Vís",
"relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# dagur} other {# dagar}} síðani",
"relative_time.full.hours": "{number, plural, one {# tími} other {# tímar}} síðani",

View File

@ -471,7 +471,6 @@
"notification.own_poll": "Votre sondage est terminé",
"notification.poll": "Un sondage auquel vous avez participé est terminé",
"notification.reblog": "{name} a boosté votre message",
"notification.severed_relationships": "Relation avec {name} rompues",
"notification.status": "{name} vient de publier",
"notification.update": "{name} a modifié une publication",
"notification_requests.accept": "Accepter",
@ -588,12 +587,6 @@
"refresh": "Actualiser",
"regeneration_indicator.label": "Chargement…",
"regeneration_indicator.sublabel": "Votre fil d'accueil est en cours de préparation!",
"relationship_severance_notification.purged_data": "supprimées par les administrateurs",
"relationship_severance_notification.relationships": "{count, plural, one {# relation} other {# relations}}",
"relationship_severance_notification.types.account_suspension": "Le compte a été suspendu",
"relationship_severance_notification.types.domain_block": "Le domaine a été suspendu",
"relationship_severance_notification.types.user_domain_block": "Vous avez bloqué ce domaine",
"relationship_severance_notification.view": "Afficher",
"relative_time.days": "{number} j",
"relative_time.full.days": "il y a {number, plural, one {# jour} other {# jours}}",
"relative_time.full.hours": "il y a {number, plural, one {# heure} other {# heures}}",

View File

@ -471,7 +471,6 @@
"notification.own_poll": "Votre sondage est terminé",
"notification.poll": "Un sondage auquel vous avez participé vient de se terminer",
"notification.reblog": "{name} a partagé votre message",
"notification.severed_relationships": "Relation avec {name} rompues",
"notification.status": "{name} vient de publier",
"notification.update": "{name} a modifié un message",
"notification_requests.accept": "Accepter",
@ -588,12 +587,6 @@
"refresh": "Actualiser",
"regeneration_indicator.label": "Chargement…",
"regeneration_indicator.sublabel": "Votre fil principal est en cours de préparation!",
"relationship_severance_notification.purged_data": "supprimées par les administrateurs",
"relationship_severance_notification.relationships": "{count, plural, one {# relation} other {# relations}}",
"relationship_severance_notification.types.account_suspension": "Le compte a été suspendu",
"relationship_severance_notification.types.domain_block": "Le domaine a été suspendu",
"relationship_severance_notification.types.user_domain_block": "Vous avez bloqué ce domaine",
"relationship_severance_notification.view": "Afficher",
"relative_time.days": "{number} j",
"relative_time.full.days": "il y a {number, plural, one {# jour} other {# jours}}",
"relative_time.full.hours": "il y a {number, plural, one {# heure} other {# heures}}",

View File

@ -471,7 +471,6 @@
"notification.own_poll": "Thàinig an cunntas-bheachd agad gu crìoch",
"notification.poll": "Thàinig cunntas-bheachd sa bhòt thu gu crìoch",
"notification.reblog": "Bhrosnaich {name} am post agad",
"notification.severed_relationships": "Chaidh na dàimhean le {name} a dhealachadh",
"notification.status": "Phostaich {name} rud",
"notification.update": "Dheasaich {name} post",
"notification_requests.accept": "Gabh ris",
@ -588,12 +587,6 @@
"refresh": "Ath-nuadhaich",
"regeneration_indicator.label": "Ga luchdadh…",
"regeneration_indicator.sublabel": "Tha do dhachaigh ga ullachadh!",
"relationship_severance_notification.purged_data": "chaidh a phurgaideachadh leis na rianairean",
"relationship_severance_notification.relationships": "{count, plural, one {# dàimh} two {# dhàimh} few {# dàimhean} other {# dàimh}}",
"relationship_severance_notification.types.account_suspension": "Chaidh cunntas a chur à rèim",
"relationship_severance_notification.types.domain_block": "Chaidh àrainn a chur à rèim",
"relationship_severance_notification.types.user_domain_block": "Bhac thu an àrainn seo",
"relationship_severance_notification.view": "Seall",
"relative_time.days": "{number}l",
"relative_time.full.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}} air ais",
"relative_time.full.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}} air ais",

View File

@ -471,7 +471,6 @@
"notification.own_poll": "A túa enquisa rematou",
"notification.poll": "Rematou a enquisa na que votaches",
"notification.reblog": "{name} compartiu a túa publicación",
"notification.severed_relationships": "Cortouse a relación con {name}",
"notification.status": "{name} publicou",
"notification.update": "{name} editou unha publicación",
"notification_requests.accept": "Aceptar",
@ -484,6 +483,8 @@
"notifications.column_settings.admin.sign_up": "Novas usuarias:",
"notifications.column_settings.alert": "Notificacións de escritorio",
"notifications.column_settings.favourite": "Favoritas:",
"notifications.column_settings.filter_bar.advanced": "Mostrar todas as categorías",
"notifications.column_settings.filter_bar.category": "Barra de filtrado rápido",
"notifications.column_settings.follow": "Novas seguidoras:",
"notifications.column_settings.follow_request": "Novas peticións de seguimento:",
"notifications.column_settings.mention": "Mencións:",
@ -588,12 +589,6 @@
"refresh": "Actualizar",
"regeneration_indicator.label": "Estase a cargar…",
"regeneration_indicator.sublabel": "Estase a preparar a túa cronoloxía de inicio!",
"relationship_severance_notification.purged_data": "purgada pola administración",
"relationship_severance_notification.relationships": "{count, plural, one {# relación} other {# relacións}}",
"relationship_severance_notification.types.account_suspension": "A conta foi suspendida",
"relationship_severance_notification.types.domain_block": "O dominio foi suspendido",
"relationship_severance_notification.types.user_domain_block": "Bloqueaches este dominio",
"relationship_severance_notification.view": "Ver",
"relative_time.days": "{number}d",
"relative_time.full.days": "hai {number, plural, one {# día} other {# días}}",
"relative_time.full.hours": "hai {number, plural, one {# hora} other {# horas}}",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "סינון ההודעה הזו",
"filter_modal.title.status": "סנן הודעה",
"filtered_notifications_banner.pending_requests": "{count, plural,=0 {אין התראות ממשתמשים ה}one {התראה אחת ממישהו/מישהי ה}two {יש התראותיים ממשתמשים }other {יש # התראות ממשתמשים }}מוכרים לך",
"filtered_notifications_banner.private_mentions": "{count, plural, one {איזכור פרטי} other {איזכורים פרטיים}}",
"filtered_notifications_banner.title": "התראות מסוננות",
"firehose.all": "הכל",
"firehose.local": "שרת זה",
@ -471,7 +472,11 @@
"notification.own_poll": "הסקר שלך הסתיים",
"notification.poll": "סקר שהצבעת בו הסתיים",
"notification.reblog": "הודעתך הודהדה על ידי {name}",
"notification.severed_relationships": "חתכתם כל קשר עם {name}",
"notification.relationships_severance_event": "אבד הקשר עם {name}",
"notification.relationships_severance_event.account_suspension": "מנהל.ת משרת {from} השע(ת)ה את {target}, ולפיכך לא תעודכנו יותר על ידם ולא תוכלו להיות איתם בקשר.",
"notification.relationships_severance_event.domain_block": "מנהל.ת מאתר {from} חסמו את {target} ובכלל זה {followersCount} מעוקביך וגם {followingCount, plural, one {חשבון אחד} two {שני חשבונות} many {# חשבונות} other {# חשבונות}} מבין נעקביך.",
"notification.relationships_severance_event.learn_more": "למידע נוסף",
"notification.relationships_severance_event.user_domain_block": "חסמת את {target} ובכלל זה {followersCount} מעוקביך וגם {followingCount, plural, one {חשבון אחד} two {שני חשבונות} many {# חשבונות} other {# חשבונות}} מבין נעקביך.",
"notification.status": "{name} הרגע פרסמו",
"notification.update": "{name} ערכו הודעה",
"notification_requests.accept": "לקבל",
@ -590,12 +595,6 @@
"refresh": "רענון",
"regeneration_indicator.label": "טוען…",
"regeneration_indicator.sublabel": "פיד הבית שלך בהכנה!",
"relationship_severance_notification.purged_data": "המידע נמחק על ידי ההנהלה",
"relationship_severance_notification.relationships": "{count, plural, one {קשר אחד} other {# קשרים}}",
"relationship_severance_notification.types.account_suspension": "החשבון הושעה",
"relationship_severance_notification.types.domain_block": "השרת הושעה",
"relationship_severance_notification.types.user_domain_block": "חסמת שרת זה",
"relationship_severance_notification.view": "הצג",
"relative_time.days": "{number} ימים",
"relative_time.full.days": "לפני {number, plural, one {# יום} other {# ימים}}",
"relative_time.full.hours": "לפני {number, plural, one {# שעה} other {# שעות}}",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "E bejegyzés szűrése",
"filter_modal.title.status": "Egy bejegyzés szűrése",
"filtered_notifications_banner.pending_requests": "Értesítések {count, plural, =0 {nincsenek} one {egy valósztínűleg ismerős személytől} other {# valószínűleg ismerős személytől}}",
"filtered_notifications_banner.private_mentions": "{count, plural, one {privát említés} other {privát említés}}",
"filtered_notifications_banner.title": "Szűrt értesítések",
"firehose.all": "Összes",
"firehose.local": "Ez a kiszolgáló",
@ -471,7 +472,11 @@
"notification.own_poll": "A szavazásod véget ért",
"notification.poll": "Egy szavazás, melyben részt vettél, véget ért",
"notification.reblog": "{name} megtolta a bejegyzésedet",
"notification.severed_relationships": "A kapcsolatok megszakítva ezzel: {name}",
"notification.relationships_severance_event": "Elvesztek a kapcsolatok vele: {name}",
"notification.relationships_severance_event.account_suspension": "Egy admin a {from} kiszolgálóról felfüggesztette {target} fiókot, ami azt jelenti, hogy mostantól nem tudsz vele interaktálni vagy tőle értesítéseket kapni.",
"notification.relationships_severance_event.domain_block": "Egy admin a {from} kiszolgálón letiltotta {target} domaint, beleértve {followersCount} követődet és {followingCount, plural, one {#} other {#}} általad követett személyt.",
"notification.relationships_severance_event.learn_more": "További információk",
"notification.relationships_severance_event.user_domain_block": "Letiltottad a(z) {target} domaint, ezzel eltávolítva {followersCount} követőt és {followingCount, plural, one {#} other {#}} követett fiókot.",
"notification.status": "{name} bejegyzést tett közzé",
"notification.update": "{name} szerkesztett egy bejegyzést",
"notification_requests.accept": "Elfogadás",
@ -484,6 +489,8 @@
"notifications.column_settings.admin.sign_up": "Új regisztrálók:",
"notifications.column_settings.alert": "Asztali értesítések",
"notifications.column_settings.favourite": "Kedvencek:",
"notifications.column_settings.filter_bar.advanced": "Minden kategória megjelenítése",
"notifications.column_settings.filter_bar.category": "Gyorsszűrő sáv",
"notifications.column_settings.follow": "Új követők:",
"notifications.column_settings.follow_request": "Új követési kérelmek:",
"notifications.column_settings.mention": "Megemlítések:",
@ -588,12 +595,6 @@
"refresh": "Frissítés",
"regeneration_indicator.label": "Betöltés…",
"regeneration_indicator.sublabel": "A saját idővonalad épp készül!",
"relationship_severance_notification.purged_data": "rendszergazdák által véglegesen törölve",
"relationship_severance_notification.relationships": "{count, plural, one {# kapcsolat} other {# kapcsolat}}",
"relationship_severance_notification.types.account_suspension": "A fiók fel van függesztve",
"relationship_severance_notification.types.domain_block": "A domain fel van függesztve",
"relationship_severance_notification.types.user_domain_block": "Blokkoltad ezt a domaint",
"relationship_severance_notification.view": "Megtekintés",
"relative_time.days": "{number}n",
"relative_time.full.days": "{number, plural, one {# napja} other {# napja}}",
"relative_time.full.hours": "{number, plural, one {# órája} other {# órája}}",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "Sía þessa færslu",
"filter_modal.title.status": "Sía færslu",
"filtered_notifications_banner.pending_requests": "Tilkynningar frá {count, plural, =0 {engum} one {einum aðila} other {# aðilum}} sem þú gætir þekkt",
"filtered_notifications_banner.private_mentions": "{count, plural, one {einkaspjall} other {einkaspjöll}}",
"filtered_notifications_banner.title": "Síaðar tilkynningar",
"firehose.all": "Allt",
"firehose.local": "þessum netþjóni",
@ -471,6 +472,8 @@
"notification.own_poll": "Könnuninni þinni er lokið",
"notification.poll": "Könnun sem þú tókst þátt í er lokið",
"notification.reblog": "{name} endurbirti færsluna þína",
"notification.relationships_severance_event": "Missti tengingar við {name}",
"notification.relationships_severance_event.learn_more": "Kanna nánar",
"notification.status": "{name} sendi inn rétt í þessu",
"notification.update": "{name} breytti færslu",
"notification_requests.accept": "Samþykkja",
@ -589,8 +592,6 @@
"refresh": "Endurlesa",
"regeneration_indicator.label": "Hleð inn…",
"regeneration_indicator.sublabel": "Verið er að útbúa heimastreymið þitt!",
"relationship_severance_notification.relationships": "{count, plural, one {# tengsl} other {# tengsl}}",
"relationship_severance_notification.view": "Skoða",
"relative_time.days": "{number}d",
"relative_time.full.days": "Fyrir {number, plural, one {# degi} other {# dögum}} síðan",
"relative_time.full.hours": "Fyrir {number, plural, one {# klukkustund} other {# klukkustundum}} síðan",

View File

@ -471,7 +471,9 @@
"notification.own_poll": "Il tuo sondaggio è terminato",
"notification.poll": "Un sondaggio in cui hai votato è terminato",
"notification.reblog": "{name} ha rebloggato il tuo post",
"notification.severed_relationships": "Relazioni interrotte con {name}",
"notification.relationships_severance_event": "Connessioni perse con {name}",
"notification.relationships_severance_event.account_suspension": "Un amministratore da {from} ha sospeso {target}, il che significa che non puoi più ricevere aggiornamenti da loro o interagire con loro.",
"notification.relationships_severance_event.learn_more": "Scopri di più",
"notification.status": "{name} ha appena pubblicato un post",
"notification.update": "{name} ha modificato un post",
"notification_requests.accept": "Accetta",
@ -590,12 +592,6 @@
"refresh": "Ricarica",
"regeneration_indicator.label": "Caricamento…",
"regeneration_indicator.sublabel": "Il feed della tua home è in preparazione!",
"relationship_severance_notification.purged_data": "rimossi dagli amministratori",
"relationship_severance_notification.relationships": "{count, plural,one {# relazione} other {# relazioni}}",
"relationship_severance_notification.types.account_suspension": "L'account è stato sospeso",
"relationship_severance_notification.types.domain_block": "Il dominio è stato sospeso",
"relationship_severance_notification.types.user_domain_block": "Hai bloccato questo dominio",
"relationship_severance_notification.view": "Visualizza",
"relative_time.days": "{number}g",
"relative_time.full.days": "{number, plural, one {# giorno} other {# giorni}} fa",
"relative_time.full.hours": "{number, plural, one {# ora} other {# ore}} fa",

View File

@ -471,7 +471,6 @@
"notification.own_poll": "설문을 마침",
"notification.poll": "참여한 설문이 종료됨",
"notification.reblog": "{name} 님이 부스트했습니다",
"notification.severed_relationships": "{name} 님과의 관계가 단절되었습니다",
"notification.status": "{name} 님이 방금 게시물을 올렸습니다",
"notification.update": "{name} 님이 게시물을 수정했습니다",
"notification_requests.accept": "수락",
@ -589,12 +588,6 @@
"refresh": "새로고침",
"regeneration_indicator.label": "불러오는 중…",
"regeneration_indicator.sublabel": "홈 피드를 준비하고 있습니다!",
"relationship_severance_notification.purged_data": "관리자에 의해 제거되었습니다",
"relationship_severance_notification.relationships": "{count, plural, other {# 건의 관계}}",
"relationship_severance_notification.types.account_suspension": "계정이 정지되었습니다",
"relationship_severance_notification.types.domain_block": "도메인이 정지되었습니다",
"relationship_severance_notification.types.user_domain_block": "내가 이 도메인을 차단했습니다",
"relationship_severance_notification.view": "보기",
"relative_time.days": "{number}일 전",
"relative_time.full.days": "{number} 일 전",
"relative_time.full.hours": "{number} 시간 전",

View File

@ -571,8 +571,6 @@
"refresh": "Arefreska",
"regeneration_indicator.label": "Eskargando…",
"regeneration_indicator.sublabel": "Tu linya de tiempo prinsipala esta preparando!",
"relationship_severance_notification.types.user_domain_block": "Blokates este domeno",
"relationship_severance_notification.view": "Mira",
"relative_time.days": "{number} d",
"relative_time.full.days": "antes {number, plural, one {# diya} other {# diyas}}",
"relative_time.full.hours": "antes {number, plural, one {# ora} other {# oras}}",

View File

@ -555,9 +555,6 @@
"refresh": "Atnaujinti",
"regeneration_indicator.label": "Kraunama…",
"regeneration_indicator.sublabel": "Ruošiamas tavo pagrindinis srautas!",
"relationship_severance_notification.relationships": "{count, plural, one {# santykis} few {# santykiai} many {# santykio} other {# santykių}}",
"relationship_severance_notification.types.user_domain_block": "Užblokavai šį domeną",
"relationship_severance_notification.view": "Peržiūrėti",
"relative_time.days": "{number} d.",
"relative_time.full.days": "prieš {number, plural, one {# dieną} few {# dienas} many {# dienos} other {# dienų}}",
"relative_time.full.hours": "prieš {number, plural, one {# valandą} few {# valandas} many {# valandos} other {# valandų}}",

View File

@ -626,7 +626,7 @@
"status.direct_indicator": "Pieminēts privāti",
"status.edit": "Labot",
"status.edited_x_times": "Labots {count, plural, one {{count} reizi} other {{count} reizes}}",
"status.embed": "Iestrādāt",
"status.embed": "Iegult",
"status.favourite": "Izlasē",
"status.filter": "Filtrē šo ziņu",
"status.filtered": "Filtrēts",
@ -634,7 +634,7 @@
"status.history.created": "{name} izveidoja {date}",
"status.history.edited": "{name} laboja {date}",
"status.load_more": "Ielādēt vairāk",
"status.media.open": "Noklikšķini, lai atvērtu",
"status.media.open": "Jānoklikšķina, lai atvērtu",
"status.media.show": "Noklikšķini, lai parādītu",
"status.media_hidden": "Multivides ir paslēpts",
"status.mention": "Pieminēt @{name}",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "Dit bericht filteren",
"filter_modal.title.status": "Een bericht filteren",
"filtered_notifications_banner.pending_requests": "Meldingen van {count, plural, =0 {niemand} one {één persoon} other {# mensen}} die je misschien kent",
"filtered_notifications_banner.private_mentions": "{count, plural, one {privébericht} other {privéberichten}}",
"filtered_notifications_banner.title": "Gefilterde meldingen",
"firehose.all": "Alles",
"firehose.local": "Deze server",
@ -471,7 +472,11 @@
"notification.own_poll": "Jouw peiling is beëindigd",
"notification.poll": "Een peiling waaraan jij hebt meegedaan is beëindigd",
"notification.reblog": "{name} boostte jouw bericht",
"notification.severed_relationships": "Volgrelaties met {name} verbroken",
"notification.relationships_severance_event": "Verloren verbindingen met {name}",
"notification.relationships_severance_event.account_suspension": "Een beheerder van {from} heeft {target} geschorst, wat betekent dat je geen updates meer van hen kunt ontvangen of met hen kunt communiceren.",
"notification.relationships_severance_event.domain_block": "Een beheerder van {from} heeft {target} geblokkeerd, inclusief {followersCount} van jouw volgers en {followingCount, plural, one {# account} other {# accounts}} die jij volgt.",
"notification.relationships_severance_event.learn_more": "Meer informatie",
"notification.relationships_severance_event.user_domain_block": "Je hebt {target} geblokkeerd, waarmee je {followersCount} van je volgers en {followingCount, plural, one {# account} other {# accounts}} die jij volgt, bent verloren.",
"notification.status": "{name} heeft zojuist een bericht geplaatst",
"notification.update": "{name} heeft een bericht bewerkt",
"notification_requests.accept": "Accepteren",
@ -590,12 +595,6 @@
"refresh": "Vernieuwen",
"regeneration_indicator.label": "Aan het laden…",
"regeneration_indicator.sublabel": "Jouw starttijdlijn wordt aangemaakt!",
"relationship_severance_notification.purged_data": "verwijderd door beheerders",
"relationship_severance_notification.relationships": "{count, plural, one {# volgrelatie} other {# volgrelaties}}",
"relationship_severance_notification.types.account_suspension": "Account is opgeschort",
"relationship_severance_notification.types.domain_block": "Domein is opgeschort",
"relationship_severance_notification.types.user_domain_block": "Je hebt dit domein geblokkeerd",
"relationship_severance_notification.view": "Weergeven",
"relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# dag} other {# dagen}} geleden",
"relative_time.full.hours": "{number, plural, one {# uur} other {# uur}} geleden",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "Filtrer dette innlegget",
"filter_modal.title.status": "Filtrer eit innlegg",
"filtered_notifications_banner.pending_requests": "Varsel frå {count, plural, =0 {ingen} one {ein person} other {# folk}} du kanskje kjenner",
"filtered_notifications_banner.private_mentions": "{count, plural, one {privat omtale} other {private omtaler}}",
"filtered_notifications_banner.title": "Filtrerte varslingar",
"firehose.all": "Alle",
"firehose.local": "Denne tenaren",
@ -471,7 +472,11 @@
"notification.own_poll": "Rundspørjinga di er ferdig",
"notification.poll": "Ei rundspørjing du har røysta i er ferdig",
"notification.reblog": "{name} framheva innlegget ditt",
"notification.severed_relationships": "Forholda med {name} er brotne",
"notification.relationships_severance_event": "Tapte samband med {name}",
"notification.relationships_severance_event.account_suspension": "Ein administrator på {from} har utvist {target}, som tyder at du ikkje lenger får oppdateringar frå dei eller kan samhandla med dei.",
"notification.relationships_severance_event.domain_block": "Ein administrator på {from} har blokkert {target}, inkludert {followersCount} av fylgjarane dine og {followingCount, plural, one {# konto} other {# kontoar}} du fylgjer.",
"notification.relationships_severance_event.learn_more": "Lær meir",
"notification.relationships_severance_event.user_domain_block": "Du har blokkert {target}, fjerna {followersCount} av fylgjarane dine og {followingCount, plural, one {# konto} other {# kontoar}} du fylgjer.",
"notification.status": "{name} la nettopp ut",
"notification.update": "{name} redigerte eit innlegg",
"notification_requests.accept": "Godkjenn",
@ -484,6 +489,8 @@
"notifications.column_settings.admin.sign_up": "Nyleg registrerte:",
"notifications.column_settings.alert": "Skrivebordsvarsel",
"notifications.column_settings.favourite": "Favorittar:",
"notifications.column_settings.filter_bar.advanced": "Vis alle kategoriar",
"notifications.column_settings.filter_bar.category": "Snøggfilterline",
"notifications.column_settings.follow": "Nye fylgjarar:",
"notifications.column_settings.follow_request": "Ny fylgjarførespurnader:",
"notifications.column_settings.mention": "Omtalar:",
@ -588,12 +595,6 @@
"refresh": "Oppdater",
"regeneration_indicator.label": "Lastar…",
"regeneration_indicator.sublabel": "Heimetidslina di vert førebudd!",
"relationship_severance_notification.purged_data": "sletta av administratorar",
"relationship_severance_notification.relationships": "{count, plural, one {# forhold} other {# forhold}}",
"relationship_severance_notification.types.account_suspension": "Kontoen er utvist",
"relationship_severance_notification.types.domain_block": "Domenet er utestengt",
"relationship_severance_notification.types.user_domain_block": "Du blokkerte dette domenet",
"relationship_severance_notification.view": "Sjå",
"relative_time.days": "{number}dg",
"relative_time.full.days": "{number, plural, one {# dag} other {# dagar}} sidan",
"relative_time.full.hours": "{number, plural, one {# time} other {# timar}} sidan",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "Filtruj ten wpis",
"filter_modal.title.status": "Filtruj wpis",
"filtered_notifications_banner.pending_requests": "Powiadomienia od {count, plural, =0 {żadnej osoby którą możesz znać} one {# osoby którą możesz znać} other {# osób które możesz znać}}",
"filtered_notifications_banner.private_mentions": "{count, plural, one {prywatna wzmianka} few {prywatne wzmianki} other {prywatnych wzmianek}}",
"filtered_notifications_banner.title": "Powiadomienia filtrowane",
"firehose.all": "Wszystko",
"firehose.local": "Ten serwer",
@ -471,7 +472,10 @@
"notification.own_poll": "Twoje głosowanie zakończyło się",
"notification.poll": "Głosowanie w którym brałeś(-aś) udział zakończyło się",
"notification.reblog": "Twój post został podbity przez {name}",
"notification.severed_relationships": "Zerwano związki z {name}",
"notification.relationships_severance_event": "Utracone związki z {name}",
"notification.relationships_severance_event.account_suspension": "Administrator z {from} zawiesił {target}, więc nie dostaniesz wieści ani nie wejdziesz w interakcje z użytkownikami z tego serwera.",
"notification.relationships_severance_event.domain_block": "Administrator z {from} zablokował {target}, w tym {followersCount} z Twoich obserwujących i {followingCount, plural, one {# konto} other {# konta}} które obserwujesz.",
"notification.relationships_severance_event.learn_more": "Dowiedz się więcej",
"notification.status": "{name} opublikował(a) nowy wpis",
"notification.update": "{name} edytował(a) post",
"notification_requests.accept": "Akceptuj",
@ -590,12 +594,6 @@
"refresh": "Odśwież",
"regeneration_indicator.label": "Ładuję…",
"regeneration_indicator.sublabel": "Twoja oś czasu jest przygotowywana!",
"relationship_severance_notification.purged_data": "wyczyszczone przez administratorów",
"relationship_severance_notification.relationships": "{count, plural, one {# związek} few {# związki} other {# związków}}",
"relationship_severance_notification.types.account_suspension": "Konto zostało zawieszone",
"relationship_severance_notification.types.domain_block": "Domena została zawieszona",
"relationship_severance_notification.types.user_domain_block": "Domena przez ciebie blokowana",
"relationship_severance_notification.view": "Pokaż",
"relative_time.days": "{number} dni",
"relative_time.full.days": "{number, plural, one {# dzień} few {# dni} many {# dni} other {# dni}} temu",
"relative_time.full.hours": "{number, plural, one {# godzinę} few {# godziny} many {# godzin} other {# godzin}} temu",

View File

@ -471,7 +471,6 @@
"notification.own_poll": "A sua votação terminou",
"notification.poll": "Uma votação em que participaste chegou ao fim",
"notification.reblog": "{name} reforçou a tua publicação",
"notification.severed_relationships": "Relações com {name} cessadas",
"notification.status": "{name} acabou de publicar",
"notification.update": "{name} editou uma publicação",
"notification_requests.accept": "Aceitar",
@ -590,12 +589,6 @@
"refresh": "Actualizar",
"regeneration_indicator.label": "A carregar…",
"regeneration_indicator.sublabel": "A tua página inicial está a ser preparada!",
"relationship_severance_notification.purged_data": "purgado pelos administradores",
"relationship_severance_notification.relationships": "{count, plural,one {# relação} other {# relações}}",
"relationship_severance_notification.types.account_suspension": "A conta foi suspensa",
"relationship_severance_notification.types.domain_block": "O domínio foi suspenso",
"relationship_severance_notification.types.user_domain_block": "Bloqueou este domínio",
"relationship_severance_notification.view": "Visualizar",
"relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural,one {# dia} other {# dias}} atrás",
"relative_time.full.hours": "{number, plural,one {# hora}other {# horas}} atrás",

View File

@ -445,6 +445,7 @@
"notification.own_poll": "Vaša anketa sa skončila",
"notification.poll": "Anketa, v ktorej ste hlasovali, sa skončila",
"notification.reblog": "{name} zdieľa váš príspevok",
"notification.relationships_severance_event.learn_more": "Zisti viac",
"notification.status": "{name} uverejňuje niečo nové",
"notification.update": "{name} upravuje príspevok",
"notification_requests.accept": "Prijať",
@ -557,8 +558,6 @@
"refresh": "Obnoviť",
"regeneration_indicator.label": "Načítavanie…",
"regeneration_indicator.sublabel": "Váš domovský kanál sa pripravuje.",
"relationship_severance_notification.types.user_domain_block": "Túto doménu si zablokoval/a",
"relationship_severance_notification.view": "Zobraziť",
"relative_time.days": "{number} dní",
"relative_time.full.days": "Pred {number, plural, one {# dňom} other {# dňami}}",
"relative_time.full.hours": "Pred {number, plural, one {# hodinou} other {# hodinami}}",

View File

@ -471,7 +471,6 @@
"notification.own_poll": "Vaša anketa je zaključena",
"notification.poll": "Anketa, v kateri ste sodelovali, je zaključena",
"notification.reblog": "{name} je izpostavila/a vašo objavo",
"notification.severed_relationships": "Veze z {name} prekinjene",
"notification.status": "{name} je pravkar objavil/a",
"notification.update": "{name} je uredil(a) objavo",
"notification_requests.accept": "Sprejmi",
@ -484,6 +483,8 @@
"notifications.column_settings.admin.sign_up": "Novi vpisi:",
"notifications.column_settings.alert": "Namizna obvestila",
"notifications.column_settings.favourite": "Priljubljeni:",
"notifications.column_settings.filter_bar.advanced": "Prikaži vse kategorije",
"notifications.column_settings.filter_bar.category": "Vrstica za hitro filtriranje",
"notifications.column_settings.follow": "Novi sledilci:",
"notifications.column_settings.follow_request": "Nove prošnje za sledenje:",
"notifications.column_settings.mention": "Omembe:",
@ -588,12 +589,6 @@
"refresh": "Osveži",
"regeneration_indicator.label": "Nalaganje …",
"regeneration_indicator.sublabel": "Vaš domači vir se pripravlja!",
"relationship_severance_notification.purged_data": "očistili skrbniki",
"relationship_severance_notification.relationships": "{count, plural, one {# veza} two {# vezi} few {# veze} other {# vez}}",
"relationship_severance_notification.types.account_suspension": "Račun je bil suspendiran",
"relationship_severance_notification.types.domain_block": "Domena je bila suspendirana",
"relationship_severance_notification.types.user_domain_block": "Domeno ste blokirali",
"relationship_severance_notification.view": "Pogled",
"relative_time.days": "{number} d",
"relative_time.full.days": "{number, plural, one {pred # dnem} two {pred # dnevoma} few {pred # dnevi} other {pred # dnevi}}",
"relative_time.full.hours": "{number, plural, one {pred # uro} two {pred # urama} few {pred # urami} other {pred # urami}}",

View File

@ -297,6 +297,7 @@
"filter_modal.select_filter.subtitle": "Përdorni një kategori ekzistuese, ose krijoni një të re",
"filter_modal.select_filter.title": "Filtroje këtë postim",
"filter_modal.title.status": "Filtroni një postim",
"filtered_notifications_banner.private_mentions": "{count, plural, one {përmendje private} other {përmendje private}}",
"filtered_notifications_banner.title": "Njoftime të filtruar",
"firehose.all": "Krejt",
"firehose.local": "Këtë shërbyes",
@ -470,7 +471,11 @@
"notification.own_poll": "Pyetësori juaj ka përfunduar",
"notification.poll": "Ka përfunduar një pyetësor ku keni votuar",
"notification.reblog": "{name} përforcoi mesazhin tuaj",
"notification.severed_relationships": "Marrëdhëniet me {name} u ndërprenë",
"notification.relationships_severance_event": "Lidhje të humbura me {name}",
"notification.relationships_severance_event.account_suspension": "Një përgjegjës nga {from} ka pezulluar {target}, që do të thotë se smund të merrni më përditësime prej tij, apo të ndërveproni me të.",
"notification.relationships_severance_event.domain_block": "Një përgjegjës nga {from} ka bllokuar {target}, përfshi {followersCount} të ndjekësve tuaj dhe {followingCount, plural, one {# llogari} other {# llogari}} që ndiqni.",
"notification.relationships_severance_event.learn_more": "Mësoni më tepër",
"notification.relationships_severance_event.user_domain_block": "Keni bllokuar {target}, duke hequr {followersCount} nga ndjekësit tuaj dhe {followingCount, plural, one {# llogari} other {# llogari}} që ndiqni.",
"notification.status": "{name} sapo postoi",
"notification.update": "{name} përpunoi një postim",
"notification_requests.accept": "Pranoje",
@ -587,12 +592,6 @@
"refresh": "Rifreskoje",
"regeneration_indicator.label": "Po ngarkohet…",
"regeneration_indicator.sublabel": "Prurja juaj vetjake po përgatitet!",
"relationship_severance_notification.purged_data": "spastruar nga përgjegjës",
"relationship_severance_notification.relationships": "{count, plural, one {# marrëdhënie} other {# marrëdhënie}}",
"relationship_severance_notification.types.account_suspension": "Llogaria është pezulluar",
"relationship_severance_notification.types.domain_block": "Përkatësia është pezulluar",
"relationship_severance_notification.types.user_domain_block": "E bllokuat këtë përkatësi",
"relationship_severance_notification.view": "Shiheni",
"relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# ditë} other {# ditë}} më parë",
"relative_time.full.hours": "{number, plural, one {# orë} other {# orë}} më parë",

View File

@ -459,6 +459,7 @@
"notification.own_poll": "Din röstning har avslutats",
"notification.poll": "En omröstning du röstat i har avslutats",
"notification.reblog": "{name} boostade ditt inlägg",
"notification.relationships_severance_event.learn_more": "Läs mer",
"notification.status": "{name} publicerade just ett inlägg",
"notification.update": "{name} redigerade ett inlägg",
"notification_requests.accept": "Godkänn",
@ -573,11 +574,6 @@
"refresh": "Läs om",
"regeneration_indicator.label": "Laddar…",
"regeneration_indicator.sublabel": "Ditt hemmaflöde förbereds!",
"relationship_severance_notification.purged_data": "rensad av administratörer",
"relationship_severance_notification.types.account_suspension": "Ditt konto har blivit avstängt",
"relationship_severance_notification.types.domain_block": "Domänen har stängts av",
"relationship_severance_notification.types.user_domain_block": "Du blockerade denna domän",
"relationship_severance_notification.view": "Visa",
"relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# dag} other {# dagar}} sedan",
"relative_time.full.hours": "{number, plural, one {# timme} other {# timmar}} sedan",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "กรองโพสต์นี้",
"filter_modal.title.status": "กรองโพสต์",
"filtered_notifications_banner.pending_requests": "การแจ้งเตือนจาก {count, plural, =0 {ไม่มีใคร} other {# คน}} ที่คุณอาจรู้จัก",
"filtered_notifications_banner.private_mentions": "{count, plural, other {การกล่าวถึงแบบส่วนตัว}}",
"filtered_notifications_banner.title": "การแจ้งเตือนที่กรองอยู่",
"firehose.all": "ทั้งหมด",
"firehose.local": "เซิร์ฟเวอร์นี้",
@ -471,7 +472,11 @@
"notification.own_poll": "การสำรวจความคิดเห็นของคุณได้สิ้นสุดแล้ว",
"notification.poll": "การสำรวจความคิดเห็นที่คุณได้ลงคะแนนได้สิ้นสุดแล้ว",
"notification.reblog": "{name} ได้ดันโพสต์ของคุณ",
"notification.severed_relationships": "ตัดขาดความสัมพันธ์กับ {name} แล้ว",
"notification.relationships_severance_event": "สูญเสียการเชื่อมต่อกับ {name}",
"notification.relationships_severance_event.account_suspension": "ผู้ดูแลจาก {from} ได้ระงับ {target} ซึ่งหมายความว่าคุณจะไม่สามารถรับการอัปเดตจากเขาหรือโต้ตอบกับเขาได้อีกต่อไป",
"notification.relationships_severance_event.domain_block": "ผู้ดูแลจาก {from} ได้ปิดกั้น {target} รวมถึง {followersCount} ผู้ติดตามของคุณและ {followingCount, plural, other {# บัญชี}}ที่คุณติดตาม",
"notification.relationships_severance_event.learn_more": "เรียนรู้เพิ่มเติม",
"notification.relationships_severance_event.user_domain_block": "คุณได้ปิดกั้น {target} เอา {followersCount} ผู้ติดตามของคุณและ {followingCount, plural, other {# บัญชี}}ที่คุณติดตามออก",
"notification.status": "{name} เพิ่งโพสต์",
"notification.update": "{name} ได้แก้ไขโพสต์",
"notification_requests.accept": "ยอมรับ",
@ -590,12 +595,6 @@
"refresh": "รีเฟรช",
"regeneration_indicator.label": "กำลังโหลด…",
"regeneration_indicator.sublabel": "กำลังเตรียมฟีดหน้าแรกของคุณ!",
"relationship_severance_notification.purged_data": "ล้างข้อมูลโดยผู้ดูแล",
"relationship_severance_notification.relationships": "{count, plural, other {# ความสัมพันธ์}}",
"relationship_severance_notification.types.account_suspension": "ระงับบัญชีแล้ว",
"relationship_severance_notification.types.domain_block": "ระงับโดเมนแล้ว",
"relationship_severance_notification.types.user_domain_block": "คุณได้ปิดกั้นโดเมนนี้",
"relationship_severance_notification.view": "ดู",
"relative_time.days": "{number} วัน",
"relative_time.full.days": "{number, plural, other {# วัน}}ที่แล้ว",
"relative_time.full.hours": "{number, plural, other {# ชั่วโมง}}ที่แล้ว",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "Bu gönderiyi süzgeçle",
"filter_modal.title.status": "Bir gönderi süzgeçle",
"filtered_notifications_banner.pending_requests": "Bildiğiniz {count, plural, =0 {hiç kimseden} one {bir kişiden} other {# kişiden}} bildirim",
"filtered_notifications_banner.private_mentions": "{count, plural, one {özel değinme} other {özel değinme}}",
"filtered_notifications_banner.title": "Filtrelenmiş bildirimler",
"firehose.all": "Tümü",
"firehose.local": "Bu sunucu",
@ -471,7 +472,11 @@
"notification.own_poll": "Anketiniz sona erdi",
"notification.poll": "Oy verdiğiniz bir anket sona erdi",
"notification.reblog": "{name} gönderini yeniden paylaştı",
"notification.severed_relationships": "{name} ile ilişkiler koptu",
"notification.relationships_severance_event": "{name} ile bağlantılar koptu",
"notification.relationships_severance_event.account_suspension": "{from} yöneticisi, {target} askıya aldı, bunun anlamı onlardan artık güncelleme alamayacak veya etkileşemeyeceksiniz demektir.",
"notification.relationships_severance_event.domain_block": "{from} yöneticisi {target} engelledi, {followersCount} takipçiniz ve takip ettiğiniz {followingCount, plural, one {# hesap} other {# hesap}} buna dahil.",
"notification.relationships_severance_event.learn_more": "Daha fazlası",
"notification.relationships_severance_event.user_domain_block": "{target} engellediniz, takipçilerinizden {followersCount} ve takip eden {followingCount, plural, one {# hesap} other {# hesap}} kaldırılıyor.",
"notification.status": "{name} az önce gönderdi",
"notification.update": "{name} bir gönderiyi düzenledi",
"notification_requests.accept": "Onayla",
@ -590,12 +595,6 @@
"refresh": "Yenile",
"regeneration_indicator.label": "Yükleniyor…",
"regeneration_indicator.sublabel": "Ana akışın hazırlanıyor!",
"relationship_severance_notification.purged_data": "yöneticiler tarafından temizlendi",
"relationship_severance_notification.relationships": "{count, plural, one {# ilişki} other {# ilişki}}",
"relationship_severance_notification.types.account_suspension": "Hesap askıya alındı",
"relationship_severance_notification.types.domain_block": "Alan adı askıya alındı",
"relationship_severance_notification.types.user_domain_block": "Bu alan adını engellediniz",
"relationship_severance_notification.view": "Görüntüle",
"relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# gün} other {# gün}} önce",
"relative_time.full.hours": "{number, plural, one {# saat} other {# saat}} önce",

View File

@ -460,7 +460,9 @@
"notification.own_poll": "Ваше опитування завершилося",
"notification.poll": "Опитування, у якому ви голосували, скінчилося",
"notification.reblog": "{name} поширює ваш допис",
"notification.severed_relationships": "Зв'язки з {name} розірвані",
"notification.relationships_severance_event": "Втрачено з'єднання з {name}",
"notification.relationships_severance_event.account_suspension": "Адміністратор з {from} призупинив {target}, що означає, що ви більше не можете отримувати оновлення від них або взаємодіяти з ними.",
"notification.relationships_severance_event.learn_more": "Дізнатися більше",
"notification.status": "{name} щойно дописує",
"notification.update": "{name} змінює допис",
"notification_requests.accept": "Прийняти",
@ -575,12 +577,6 @@
"refresh": "Оновити",
"regeneration_indicator.label": "Завантаження…",
"regeneration_indicator.sublabel": "Хвилинку, ми готуємо вашу стрічку!",
"relationship_severance_notification.purged_data": "очищено адміністраторами",
"relationship_severance_notification.relationships": "{count, plural, one {# зв'язок} few {# зв'язки} many {# зв'язків} other {# зв'язок}}",
"relationship_severance_notification.types.account_suspension": "Обліковий запис призупинено",
"relationship_severance_notification.types.domain_block": "Домен призупинено",
"relationship_severance_notification.types.user_domain_block": "Ви заблокували цей домен",
"relationship_severance_notification.view": "Вигляд",
"relative_time.days": "{number}д",
"relative_time.full.days": "{number, plural, one {# день} few {# дні} other {# днів}} тому",
"relative_time.full.hours": "{number, plural, one {# година} few {# години} other {# годин}} тому",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "Lọc tút này",
"filter_modal.title.status": "Lọc một tút",
"filtered_notifications_banner.pending_requests": "Thông báo từ {count, plural, =0 {không ai} other {# người}} bạn có thể biết",
"filtered_notifications_banner.private_mentions": "{count, plural, other {lượt nhắc}}",
"filtered_notifications_banner.title": "Thông báo đã lọc",
"firehose.all": "Toàn bộ",
"firehose.local": "Máy chủ này",
@ -471,7 +472,11 @@
"notification.own_poll": "Cuộc bình chọn của bạn đã kết thúc",
"notification.poll": "Cuộc bình chọn đã kết thúc",
"notification.reblog": "{name} đăng lại tút của bạn",
"notification.severed_relationships": "Mối quan hệ với {name} bị cắt đứt",
"notification.relationships_severance_event": "Mất kết nối với {name}",
"notification.relationships_severance_event.account_suspension": "Quản trị viên {from} đã vô hiệu hóa {target}, điều này có nghĩa là bạn không còn có thể nhận được cập nhật từ họ hoặc tương tác với họ nữa.",
"notification.relationships_severance_event.domain_block": "Quản trị viên {from} đã chặn {target}, bao gồm {followersCount} người theo dõi bạn và {followingCount, plural, other {# người}} mà bạn theo dõi.",
"notification.relationships_severance_event.learn_more": "Tìm hiểu thêm",
"notification.relationships_severance_event.user_domain_block": "Bạn đã chặn {target}, xóa {followersCount} người theo dõi bạn và {followingCount, plural, other {# người}} theo dõi bạn.",
"notification.status": "{name} đăng tút mới",
"notification.update": "{name} đã sửa tút",
"notification_requests.accept": "Chấp nhận",
@ -484,6 +489,8 @@
"notifications.column_settings.admin.sign_up": "Người mới tham gia:",
"notifications.column_settings.alert": "Báo trên máy tính",
"notifications.column_settings.favourite": "Lượt thích:",
"notifications.column_settings.filter_bar.advanced": "Toàn bộ",
"notifications.column_settings.filter_bar.category": "Thanh lọc nhanh",
"notifications.column_settings.follow": "Người theo dõi:",
"notifications.column_settings.follow_request": "Yêu cầu theo dõi:",
"notifications.column_settings.mention": "Lượt nhắc đến:",
@ -588,12 +595,6 @@
"refresh": "Làm mới",
"regeneration_indicator.label": "Đang tải…",
"regeneration_indicator.sublabel": "Trang chủ của bạn đang được cập nhật!",
"relationship_severance_notification.purged_data": "bị quản trị viên xóa",
"relationship_severance_notification.relationships": "{count, plural, other {# mối quan hệ}}",
"relationship_severance_notification.types.account_suspension": "Người này đã bị vô hiệu hóa",
"relationship_severance_notification.types.domain_block": "Máy chủ này đã bị vô hiệu hóa",
"relationship_severance_notification.types.user_domain_block": "Bạn đã chặn máy chủ này",
"relationship_severance_notification.view": "Chi tiết",
"relative_time.days": "{number} ngày",
"relative_time.full.days": "{number, plural, other {# ngày}}",
"relative_time.full.hours": "{number, plural, other {# giờ}}",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "过滤此嘟文",
"filter_modal.title.status": "过滤一条嘟文",
"filtered_notifications_banner.pending_requests": "来自你可能认识的 {count, plural, =0 {0 个人} other {# 个人}}的通知",
"filtered_notifications_banner.private_mentions": "{count, plural, other {私下提及}}",
"filtered_notifications_banner.title": "通知(已过滤)",
"firehose.all": "全部",
"firehose.local": "此服务器",
@ -471,7 +472,11 @@
"notification.own_poll": "你的投票已经结束",
"notification.poll": "你参与的一个投票已经结束",
"notification.reblog": "{name} 转发了你的嘟文",
"notification.severed_relationships": "与 {name} 的关系已被切断",
"notification.relationships_severance_event": "与 {name} 的联系已断开",
"notification.relationships_severance_event.account_suspension": "一名来自 {from} 的管理员已经封禁了{target},这意味着你将无法再收到他们的更新或与他们互动。",
"notification.relationships_severance_event.domain_block": "一名来自 {from} 的管理员已经屏蔽了 {target},其中包括你的 {followersCount} 个关注者和 {followingCount, plural, other {# 个关注}}。",
"notification.relationships_severance_event.learn_more": "了解更多",
"notification.relationships_severance_event.user_domain_block": "你已经屏蔽了 {target},移除了你的 {followersCount} 个关注者和 {followingCount, plural, other {# 个关注}}。",
"notification.status": "{name} 刚刚发布嘟文",
"notification.update": "{name} 编辑了嘟文",
"notification_requests.accept": "接受",
@ -590,12 +595,6 @@
"refresh": "刷新",
"regeneration_indicator.label": "加载中…",
"regeneration_indicator.sublabel": "你的主页动态正在准备中!",
"relationship_severance_notification.purged_data": "被管理员清除",
"relationship_severance_notification.relationships": "{count, plural, other {# 条关系}}",
"relationship_severance_notification.types.account_suspension": "账户已被封禁",
"relationship_severance_notification.types.domain_block": "域名已被封禁",
"relationship_severance_notification.types.user_domain_block": "你屏蔽了这个域名",
"relationship_severance_notification.view": "查看",
"relative_time.days": "{number} 天前",
"relative_time.full.days": "{number, plural, one {# 天} other {# 天}}前",
"relative_time.full.hours": "{number, plural, one {# 小时} other {# 小时}}前",

View File

@ -471,7 +471,6 @@
"notification.own_poll": "你的投票已結束",
"notification.poll": "你參與過的一個投票已經結束",
"notification.reblog": "{name} 轉推你的文章",
"notification.severed_relationships": "已斷絕與 {name} 的關係",
"notification.status": "{name} 剛發表了文章",
"notification.update": "{name} 編輯了帖文",
"notification_requests.accept": "接受",
@ -588,12 +587,6 @@
"refresh": "重新整理",
"regeneration_indicator.label": "載入中……",
"regeneration_indicator.sublabel": "你的主頁時間軸正在準備中!",
"relationship_severance_notification.purged_data": "已被管理員清除",
"relationship_severance_notification.relationships": "{count, plural, one {# 個關係} other {# 個關係}}",
"relationship_severance_notification.types.account_suspension": "帳號已被停權",
"relationship_severance_notification.types.domain_block": "網域已被停權",
"relationship_severance_notification.types.user_domain_block": "你封鎖了此網域",
"relationship_severance_notification.view": "查看",
"relative_time.days": "{number}日前",
"relative_time.full.days": "{number, plural, one {# 天} other {# 天}}前",
"relative_time.full.hours": "{number, plural, one {# 小時} other {# 小時}}前",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "過濾此嘟文",
"filter_modal.title.status": "過濾一則嘟文",
"filtered_notifications_banner.pending_requests": "來自您可能認識的 {count, plural, =0 {0 人} other {# 人}} 之通知",
"filtered_notifications_banner.private_mentions": "{count, plural, other {# 則私訊}}",
"filtered_notifications_banner.title": "已過濾之通知",
"firehose.all": "全部",
"firehose.local": "本站",
@ -471,7 +472,11 @@
"notification.own_poll": "您的投票已結束",
"notification.poll": "您曾投過的投票已經結束",
"notification.reblog": "{name} 已轉嘟您的嘟文",
"notification.severed_relationships": "已斷絕與 {name} 之服務關係",
"notification.relationships_severance_event": "與 {name} 失去連結",
"notification.relationships_severance_event.account_suspension": "{from} 之管理員已將 {target} 停權,意味著您將不再收到來自他們的更新或與之互動。",
"notification.relationships_severance_event.domain_block": "{from} 之管理員已將 {target} 封鎖,包含 {followersCount} 名您的跟隨者及 {followingCount, plural, other {#}} 名您跟隨的帳號。",
"notification.relationships_severance_event.learn_more": "了解更多",
"notification.relationships_severance_event.user_domain_block": "您已將 {target} 封鎖,將移除 {followersCount} 名您的跟隨者及 {followingCount, plural, other {#}} 名您跟隨的帳號。",
"notification.status": "{name} 剛剛嘟文",
"notification.update": "{name} 已編輯嘟文",
"notification_requests.accept": "接受",
@ -590,12 +595,6 @@
"refresh": "重新整理",
"regeneration_indicator.label": "載入中…",
"regeneration_indicator.sublabel": "您的首頁時間軸正在準備中!",
"relationship_severance_notification.purged_data": "已被管理員清除",
"relationship_severance_notification.relationships": "{count, plural, other {# 個服務關係}}",
"relationship_severance_notification.types.account_suspension": "該帳號已被停權",
"relationship_severance_notification.types.domain_block": "該網域已被停權",
"relationship_severance_notification.types.user_domain_block": "您已封鎖此網域",
"relationship_severance_notification.view": "檢視",
"relative_time.days": "{number} 天",
"relative_time.full.days": "{number, plural, other {# 天}}前",
"relative_time.full.hours": "{number, plural, one {# 小時} other {# 小時}}前",

View File

@ -11,6 +11,6 @@ class Themes
end
def names
@conf.keys
['system'] + @conf.keys
end
end

View File

@ -46,12 +46,16 @@ class AdminMailer < ApplicationMailer
end
def new_software_updates
@software_updates = SoftwareUpdate.all.to_a.sort_by(&:gem_version)
locale_for_account(@me) do
mail subject: default_i18n_subject(instance: @instance)
end
end
def new_critical_software_updates
@software_updates = SoftwareUpdate.where(urgent: true).to_a.sort_by(&:gem_version)
headers['Priority'] = 'urgent'
headers['X-Priority'] = '1'
headers['Importance'] = 'high'

View File

@ -5,10 +5,11 @@ class UserMailer < Devise::Mailer
helper :accounts
helper :application
helper :instance
helper :statuses
helper :mascot
helper :formatting
helper :instance
helper :routing
helper :statuses
before_action :set_instance

View File

@ -132,12 +132,13 @@ class Account < ApplicationRecord
scope :auditable, -> { where(id: Admin::ActionLog.select(:account_id).distinct) }
scope :searchable, -> { without_unapproved.without_suspended.where(moved_to_account_id: nil) }
scope :discoverable, -> { searchable.without_silenced.where(discoverable: true).joins(:account_stat) }
scope :by_recent_status, -> { includes(:account_stat).merge(AccountStat.order('last_status_at DESC NULLS LAST')).references(:account_stat) }
scope :by_recent_status, -> { includes(:account_stat).merge(AccountStat.by_recent_status).references(:account_stat) }
scope :by_recent_activity, -> { left_joins(:user, :account_stat).order(coalesced_activity_timestamps.desc).order(id: :desc) }
scope :popular, -> { order('account_stats.followers_count desc') }
scope :by_domain_and_subdomains, ->(domain) { where(domain: Instance.by_domain_and_subdomains(domain).select(:domain)) }
scope :not_excluded_by_account, ->(account) { where.not(id: account.excluded_from_timeline_account_ids) }
scope :not_domain_blocked_by_account, ->(account) { where(arel_table[:domain].eq(nil).or(arel_table[:domain].not_in(account.excluded_from_timeline_domains))) }
scope :dormant, -> { joins(:account_stat).merge(AccountStat.without_recent_activity) }
after_update_commit :trigger_update_webhooks

View File

@ -20,6 +20,9 @@ class AccountStat < ApplicationRecord
belongs_to :account, inverse_of: :account_stat
scope :by_recent_status, -> { order(arel_table[:last_status_at].desc.nulls_last) }
scope :without_recent_activity, -> { where(last_status_at: [nil, ...1.month.ago]) }
update_index('accounts', :account)
def following_count

View File

@ -30,12 +30,14 @@ class Admin::Import
csv_converter = lambda do |field, field_info|
case field_info.header
when '#domain', '#public_comment'
when '#domain'
field&.downcase&.strip
when '#public_comment'
field&.strip
when '#severity'
field&.strip&.to_sym
field&.downcase&.strip&.to_sym
when '#reject_media', '#reject_reports', '#obfuscate'
ActiveModel::Type::Boolean.new.cast(field)
ActiveModel::Type::Boolean.new.cast(field&.downcase)
else
field
end

View File

@ -111,12 +111,14 @@ class Form::Import
csv_converter = lambda do |field, field_info|
case field_info.header
when 'Show boosts', 'Notify on new posts', 'Hide notifications'
ActiveModel::Type::Boolean.new.cast(field)
ActiveModel::Type::Boolean.new.cast(field&.downcase)
when 'Languages'
field&.split(',')&.map(&:strip)&.presence
when 'Account address'
field.strip.gsub(/\A@/, '')
when '#domain', '#uri', 'List name'
when '#domain'
field&.strip&.downcase
when '#uri', 'List name'
field.strip
else
field

View File

@ -15,5 +15,7 @@ class PreviewCardTrend < ApplicationRecord
include RankedTrend
belongs_to :preview_card
scope :allowed, -> { where(allowed: true) }
scope :not_allowed, -> { where(allowed: false) }
end

View File

@ -114,7 +114,7 @@ class RelationshipFilter
def activity_scope(value)
case value
when 'dormant'
Account.joins(:account_stat).where(account_stat: { last_status_at: [nil, ...1.month.ago] })
Account.dormant
else
raise Mastodon::InvalidParameterError, "Unknown activity: #{value}"
end

View File

@ -86,8 +86,8 @@ class Trends::Links < Trends::Base
def request_review
PreviewCardTrend.pluck('distinct language').flat_map do |language|
score_at_threshold = PreviewCardTrend.where(language: language, allowed: true).by_rank.ranked_below(options[:review_threshold]).first&.score || 0
preview_card_trends = PreviewCardTrend.where(language: language, allowed: false).joins(:preview_card)
score_at_threshold = PreviewCardTrend.where(language: language).allowed.by_rank.ranked_below(options[:review_threshold]).first&.score || 0
preview_card_trends = PreviewCardTrend.where(language: language).not_allowed.joins(:preview_card)
preview_card_trends.filter_map do |trend|
preview_card = trend.preview_card

View File

@ -12,6 +12,7 @@ class AfterBlockDomainFromAccountService < BaseService
@domain_block_event = nil
clear_notifications!
clear_notification_permissions!
remove_follows!
reject_existing_followers!
reject_pending_follow_requests!
@ -31,6 +32,10 @@ class AfterBlockDomainFromAccountService < BaseService
Notification.where(account: @account).where(from_account: Account.where(domain: @domain)).in_batches.delete_all
end
def clear_notification_permissions!
NotificationPermission.where(account: @account, from_account: Account.where(domain: @domain)).in_batches.delete_all
end
def reject_existing_followers!
@account.passive_relationships.where(account: Account.where(domain: @domain)).includes(:account).reorder(nil).in_batches do |follows|
domain_block_event.import_from_passive_follows!(follows)

View File

@ -10,6 +10,8 @@ class BlockService < BaseService
UnfollowService.new.call(target_account, account) if target_account.following?(account)
RejectFollowService.new.call(target_account, account) if target_account.requested?(account)
NotificationPermission.where(account: account, from_account: target_account).destroy_all
block = account.block!(target_account)
BlockWorker.perform_async(account.id, target_account.id)

View File

@ -5,7 +5,7 @@
.announcements-list__item__action-bar
.announcements-list__item__meta
= rule.text
= rule.hint
%div
= table_link_to 'trash', t('admin.rules.delete'), admin_rule_path(rule), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:destroy, rule)

View File

@ -1,3 +1,7 @@
<%= raw t('admin_mailer.new_critical_software_updates.body') %>
<% @software_updates.each do |update| %>
- Mastodon #{update.version}: #{update.release_notes}
<% end %>
<%= raw t('application_mailer.view')%> <%= admin_software_updates_url %>

View File

@ -1,3 +1,7 @@
<%= raw t('admin_mailer.new_software_updates.body') %>
<% @software_updates.each do |update| %>
- Mastodon #{update.version}: #{update.release_notes}
<% end %>
<%= raw t('application_mailer.view')%> <%= admin_software_updates_url %>

View File

@ -27,7 +27,7 @@
%title= html_title
= stylesheet_pack_tag 'common', media: 'all', crossorigin: 'anonymous'
= stylesheet_pack_tag current_theme, media: 'all', crossorigin: 'anonymous'
= theme_style_tags current_theme
-# Needed for the wicg-inert polyfill. It needs to be on it's own <style> tag, with this `id`
= stylesheet_pack_tag 'inert', media: 'all', id: 'inert-style'

View File

@ -12,7 +12,7 @@
%link{ rel: 'dns-prefetch', href: storage_host }/
= stylesheet_pack_tag 'common', media: 'all', crossorigin: 'anonymous'
= stylesheet_pack_tag Setting.default_settings['theme'], media: 'all', crossorigin: 'anonymous'
= theme_style_tags Setting.theme # Use the admin-configured theme here, even if logged in
= javascript_pack_tag 'common', integrity: true, crossorigin: 'anonymous'
= preload_pack_asset "locale/#{I18n.locale}-json.js"
= render_initial_state

View File

@ -6,7 +6,7 @@
%title= safe_join([yield(:page_title), Setting.default_settings['site_title']], ' - ')
%meta{ content: 'width=device-width,initial-scale=1', name: 'viewport' }/
= stylesheet_pack_tag 'common', media: 'all', crossorigin: 'anonymous'
= stylesheet_pack_tag Setting.default_settings['theme'], media: 'all', crossorigin: 'anonymous'
= theme_style_tags Setting.default_settings['theme']
= javascript_pack_tag 'common', crossorigin: 'anonymous'
= javascript_pack_tag 'error', crossorigin: 'anonymous'
%body.error

View File

@ -1,5 +1,3 @@
- instance_presenter = InstancePresenter.new
= content_for :heading do
.email-desktop-flex
.email-header-left

View File

@ -43,13 +43,13 @@ hu:
title: Emailcím megerősítése
reset_password_instructions:
action: Jelszó módosítása
explanation: A fiókodhoz tartozó jelszó módosítását kezdeményezted.
extra: Amennyiben nem te kezdeményezted a módosítást, kérjük tekintsd ezt az emailt tárgytalannak. A jelszavad változatlan marad mindaddig, amíg újat nem hozol létre a fenti linkre kattintva.
explanation: Új jelszót kértél a fiókodhoz.
extra: Ha nem te kérted, tekintsd ezt az e-mailt tárgytalannak. A jelszavad változatlan marad mindaddig, amíg újat nem hozol létre a fenti hivatkozásra kattintva.
subject: 'Mastodon: Jelszóvisszaállítási utasítások'
title: Jelszó visszaállítása
two_factor_disabled:
explanation: A bejelentkezés most már csupán email címmel és jelszóval lehetséges.
subject: Kétlépcsős azonosítás kikapcsolva
subject: 'Mastodon: kétlépcsős hitelesítés letiltva'
subtitle: A kétlépcsős hitelesítés a fiókodhoz ki lett kapcsolva.
title: Kétlépcsős hitelesítés kikapcsolva
two_factor_enabled:

View File

@ -43,7 +43,7 @@ hu:
new: Új alkalmazás
scopes: Hatókörök
show: Megjelenítés
title: Alkalmazásaid
title: Saját alkalmazások
new:
title: Új alkalmazás
show:
@ -77,7 +77,7 @@ hu:
never_used: Soha sem volt használva
scopes: Jogosultságok
superapp: Belső
title: Hitelesített alkalmazásaid
title: Hitelesített saját alkalmazások
errors:
messages:
access_denied: Az erőforrás tulajdonosa vagy az engedélyező kiszolgáló elutasította a kérést.

View File

@ -1769,6 +1769,7 @@ en:
contrast: Mastodon (High contrast)
default: Mastodon (Dark)
mastodon-light: Mastodon (Light)
system: Automatic (use system theme)
time:
formats:
default: "%b %d, %Y, %H:%M"

View File

@ -25,27 +25,27 @@ hu:
admin:
account_actions:
action: Művelet végrehajtása
title: "%{acct} moderálása"
title: 'Moderálási művelet végrehajtása ezen: %{acct}'
account_moderation_notes:
create: Új moderációs bejegyzés
created_msg: Moderációs bejegyzés létrehozva!
destroyed_msg: Moderációs bejegyzés törölve!
create: Megjegyzés hagyása
created_msg: A moderációs megjegyzés sikeresen létrehozva!
destroyed_msg: A moderációs megjegyzés sikeresen törölve!
accounts:
add_email_domain_block: Email domain tiltólistára vétele
add_email_domain_block: E-mail-domain tiltólistára vétele
approve: Jóváhagyás
approved_msg: A %{username} fiók regisztrációs kérelmét sikeresen elfogadtuk
approved_msg: "%{username} regisztrációja sikeresen elfogadva"
are_you_sure: Biztos vagy benne?
avatar: Profilkép
by_domain: Domain
change_email:
changed_msg: Az emailt sikeresen megváltoztattuk!
current_email: Jelenlegi e-mail
label: E-mail megváltoztatása
new_email: Új e-mail
submit: E-mail megváltoztatása
title: "%{username} felhasználó e-mail változás"
changed_msg: Az e-mail-cím sikeresen megváltozott!
current_email: Jelenlegi e-mail-cím
label: E-mail-cím megváltoztatása
new_email: Új e-mail-cím
submit: E-mail-cím megváltoztatása
title: "%{username} e-mail-címének megváltoztatása"
change_role:
changed_msg: A szerepet sikeresen megváltoztattuk!
changed_msg: A szerep sikeresen megváltoztatva!
label: Szerep megváltoztatása
no_role: Nincs szerep
title: "%{username} szerepének megváltoztatása"
@ -1224,7 +1224,7 @@ hu:
archive_takeout:
date: Dátum
download: Archívum letöltése
hint_html: Itt kérhető egy archív az összes <strong>feltöltött bejegyzésedről és médiádról</strong>. Az exportált adatok ActivityPub formátumban lesznek, melyet bármilyen szabványos program tud olvasni. 7 naponként kérhetsz ilyen archívot.
hint_html: Itt kérhetsz egy archívumot az összes <strong>bejegyzésedről és médiáfájlodról</strong>. Az exportált adatok ActivityPub formátumban lesznek, mely bármilyen szabványos programmal olvasható. 7 naponta kérhetsz ilyen archívumot.
in_progress: Archívum összeállítása…
request: Archívum kérése
size: Méret

View File

@ -1659,15 +1659,25 @@ is:
import: Flytja inn
import_and_export: Inn- og útflutningur
migrate: Yfirfærsla notandaaðgangs
notifications: Tilkynningar í tölvupósti
preferences: Kjörstillingar
profile: Notandasnið
relationships: Fylgist með og fylgjendur
severed_relationships: Rofin tengsl
statuses_cleanup: Sjálfvirk eyðing færslna
strikes: Umsýsla refsinga
two_factor_authentication: Tveggja-þátta auðkenning
webauthn_authentication: Öryggislyklar
severed_relationships:
download: Sækja (%{count})
event_type:
account_suspension: Frysting notandaaðgangsins (%{target_name})
domain_block: Frysting netþjónsins (%{target_name})
user_domain_block: Þú útilokaðir %{target_name}
lost_followers: Tapaðir fylgjendur
lost_follows: Tapað sem þú fylgist með
preamble: Þú gætir misst einhverja sem þú fylgist með og eins fylgjendur þegar þú útilokar lén eða þegar umsjónarmenn netþjónsins þíns ákveða að frysta fjartengdan netþjón. Þegar slíkt gerist, geturðu sótt lista yfir slík skemmd tengsl, til að yfirfara og mögulega flytja inn á öðrum netþjóni.
purged: Upplýsingum um þennan netþjón hefur verið eytt af stjórnendum netþjónsins þíns.
type: Atburður
statuses:
attached:

View File

@ -1944,6 +1944,11 @@ sl:
follows_subtitle: Sledite dobro znanim računom
follows_title: Komu slediti
follows_view_more: Pokaži več oseb za sledenje
hashtags_recent_count:
few: "%{people} osebe v zadnjih dveh dneh"
one: "%{people} oseba v zadnjih dveh dneh"
other: "%{people} oseb v zadnjih dveh dneh"
two: "%{people} osebi v zadnjih dveh dneh"
hashtags_subtitle: Raziščite, kaj je v trendu zadnja dva dni
hashtags_title: Ključniki v trendu
hashtags_view_more: Pokaži več ključnikov v trendu

View File

@ -16,7 +16,7 @@ defaults: &defaults
show_staff_badge: true
preview_sensitive_media: false
noindex: false
theme: 'default'
theme: 'system'
trends: true
trends_as_landing_page: true
trendable_by_default: false

View File

@ -4,46 +4,50 @@ class MigrateInteractionSettingsToPolicy < ActiveRecord::Migration[7.1]
disable_ddl_transaction!
# Dummy classes, to make migration possible across version changes
class Account < ApplicationRecord
has_one :user, inverse_of: :account
has_one :notification_policy, inverse_of: :account
end
class User < ApplicationRecord
belongs_to :account
belongs_to :notification_policy, foreign_key: 'account_id', primary_key: 'account_id', optional: true, inverse_of: false
end
class NotificationPolicy < ApplicationRecord
belongs_to :account
end
class NotificationPolicy < ApplicationRecord; end
def up
User.includes(account: :notification_policy).find_each do |user|
deserialized_settings = Oj.load(user.attributes_before_type_cast['settings'])
next if deserialized_settings.nil?
policy = user.account.notification_policy || user.account.build_notification_policy
requires_new_policy = false
if deserialized_settings['interactions.must_be_follower']
policy.filter_not_followers = true
requires_new_policy = true
end
if deserialized_settings['interactions.must_be_following']
policy.filter_not_following = true
requires_new_policy = true
end
unless deserialized_settings['interactions.must_be_following_dm']
policy.filter_private_mentions = false
requires_new_policy = true
end
policy.save if requires_new_policy && policy.changed?
User.includes(:notification_policy).in_batches do |users|
NotificationPolicy.upsert_all(users.filter_map { |user| policy_for_user(user) })
end
end
def down; end
private
def policy_for_user(user)
deserialized_settings = Oj.load(user.attributes_before_type_cast['settings'])
return if deserialized_settings.nil?
requires_new_policy = false
policy = {
account_id: user.account_id,
filter_not_followers: false,
filter_not_following: false,
filter_private_mentions: true,
}
if deserialized_settings['interactions.must_be_follower']
policy[:filter_not_followers] = true
requires_new_policy = true
end
if deserialized_settings['interactions.must_be_following']
policy[:filter_not_following] = true
requires_new_policy = true
end
unless deserialized_settings['interactions.must_be_following_dm']
policy[:filter_private_mentions] = false
requires_new_policy = true
end
policy if requires_new_policy
end
end

View File

@ -4,51 +4,51 @@ class MigrateInteractionSettingsToPolicyAgain < ActiveRecord::Migration[7.1]
disable_ddl_transaction!
# Dummy classes, to make migration possible across version changes
class Account < ApplicationRecord
has_one :user, inverse_of: :account
has_one :notification_policy, inverse_of: :account
end
class User < ApplicationRecord
belongs_to :account
belongs_to :notification_policy, foreign_key: 'account_id', primary_key: 'account_id', optional: true, inverse_of: false
end
class NotificationPolicy < ApplicationRecord
belongs_to :account
end
class NotificationPolicy < ApplicationRecord; end
def up
User.includes(account: :notification_policy).find_each do |user|
deserialized_settings = Oj.load(user.attributes_before_type_cast['settings'])
next if deserialized_settings.nil?
# If the user has configured a notification policy, don't override it
next if user.account.notification_policy.present?
policy = user.account.build_notification_policy
requires_new_policy = false
if deserialized_settings['interactions.must_be_follower']
policy.filter_not_followers = true
requires_new_policy = true
end
if deserialized_settings['interactions.must_be_following']
policy.filter_not_following = true
requires_new_policy = true
end
unless deserialized_settings['interactions.must_be_following_dm']
policy.filter_private_mentions = false
requires_new_policy = true
end
policy.save if requires_new_policy && policy.changed?
rescue ActiveRecord::RecordNotUnique
next
User.includes(:notification_policy).in_batches do |users|
NotificationPolicy.insert_all(users.filter_map { |user| policy_for_user(user) })
end
end
def down; end
private
def policy_for_user(user)
deserialized_settings = Oj.load(user.attributes_before_type_cast['settings'])
return if deserialized_settings.nil?
return if user.notification_policy.present?
requires_new_policy = false
policy = {
account_id: user.account_id,
filter_not_followers: false,
filter_not_following: false,
filter_private_mentions: true,
}
if deserialized_settings['interactions.must_be_follower']
policy[:filter_not_followers] = true
requires_new_policy = true
end
if deserialized_settings['interactions.must_be_following']
policy[:filter_not_following] = true
requires_new_policy = true
end
unless deserialized_settings['interactions.must_be_following_dm']
policy[:filter_private_mentions] = false
requires_new_policy = true
end
policy if requires_new_policy
end
end

View File

@ -10,20 +10,17 @@ RSpec.describe AfterBlockDomainFromAccountService do
let(:alice) { Fabricate(:account, username: 'alice') }
before do
NotificationPermission.create!(account: alice, from_account: wolf)
wolf.follow!(alice)
alice.follow!(dog)
end
around do |example|
Sidekiq::Testing.fake! do
example.run
end
end
it 'purge followers from blocked domain, remove notification permissions, sends `Reject->Follow`, and records severed relationships', :aggregate_failures do
expect { subject.call(alice, 'evil.org') }
.to change { wolf.following?(alice) }.from(true).to(false)
.and change { NotificationPermission.exists?(account: alice, from_account: wolf) }.from(true).to(false)
it 'purges followers from blocked domain, sends them Reject->Follow, and records severed relationships', :aggregate_failures do
subject.call(alice, 'evil.org')
expect(wolf.following?(alice)).to be false
expect(ActivityPub::DeliveryWorker.jobs.pluck('args')).to contain_exactly(
[a_string_including('"type":"Reject"'), alice.id, wolf.inbox_url],
[a_string_including('"type":"Undo"'), alice.id, dog.inbox_url]

View File

@ -11,11 +11,13 @@ RSpec.describe BlockService do
let(:bob) { Fabricate(:account, username: 'bob') }
before do
subject.call(sender, bob)
NotificationPermission.create!(account: sender, from_account: bob)
end
it 'creates a blocking relation' do
expect(sender.blocking?(bob)).to be true
it 'creates a blocking relation and removes notification permissions' do
expect { subject.call(sender, bob) }
.to change { sender.blocking?(bob) }.from(false).to(true)
.and change { NotificationPermission.exists?(account: sender, from_account: bob) }.from(true).to(false)
end
end

View File

@ -6503,12 +6503,12 @@ __metadata:
languageName: node
linkType: hard
"css-declaration-sorter@npm:^7.1.1":
version: 7.1.1
resolution: "css-declaration-sorter@npm:7.1.1"
"css-declaration-sorter@npm:^7.2.0":
version: 7.2.0
resolution: "css-declaration-sorter@npm:7.2.0"
peerDependencies:
postcss: ^8.0.9
checksum: 10c0/bea446e441bafde21c3c7b3f7639559311da12eea140db7ee3c61e4f41df455b7b098df107f99bc0cca32a5020841cc94bf8a2d5efb1b383e51f9de478c4816e
checksum: 10c0/d8516be94f8f2daa233ef021688b965c08161624cbf830a4d7ee1099429437c0ee124d35c91b1c659cfd891a68e8888aa941726dab12279bc114aaed60a94606
languageName: node
linkType: hard
@ -6670,12 +6670,12 @@ __metadata:
languageName: node
linkType: hard
"cssnano-preset-default@npm:^6.1.1":
version: 6.1.1
resolution: "cssnano-preset-default@npm:6.1.1"
"cssnano-preset-default@npm:^6.1.2":
version: 6.1.2
resolution: "cssnano-preset-default@npm:6.1.2"
dependencies:
browserslist: "npm:^4.23.0"
css-declaration-sorter: "npm:^7.1.1"
css-declaration-sorter: "npm:^7.2.0"
cssnano-utils: "npm:^4.0.2"
postcss-calc: "npm:^9.0.1"
postcss-colormin: "npm:^6.1.0"
@ -6706,7 +6706,7 @@ __metadata:
postcss-unique-selectors: "npm:^6.0.4"
peerDependencies:
postcss: ^8.4.31
checksum: 10c0/dc5927c8538778f859b781dc1fb10f0082cd7b3afdba30e835e472dbf51724d4f18e5170587761150142284a371d6c9d2c3b51d29826c08d2b9dd86a929597ee
checksum: 10c0/af99021f936763850f5f35dc9e6a9dfb0da30856dea36e0420b011da2a447099471db2a5f3d1f5f52c0489da186caf9a439d8f048a80f82617077efb018333fa
languageName: node
linkType: hard
@ -6720,14 +6720,14 @@ __metadata:
linkType: hard
"cssnano@npm:^6.0.1":
version: 6.1.1
resolution: "cssnano@npm:6.1.1"
version: 6.1.2
resolution: "cssnano@npm:6.1.2"
dependencies:
cssnano-preset-default: "npm:^6.1.1"
cssnano-preset-default: "npm:^6.1.2"
lilconfig: "npm:^3.1.1"
peerDependencies:
postcss: ^8.4.31
checksum: 10c0/2db52c2f5e314f05efec8977de392886ef0e7e08568ac45446f2303218180e317cee64c6c0c6d2c1d70a7f339fcead75384e09e187b88ccacd7f9fd51919fdf1
checksum: 10c0/4df0dc0389b34b38acb09b7cfb07267b0eda95349c6d5e9b7666acc7200bb33359650869a60168e9d878298b05f4ad2c7f070815c90551720a3f4e1037f79691
languageName: node
linkType: hard
@ -8194,8 +8194,8 @@ __metadata:
linkType: hard
"express@npm:^4.17.1, express@npm:^4.18.2":
version: 4.19.1
resolution: "express@npm:4.19.1"
version: 4.19.2
resolution: "express@npm:4.19.2"
dependencies:
accepts: "npm:~1.3.8"
array-flatten: "npm:1.1.1"
@ -8228,7 +8228,7 @@ __metadata:
type-is: "npm:~1.6.18"
utils-merge: "npm:1.0.1"
vary: "npm:~1.1.2"
checksum: 10c0/1cf6d3c095131f0d730105fac23a713083604d4f3ad9364df53cade50662abcfee2f6f8a955fdf164a5ee63f09f457da0b70cbed435ad302fa6f14162a9757f9
checksum: 10c0/e82e2662ea9971c1407aea9fc3c16d6b963e55e3830cd0ef5e00b533feda8b770af4e3be630488ef8a752d7c75c4fcefb15892868eeaafe7353cb9e3e269fdcb
languageName: node
linkType: hard