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: Layout/LineLength:
Max: 320 # Default of 120 causes a duplicate entry in generated todo file 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 ## Disable most Metrics/*Length cops
# Reason: those are often triggered and force significant refactors when this happend # Reason: those are often triggered and force significant refactors when this happend
# but the team feel they are not really improving the code quality. # but the team feel they are not really improving the code quality.

View File

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

View File

@ -160,6 +160,15 @@ module ApplicationHelper
output.compact_blank.join(' ') output.compact_blank.join(' ')
end 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 def cdn_host
Rails.configuration.action_controller.asset_host Rails.configuration.action_controller.asset_host
end end

View File

@ -22,23 +22,23 @@ describe('emoji', () => {
it('does unicode', () => { it('does unicode', () => {
expect(emojify('\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66')).toEqual( 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( expect(emojify('👨‍👩‍👧‍👧')).toEqual(
'<img draggable="false" class="emojione" alt="👨‍👩‍👧‍👧" title=":man-woman-girl-girl:" src="/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.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('<img draggable="false" class="emojione" alt="👩‍👩‍👦" title=":woman-woman-boy:" src="/emoji/1f469-200d-1f469-200d-1f466.svg">'); 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( 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', () => { it('does multiple unicode', () => {
expect(emojify('\u2757 #\uFE0F\u20E3')).toEqual( 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( 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( 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( 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', () => { it('ignores unicode inside of tags', () => {
@ -46,16 +46,16 @@ describe('emoji', () => {
}); });
it('does multiple emoji properly (issue 5188)', () => { 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('<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('<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>');
}); });
it('does an emoji that has no shortcode', () => { 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', () => { 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', () => { it('avoid emojifying on invisible text', () => {
@ -67,11 +67,11 @@ describe('emoji', () => {
it('avoid emojifying on invisible text with nested tags', () => { it('avoid emojifying on invisible text with nested tags', () => {
expect(emojify('<span class="invisible">😄<span class="foo">bar</span>😴</span>😇')) 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>😇')) 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>😇')) 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', () => { it('does not emojify emojis with textual presentation VS15 character', () => {
@ -79,19 +79,19 @@ describe('emoji', () => {
.toEqual('✴︎'); .toEqual('✴︎');
}); });
it('does an simple emoji properly', () => { it('does a simple emoji properly', () => {
expect(emojify('♀♂')) 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', () => { it('does an emoji containing ZWJ properly', () => {
expect(emojify('💂‍♀️💂‍♂️')) 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)', () => { 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>')) 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 darkEmoji = emojiFilenames(['🎱', '🐜', '⚫', '🖤', '⬛', '◼️', '◾', '◼️', '✒️', '▪️', '💣', '🎳', '📷', '📸', '♣️', '🕶️', '✴️', '🔌', '💂‍♀️', '📽️', '🍳', '🦍', '💂', '🔪', '🕳️', '🕹️', '🕋', '🖊️', '🖋️', '💂‍♂️', '🎤', '🎓', '🎥', '🎼', '♠️', '🎩', '🦃', '📼', '📹', '🎮', '🐃', '🏴', '🐞', '🕺', '📱', '📲', '🚲', '🪮', '🐦‍⬛']);
const lightEmoji = 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; return borderedEmoji.includes(filename) ? (filename + '_border') : filename;
}; };
@ -92,12 +97,30 @@ const emojifyTextNode = (node, customEmojis) => {
const { filename, shortCode } = unicodeMapping[unicode_emoji]; const { filename, shortCode } = unicodeMapping[unicode_emoji];
const title = shortCode ? `:${shortCode}:` : ''; const title = shortCode ? `:${shortCode}:` : '';
replacement = document.createElement('img'); replacement = document.createElement('picture');
replacement.setAttribute('draggable', 'false');
replacement.setAttribute('class', 'emojione'); const isSystemTheme = !!document.body?.classList.contains('theme-system');
replacement.setAttribute('alt', unicode_emoji);
replacement.setAttribute('title', title); if(isSystemTheme) {
replacement.setAttribute('src', `${assetHost}/emoji/${emojiFilename(filename)}.svg`); 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 // Add the processed-up-to-now string and the emoji replacement

View File

@ -471,7 +471,6 @@
"notification.own_poll": "Ваша апытанне скончылася", "notification.own_poll": "Ваша апытанне скончылася",
"notification.poll": "Апытанне, дзе вы прынялі ўдзел, скончылася", "notification.poll": "Апытанне, дзе вы прынялі ўдзел, скончылася",
"notification.reblog": "{name} пашырыў ваш допіс", "notification.reblog": "{name} пашырыў ваш допіс",
"notification.severed_relationships": "Зносіны з {name} былі разарваныя",
"notification.status": "Новы допіс ад {name}", "notification.status": "Новы допіс ад {name}",
"notification.update": "Допіс {name} адрэдагаваны", "notification.update": "Допіс {name} адрэдагаваны",
"notification_requests.accept": "Прыняць", "notification_requests.accept": "Прыняць",
@ -589,8 +588,6 @@
"refresh": "Абнавiць", "refresh": "Абнавiць",
"regeneration_indicator.label": "Загрузка…", "regeneration_indicator.label": "Загрузка…",
"regeneration_indicator.sublabel": "Пачакайце, рыхтуем вашу стужку!", "regeneration_indicator.sublabel": "Пачакайце, рыхтуем вашу стужку!",
"relationship_severance_notification.types.user_domain_block": "Вы заблакіравалі гэты дамен",
"relationship_severance_notification.view": "Праглядзець",
"relative_time.days": "{number} д", "relative_time.days": "{number} д",
"relative_time.full.days": "{number, plural, one {# дзень} few {# дні} many {# дзён} other {# дня}} таму", "relative_time.full.days": "{number, plural, one {# дзень} few {# дні} many {# дзён} other {# дня}} таму",
"relative_time.full.hours": "{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.own_poll": "Анкетата ви приключи",
"notification.poll": "Анкета, в която гласувахте, приключи", "notification.poll": "Анкета, в която гласувахте, приключи",
"notification.reblog": "{name} подсили ваша публикация", "notification.reblog": "{name} подсили ваша публикация",
"notification.severed_relationships": "Връзката с {name} е прекъсната",
"notification.status": "{name} току-що публикува", "notification.status": "{name} току-що публикува",
"notification.update": "{name} промени публикация", "notification.update": "{name} промени публикация",
"notification_requests.accept": "Приемам", "notification_requests.accept": "Приемам",
@ -484,6 +483,8 @@
"notifications.column_settings.admin.sign_up": "Нови регистрации:", "notifications.column_settings.admin.sign_up": "Нови регистрации:",
"notifications.column_settings.alert": "Известия на работния плот", "notifications.column_settings.alert": "Известия на работния плот",
"notifications.column_settings.favourite": "Любими:", "notifications.column_settings.favourite": "Любими:",
"notifications.column_settings.filter_bar.advanced": "Показване на всички категории",
"notifications.column_settings.filter_bar.category": "Лента за бърз филтър",
"notifications.column_settings.follow": "Нови последователи:", "notifications.column_settings.follow": "Нови последователи:",
"notifications.column_settings.follow_request": "Нови заявки за последване:", "notifications.column_settings.follow_request": "Нови заявки за последване:",
"notifications.column_settings.mention": "Споменавания:", "notifications.column_settings.mention": "Споменавания:",
@ -588,12 +589,6 @@
"refresh": "Опресняване", "refresh": "Опресняване",
"regeneration_indicator.label": "Зареждане…", "regeneration_indicator.label": "Зареждане…",
"regeneration_indicator.sublabel": "Подготовка на началния ви инфоканал!", "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.days": "{number} д.",
"relative_time.full.days": "преди {number, plural, one {# ден} other {# дни}}", "relative_time.full.days": "преди {number, plural, one {# ден} other {# дни}}",
"relative_time.full.hours": "преди {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.select_filter.title": "Filtra aquest tut",
"filter_modal.title.status": "Filtra un 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.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", "filtered_notifications_banner.title": "Notificacions filtrades",
"firehose.all": "Tots", "firehose.all": "Tots",
"firehose.local": "Aquest servidor", "firehose.local": "Aquest servidor",
@ -471,7 +472,11 @@
"notification.own_poll": "La teva enquesta ha finalitzat", "notification.own_poll": "La teva enquesta ha finalitzat",
"notification.poll": "Ha finalitzat una enquesta en què has votat", "notification.poll": "Ha finalitzat una enquesta en què has votat",
"notification.reblog": "{name} t'ha impulsat", "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.status": "{name} acaba de publicar",
"notification.update": "{name} ha editat un tut", "notification.update": "{name} ha editat un tut",
"notification_requests.accept": "Accepta", "notification_requests.accept": "Accepta",
@ -484,6 +489,8 @@
"notifications.column_settings.admin.sign_up": "Registres nous:", "notifications.column_settings.admin.sign_up": "Registres nous:",
"notifications.column_settings.alert": "Notificacions d'escriptori", "notifications.column_settings.alert": "Notificacions d'escriptori",
"notifications.column_settings.favourite": "Favorits:", "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": "Nous seguidors:",
"notifications.column_settings.follow_request": "Noves sol·licituds de seguiment:", "notifications.column_settings.follow_request": "Noves sol·licituds de seguiment:",
"notifications.column_settings.mention": "Mencions:", "notifications.column_settings.mention": "Mencions:",
@ -588,12 +595,6 @@
"refresh": "Actualitza", "refresh": "Actualitza",
"regeneration_indicator.label": "Es carrega…", "regeneration_indicator.label": "Es carrega…",
"regeneration_indicator.sublabel": "Es prepara la teva línia de temps d'Inici!", "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.days": "{number}d",
"relative_time.full.days": "fa {number, plural, one {# dia} other {# dies}}", "relative_time.full.days": "fa {number, plural, one {# dia} other {# dies}}",
"relative_time.full.hours": "fa {number, plural, one {# hora} other {# hores}}", "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.select_filter.title": "Filtrér dette indlæg",
"filter_modal.title.status": "Filtrér et 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.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", "filtered_notifications_banner.title": "Filtrerede notifikationer",
"firehose.all": "Alle", "firehose.all": "Alle",
"firehose.local": "Denne server", "firehose.local": "Denne server",
@ -469,6 +470,11 @@
"notification.own_poll": "Din afstemning er afsluttet", "notification.own_poll": "Din afstemning er afsluttet",
"notification.poll": "En afstemning, hvori du stemte, er slut", "notification.poll": "En afstemning, hvori du stemte, er slut",
"notification.reblog": "{name} boostede dit indlæg", "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.status": "{name} har netop postet",
"notification.update": "{name} redigerede et indlæg", "notification.update": "{name} redigerede et indlæg",
"notification_requests.accept": "Acceptér", "notification_requests.accept": "Acceptér",
@ -587,12 +593,6 @@
"refresh": "Genindlæs", "refresh": "Genindlæs",
"regeneration_indicator.label": "Indlæser…", "regeneration_indicator.label": "Indlæser…",
"regeneration_indicator.sublabel": "Din hjemmetidslinje klargøres!", "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.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# dag} other {# dage}} siden", "relative_time.full.days": "{number, plural, one {# dag} other {# dage}} siden",
"relative_time.full.hours": "{number, plural, one {# time} other {# timer}} 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.select_filter.title": "Diesen Beitrag filtern",
"filter_modal.title.status": "Beitrag per Filter ausblenden", "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.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", "filtered_notifications_banner.title": "Gefilterte Benachrichtigungen",
"firehose.all": "Alles", "firehose.all": "Alles",
"firehose.local": "Dieser Server", "firehose.local": "Dieser Server",
@ -471,7 +472,11 @@
"notification.own_poll": "Deine Umfrage ist beendet", "notification.own_poll": "Deine Umfrage ist beendet",
"notification.poll": "Eine Umfrage, an der du teilgenommen hast, ist beendet", "notification.poll": "Eine Umfrage, an der du teilgenommen hast, ist beendet",
"notification.reblog": "{name} teilte deinen Beitrag", "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.status": "{name} hat gerade etwas gepostet",
"notification.update": "{name} bearbeitete einen Beitrag", "notification.update": "{name} bearbeitete einen Beitrag",
"notification_requests.accept": "Akzeptieren", "notification_requests.accept": "Akzeptieren",
@ -590,12 +595,6 @@
"refresh": "Aktualisieren", "refresh": "Aktualisieren",
"regeneration_indicator.label": "Wird geladen …", "regeneration_indicator.label": "Wird geladen …",
"regeneration_indicator.sublabel": "Deine Startseite wird gerade vorbereitet!", "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.days": "{number} T.",
"relative_time.full.days": "vor {number, plural, one {# Tag} other {# Tagen}}", "relative_time.full.days": "vor {number, plural, one {# Tag} other {# Tagen}}",
"relative_time.full.hours": "vor {number, plural, one {# Stunde} other {# Stunden}}", "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.select_filter.title": "Filtrar este mensaje",
"filter_modal.title.status": "Filtrar un 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.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", "filtered_notifications_banner.title": "Notificaciones filtradas",
"firehose.all": "Todos", "firehose.all": "Todos",
"firehose.local": "Este servidor", "firehose.local": "Este servidor",
@ -471,7 +472,11 @@
"notification.own_poll": "Tu encuesta finalizó", "notification.own_poll": "Tu encuesta finalizó",
"notification.poll": "Finalizó una encuesta en la que votaste", "notification.poll": "Finalizó una encuesta en la que votaste",
"notification.reblog": "{name} adhirió a tu mensaje", "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.status": "{name} acaba de enviar un mensaje",
"notification.update": "{name} editó un mensaje", "notification.update": "{name} editó un mensaje",
"notification_requests.accept": "Aceptar", "notification_requests.accept": "Aceptar",
@ -590,12 +595,6 @@
"refresh": "Refrescar", "refresh": "Refrescar",
"regeneration_indicator.label": "Cargando…", "regeneration_indicator.label": "Cargando…",
"regeneration_indicator.sublabel": "¡Se está preparando tu línea temporal principal!", "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.days": "{number}d",
"relative_time.full.days": "{number, plural,one {hace # día} other {hace # días}}", "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}}", "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.own_poll": "Tu encuesta ha terminado",
"notification.poll": "Una encuesta en la que has votado ha terminado", "notification.poll": "Una encuesta en la que has votado ha terminado",
"notification.reblog": "{name} ha retooteado tu estado", "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.status": "{name} acaba de publicar",
"notification.update": "{name} editó una publicación", "notification.update": "{name} editó una publicación",
"notification_requests.accept": "Aceptar", "notification_requests.accept": "Aceptar",
@ -590,12 +594,6 @@
"refresh": "Actualizar", "refresh": "Actualizar",
"regeneration_indicator.label": "Cargando…", "regeneration_indicator.label": "Cargando…",
"regeneration_indicator.sublabel": "¡Tu historia de inicio se está preparando!", "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.days": "{number} d",
"relative_time.full.days": "{number, plural, one {# día} other {# días hace}}", "relative_time.full.days": "{number, plural, one {# día} other {# días hace}}",
"relative_time.full.hours": "{number, plural, one {# hora} other {# horas}} 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.own_poll": "Tu encuesta ha terminado",
"notification.poll": "Una encuesta en la que has votado ha terminado", "notification.poll": "Una encuesta en la que has votado ha terminado",
"notification.reblog": "{name} ha impulsado tu publicación", "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.status": "{name} acaba de publicar",
"notification.update": "{name} editó una publicación", "notification.update": "{name} editó una publicación",
"notification_requests.accept": "Aceptar", "notification_requests.accept": "Aceptar",
@ -590,12 +594,6 @@
"refresh": "Actualizar", "refresh": "Actualizar",
"regeneration_indicator.label": "Cargando…", "regeneration_indicator.label": "Cargando…",
"regeneration_indicator.sublabel": "¡Tu historia de inicio se está preparando!", "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.days": "{number} d",
"relative_time.full.days": "hace {number, plural, one {# día} other {# días}}", "relative_time.full.days": "hace {number, plural, one {# día} other {# días}}",
"relative_time.full.hours": "hace {number, plural, one {# hora} other {# horas}}", "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.own_poll": "Zure inkesta amaitu da",
"notification.poll": "Zuk erantzun duzun inkesta bat bukatu da", "notification.poll": "Zuk erantzun duzun inkesta bat bukatu da",
"notification.reblog": "{name}(e)k bultzada eman dio zure bidalketari", "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.status": "{name} erabiltzaileak bidalketa egin berri du",
"notification.update": "{name} erabiltzaileak bidalketa bat editatu du", "notification.update": "{name} erabiltzaileak bidalketa bat editatu du",
"notification_requests.accept": "Onartu", "notification_requests.accept": "Onartu",
@ -590,12 +592,6 @@
"refresh": "Berritu", "refresh": "Berritu",
"regeneration_indicator.label": "Kargatzen…", "regeneration_indicator.label": "Kargatzen…",
"regeneration_indicator.sublabel": "Zure hasiera-jarioa prestatzen ari da!", "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.days": "{number}e",
"relative_time.full.days": "Duela {number, plural, one {egun #} other {# egun}}", "relative_time.full.days": "Duela {number, plural, one {egun #} other {# egun}}",
"relative_time.full.hours": "Duela {number, plural, one {ordu #} other {# ordu}}", "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.select_filter.title": "Suodata tämä julkaisu",
"filter_modal.title.status": "Suodata 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.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", "filtered_notifications_banner.title": "Suodatetut ilmoitukset",
"firehose.all": "Kaikki", "firehose.all": "Kaikki",
"firehose.local": "Tämä palvelin", "firehose.local": "Tämä palvelin",
@ -471,7 +472,7 @@
"notification.own_poll": "Äänestyksesi on päättynyt", "notification.own_poll": "Äänestyksesi on päättynyt",
"notification.poll": "Kysely, johon osallistuit, on päättynyt", "notification.poll": "Kysely, johon osallistuit, on päättynyt",
"notification.reblog": "{name} tehosti julkaisuasi", "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.status": "{name} julkaisi juuri",
"notification.update": "{name} muokkasi julkaisua", "notification.update": "{name} muokkasi julkaisua",
"notification_requests.accept": "Hyväksy", "notification_requests.accept": "Hyväksy",
@ -590,12 +591,6 @@
"refresh": "Päivitä", "refresh": "Päivitä",
"regeneration_indicator.label": "Ladataan…", "regeneration_indicator.label": "Ladataan…",
"regeneration_indicator.sublabel": "Kotisyötettäsi valmistellaan!", "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.days": "{number} pv",
"relative_time.full.days": "{number, plural, one {# päivä} other {# päivää}} sitten", "relative_time.full.days": "{number, plural, one {# päivä} other {# päivää}} sitten",
"relative_time.full.hours": "{number, plural, one {# tunti} other {# tuntia}} 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.select_filter.title": "Filtrera hendan postin",
"filter_modal.title.status": "Filtrera ein post", "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.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", "filtered_notifications_banner.title": "Sáldaðar fráboðanir",
"firehose.all": "Allar", "firehose.all": "Allar",
"firehose.local": "Hesin ambætarin", "firehose.local": "Hesin ambætarin",
@ -471,7 +472,11 @@
"notification.own_poll": "Tín atkvøðugreiðsla er endað", "notification.own_poll": "Tín atkvøðugreiðsla er endað",
"notification.poll": "Ein atkvøðugreiðsla, har tú hevur atkvøtt, er endað", "notification.poll": "Ein atkvøðugreiðsla, har tú hevur atkvøtt, er endað",
"notification.reblog": "{name} lyfti tín post", "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.status": "{name} hevur júst postað",
"notification.update": "{name} rættaði ein post", "notification.update": "{name} rættaði ein post",
"notification_requests.accept": "Góðtak", "notification_requests.accept": "Góðtak",
@ -590,12 +595,6 @@
"refresh": "Endurles", "refresh": "Endurles",
"regeneration_indicator.label": "Innlesur…", "regeneration_indicator.label": "Innlesur…",
"regeneration_indicator.sublabel": "Tín heimarás verður gjørd klár!", "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.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# dagur} other {# dagar}} síðani", "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", "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.own_poll": "Votre sondage est terminé",
"notification.poll": "Un sondage auquel vous avez participé est terminé", "notification.poll": "Un sondage auquel vous avez participé est terminé",
"notification.reblog": "{name} a boosté votre message", "notification.reblog": "{name} a boosté votre message",
"notification.severed_relationships": "Relation avec {name} rompues",
"notification.status": "{name} vient de publier", "notification.status": "{name} vient de publier",
"notification.update": "{name} a modifié une publication", "notification.update": "{name} a modifié une publication",
"notification_requests.accept": "Accepter", "notification_requests.accept": "Accepter",
@ -588,12 +587,6 @@
"refresh": "Actualiser", "refresh": "Actualiser",
"regeneration_indicator.label": "Chargement…", "regeneration_indicator.label": "Chargement…",
"regeneration_indicator.sublabel": "Votre fil d'accueil est en cours de préparation!", "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.days": "{number} j",
"relative_time.full.days": "il y a {number, plural, one {# jour} other {# jours}}", "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}}", "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.own_poll": "Votre sondage est terminé",
"notification.poll": "Un sondage auquel vous avez participé vient de se terminer", "notification.poll": "Un sondage auquel vous avez participé vient de se terminer",
"notification.reblog": "{name} a partagé votre message", "notification.reblog": "{name} a partagé votre message",
"notification.severed_relationships": "Relation avec {name} rompues",
"notification.status": "{name} vient de publier", "notification.status": "{name} vient de publier",
"notification.update": "{name} a modifié un message", "notification.update": "{name} a modifié un message",
"notification_requests.accept": "Accepter", "notification_requests.accept": "Accepter",
@ -588,12 +587,6 @@
"refresh": "Actualiser", "refresh": "Actualiser",
"regeneration_indicator.label": "Chargement…", "regeneration_indicator.label": "Chargement…",
"regeneration_indicator.sublabel": "Votre fil principal est en cours de préparation!", "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.days": "{number} j",
"relative_time.full.days": "il y a {number, plural, one {# jour} other {# jours}}", "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}}", "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.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.poll": "Thàinig cunntas-bheachd sa bhòt thu gu crìoch",
"notification.reblog": "Bhrosnaich {name} am post agad", "notification.reblog": "Bhrosnaich {name} am post agad",
"notification.severed_relationships": "Chaidh na dàimhean le {name} a dhealachadh",
"notification.status": "Phostaich {name} rud", "notification.status": "Phostaich {name} rud",
"notification.update": "Dheasaich {name} post", "notification.update": "Dheasaich {name} post",
"notification_requests.accept": "Gabh ris", "notification_requests.accept": "Gabh ris",
@ -588,12 +587,6 @@
"refresh": "Ath-nuadhaich", "refresh": "Ath-nuadhaich",
"regeneration_indicator.label": "Ga luchdadh…", "regeneration_indicator.label": "Ga luchdadh…",
"regeneration_indicator.sublabel": "Tha do dhachaigh ga ullachadh!", "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.days": "{number}l",
"relative_time.full.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}} air ais", "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", "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.own_poll": "A túa enquisa rematou",
"notification.poll": "Rematou a enquisa na que votaches", "notification.poll": "Rematou a enquisa na que votaches",
"notification.reblog": "{name} compartiu a túa publicación", "notification.reblog": "{name} compartiu a túa publicación",
"notification.severed_relationships": "Cortouse a relación con {name}",
"notification.status": "{name} publicou", "notification.status": "{name} publicou",
"notification.update": "{name} editou unha publicación", "notification.update": "{name} editou unha publicación",
"notification_requests.accept": "Aceptar", "notification_requests.accept": "Aceptar",
@ -484,6 +483,8 @@
"notifications.column_settings.admin.sign_up": "Novas usuarias:", "notifications.column_settings.admin.sign_up": "Novas usuarias:",
"notifications.column_settings.alert": "Notificacións de escritorio", "notifications.column_settings.alert": "Notificacións de escritorio",
"notifications.column_settings.favourite": "Favoritas:", "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": "Novas seguidoras:",
"notifications.column_settings.follow_request": "Novas peticións de seguimento:", "notifications.column_settings.follow_request": "Novas peticións de seguimento:",
"notifications.column_settings.mention": "Mencións:", "notifications.column_settings.mention": "Mencións:",
@ -588,12 +589,6 @@
"refresh": "Actualizar", "refresh": "Actualizar",
"regeneration_indicator.label": "Estase a cargar…", "regeneration_indicator.label": "Estase a cargar…",
"regeneration_indicator.sublabel": "Estase a preparar a túa cronoloxía de inicio!", "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.days": "{number}d",
"relative_time.full.days": "hai {number, plural, one {# día} other {# días}}", "relative_time.full.days": "hai {number, plural, one {# día} other {# días}}",
"relative_time.full.hours": "hai {number, plural, one {# hora} other {# horas}}", "relative_time.full.hours": "hai {number, plural, one {# hora} other {# horas}}",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "סינון ההודעה הזו", "filter_modal.select_filter.title": "סינון ההודעה הזו",
"filter_modal.title.status": "סנן הודעה", "filter_modal.title.status": "סנן הודעה",
"filtered_notifications_banner.pending_requests": "{count, plural,=0 {אין התראות ממשתמשים ה}one {התראה אחת ממישהו/מישהי ה}two {יש התראותיים ממשתמשים }other {יש # התראות ממשתמשים }}מוכרים לך", "filtered_notifications_banner.pending_requests": "{count, plural,=0 {אין התראות ממשתמשים ה}one {התראה אחת ממישהו/מישהי ה}two {יש התראותיים ממשתמשים }other {יש # התראות ממשתמשים }}מוכרים לך",
"filtered_notifications_banner.private_mentions": "{count, plural, one {איזכור פרטי} other {איזכורים פרטיים}}",
"filtered_notifications_banner.title": "התראות מסוננות", "filtered_notifications_banner.title": "התראות מסוננות",
"firehose.all": "הכל", "firehose.all": "הכל",
"firehose.local": "שרת זה", "firehose.local": "שרת זה",
@ -471,7 +472,11 @@
"notification.own_poll": "הסקר שלך הסתיים", "notification.own_poll": "הסקר שלך הסתיים",
"notification.poll": "סקר שהצבעת בו הסתיים", "notification.poll": "סקר שהצבעת בו הסתיים",
"notification.reblog": "הודעתך הודהדה על ידי {name}", "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.status": "{name} הרגע פרסמו",
"notification.update": "{name} ערכו הודעה", "notification.update": "{name} ערכו הודעה",
"notification_requests.accept": "לקבל", "notification_requests.accept": "לקבל",
@ -590,12 +595,6 @@
"refresh": "רענון", "refresh": "רענון",
"regeneration_indicator.label": "טוען…", "regeneration_indicator.label": "טוען…",
"regeneration_indicator.sublabel": "פיד הבית שלך בהכנה!", "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.days": "{number} ימים",
"relative_time.full.days": "לפני {number, plural, one {# יום} other {# ימים}}", "relative_time.full.days": "לפני {number, plural, one {# יום} other {# ימים}}",
"relative_time.full.hours": "לפני {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.select_filter.title": "E bejegyzés szűrése",
"filter_modal.title.status": "Egy 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.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", "filtered_notifications_banner.title": "Szűrt értesítések",
"firehose.all": "Összes", "firehose.all": "Összes",
"firehose.local": "Ez a kiszolgáló", "firehose.local": "Ez a kiszolgáló",
@ -471,7 +472,11 @@
"notification.own_poll": "A szavazásod véget ért", "notification.own_poll": "A szavazásod véget ért",
"notification.poll": "Egy szavazás, melyben részt vettél, véget ért", "notification.poll": "Egy szavazás, melyben részt vettél, véget ért",
"notification.reblog": "{name} megtolta a bejegyzésedet", "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.status": "{name} bejegyzést tett közzé",
"notification.update": "{name} szerkesztett egy bejegyzést", "notification.update": "{name} szerkesztett egy bejegyzést",
"notification_requests.accept": "Elfogadás", "notification_requests.accept": "Elfogadás",
@ -484,6 +489,8 @@
"notifications.column_settings.admin.sign_up": "Új regisztrálók:", "notifications.column_settings.admin.sign_up": "Új regisztrálók:",
"notifications.column_settings.alert": "Asztali értesítések", "notifications.column_settings.alert": "Asztali értesítések",
"notifications.column_settings.favourite": "Kedvencek:", "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": "Új követők:",
"notifications.column_settings.follow_request": "Új követési kérelmek:", "notifications.column_settings.follow_request": "Új követési kérelmek:",
"notifications.column_settings.mention": "Megemlítések:", "notifications.column_settings.mention": "Megemlítések:",
@ -588,12 +595,6 @@
"refresh": "Frissítés", "refresh": "Frissítés",
"regeneration_indicator.label": "Betöltés…", "regeneration_indicator.label": "Betöltés…",
"regeneration_indicator.sublabel": "A saját idővonalad épp készül!", "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.days": "{number}n",
"relative_time.full.days": "{number, plural, one {# napja} other {# napja}}", "relative_time.full.days": "{number, plural, one {# napja} other {# napja}}",
"relative_time.full.hours": "{number, plural, one {# órája} other {# órája}}", "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.select_filter.title": "Sía þessa færslu",
"filter_modal.title.status": "Sía 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.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", "filtered_notifications_banner.title": "Síaðar tilkynningar",
"firehose.all": "Allt", "firehose.all": "Allt",
"firehose.local": "þessum netþjóni", "firehose.local": "þessum netþjóni",
@ -471,6 +472,8 @@
"notification.own_poll": "Könnuninni þinni er lokið", "notification.own_poll": "Könnuninni þinni er lokið",
"notification.poll": "Könnun sem þú tókst þátt í er lokið", "notification.poll": "Könnun sem þú tókst þátt í er lokið",
"notification.reblog": "{name} endurbirti færsluna þína", "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.status": "{name} sendi inn rétt í þessu",
"notification.update": "{name} breytti færslu", "notification.update": "{name} breytti færslu",
"notification_requests.accept": "Samþykkja", "notification_requests.accept": "Samþykkja",
@ -589,8 +592,6 @@
"refresh": "Endurlesa", "refresh": "Endurlesa",
"regeneration_indicator.label": "Hleð inn…", "regeneration_indicator.label": "Hleð inn…",
"regeneration_indicator.sublabel": "Verið er að útbúa heimastreymið þitt!", "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.days": "{number}d",
"relative_time.full.days": "Fyrir {number, plural, one {# degi} other {# dögum}} síðan", "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", "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.own_poll": "Il tuo sondaggio è terminato",
"notification.poll": "Un sondaggio in cui hai votato è terminato", "notification.poll": "Un sondaggio in cui hai votato è terminato",
"notification.reblog": "{name} ha rebloggato il tuo post", "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.status": "{name} ha appena pubblicato un post",
"notification.update": "{name} ha modificato un post", "notification.update": "{name} ha modificato un post",
"notification_requests.accept": "Accetta", "notification_requests.accept": "Accetta",
@ -590,12 +592,6 @@
"refresh": "Ricarica", "refresh": "Ricarica",
"regeneration_indicator.label": "Caricamento…", "regeneration_indicator.label": "Caricamento…",
"regeneration_indicator.sublabel": "Il feed della tua home è in preparazione!", "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.days": "{number}g",
"relative_time.full.days": "{number, plural, one {# giorno} other {# giorni}} fa", "relative_time.full.days": "{number, plural, one {# giorno} other {# giorni}} fa",
"relative_time.full.hours": "{number, plural, one {# ora} other {# ore}} fa", "relative_time.full.hours": "{number, plural, one {# ora} other {# ore}} fa",

View File

@ -471,7 +471,6 @@
"notification.own_poll": "설문을 마침", "notification.own_poll": "설문을 마침",
"notification.poll": "참여한 설문이 종료됨", "notification.poll": "참여한 설문이 종료됨",
"notification.reblog": "{name} 님이 부스트했습니다", "notification.reblog": "{name} 님이 부스트했습니다",
"notification.severed_relationships": "{name} 님과의 관계가 단절되었습니다",
"notification.status": "{name} 님이 방금 게시물을 올렸습니다", "notification.status": "{name} 님이 방금 게시물을 올렸습니다",
"notification.update": "{name} 님이 게시물을 수정했습니다", "notification.update": "{name} 님이 게시물을 수정했습니다",
"notification_requests.accept": "수락", "notification_requests.accept": "수락",
@ -589,12 +588,6 @@
"refresh": "새로고침", "refresh": "새로고침",
"regeneration_indicator.label": "불러오는 중…", "regeneration_indicator.label": "불러오는 중…",
"regeneration_indicator.sublabel": "홈 피드를 준비하고 있습니다!", "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.days": "{number}일 전",
"relative_time.full.days": "{number} 일 전", "relative_time.full.days": "{number} 일 전",
"relative_time.full.hours": "{number} 시간 전", "relative_time.full.hours": "{number} 시간 전",

View File

@ -571,8 +571,6 @@
"refresh": "Arefreska", "refresh": "Arefreska",
"regeneration_indicator.label": "Eskargando…", "regeneration_indicator.label": "Eskargando…",
"regeneration_indicator.sublabel": "Tu linya de tiempo prinsipala esta preparando!", "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.days": "{number} d",
"relative_time.full.days": "antes {number, plural, one {# diya} other {# diyas}}", "relative_time.full.days": "antes {number, plural, one {# diya} other {# diyas}}",
"relative_time.full.hours": "antes {number, plural, one {# ora} other {# oras}}", "relative_time.full.hours": "antes {number, plural, one {# ora} other {# oras}}",

View File

@ -555,9 +555,6 @@
"refresh": "Atnaujinti", "refresh": "Atnaujinti",
"regeneration_indicator.label": "Kraunama…", "regeneration_indicator.label": "Kraunama…",
"regeneration_indicator.sublabel": "Ruošiamas tavo pagrindinis srautas!", "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.days": "{number} d.",
"relative_time.full.days": "prieš {number, plural, one {# dieną} few {# dienas} many {# dienos} other {# dienų}}", "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ų}}", "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.direct_indicator": "Pieminēts privāti",
"status.edit": "Labot", "status.edit": "Labot",
"status.edited_x_times": "Labots {count, plural, one {{count} reizi} other {{count} reizes}}", "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.favourite": "Izlasē",
"status.filter": "Filtrē šo ziņu", "status.filter": "Filtrē šo ziņu",
"status.filtered": "Filtrēts", "status.filtered": "Filtrēts",
@ -634,7 +634,7 @@
"status.history.created": "{name} izveidoja {date}", "status.history.created": "{name} izveidoja {date}",
"status.history.edited": "{name} laboja {date}", "status.history.edited": "{name} laboja {date}",
"status.load_more": "Ielādēt vairāk", "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.show": "Noklikšķini, lai parādītu",
"status.media_hidden": "Multivides ir paslēpts", "status.media_hidden": "Multivides ir paslēpts",
"status.mention": "Pieminēt @{name}", "status.mention": "Pieminēt @{name}",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "Dit bericht filteren", "filter_modal.select_filter.title": "Dit bericht filteren",
"filter_modal.title.status": "Een 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.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", "filtered_notifications_banner.title": "Gefilterde meldingen",
"firehose.all": "Alles", "firehose.all": "Alles",
"firehose.local": "Deze server", "firehose.local": "Deze server",
@ -471,7 +472,11 @@
"notification.own_poll": "Jouw peiling is beëindigd", "notification.own_poll": "Jouw peiling is beëindigd",
"notification.poll": "Een peiling waaraan jij hebt meegedaan is beëindigd", "notification.poll": "Een peiling waaraan jij hebt meegedaan is beëindigd",
"notification.reblog": "{name} boostte jouw bericht", "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.status": "{name} heeft zojuist een bericht geplaatst",
"notification.update": "{name} heeft een bericht bewerkt", "notification.update": "{name} heeft een bericht bewerkt",
"notification_requests.accept": "Accepteren", "notification_requests.accept": "Accepteren",
@ -590,12 +595,6 @@
"refresh": "Vernieuwen", "refresh": "Vernieuwen",
"regeneration_indicator.label": "Aan het laden…", "regeneration_indicator.label": "Aan het laden…",
"regeneration_indicator.sublabel": "Jouw starttijdlijn wordt aangemaakt!", "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.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# dag} other {# dagen}} geleden", "relative_time.full.days": "{number, plural, one {# dag} other {# dagen}} geleden",
"relative_time.full.hours": "{number, plural, one {# uur} other {# uur}} 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.select_filter.title": "Filtrer dette innlegget",
"filter_modal.title.status": "Filtrer eit innlegg", "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.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", "filtered_notifications_banner.title": "Filtrerte varslingar",
"firehose.all": "Alle", "firehose.all": "Alle",
"firehose.local": "Denne tenaren", "firehose.local": "Denne tenaren",
@ -471,7 +472,11 @@
"notification.own_poll": "Rundspørjinga di er ferdig", "notification.own_poll": "Rundspørjinga di er ferdig",
"notification.poll": "Ei rundspørjing du har røysta i er ferdig", "notification.poll": "Ei rundspørjing du har røysta i er ferdig",
"notification.reblog": "{name} framheva innlegget ditt", "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.status": "{name} la nettopp ut",
"notification.update": "{name} redigerte eit innlegg", "notification.update": "{name} redigerte eit innlegg",
"notification_requests.accept": "Godkjenn", "notification_requests.accept": "Godkjenn",
@ -484,6 +489,8 @@
"notifications.column_settings.admin.sign_up": "Nyleg registrerte:", "notifications.column_settings.admin.sign_up": "Nyleg registrerte:",
"notifications.column_settings.alert": "Skrivebordsvarsel", "notifications.column_settings.alert": "Skrivebordsvarsel",
"notifications.column_settings.favourite": "Favorittar:", "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": "Nye fylgjarar:",
"notifications.column_settings.follow_request": "Ny fylgjarførespurnader:", "notifications.column_settings.follow_request": "Ny fylgjarførespurnader:",
"notifications.column_settings.mention": "Omtalar:", "notifications.column_settings.mention": "Omtalar:",
@ -588,12 +595,6 @@
"refresh": "Oppdater", "refresh": "Oppdater",
"regeneration_indicator.label": "Lastar…", "regeneration_indicator.label": "Lastar…",
"regeneration_indicator.sublabel": "Heimetidslina di vert førebudd!", "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.days": "{number}dg",
"relative_time.full.days": "{number, plural, one {# dag} other {# dagar}} sidan", "relative_time.full.days": "{number, plural, one {# dag} other {# dagar}} sidan",
"relative_time.full.hours": "{number, plural, one {# time} other {# timar}} 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.select_filter.title": "Filtruj ten wpis",
"filter_modal.title.status": "Filtruj 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.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", "filtered_notifications_banner.title": "Powiadomienia filtrowane",
"firehose.all": "Wszystko", "firehose.all": "Wszystko",
"firehose.local": "Ten serwer", "firehose.local": "Ten serwer",
@ -471,7 +472,10 @@
"notification.own_poll": "Twoje głosowanie zakończyło się", "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.poll": "Głosowanie w którym brałeś(-aś) udział zakończyło się",
"notification.reblog": "Twój post został podbity przez {name}", "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.status": "{name} opublikował(a) nowy wpis",
"notification.update": "{name} edytował(a) post", "notification.update": "{name} edytował(a) post",
"notification_requests.accept": "Akceptuj", "notification_requests.accept": "Akceptuj",
@ -590,12 +594,6 @@
"refresh": "Odśwież", "refresh": "Odśwież",
"regeneration_indicator.label": "Ładuję…", "regeneration_indicator.label": "Ładuję…",
"regeneration_indicator.sublabel": "Twoja oś czasu jest przygotowywana!", "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.days": "{number} dni",
"relative_time.full.days": "{number, plural, one {# dzień} few {# dni} many {# dni} other {# dni}} temu", "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", "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.own_poll": "A sua votação terminou",
"notification.poll": "Uma votação em que participaste chegou ao fim", "notification.poll": "Uma votação em que participaste chegou ao fim",
"notification.reblog": "{name} reforçou a tua publicação", "notification.reblog": "{name} reforçou a tua publicação",
"notification.severed_relationships": "Relações com {name} cessadas",
"notification.status": "{name} acabou de publicar", "notification.status": "{name} acabou de publicar",
"notification.update": "{name} editou uma publicação", "notification.update": "{name} editou uma publicação",
"notification_requests.accept": "Aceitar", "notification_requests.accept": "Aceitar",
@ -590,12 +589,6 @@
"refresh": "Actualizar", "refresh": "Actualizar",
"regeneration_indicator.label": "A carregar…", "regeneration_indicator.label": "A carregar…",
"regeneration_indicator.sublabel": "A tua página inicial está a ser preparada!", "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.days": "{number}d",
"relative_time.full.days": "{number, plural,one {# dia} other {# dias}} atrás", "relative_time.full.days": "{number, plural,one {# dia} other {# dias}} atrás",
"relative_time.full.hours": "{number, plural,one {# hora}other {# horas}} 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.own_poll": "Vaša anketa sa skončila",
"notification.poll": "Anketa, v ktorej ste hlasovali, sa skončila", "notification.poll": "Anketa, v ktorej ste hlasovali, sa skončila",
"notification.reblog": "{name} zdieľa váš príspevok", "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.status": "{name} uverejňuje niečo nové",
"notification.update": "{name} upravuje príspevok", "notification.update": "{name} upravuje príspevok",
"notification_requests.accept": "Prijať", "notification_requests.accept": "Prijať",
@ -557,8 +558,6 @@
"refresh": "Obnoviť", "refresh": "Obnoviť",
"regeneration_indicator.label": "Načítavanie…", "regeneration_indicator.label": "Načítavanie…",
"regeneration_indicator.sublabel": "Váš domovský kanál sa pripravuje.", "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.days": "{number} dní",
"relative_time.full.days": "Pred {number, plural, one {# dňom} other {# dňami}}", "relative_time.full.days": "Pred {number, plural, one {# dňom} other {# dňami}}",
"relative_time.full.hours": "Pred {number, plural, one {# hodinou} other {# hodinami}}", "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.own_poll": "Vaša anketa je zaključena",
"notification.poll": "Anketa, v kateri ste sodelovali, je zaključena", "notification.poll": "Anketa, v kateri ste sodelovali, je zaključena",
"notification.reblog": "{name} je izpostavila/a vašo objavo", "notification.reblog": "{name} je izpostavila/a vašo objavo",
"notification.severed_relationships": "Veze z {name} prekinjene",
"notification.status": "{name} je pravkar objavil/a", "notification.status": "{name} je pravkar objavil/a",
"notification.update": "{name} je uredil(a) objavo", "notification.update": "{name} je uredil(a) objavo",
"notification_requests.accept": "Sprejmi", "notification_requests.accept": "Sprejmi",
@ -484,6 +483,8 @@
"notifications.column_settings.admin.sign_up": "Novi vpisi:", "notifications.column_settings.admin.sign_up": "Novi vpisi:",
"notifications.column_settings.alert": "Namizna obvestila", "notifications.column_settings.alert": "Namizna obvestila",
"notifications.column_settings.favourite": "Priljubljeni:", "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": "Novi sledilci:",
"notifications.column_settings.follow_request": "Nove prošnje za sledenje:", "notifications.column_settings.follow_request": "Nove prošnje za sledenje:",
"notifications.column_settings.mention": "Omembe:", "notifications.column_settings.mention": "Omembe:",
@ -588,12 +589,6 @@
"refresh": "Osveži", "refresh": "Osveži",
"regeneration_indicator.label": "Nalaganje …", "regeneration_indicator.label": "Nalaganje …",
"regeneration_indicator.sublabel": "Vaš domači vir se pripravlja!", "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.days": "{number} d",
"relative_time.full.days": "{number, plural, one {pred # dnem} two {pred # dnevoma} few {pred # dnevi} other {pred # dnevi}}", "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}}", "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.subtitle": "Përdorni një kategori ekzistuese, ose krijoni një të re",
"filter_modal.select_filter.title": "Filtroje këtë postim", "filter_modal.select_filter.title": "Filtroje këtë postim",
"filter_modal.title.status": "Filtroni një 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", "filtered_notifications_banner.title": "Njoftime të filtruar",
"firehose.all": "Krejt", "firehose.all": "Krejt",
"firehose.local": "Këtë shërbyes", "firehose.local": "Këtë shërbyes",
@ -470,7 +471,11 @@
"notification.own_poll": "Pyetësori juaj ka përfunduar", "notification.own_poll": "Pyetësori juaj ka përfunduar",
"notification.poll": "Ka përfunduar një pyetësor ku keni votuar", "notification.poll": "Ka përfunduar një pyetësor ku keni votuar",
"notification.reblog": "{name} përforcoi mesazhin tuaj", "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.status": "{name} sapo postoi",
"notification.update": "{name} përpunoi një postim", "notification.update": "{name} përpunoi një postim",
"notification_requests.accept": "Pranoje", "notification_requests.accept": "Pranoje",
@ -587,12 +592,6 @@
"refresh": "Rifreskoje", "refresh": "Rifreskoje",
"regeneration_indicator.label": "Po ngarkohet…", "regeneration_indicator.label": "Po ngarkohet…",
"regeneration_indicator.sublabel": "Prurja juaj vetjake po përgatitet!", "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.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# ditë} other {# ditë}} më parë", "relative_time.full.days": "{number, plural, one {# ditë} other {# ditë}} më parë",
"relative_time.full.hours": "{number, plural, one {# orë} other {# orë}} 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.own_poll": "Din röstning har avslutats",
"notification.poll": "En omröstning du röstat i har avslutats", "notification.poll": "En omröstning du röstat i har avslutats",
"notification.reblog": "{name} boostade ditt inlägg", "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.status": "{name} publicerade just ett inlägg",
"notification.update": "{name} redigerade ett inlägg", "notification.update": "{name} redigerade ett inlägg",
"notification_requests.accept": "Godkänn", "notification_requests.accept": "Godkänn",
@ -573,11 +574,6 @@
"refresh": "Läs om", "refresh": "Läs om",
"regeneration_indicator.label": "Laddar…", "regeneration_indicator.label": "Laddar…",
"regeneration_indicator.sublabel": "Ditt hemmaflöde förbereds!", "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.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# dag} other {# dagar}} sedan", "relative_time.full.days": "{number, plural, one {# dag} other {# dagar}} sedan",
"relative_time.full.hours": "{number, plural, one {# timme} other {# timmar}} 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.select_filter.title": "กรองโพสต์นี้",
"filter_modal.title.status": "กรองโพสต์", "filter_modal.title.status": "กรองโพสต์",
"filtered_notifications_banner.pending_requests": "การแจ้งเตือนจาก {count, plural, =0 {ไม่มีใคร} other {# คน}} ที่คุณอาจรู้จัก", "filtered_notifications_banner.pending_requests": "การแจ้งเตือนจาก {count, plural, =0 {ไม่มีใคร} other {# คน}} ที่คุณอาจรู้จัก",
"filtered_notifications_banner.private_mentions": "{count, plural, other {การกล่าวถึงแบบส่วนตัว}}",
"filtered_notifications_banner.title": "การแจ้งเตือนที่กรองอยู่", "filtered_notifications_banner.title": "การแจ้งเตือนที่กรองอยู่",
"firehose.all": "ทั้งหมด", "firehose.all": "ทั้งหมด",
"firehose.local": "เซิร์ฟเวอร์นี้", "firehose.local": "เซิร์ฟเวอร์นี้",
@ -471,7 +472,11 @@
"notification.own_poll": "การสำรวจความคิดเห็นของคุณได้สิ้นสุดแล้ว", "notification.own_poll": "การสำรวจความคิดเห็นของคุณได้สิ้นสุดแล้ว",
"notification.poll": "การสำรวจความคิดเห็นที่คุณได้ลงคะแนนได้สิ้นสุดแล้ว", "notification.poll": "การสำรวจความคิดเห็นที่คุณได้ลงคะแนนได้สิ้นสุดแล้ว",
"notification.reblog": "{name} ได้ดันโพสต์ของคุณ", "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.status": "{name} เพิ่งโพสต์",
"notification.update": "{name} ได้แก้ไขโพสต์", "notification.update": "{name} ได้แก้ไขโพสต์",
"notification_requests.accept": "ยอมรับ", "notification_requests.accept": "ยอมรับ",
@ -590,12 +595,6 @@
"refresh": "รีเฟรช", "refresh": "รีเฟรช",
"regeneration_indicator.label": "กำลังโหลด…", "regeneration_indicator.label": "กำลังโหลด…",
"regeneration_indicator.sublabel": "กำลังเตรียมฟีดหน้าแรกของคุณ!", "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.days": "{number} วัน",
"relative_time.full.days": "{number, plural, other {# วัน}}ที่แล้ว", "relative_time.full.days": "{number, plural, other {# วัน}}ที่แล้ว",
"relative_time.full.hours": "{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.select_filter.title": "Bu gönderiyi süzgeçle",
"filter_modal.title.status": "Bir gönderi 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.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", "filtered_notifications_banner.title": "Filtrelenmiş bildirimler",
"firehose.all": "Tümü", "firehose.all": "Tümü",
"firehose.local": "Bu sunucu", "firehose.local": "Bu sunucu",
@ -471,7 +472,11 @@
"notification.own_poll": "Anketiniz sona erdi", "notification.own_poll": "Anketiniz sona erdi",
"notification.poll": "Oy verdiğiniz bir anket sona erdi", "notification.poll": "Oy verdiğiniz bir anket sona erdi",
"notification.reblog": "{name} gönderini yeniden paylaştı", "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.status": "{name} az önce gönderdi",
"notification.update": "{name} bir gönderiyi düzenledi", "notification.update": "{name} bir gönderiyi düzenledi",
"notification_requests.accept": "Onayla", "notification_requests.accept": "Onayla",
@ -590,12 +595,6 @@
"refresh": "Yenile", "refresh": "Yenile",
"regeneration_indicator.label": "Yükleniyor…", "regeneration_indicator.label": "Yükleniyor…",
"regeneration_indicator.sublabel": "Ana akışın hazırlanıyor!", "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.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# gün} other {# gün}} önce", "relative_time.full.days": "{number, plural, one {# gün} other {# gün}} önce",
"relative_time.full.hours": "{number, plural, one {# saat} other {# saat}} önce", "relative_time.full.hours": "{number, plural, one {# saat} other {# saat}} önce",

View File

@ -460,7 +460,9 @@
"notification.own_poll": "Ваше опитування завершилося", "notification.own_poll": "Ваше опитування завершилося",
"notification.poll": "Опитування, у якому ви голосували, скінчилося", "notification.poll": "Опитування, у якому ви голосували, скінчилося",
"notification.reblog": "{name} поширює ваш допис", "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.status": "{name} щойно дописує",
"notification.update": "{name} змінює допис", "notification.update": "{name} змінює допис",
"notification_requests.accept": "Прийняти", "notification_requests.accept": "Прийняти",
@ -575,12 +577,6 @@
"refresh": "Оновити", "refresh": "Оновити",
"regeneration_indicator.label": "Завантаження…", "regeneration_indicator.label": "Завантаження…",
"regeneration_indicator.sublabel": "Хвилинку, ми готуємо вашу стрічку!", "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.days": "{number}д",
"relative_time.full.days": "{number, plural, one {# день} few {# дні} other {# днів}} тому", "relative_time.full.days": "{number, plural, one {# день} few {# дні} other {# днів}} тому",
"relative_time.full.hours": "{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.select_filter.title": "Lọc tút này",
"filter_modal.title.status": "Lọc một tút", "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.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", "filtered_notifications_banner.title": "Thông báo đã lọc",
"firehose.all": "Toàn bộ", "firehose.all": "Toàn bộ",
"firehose.local": "Máy chủ này", "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.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.poll": "Cuộc bình chọn đã kết thúc",
"notification.reblog": "{name} đăng lại tút của bạn", "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.status": "{name} đăng tút mới",
"notification.update": "{name} đã sửa tút", "notification.update": "{name} đã sửa tút",
"notification_requests.accept": "Chấp nhận", "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.admin.sign_up": "Người mới tham gia:",
"notifications.column_settings.alert": "Báo trên máy tính", "notifications.column_settings.alert": "Báo trên máy tính",
"notifications.column_settings.favourite": "Lượt thích:", "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": "Người theo dõi:",
"notifications.column_settings.follow_request": "Yêu cầu theo dõi:", "notifications.column_settings.follow_request": "Yêu cầu theo dõi:",
"notifications.column_settings.mention": "Lượt nhắc đến:", "notifications.column_settings.mention": "Lượt nhắc đến:",
@ -588,12 +595,6 @@
"refresh": "Làm mới", "refresh": "Làm mới",
"regeneration_indicator.label": "Đang tải…", "regeneration_indicator.label": "Đang tải…",
"regeneration_indicator.sublabel": "Trang chủ của bạn đang được cập nhật!", "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.days": "{number} ngày",
"relative_time.full.days": "{number, plural, other {# ngày}}", "relative_time.full.days": "{number, plural, other {# ngày}}",
"relative_time.full.hours": "{number, plural, other {# giờ}}", "relative_time.full.hours": "{number, plural, other {# giờ}}",

View File

@ -298,6 +298,7 @@
"filter_modal.select_filter.title": "过滤此嘟文", "filter_modal.select_filter.title": "过滤此嘟文",
"filter_modal.title.status": "过滤一条嘟文", "filter_modal.title.status": "过滤一条嘟文",
"filtered_notifications_banner.pending_requests": "来自你可能认识的 {count, plural, =0 {0 个人} other {# 个人}}的通知", "filtered_notifications_banner.pending_requests": "来自你可能认识的 {count, plural, =0 {0 个人} other {# 个人}}的通知",
"filtered_notifications_banner.private_mentions": "{count, plural, other {私下提及}}",
"filtered_notifications_banner.title": "通知(已过滤)", "filtered_notifications_banner.title": "通知(已过滤)",
"firehose.all": "全部", "firehose.all": "全部",
"firehose.local": "此服务器", "firehose.local": "此服务器",
@ -471,7 +472,11 @@
"notification.own_poll": "你的投票已经结束", "notification.own_poll": "你的投票已经结束",
"notification.poll": "你参与的一个投票已经结束", "notification.poll": "你参与的一个投票已经结束",
"notification.reblog": "{name} 转发了你的嘟文", "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.status": "{name} 刚刚发布嘟文",
"notification.update": "{name} 编辑了嘟文", "notification.update": "{name} 编辑了嘟文",
"notification_requests.accept": "接受", "notification_requests.accept": "接受",
@ -590,12 +595,6 @@
"refresh": "刷新", "refresh": "刷新",
"regeneration_indicator.label": "加载中…", "regeneration_indicator.label": "加载中…",
"regeneration_indicator.sublabel": "你的主页动态正在准备中!", "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.days": "{number} 天前",
"relative_time.full.days": "{number, plural, one {# 天} other {# 天}}前", "relative_time.full.days": "{number, plural, one {# 天} other {# 天}}前",
"relative_time.full.hours": "{number, plural, one {# 小时} other {# 小时}}前", "relative_time.full.hours": "{number, plural, one {# 小时} other {# 小时}}前",

View File

@ -471,7 +471,6 @@
"notification.own_poll": "你的投票已結束", "notification.own_poll": "你的投票已結束",
"notification.poll": "你參與過的一個投票已經結束", "notification.poll": "你參與過的一個投票已經結束",
"notification.reblog": "{name} 轉推你的文章", "notification.reblog": "{name} 轉推你的文章",
"notification.severed_relationships": "已斷絕與 {name} 的關係",
"notification.status": "{name} 剛發表了文章", "notification.status": "{name} 剛發表了文章",
"notification.update": "{name} 編輯了帖文", "notification.update": "{name} 編輯了帖文",
"notification_requests.accept": "接受", "notification_requests.accept": "接受",
@ -588,12 +587,6 @@
"refresh": "重新整理", "refresh": "重新整理",
"regeneration_indicator.label": "載入中……", "regeneration_indicator.label": "載入中……",
"regeneration_indicator.sublabel": "你的主頁時間軸正在準備中!", "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.days": "{number}日前",
"relative_time.full.days": "{number, plural, one {# 天} other {# 天}}前", "relative_time.full.days": "{number, plural, one {# 天} other {# 天}}前",
"relative_time.full.hours": "{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.select_filter.title": "過濾此嘟文",
"filter_modal.title.status": "過濾一則嘟文", "filter_modal.title.status": "過濾一則嘟文",
"filtered_notifications_banner.pending_requests": "來自您可能認識的 {count, plural, =0 {0 人} other {# 人}} 之通知", "filtered_notifications_banner.pending_requests": "來自您可能認識的 {count, plural, =0 {0 人} other {# 人}} 之通知",
"filtered_notifications_banner.private_mentions": "{count, plural, other {# 則私訊}}",
"filtered_notifications_banner.title": "已過濾之通知", "filtered_notifications_banner.title": "已過濾之通知",
"firehose.all": "全部", "firehose.all": "全部",
"firehose.local": "本站", "firehose.local": "本站",
@ -471,7 +472,11 @@
"notification.own_poll": "您的投票已結束", "notification.own_poll": "您的投票已結束",
"notification.poll": "您曾投過的投票已經結束", "notification.poll": "您曾投過的投票已經結束",
"notification.reblog": "{name} 已轉嘟您的嘟文", "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.status": "{name} 剛剛嘟文",
"notification.update": "{name} 已編輯嘟文", "notification.update": "{name} 已編輯嘟文",
"notification_requests.accept": "接受", "notification_requests.accept": "接受",
@ -590,12 +595,6 @@
"refresh": "重新整理", "refresh": "重新整理",
"regeneration_indicator.label": "載入中…", "regeneration_indicator.label": "載入中…",
"regeneration_indicator.sublabel": "您的首頁時間軸正在準備中!", "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.days": "{number} 天",
"relative_time.full.days": "{number, plural, other {# 天}}前", "relative_time.full.days": "{number, plural, other {# 天}}前",
"relative_time.full.hours": "{number, plural, one {# 小時} other {# 小時}}前", "relative_time.full.hours": "{number, plural, one {# 小時} other {# 小時}}前",

View File

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

View File

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

View File

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

View File

@ -132,12 +132,13 @@ class Account < ApplicationRecord
scope :auditable, -> { where(id: Admin::ActionLog.select(:account_id).distinct) } scope :auditable, -> { where(id: Admin::ActionLog.select(:account_id).distinct) }
scope :searchable, -> { without_unapproved.without_suspended.where(moved_to_account_id: nil) } scope :searchable, -> { without_unapproved.without_suspended.where(moved_to_account_id: nil) }
scope :discoverable, -> { searchable.without_silenced.where(discoverable: true).joins(:account_stat) } 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 :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 :popular, -> { order('account_stats.followers_count desc') }
scope :by_domain_and_subdomains, ->(domain) { where(domain: Instance.by_domain_and_subdomains(domain).select(:domain)) } 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_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 :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 after_update_commit :trigger_update_webhooks

View File

@ -20,6 +20,9 @@ class AccountStat < ApplicationRecord
belongs_to :account, inverse_of: :account_stat 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) update_index('accounts', :account)
def following_count def following_count

View File

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

View File

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

View File

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

View File

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

View File

@ -86,8 +86,8 @@ class Trends::Links < Trends::Base
def request_review def request_review
PreviewCardTrend.pluck('distinct language').flat_map do |language| 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 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, allowed: false).joins(:preview_card) preview_card_trends = PreviewCardTrend.where(language: language).not_allowed.joins(:preview_card)
preview_card_trends.filter_map do |trend| preview_card_trends.filter_map do |trend|
preview_card = trend.preview_card preview_card = trend.preview_card

View File

@ -12,6 +12,7 @@ class AfterBlockDomainFromAccountService < BaseService
@domain_block_event = nil @domain_block_event = nil
clear_notifications! clear_notifications!
clear_notification_permissions!
remove_follows! remove_follows!
reject_existing_followers! reject_existing_followers!
reject_pending_follow_requests! 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 Notification.where(account: @account).where(from_account: Account.where(domain: @domain)).in_batches.delete_all
end end
def clear_notification_permissions!
NotificationPermission.where(account: @account, from_account: Account.where(domain: @domain)).in_batches.delete_all
end
def reject_existing_followers! def reject_existing_followers!
@account.passive_relationships.where(account: Account.where(domain: @domain)).includes(:account).reorder(nil).in_batches do |follows| @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) 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) UnfollowService.new.call(target_account, account) if target_account.following?(account)
RejectFollowService.new.call(target_account, account) if target_account.requested?(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) block = account.block!(target_account)
BlockWorker.perform_async(account.id, target_account.id) BlockWorker.perform_async(account.id, target_account.id)

View File

@ -5,7 +5,7 @@
.announcements-list__item__action-bar .announcements-list__item__action-bar
.announcements-list__item__meta .announcements-list__item__meta
= rule.text = rule.hint
%div %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) = 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') %> <%= 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 %> <%= raw t('application_mailer.view')%> <%= admin_software_updates_url %>

View File

@ -1,3 +1,7 @@
<%= raw t('admin_mailer.new_software_updates.body') %> <%= 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 %> <%= raw t('application_mailer.view')%> <%= admin_software_updates_url %>

View File

@ -27,7 +27,7 @@
%title= html_title %title= html_title
= stylesheet_pack_tag 'common', media: 'all', crossorigin: 'anonymous' = 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` -# 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' = stylesheet_pack_tag 'inert', media: 'all', id: 'inert-style'

View File

@ -12,7 +12,7 @@
%link{ rel: 'dns-prefetch', href: storage_host }/ %link{ rel: 'dns-prefetch', href: storage_host }/
= stylesheet_pack_tag 'common', media: 'all', crossorigin: 'anonymous' = 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' = javascript_pack_tag 'common', integrity: true, crossorigin: 'anonymous'
= preload_pack_asset "locale/#{I18n.locale}-json.js" = preload_pack_asset "locale/#{I18n.locale}-json.js"
= render_initial_state = render_initial_state

View File

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

View File

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

View File

@ -43,13 +43,13 @@ hu:
title: Emailcím megerősítése title: Emailcím megerősítése
reset_password_instructions: reset_password_instructions:
action: Jelszó módosítása action: Jelszó módosítása
explanation: A fiókodhoz tartozó jelszó módosítását kezdeményezted. explanation: Új jelszót kértél a fiókodhoz.
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. 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' subject: 'Mastodon: Jelszóvisszaállítási utasítások'
title: Jelszó visszaállítása title: Jelszó visszaállítása
two_factor_disabled: two_factor_disabled:
explanation: A bejelentkezés most már csupán email címmel és jelszóval lehetséges. 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. subtitle: A kétlépcsős hitelesítés a fiókodhoz ki lett kapcsolva.
title: Kétlépcsős hitelesítés kikapcsolva title: Kétlépcsős hitelesítés kikapcsolva
two_factor_enabled: two_factor_enabled:

View File

@ -43,7 +43,7 @@ hu:
new: Új alkalmazás new: Új alkalmazás
scopes: Hatókörök scopes: Hatókörök
show: Megjelenítés show: Megjelenítés
title: Alkalmazásaid title: Saját alkalmazások
new: new:
title: Új alkalmazás title: Új alkalmazás
show: show:
@ -77,7 +77,7 @@ hu:
never_used: Soha sem volt használva never_used: Soha sem volt használva
scopes: Jogosultságok scopes: Jogosultságok
superapp: Belső superapp: Belső
title: Hitelesített alkalmazásaid title: Hitelesített saját alkalmazások
errors: errors:
messages: messages:
access_denied: Az erőforrás tulajdonosa vagy az engedélyező kiszolgáló elutasította a kérést. 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) contrast: Mastodon (High contrast)
default: Mastodon (Dark) default: Mastodon (Dark)
mastodon-light: Mastodon (Light) mastodon-light: Mastodon (Light)
system: Automatic (use system theme)
time: time:
formats: formats:
default: "%b %d, %Y, %H:%M" default: "%b %d, %Y, %H:%M"

View File

@ -25,27 +25,27 @@ hu:
admin: admin:
account_actions: account_actions:
action: Művelet végrehajtása 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: account_moderation_notes:
create: Új moderációs bejegyzés create: Megjegyzés hagyása
created_msg: Moderációs bejegyzés létrehozva! created_msg: A moderációs megjegyzés sikeresen létrehozva!
destroyed_msg: Moderációs bejegyzés törölve! destroyed_msg: A moderációs megjegyzés sikeresen törölve!
accounts: 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 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? are_you_sure: Biztos vagy benne?
avatar: Profilkép avatar: Profilkép
by_domain: Domain by_domain: Domain
change_email: change_email:
changed_msg: Az emailt sikeresen megváltoztattuk! changed_msg: Az e-mail-cím sikeresen megváltozott!
current_email: Jelenlegi e-mail current_email: Jelenlegi e-mail-cím
label: E-mail megváltoztatása label: E-mail-cím megváltoztatása
new_email: Új e-mail new_email: Új e-mail-cím
submit: E-mail megváltoztatása submit: E-mail-cím megváltoztatása
title: "%{username} felhasználó e-mail változás" title: "%{username} e-mail-címének megváltoztatása"
change_role: change_role:
changed_msg: A szerepet sikeresen megváltoztattuk! changed_msg: A szerep sikeresen megváltoztatva!
label: Szerep megváltoztatása label: Szerep megváltoztatása
no_role: Nincs szerep no_role: Nincs szerep
title: "%{username} szerepének megváltoztatása" title: "%{username} szerepének megváltoztatása"
@ -1224,7 +1224,7 @@ hu:
archive_takeout: archive_takeout:
date: Dátum date: Dátum
download: Archívum letöltése 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… in_progress: Archívum összeállítása…
request: Archívum kérése request: Archívum kérése
size: Méret size: Méret

View File

@ -1659,15 +1659,25 @@ is:
import: Flytja inn import: Flytja inn
import_and_export: Inn- og útflutningur import_and_export: Inn- og útflutningur
migrate: Yfirfærsla notandaaðgangs migrate: Yfirfærsla notandaaðgangs
notifications: Tilkynningar í tölvupósti
preferences: Kjörstillingar preferences: Kjörstillingar
profile: Notandasnið profile: Notandasnið
relationships: Fylgist með og fylgjendur relationships: Fylgist með og fylgjendur
severed_relationships: Rofin tengsl
statuses_cleanup: Sjálfvirk eyðing færslna statuses_cleanup: Sjálfvirk eyðing færslna
strikes: Umsýsla refsinga strikes: Umsýsla refsinga
two_factor_authentication: Tveggja-þátta auðkenning two_factor_authentication: Tveggja-þátta auðkenning
webauthn_authentication: Öryggislyklar webauthn_authentication: Öryggislyklar
severed_relationships: severed_relationships:
download: Sækja (%{count}) 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 type: Atburður
statuses: statuses:
attached: attached:

View File

@ -1944,6 +1944,11 @@ sl:
follows_subtitle: Sledite dobro znanim računom follows_subtitle: Sledite dobro znanim računom
follows_title: Komu slediti follows_title: Komu slediti
follows_view_more: Pokaži več oseb za sledenje 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_subtitle: Raziščite, kaj je v trendu zadnja dva dni
hashtags_title: Ključniki v trendu hashtags_title: Ključniki v trendu
hashtags_view_more: Pokaži več ključnikov v trendu hashtags_view_more: Pokaži več ključnikov v trendu

View File

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

View File

@ -4,46 +4,50 @@ class MigrateInteractionSettingsToPolicy < ActiveRecord::Migration[7.1]
disable_ddl_transaction! disable_ddl_transaction!
# Dummy classes, to make migration possible across version changes # 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 class User < ApplicationRecord
belongs_to :account belongs_to :notification_policy, foreign_key: 'account_id', primary_key: 'account_id', optional: true, inverse_of: false
end end
class NotificationPolicy < ApplicationRecord class NotificationPolicy < ApplicationRecord; end
belongs_to :account
end
def up def up
User.includes(account: :notification_policy).find_each do |user| User.includes(:notification_policy).in_batches do |users|
deserialized_settings = Oj.load(user.attributes_before_type_cast['settings']) NotificationPolicy.upsert_all(users.filter_map { |user| policy_for_user(user) })
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?
end end
end end
def down; 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 end

View File

@ -4,51 +4,51 @@ class MigrateInteractionSettingsToPolicyAgain < ActiveRecord::Migration[7.1]
disable_ddl_transaction! disable_ddl_transaction!
# Dummy classes, to make migration possible across version changes # 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 class User < ApplicationRecord
belongs_to :account belongs_to :notification_policy, foreign_key: 'account_id', primary_key: 'account_id', optional: true, inverse_of: false
end end
class NotificationPolicy < ApplicationRecord class NotificationPolicy < ApplicationRecord; end
belongs_to :account
end
def up def up
User.includes(account: :notification_policy).find_each do |user| User.includes(:notification_policy).in_batches do |users|
deserialized_settings = Oj.load(user.attributes_before_type_cast['settings']) NotificationPolicy.insert_all(users.filter_map { |user| policy_for_user(user) })
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
end end
end end
def down; 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 end

View File

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

View File

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