Merge commit '0b4a3a04378ce43f2f314b9446b5053f6b374c6d' into glitch-soc/merge-upstream

Conflicts:
- `Gemfile.lock`:
  Conflict caused by the `json` gem thing once again.
  Updated as upstream did, but keeping the most recent `json` version.
- `spec/helpers/application_helper_spec.rb`:
  Upstream refactored a bunch of specs, including one place that differs
  because of glitch-soc's theming system.
  Refactored as upstream did, adapting it for glitch-soc's theming system.
main
Claire 2023-12-20 22:16:50 +01:00
commit 077e0c6812
125 changed files with 1272 additions and 497 deletions

View File

@ -120,7 +120,6 @@ module.exports = defineConfig({
'react/jsx-uses-react': 'off', // not needed with new JSX transform
'react/jsx-wrap-multilines': 'error',
'react/no-deprecated': 'off',
'react/no-unknown-property': 'off',
'react/react-in-jsx-scope': 'off', // not needed with new JSX transform
'react/self-closing-comp': 'error',

View File

@ -50,7 +50,6 @@
matchManagers: ['bundler'],
matchPackageNames: [
'rack', // Needs to be synced with Rails version
'sprockets', // Requires manual upgrade https://github.com/rails/sprockets/blob/master/UPGRADING.md#guide-to-upgrading-from-sprockets-3x-to-4x
'strong_migrations', // Requires manual upgrade
'sidekiq', // Requires manual upgrade
'sidekiq-unique-jobs', // Requires manual upgrades and sync with Sidekiq version

View File

@ -112,20 +112,6 @@ Rails/HasAndBelongsToMany:
- 'app/models/status.rb'
- 'app/models/tag.rb'
# Configuration parameters: Include.
# Include: app/models/**/*.rb
Rails/HasManyOrHasOneDependent:
Exclude:
- 'app/models/concerns/account/counters.rb'
- 'app/models/conversation.rb'
- 'app/models/custom_emoji.rb'
- 'app/models/custom_emoji_category.rb'
- 'app/models/domain_block.rb'
- 'app/models/invite.rb'
- 'app/models/status.rb'
- 'app/models/user.rb'
- 'app/models/web/push_subscription.rb'
# Configuration parameters: Include.
# Include: app/controllers/**/*.rb, app/mailers/**/*.rb
Rails/LexicallyScopedActionFilter:

View File

@ -5,7 +5,7 @@ ruby '>= 3.0.0'
gem 'puma', '~> 6.3'
gem 'rails', '~> 7.1.1'
gem 'sprockets', '~> 3.7.2'
gem 'propshaft'
gem 'thor', '~> 1.2'
gem 'rack', '~> 2.2.7'
@ -89,7 +89,6 @@ gem 'sidekiq-unique-jobs', '~> 7.1'
gem 'sidekiq-bulk', '~> 0.2.0'
gem 'simple-navigation', '~> 4.4'
gem 'simple_form', '~> 5.2'
gem 'sprockets-rails', '~> 3.4', require: 'sprockets/railtie'
gem 'stoplight', '~> 3.0.1'
gem 'strong_migrations', '1.6.4'
gem 'tty-prompt', '~> 0.23', require: false

View File

@ -175,7 +175,7 @@ GEM
blurhash (0.1.7)
bootsnap (1.17.0)
msgpack (~> 1.2)
brakeman (6.0.1)
brakeman (6.1.0)
browser (5.3.1)
brpoplpush-redis_script (0.1.3)
concurrent-ruby (~> 1.0, >= 1.0.5)
@ -197,7 +197,7 @@ GEM
activesupport
cbor (0.5.9.6)
charlock_holmes (0.7.7)
chewy (7.3.4)
chewy (7.3.5)
activesupport (>= 5.2)
elasticsearch (>= 7.12.0, < 7.14.0)
elasticsearch-dsl
@ -245,7 +245,7 @@ GEM
docile (1.4.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
doorkeeper (5.6.7)
doorkeeper (5.6.8)
railties (>= 5)
dotenv (2.8.1)
dotenv-rails (2.8.1)
@ -377,11 +377,11 @@ GEM
terminal-table (>= 1.5.1)
idn-ruby (0.1.5)
io-console (0.6.0)
irb (1.9.1)
irb (1.10.1)
rdoc
reline (>= 0.3.8)
jmespath (1.6.2)
json (2.6.3)
json (2.7.0)
json-canonicalization (1.0.0)
json-jwt (1.15.3)
activesupport (>= 4.2)
@ -484,7 +484,8 @@ GEM
nokogiri (1.15.5)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
oj (3.16.1)
oj (3.16.2)
bigdecimal (~> 3.1)
omniauth (2.1.1)
hashie (>= 3.4.6)
rack (>= 2.2.3)
@ -534,6 +535,11 @@ GEM
net-smtp
premailer (~> 1.7, >= 1.7.9)
private_address_check (0.5.0)
propshaft (0.8.0)
actionpack (>= 7.0.0)
activesupport (>= 7.0.0)
rack
railties (>= 7.0.0)
psych (5.1.1.1)
stringio
public_suffix (5.0.4)
@ -608,7 +614,7 @@ GEM
link_header (~> 0.0, >= 0.0.8)
rdf-normalize (0.6.1)
rdf (~> 3.2)
rdoc (6.6.0)
rdoc (6.6.1)
psych (>= 4.0.0)
redcarpet (3.6.0)
redis (4.8.1)
@ -617,7 +623,7 @@ GEM
redlock (1.3.2)
redis (>= 3.0.0, < 6.0)
regexp_parser (2.8.2)
reline (0.4.0)
reline (0.4.1)
io-console (~> 0.5)
request_store (1.5.1)
rack (>= 1.4)
@ -656,7 +662,7 @@ GEM
rspec-mocks (~> 3.0)
sidekiq (>= 5, < 8)
rspec-support (3.12.1)
rubocop (1.57.2)
rubocop (1.58.0)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
@ -664,7 +670,7 @@ GEM
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml (>= 3.2.5, < 4.0)
rubocop-ast (>= 1.28.1, < 2.0)
rubocop-ast (>= 1.30.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.30.0)
@ -702,7 +708,7 @@ GEM
scenic (1.7.0)
activerecord (>= 4.0.0)
railties (>= 4.0.0)
selenium-webdriver (4.15.0)
selenium-webdriver (4.16.0)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
@ -736,18 +742,11 @@ GEM
simplecov-lcov (0.8.0)
simplecov_json_formatter (0.1.4)
smart_properties (1.17.0)
sprockets (3.7.2)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
sprockets-rails (3.4.2)
actionpack (>= 5.2)
activesupport (>= 5.2)
sprockets (>= 3.0.0)
stackprof (0.2.25)
statsd-ruby (1.5.0)
stoplight (3.0.2)
redlock (~> 1.0)
stringio (3.0.9)
stringio (3.1.0)
strong_migrations (1.6.4)
activerecord (>= 5.2)
swd (1.3.0)
@ -911,6 +910,7 @@ DEPENDENCIES
posix-spawn
premailer-rails
private_address_check (~> 0.5)
propshaft
public_suffix (~> 5.0)
puma (~> 6.3)
pundit (~> 2.3)
@ -949,8 +949,6 @@ DEPENDENCIES
simple_form (~> 5.2)
simplecov (~> 0.22)
simplecov-lcov (~> 0.8)
sprockets (~> 3.7.2)
sprockets-rails (~> 3.4)
stackprof
stoplight (~> 3.0.1)
strong_migrations (= 1.6.4)

View File

@ -64,7 +64,7 @@ class Api::BaseController < ApplicationController
end
def doorkeeper_unauthorized_render_options(error: nil)
{ json: { error: (error.try(:description) || 'Not authorized') } }
{ json: { error: error.try(:description) || 'Not authorized' } }
end
def doorkeeper_forbidden_render_options(*)

View File

@ -49,7 +49,7 @@ class Api::V1::AccountsController < Api::BaseController
end
def mute
MuteService.new.call(current_user.account, @account, notifications: truthy_param?(:notifications), duration: (params[:duration]&.to_i || 0))
MuteService.new.call(current_user.account, @account, notifications: truthy_param?(:notifications), duration: params[:duration].to_i)
render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships
end

View File

@ -298,9 +298,9 @@ class LoginForm extends React.PureComponent {
onFocus={this.handleFocus}
onBlur={this.handleBlur}
onKeyDown={this.handleKeyDown}
autocomplete='off'
autocapitalize='off'
spellcheck='false'
autoComplete='off'
autoCapitalize='off'
spellCheck='false'
/>
<Button onClick={this.handleSubmit} disabled={isSubmitting || error}><FormattedMessage id='interaction_modal.login.action' defaultMessage='Take me home' /></Button>

View File

@ -82,7 +82,7 @@ class NavigationPanel extends Component {
</div>
{banner &&
<div class='navigation-panel__banner'>
<div className='navigation-panel__banner'>
{banner}
</div>
}

View File

@ -612,7 +612,6 @@ class Video extends PureComponent {
aria-label={alt}
title={alt}
lang={lang}
volume={volume}
onClick={this.togglePlay}
onKeyDown={this.handleVideoKeyDown}
onPlay={this.handlePlay}

View File

@ -499,6 +499,7 @@
"report_notification.open": "Ubrir informe",
"search.placeholder": "Buscar",
"search.search_or_paste": "Buscar u apegar URL",
"search_popout.full_text_search_logged_out_message": "Nomás disponible iniciando la sesión.",
"search_results.all": "Totz",
"search_results.hashtags": "Etiquetas",
"search_results.nothing_found": "No se podió trobar cosa pa estes termins de busqueda",

View File

@ -482,6 +482,7 @@
"onboarding.follows.lead": "La teva línia de temps inici només està a les teves mans. Com més gent segueixis, més activa i interessant serà. Aquests perfils poden ser un bon punt d'inici—sempre pots acabar deixant de seguir-los!:",
"onboarding.follows.title": "Personalitza la pantalla d'inci",
"onboarding.profile.discoverable": "Fes el meu perfil descobrible",
"onboarding.profile.discoverable_hint": "En acceptar d'ésser descobert a Mastodon els teus missatges poden aparèixer dins les tendències i els resultats de cerques, i el teu perfil es pot suggerir a qui tingui interessos semblants als teus.",
"onboarding.profile.display_name": "Nom que es mostrarà",
"onboarding.profile.display_name_hint": "El teu nom complet o el teu malnom…",
"onboarding.profile.lead": "Sempre ho pots completar més endavant a la configuració, on hi ha encara més opcions disponibles.",

View File

@ -606,7 +606,7 @@
"search.quick_action.status_search": "Publicaciones que coinciden con {x}",
"search.search_or_paste": "Buscar o pegar URL",
"search_popout.full_text_search_disabled_message": "No disponible en {domain}.",
"search_popout.full_text_search_logged_out_message": "Solo disponible si inicias sesión.",
"search_popout.full_text_search_logged_out_message": "Sólo disponible al iniciar sesión.",
"search_popout.language_code": "Código de idioma ISO",
"search_popout.options": "Opciones de búsqueda",
"search_popout.quick_actions": "Acciones rápidas",

View File

@ -1,7 +1,7 @@
{
"about.blocks": "کارسازهای نظارت شده",
"about.contact": "تماس:",
"about.disclaimer": "ماستودون نرم‌افزار آزاد و یک شرکت غیر انتفاعی آلمانی با مسئولیت محدود است.",
"about.disclaimer": "ماستودون نرم‌افزار آزاد و نشان تجاری یک شرکت غیر انتفاعی با مسئولیت محدود آلمانی است.",
"about.domain_blocks.no_reason_available": "دلیلی موجود نیست",
"about.domain_blocks.preamble": "ماستودون عموماً می‌گذارد محتوا را از از هر کارساز دیگری در دنیای شبکه‌های اجتماعی غیرمتمرکز دیده و با آنان برهم‌کنش داشته باشید. این‌ها استثناهایی هستند که روی این کارساز خاص وضع شده‌اند.",
"about.domain_blocks.silenced.explanation": "عموماً نمایه‌ها و محتوا از این کارساز را نمی‌بینید، مگر این که به طور خاص دنبالشان گشته یا با پی گیری، داوطلب دیدنشان شوید.",
@ -21,6 +21,7 @@
"account.blocked": "مسدود",
"account.browse_more_on_origin_server": "مرور بیش‌تر روی نمایهٔ اصلی",
"account.cancel_follow_request": "رد کردن درخواست پی‌گیری",
"account.copy": "رونوشت از پیوند به نمایه",
"account.direct": "اشارهٔ خصوصی به @{name}",
"account.disable_notifications": "آگاه کردن من هنگام فرسته‌های @{name} را متوقّف کن",
"account.domain_blocked": "دامنه مسدود شد",
@ -191,6 +192,7 @@
"conversation.mark_as_read": "علامت‌گذاری به عنوان خوانده شده",
"conversation.open": "دیدن گفتگو",
"conversation.with": "با {names}",
"copy_icon_button.copied": "در بریده‌دان رونوشت شد",
"copypaste.copied": "رونوشت شد",
"copypaste.copy_to_clipboard": "رونوشت به تخته‌گیره",
"directory.federated": "از کارسازهای شناخته‌شده",
@ -486,6 +488,8 @@
"onboarding.profile.note_hint": "می‌توانید افراد دیگر را @نام‌بردن یا #برچسب بزنید…",
"onboarding.profile.save_and_continue": "ذخیره کن و ادامه بده",
"onboarding.profile.title": "تنظیم نمایه",
"onboarding.profile.upload_avatar": "بازگذاری تصویر نمایه",
"onboarding.profile.upload_header": "بارگذاری تصویر سردر نمایه",
"onboarding.share.lead": "بگذارید افراد بدانند چگونه می‌توانند در ماستادون بیابندتان!",
"onboarding.share.message": "من {username} روی #ماستودون هستم! مرا در {url} پی‌بگیرید",
"onboarding.share.next_steps": "گام‌های ممکن بعدی:",
@ -600,6 +604,7 @@
"search.quick_action.status_search": "فرسته‌های جور با {x}",
"search.search_or_paste": "جست‌وجو یا جایگذاری نشانی",
"search_popout.full_text_search_disabled_message": "روی {domain} موجود نیست.",
"search_popout.full_text_search_logged_out_message": "تنها زمانی که وارد شده‌اید دردسترس است.",
"search_popout.language_code": "کد زبان ایزو",
"search_popout.options": "گزینه‌های جست‌وجو",
"search_popout.quick_actions": "کنش‌های سریع",

View File

@ -0,0 +1 @@
{}

View File

@ -13,7 +13,7 @@
"about.rules": "Kiszolgáló szabályai",
"account.account_note_header": "Feljegyzés",
"account.add_or_remove_from_list": "Hozzáadás vagy eltávolítás a listákról",
"account.badges.bot": "Bot",
"account.badges.bot": "Automatizált",
"account.badges.group": "Csoport",
"account.block": "@{name} letiltása",
"account.block_domain": "Domain blokkolása: {domain}",
@ -63,8 +63,8 @@
"account.share": "@{name} profiljának megosztása",
"account.show_reblogs": "@{name} megtolásainak mutatása",
"account.statuses_counter": "{count, plural, one {{counter} Bejegyzés} other {{counter} Bejegyzés}}",
"account.unblock": "@{name} tiltásának feloldása",
"account.unblock_domain": "{domain} domain tiltás feloldása",
"account.unblock": "@{name} letiltásának feloldása",
"account.unblock_domain": "{domain} domain tiltásának feloldása",
"account.unblock_short": "Tiltás feloldása",
"account.unendorse": "Ne jelenjen meg a profilodon",
"account.unfollow": "Követés megszüntetése",
@ -138,21 +138,21 @@
"compose.language.search": "Nyelv keresése...",
"compose.published.body": "A bejegyzés publikálásra került.",
"compose.published.open": "Megnyitás",
"compose.saved.body": "A bejegyzés mentésre került.",
"compose.saved.body": "A bejegyzés mentve.",
"compose_form.direct_message_warning_learn_more": "Tudj meg többet",
"compose_form.encryption_warning": "A bejegyzések Mastodonon nem használnak végpontok közötti titkosítást. Ne ossz meg semmilyen érzékeny információt Mastodonon.",
"compose_form.encryption_warning": "A bejegyzések a Mastodonon nem használnak végpontok közti titkosítást. Ne ossz meg semmilyen érzékeny információt a Mastodonon.",
"compose_form.hashtag_warning": "Ez a bejegyzésed nem fog megjelenni semmilyen hashtag alatt, mivel nem nyilvános. Csak a nyilvános bejegyzések kereshetők hashtaggel.",
"compose_form.lock_disclaimer": "A fiókod nincs {locked}. Bárki követni tud, hogy megtekintse a kizárólag követőknek szánt bejegyzéseket.",
"compose_form.lock_disclaimer.lock": "lezárva",
"compose_form.lock_disclaimer.lock": "zárolva",
"compose_form.placeholder": "Mi jár a fejedben?",
"compose_form.poll.add_option": "Lehetőség hozzáadása",
"compose_form.poll.duration": "Szavazás időtartama",
"compose_form.poll.option_placeholder": "{number}. lehetőség",
"compose_form.poll.remove_option": "Lehetőség törlése",
"compose_form.poll.remove_option": "Lehetőség eltávolítása",
"compose_form.poll.switch_to_multiple": "Szavazás megváltoztatása több választásosra",
"compose_form.poll.switch_to_single": "Szavazás megváltoztatása egyetlen választásosra",
"compose_form.publish": "Közzététel",
"compose_form.publish_form": "Közzététel",
"compose_form.publish_form": "Új bejegyzés",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Módosítások mentése",
"compose_form.sensitive.hide": "{count, plural, one {Média kényesnek jelölése} other {Média kényesnek jelölése}}",
@ -195,13 +195,13 @@
"copy_icon_button.copied": "A szöveg a vágólapra másolva",
"copypaste.copied": "Másolva",
"copypaste.copy_to_clipboard": "Másolás vágólapra",
"directory.federated": "Az ismert fediverzumból",
"directory.federated": "Az ismert födiverzumból",
"directory.local": "Csak {domain} tartományból",
"directory.new_arrivals": "Új csatlakozók",
"directory.recently_active": "Nemrég aktív",
"disabled_account_banner.account_settings": "Fiókbeállítások",
"disabled_account_banner.text": "A(z) {disabledAccount} fiókod jelenleg le van tiltva.",
"dismissable_banner.community_timeline": "Ezek a legfrissebb nyilvános bejegyzések, amelyeket {domain} tartományban levő kiszolgáló fiókjait használó emberek tettek közzé.",
"dismissable_banner.community_timeline": "Ezek a legfrissebb nyilvános bejegyzések, amelyeket a(z) {domain} kiszolgáló fiókjait használó emberek tették közzé.",
"dismissable_banner.dismiss": "Elvetés",
"dismissable_banner.explore_links": "Jelenleg ezekről a hírekről beszélgetnek az ezen és a központosítás nélküli hálózat többi kiszolgálóján lévő emberek.",
"dismissable_banner.explore_statuses": "Ezek jelenleg népszerűvé váló bejegyzések a háló különböző szegleteiből. Az újabb vagy több megtolással rendelkező bejegyzéseket, illetve a kedvencnek jelöléssel rendelkezőeket rangsoroljuk előrébb.",
@ -216,14 +216,14 @@
"emoji_button.food": "Étel és Ital",
"emoji_button.label": "Emodzsi beszúrása",
"emoji_button.nature": "Természet",
"emoji_button.not_found": "Nincsenek emodzsik!! (╯°□°)╯︵ ┻━┻",
"emoji_button.not_found": "Nem találhatók emodzsik",
"emoji_button.objects": "Tárgyak",
"emoji_button.people": "Emberek",
"emoji_button.recent": "Gyakran használt",
"emoji_button.search": "Keresés...",
"emoji_button.search_results": "Keresési találatok",
"emoji_button.symbols": "Szimbólumok",
"emoji_button.travel": "Utazás és Helyek",
"emoji_button.travel": "Utazás és helyek",
"empty_column.account_hides_collections": "Ez a felhasználó úgy döntött, hogy nem teszi elérhetővé ezt az információt.",
"empty_column.account_suspended": "Fiók felfüggesztve",
"empty_column.account_timeline": "Itt nincs bejegyzés!",
@ -245,7 +245,7 @@
"empty_column.mutes": "Még egy felhasználót sem némítottál le.",
"empty_column.notifications": "Jelenleg még nincsenek értesítéseid. Ha mások kapcsolatba lépnek veled, ezek itt lesznek láthatóak.",
"empty_column.public": "Jelenleg itt nincs semmi! Írj valamit nyilvánosan vagy kövess más kiszolgálón levő felhasználókat, hogy megtöltsd.",
"error.unexpected_crash.explanation": "Egy hiba vagy böngésző inkompatibilitás miatt ez az oldal nem jeleníthető meg rendesen.",
"error.unexpected_crash.explanation": "Egy kód- vagy böngészőkompatibilitási hiba miatt ez az oldal nem jeleníthető meg helyesen.",
"error.unexpected_crash.explanation_addons": "Ezt az oldalt nem lehet helyesen megjeleníteni. Ezt a hibát valószínűleg egy böngésző kiegészítő vagy egy automatikus fordító okozza.",
"error.unexpected_crash.next_steps": "Próbáld frissíteni az oldalt. Ha ez nem segít, egy másik böngészőn vagy appon keresztül még mindig használhatod a Mastodont.",
"error.unexpected_crash.next_steps_addons": "Próbáld letiltani őket és frissíteni az oldalt. Ha ez nem segít, egy másik böngészőn vagy appon keresztül még mindig használhatod a Mastodont.",
@ -278,13 +278,13 @@
"firehose.remote": "Egyéb kiszolgálók",
"follow_request.authorize": "Hitelesítés",
"follow_request.reject": "Elutasítás",
"follow_requests.unlocked_explanation": "Bár a fiókod nincs zárolva, a(z) {domain} csapata úgy gondolta, hogy talán kézzel szeretnéd ellenőrizni a fiók követési kéréseit.",
"follow_requests.unlocked_explanation": "Bár a fiókod nincs zárolva, a(z) {domain} csapata úgy gondolta, hogy talán kézzel szeretnéd ellenőrizni ezen fiókok követési kéréseit.",
"followed_tags": "Követett hashtagek",
"footer.about": "Névjegy",
"footer.directory": "Profiltár",
"footer.get_app": "Alkalmazás beszerzése",
"footer.invite": "Emberek meghívása",
"footer.keyboard_shortcuts": "Billentyűparancsok",
"footer.keyboard_shortcuts": "Gyorsbillentyűk",
"footer.privacy_policy": "Adatvédelmi szabályzat",
"footer.source_code": "Forráskód megtekintése",
"footer.status": "Állapot",
@ -347,13 +347,13 @@
"keyboard_shortcuts.favourite": "Bejegyzés kedvencnek jelölése",
"keyboard_shortcuts.favourites": "Kedvencek lista megnyitása",
"keyboard_shortcuts.federated": "Föderációs idővonal megnyitása",
"keyboard_shortcuts.heading": "Billentyűparancsok",
"keyboard_shortcuts.heading": "Gyorsbillentyűk",
"keyboard_shortcuts.home": "Saját idővonal megnyitása",
"keyboard_shortcuts.hotkey": "Gyorsbillentyű",
"keyboard_shortcuts.legend": "jelmagyarázat megjelenítése",
"keyboard_shortcuts.local": "helyi idővonal megnyitása",
"keyboard_shortcuts.local": "Helyi idővonal megnyitása",
"keyboard_shortcuts.mention": "Szerző megemlítése",
"keyboard_shortcuts.muted": "némított felhasználók listájának megnyitása",
"keyboard_shortcuts.muted": "Némított felhasználók listájának megnyitása",
"keyboard_shortcuts.my_profile": "Saját profil megnyitása",
"keyboard_shortcuts.notifications": "Értesítések oszlop megnyitása",
"keyboard_shortcuts.open_media": "Média megnyitása",
@ -389,7 +389,7 @@
"lists.replies_policy.list": "A lista tagjai",
"lists.replies_policy.none": "Senki",
"lists.replies_policy.title": "Nekik mutassuk a válaszokat:",
"lists.search": "Keresés a követett személyek között",
"lists.search": "Keresés a követett emberek között",
"lists.subheading": "Saját listák",
"load_pending": "{count, plural, one {# új elem} other {# új elem}}",
"loading_indicator.label": "Betöltés…",
@ -399,7 +399,7 @@
"mute_modal.hide_notifications": "Rejtsük el a felhasználótól származó értesítéseket?",
"mute_modal.indefinite": "Határozatlan",
"navigation_bar.about": "Névjegy",
"navigation_bar.advanced_interface": "Haladó webes felület engedélyezése",
"navigation_bar.advanced_interface": "Megnyitás a speciális webes felületben",
"navigation_bar.blocks": "Letiltott felhasználók",
"navigation_bar.bookmarks": "Könyvjelzők",
"navigation_bar.community_timeline": "Helyi idővonal",
@ -411,9 +411,9 @@
"navigation_bar.explore": "Felfedezés",
"navigation_bar.favourites": "Kedvencek",
"navigation_bar.filters": "Némított szavak",
"navigation_bar.follow_requests": "Követési kérelmek",
"navigation_bar.follow_requests": "Követési kérések",
"navigation_bar.followed_tags": "Követett hashtagek",
"navigation_bar.follows_and_followers": "Követettek és követők",
"navigation_bar.follows_and_followers": "Követések és követők",
"navigation_bar.lists": "Listák",
"navigation_bar.logout": "Kijelentkezés",
"navigation_bar.mutes": "Némított felhasználók",
@ -449,7 +449,7 @@
"notifications.column_settings.follow_request": "Új követési kérelmek:",
"notifications.column_settings.mention": "Megemlítések:",
"notifications.column_settings.poll": "Szavazási eredmények:",
"notifications.column_settings.push": "Push értesítések",
"notifications.column_settings.push": "Leküldéses értesítések",
"notifications.column_settings.reblog": "Megtolások:",
"notifications.column_settings.show": "Megjelenítés az oszlopban",
"notifications.column_settings.sound": "Hang lejátszása",
@ -480,7 +480,7 @@
"onboarding.compose.template": "Üdvözlet, #Mastodon!",
"onboarding.follows.empty": "Sajnos jelenleg nem jeleníthető meg eredmény. Kipróbálhatod a keresést vagy böngészheted a felfedező oldalon a követni kívánt személyeket, vagy próbáld meg később.",
"onboarding.follows.lead": "A saját hírfolyamod az elsődleges tapasztalás a Mastodonon. Minél több embert követsz, annál aktívabb és érdekesebb a dolog. Az induláshoz itt van néhány javaslat:",
"onboarding.follows.title": "Népszerű a Mastodonon",
"onboarding.follows.title": "Szabd személyre a kezdőlapodat",
"onboarding.profile.discoverable": "Saját profil beállítása felfedezhetőként",
"onboarding.profile.discoverable_hint": "A Mastodonon a felfedezhetőség választása esetén a saját bejegyzéseid megjelenhetnek a keresési eredmények és a felkapott tartalmak között, valamint a profilod a hozzád hasonló érdeklődési körrel rendelkező embereknél is ajánlásra kerülhet.",
"onboarding.profile.display_name": "Megjelenített név",
@ -499,14 +499,14 @@
"onboarding.start.lead": "Az új Mastodon-fiók használatra kész. Így hozhatod ki belőle a legtöbbet:",
"onboarding.start.skip": "Szeretnél előreugrani?",
"onboarding.start.title": "Ez sikerült!",
"onboarding.steps.follow_people.body": "Te állítod össze a saját hírfolyamodat. Töltsd meg érdekes emberekkel.",
"onboarding.steps.follow_people.body": "A Mastodon az érdekes emberek követéséről szól.",
"onboarding.steps.follow_people.title": "{count, plural, one {egy ember} other {# ember}} követése",
"onboarding.steps.publish_status.body": "Üdvözöljük a világot.",
"onboarding.steps.publish_status.title": "Az első bejegyzés létrehozása",
"onboarding.steps.setup_profile.body": "Mások nagyobb valószínűséggel lépnek kapcsolatba veled egy kitöltött profil esetén.",
"onboarding.steps.setup_profile.title": "Profilod testreszabása",
"onboarding.steps.share_profile.body": "Tudasd az ismerőseiddel, hogyan találhatnak meg a Mastodonon!",
"onboarding.steps.share_profile.title": "Profilod megosztása",
"onboarding.steps.share_profile.body": "Tudasd az ismerőseiddel, hogyan találhatnak meg a Mastodonon",
"onboarding.steps.share_profile.title": "Oszd meg a Mastodon profilodat",
"onboarding.tips.2fa": "<strong>Tudtad?</strong> A fiókod biztonságossá teheted, ha a fiók beállításaiban beállítod a kétlépcsős hitelesítést. Bármilyen választott TOTP alkalmazással működik, nincs szükség telefonszámra!",
"onboarding.tips.accounts_from_other_servers": "<strong>Tudtad?</strong> Mivel a Mastodon decentralizált, egyes profilok, amelyekkel találkozol, más kiszolgálókon lesznek tárolva. És mégis zökkenőmentesen kommunikálhatsz velük! A kiszolgáló a felhasználónevük második felében található!",
"onboarding.tips.migration": "<strong>Tudtad?</strong> Ha úgy érzed, hogy a {domain} már nem jó kiszolgáló a számodra, átköltözhetsz egy másik Mastodon kiszolgálóra anélkül, hogy elveszítenéd a követőidet. Akár saját kiszolgálót is üzemeltethetsz!",

View File

@ -302,8 +302,8 @@
"hashtag.counter_by_accounts": "{count, plural, other {{counter} 명의 참여자}}",
"hashtag.counter_by_uses": "{count, plural, other {{counter} 개의 게시물}}",
"hashtag.counter_by_uses_today": "오늘 {count, plural, other {{counter} 개의 게시물}}",
"hashtag.follow": "해시태그 팔로우",
"hashtag.unfollow": "해시태그 팔로우 해제",
"hashtag.follow": "팔로우",
"hashtag.unfollow": "팔로우 해제",
"hashtags.and_other": "…그리고 {count, plural,other {#개 더}}",
"home.actions.go_to_explore": "무엇이 유행인지 보기",
"home.actions.go_to_suggestions": "팔로우할 사람 찾기",

View File

@ -40,7 +40,7 @@
"account.follows.empty": "Šis (-i) naudotojas (-a) dar nieko neseka.",
"account.follows_you": "Seka tave",
"account.go_to_profile": "Eiti į profilį",
"account.hide_reblogs": "Slėpti \"boosts\" iš @{name}",
"account.hide_reblogs": "Slėpti pakėlimus iš @{name}",
"account.in_memoriam": "Atminimui.",
"account.joined_short": "Prisijungė",
"account.languages": "Keisti prenumeruojamas kalbas",
@ -49,19 +49,19 @@
"account.media": "Medija",
"account.mention": "Paminėti @{name}",
"account.moved_to": "{name} nurodė, kad dabar jų nauja paskyra yra:",
"account.mute": "tildyti @{name}",
"account.mute": "Nutildyti @{name}",
"account.mute_notifications_short": "Nutildyti pranešimus",
"account.mute_short": "Nutildyti",
"account.muted": "tildytas",
"account.muted": "Nutildytas",
"account.no_bio": "Nėra pateikto aprašymo.",
"account.open_original_page": "Atidaryti originalinį tinklalapį",
"account.open_original_page": "Atidaryti originalinį puslapį",
"account.posts": "Įrašai",
"account.posts_with_replies": "Įrašai ir atsakymai",
"account.report": "Pranešti @{name}",
"account.requested": "Laukiama patvirtinimo. Spausk, kad atšaukti sekimo užklausą.",
"account.requested": "Laukiama patvirtinimo. Spausk, kad atšaukti sekimo užklausą",
"account.requested_follow": "{name} paprašė tave sekti",
"account.share": "Bendrinti @{name} profilį",
"account.show_reblogs": "Rodyti \"boosts\" iš @{name}",
"account.show_reblogs": "Rodyti pakėlimus iš @{name}",
"account.statuses_counter": "{count, plural, one {{counter} įrašas} few {{counter} įrašai} many {{counter} įrašo} other {{counter} įrašų}}",
"account.unblock": "Atblokuoti @{name}",
"account.unblock_domain": "Atblokuoti domeną {domain}",
@ -73,7 +73,7 @@
"account.unmute_short": "Atitildyti",
"account_note.placeholder": "Spausk norėdamas (-a) pridėti pastabą",
"admin.dashboard.daily_retention": "Vartotojų išbuvimo rodiklis pagal dieną po registracijos",
"admin.dashboard.monthly_retention": "Vartotojų išbuvimo rodiklis pagal mėnesį po registracijos",
"admin.dashboard.monthly_retention": "Naudotojų išlaikymo rodiklis pagal mėnesį po registracijos",
"admin.dashboard.retention.average": "Vidurkis",
"admin.dashboard.retention.cohort": "Registravimo mėnuo",
"admin.dashboard.retention.cohort_size": "Nauji naudotojai",
@ -117,9 +117,9 @@
"column.favourites": "Mėgstamiausi",
"column.firehose": "Tiesioginiai padavimai",
"column.follow_requests": "Sekti prašymus",
"column.home": "Pradžia",
"column.home": "Pagrindinis",
"column.lists": "Sąrašai",
"column.mutes": "tildyti naudotojai",
"column.mutes": "Nutildyti naudotojai",
"column.notifications": "Pranešimai",
"column.pins": "Prisegti įrašai",
"column.public": "Federacinė laiko skalė",
@ -141,13 +141,13 @@
"compose.saved.body": "Įrašas išsaugotas.",
"compose_form.direct_message_warning_learn_more": "Sužinoti daugiau",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.lock_disclaimer": "Jūsų paskyra nėra {locked}. Kiekvienas gali jus sekti ir peržiūrėti tik sekėjams skirtus įrašus.",
"compose_form.hashtag_warning": "Šis įrašas nebus įtraukta į jokį saitažodį, nes ji nėra vieša. Tik viešų įrašų galima ieškoti pagal saitažodį.",
"compose_form.lock_disclaimer": "Tavo paskyra nėra {locked}. Bet kas gali sekti tave ir peržiūrėti tik sekėjams skirtus įrašus.",
"compose_form.lock_disclaimer.lock": "užrakinta",
"compose_form.placeholder": "Kas tavo mintyse?",
"compose_form.poll.add_option": "Pridėti pasirinkimą",
"compose_form.poll.duration": "Apklausos trukmė",
"compose_form.poll.option_placeholder": "Pasirinkimas {number}",
"compose_form.poll.option_placeholder": "{number} pasirinkimas",
"compose_form.poll.remove_option": "Pašalinti šį pasirinkimą",
"compose_form.poll.switch_to_multiple": "Keisti apklausą, kad būtų galima pasirinkti kelis pasirinkimus",
"compose_form.poll.switch_to_single": "Pakeisti apklausą, kad būtų galima pasirinkti vieną variantą",
@ -180,29 +180,71 @@
"confirmations.logout.message": "Ar tikrai nori atsijungti?",
"confirmations.mute.confirm": "Nutildyti",
"confirmations.mute.explanation": "Tai paslėps jų įrašus ir įrašus, kuriuose jie menėmi, tačiau jie vis tiek galės matyti tavo įrašus ir sekti.",
"confirmations.mute.message": "Ar tikrai norite nutildyti {name}?",
"confirmations.redraft.confirm": "Ištrinti ir perrašyti",
"confirmations.reply.confirm": "Atsakyti",
"confirmations.reply.message": "Atsakant dabar, bus perrašyta metu kuriama žinutė. Ar tikrai nori tęsti?",
"confirmations.unfollow.confirm": "Nebesekti",
"confirmations.unfollow.message": "Ar tikrai norite atsisakyti sekimo {name}?",
"conversation.delete": "Ištrinti pokalbį",
"conversation.mark_as_read": "Žymėti kaip skaitytą",
"conversation.open": "Peržiūrėti pokalbį",
"conversation.with": "Su {names}",
"copy_icon_button.copied": "Nukopijuota į iškarpinę",
"copypaste.copied": "Nukopijuota",
"copypaste.copy_to_clipboard": "Kopijuoti į iškarpinę",
"directory.local": "Iš {domain} tik",
"directory.new_arrivals": "Naujos prekės",
"directory.recently_active": "Neseniai aktyvus",
"disabled_account_banner.account_settings": "Paskyros nustatymai",
"disabled_account_banner.text": "Jūsų paskyra {disabledAccount} šiuo metu yra išjungta.",
"dismissable_banner.dismiss": "Atmesti",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
"dismissable_banner.explore_statuses": "Tai įrašai iš viso socialinio tinklo, kurie šiandien sulaukia vis daugiau dėmesio. Naujesni įrašai, turintys daugiau boosts ir mėgstamiausių įrašų, yra vertinami aukščiau.",
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Štai kaip tai atrodys:",
"emoji_button.activity": "Veikla",
"emoji_button.clear": "Išvalyti",
"emoji_button.custom": "Pasirinktinis",
"emoji_button.flags": "Vėliavos",
"emoji_button.food": "Maistas ir Gėrimai",
"emoji_button.label": "Įterpti veidelius",
"emoji_button.nature": "Gamta",
"emoji_button.not_found": "Nerasta jokių tinkamų jaustukų",
"emoji_button.objects": "Objektai",
"emoji_button.people": "Žmonės",
"emoji_button.recent": "Dažniausiai naudojama",
"emoji_button.search": "Paieška...",
"emoji_button.search_results": "Paieškos rezultatai",
"emoji_button.symbols": "Simboliai",
"emoji_button.travel": "Kelionės ir Vietos",
"empty_column.account_hides_collections": "Šis naudotojas (-a) pasirinko nepadaryti šią informaciją prieinamą",
"empty_column.account_suspended": "Paskyra sustabdyta",
"empty_column.account_timeline": "No toots here!",
"empty_column.account_unavailable": "Profilis neprieinamas",
"empty_column.blocks": "Dar neužblokavote nė vieno naudotojo.",
"empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
"empty_column.community": "Vietinė laiko juosta yra tuščia. Parašykite ką nors viešai, kad pradėtumėte veikti!",
"empty_column.direct": "Dar neturite jokių privačių paminėjimų. Kai išsiųsite arba gausite tokį pranešimą, jis bus rodomas čia.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "Dar neturite mėgstamiausių įrašų. Kai vieną iš jų pamėgsite, jis bus rodomas čia.",
"empty_column.follow_requests": "Dar neturite jokių sekimo užklausų. Kai gausite tokį prašymą, jis bus rodomas čia.",
"empty_column.followed_tags": "Dar nesekėte jokių grotažymių. Kai tai padarysite, jie bus rodomi čia.",
"empty_column.hashtag": "Nėra nieko šiame saitažodyje kol kas.",
"empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}",
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
"empty_column.lists": "Dar neturite jokių sąrašų. Kai jį sukursite, jis bus rodomas čia.",
"empty_column.mutes": "Dar nesate nutildę nė vieno naudotojo.",
"empty_column.notifications": "Dar neturite jokių pranešimų. Kai kiti žmonės su jumis bendraus, matysite tai čia.",
"empty_column.public": "Čia nieko nėra! Parašykite ką nors viešai arba rankiniu būdu sekite naudotojus iš kitų serverių, kad jį užpildytumėte",
"error.unexpected_crash.explanation": "Dėl mūsų kodo klaidos arba naršyklės suderinamumo problemos šis puslapis negalėjo būti rodomas teisingai.",
"error.unexpected_crash.explanation_addons": "Šį puslapį nepavyko teisingai parodyti. Šią klaidą greičiausiai sukėlė naršyklės priedas arba automatinio vertimo įrankiai.",
"error.unexpected_crash.next_steps": "Pabandykite atnaujinti puslapį. Jei tai nepadeda, galbūt vis dar galėsite naudotis \"Mastodon\" naudodami kitą naršyklę arba vietinę programėlę.",
"error.unexpected_crash.next_steps_addons": "Pabandykite juos išjungti ir atnaujinti puslapį. Jei tai nepadeda, galbūt vis dar galėsite naudotis \"Mastodon\" naudodami kitą naršyklę arba vietinę programėlę.",
"errors.unexpected_crash.report_issue": "Pranešti apie triktį",
"explore.search_results": "Paieškos rezultatai",
"explore.suggested_follows": "Žmonės",
"explore.title": "Naršyti",
"explore.trending_links": "Naujienos",
"explore.trending_statuses": "Įrašai",
@ -304,7 +346,13 @@
"moved_to_account_banner.text": "Tavo paskyra {disabledAccount} šiuo metu yra išjungta, nes persikėlei į {movedToAccount}.",
"mute_modal.duration": "Trukmė",
"mute_modal.hide_notifications": "Slėpti šio naudotojo pranešimus?",
"mute_modal.indefinite": "Neribotas",
"navigation_bar.about": "Apie",
"navigation_bar.advanced_interface": "Atidarykite išplėstinę žiniatinklio sąsają",
"navigation_bar.blocks": "Užblokuoti naudotojai",
"navigation_bar.bookmarks": "Žymės",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Privatūs paminėjimai",
"navigation_bar.discover": "Atrasti",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Redaguoti profilį",
@ -372,6 +420,7 @@
"notifications.permission_required": "Darbalaukio pranešimai nepasiekiami, nes nesuteiktas reikiamas leidimas.",
"notifications_permission_banner.enable": "Įjungti darbalaukio pranešimus",
"notifications_permission_banner.how_to_control": "Jei norite gauti pranešimus, kai \"Mastodon\" nėra atidarytas, įjunkite darbalaukio pranešimus. Įjungę darbalaukio pranešimus, galite tiksliai valdyti, kokių tipų sąveikos generuoja darbalaukio pranešimus, naudodamiesi pirmiau esančiu mygtuku {icon}.",
"notifications_permission_banner.title": "Niekada nieko nepraleiskite",
"onboarding.action.back": "Gražinkite mane atgal",
"onboarding.actions.back": "Gražinkite mane atgal",
"onboarding.actions.go_to_explore": "See what's trending",
@ -394,8 +443,10 @@
"onboarding.share.lead": "Praneškite žmonėms, kaip jus rasti \"Mastodon\"!",
"onboarding.share.message": "Aš {username} #Mastodon! Ateik sekti manęs adresu {url}",
"onboarding.share.next_steps": "Galimi kiti žingsniai:",
"onboarding.share.title": "Bendrinkite savo profilį",
"onboarding.start.lead": "Dabar esi Mastodon dalis unikalios decentralizuotos socialinės žiniasklaidos platformos, kurioje tu, o ne algoritmas, pats nustatai savo patirtį. Pradėkime tavo kelionę šioje naujoje socialinėje erdvėje:",
"onboarding.start.skip": "Want to skip right ahead?",
"onboarding.start.title": "Jums pavyko!",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
"onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}",
"onboarding.steps.publish_status.body": "Say hello to the world.",
@ -404,23 +455,46 @@
"onboarding.steps.setup_profile.title": "Customize your profile",
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
"picture_in_picture.restore": "Padėkite jį atgal",
"poll.closed": "Uždaryti",
"poll.refresh": "Atnaujinti",
"poll.reveal": "Peržiūrėti rezultatus",
"poll.vote": "Balsuoti",
"poll.voted": "Tu balsavai už šį atsakymą",
"poll.votes": "{votes, plural, one {# balsas} few {# balsai} many {# balso} other {# balsų}}",
"poll_button.add_poll": "Pridėti apklausą",
"poll_button.remove_poll": "Šalinti apklausą",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
"privacy.private.long": "Post to followers only",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Visiems matomas",
"privacy.public.short": "Viešas",
"privacy.unlisted.long": "Matomas visiems, bet atsisakyta atradimo funkcijų",
"privacy.unlisted.short": "Neįtrauktas į sąrašą",
"privacy_policy.last_updated": "Paskutinį kartą atnaujinta {date}",
"privacy_policy.title": "Privatumo politika",
"recommended": "Rekomenduojama",
"refresh": "Atnaujinti",
"regeneration_indicator.label": "Kraunasi…",
"relative_time.full.just_now": "ką tik",
"relative_time.hours": "{number} val.",
"relative_time.just_now": "dabar",
"relative_time.minutes": "{number} min.",
"relative_time.seconds": "{number} sek.",
"relative_time.today": "šiandien",
"reply_indicator.cancel": "Atšaukti",
"report.block": "Blokuoti",
"report.categories.legal": "Legalus",
"report.categories.other": "Kita",
"report.categories.spam": "Šlamštas",
"report.categories.violation": "Turinys pažeidžia vieną ar daugiau serverio taisyklių",
"report.category.subtitle": "Pasirinkite tinkamiausią variantą",
"report.category.title_account": "profilis",
"report.category.title_status": "įrašas",
"report.close": "Atlikta",
"report.comment.title": "Ar yra dar kas nors, ką, jūsų manymu, turėtume žinoti?",
"report.mute_explanation": "Jų įrašų nematysi. Jie vis tiek gali tave sekti ir matyti įrašus, bet nežinos, kad jie nutildyti.",
"report.next": "Tęsti",
"report.placeholder": "Papildomi komentarai",
@ -454,6 +528,8 @@
"search_results.hashtags": "Saitažodžiai",
"search_results.nothing_found": "Nepavyko rasti nieko pagal šiuos paieškos terminus.",
"search_results.statuses": "Toots",
"server_banner.about_active_users": "Žmonės, kurie naudojosi šiuo serveriu per pastarąsias 30 dienų (mėnesio aktyvūs naudotojai)",
"server_banner.active_users": "aktyvūs naudotojai",
"sign_in_banner.sign_in": "Prisijungimas",
"sign_in_banner.text": "Prisijunk, kad galėtum sekti profilius arba saitažodžius, mėgsti, bendrinti ir atsakyti į įrašus. Taip pat gali bendrauti iš savo paskyros kitame serveryje.",
"status.admin_status": "Open this status in the moderation interface",

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -14,6 +14,7 @@
"account.badges.group": "Grupu",
"account.block": "Bloca @{name}",
"account.block_domain": "Bloca su domìniu {domain}",
"account.block_short": "Bloca",
"account.blocked": "Blocadu",
"account.browse_more_on_origin_server": "Esplora de prus in su profilu originale",
"account.cancel_follow_request": "Withdraw follow request",
@ -31,17 +32,20 @@
"account.follows.empty": "Custa persone non sighit ancora a nemos.",
"account.follows_you": "Ti sighit",
"account.hide_reblogs": "Cua is cumpartziduras de @{name}",
"account.in_memoriam": "In memoriam.",
"account.joined_short": "At aderidu",
"account.link_verified_on": "Sa propiedade de custu ligòngiu est istada controllada su {date}",
"account.locked_info": "S'istadu de riservadesa de custu contu est istadu cunfiguradu comente blocadu. Sa persone chi tenet sa propiedade revisionat a manu chie dda podet sighire.",
"account.media": "Cuntenutu multimediale",
"account.mention": "Mèntova a @{name}",
"account.mute": "Pone a @{name} a sa muda",
"account.mute_short": "A sa muda",
"account.muted": "A sa muda",
"account.posts": "Publicatziones",
"account.posts_with_replies": "Publicatziones e rispostas",
"account.report": "Signala @{name}",
"account.requested": "Abetende s'aprovatzione. Incarca pro annullare sa rechesta de sighidura",
"account.requested_follow": "{name} at dimandadu de ti sighire",
"account.share": "Cumpartzi su profilu de @{name}",
"account.show_reblogs": "Ammustra is cumpartziduras de @{name}",
"account.statuses_counter": "{count, plural, one {{counter} publicatzione} other {{counter} publicatziones}}",
@ -106,6 +110,7 @@
"compose_form.publish": "Pùblica",
"compose_form.publish_form": "Publish",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Sarva is modìficas",
"compose_form.sensitive.hide": "{count, plural, one {Marca elementu multimediale comente a sensìbile} other {Marca elementos multimediales comente sensìbiles}}",
"compose_form.sensitive.marked": "{count, plural, one {Elementu multimediale marcadu comente a sensìbile} other {Elementos multimediales marcados comente a sensìbiles}}",
"compose_form.sensitive.unmarked": "{count, plural, one {Elementu multimediale non marcadu comente a sensìbile} other {Elementos multimediales non marcados comente a sensìbiles}}",
@ -122,6 +127,7 @@
"confirmations.delete_list.message": "Seguru chi boles cantzellare custa lista in manera permanente?",
"confirmations.domain_block.confirm": "Bloca totu su domìniu",
"confirmations.domain_block.message": "Boles de seguru, ma a beru a beru, blocare {domain}? In sa parte manna de is casos, pagos blocos o silentziamentos de persones sunt sufitzientes e preferìbiles. No as a bìdere cuntenutos dae custu domìniu in peruna lìnia de tempus pùblica o in is notìficas tuas. Sa gente chi ti sighit dae cussu domìniu at a èssere bogada.",
"confirmations.edit.confirm": "Modìfica",
"confirmations.logout.confirm": "Essi·nche",
"confirmations.logout.message": "Seguru chi boles essire?",
"confirmations.mute.confirm": "A sa muda",
@ -140,6 +146,7 @@
"directory.local": "Isceti dae {domain}",
"directory.new_arrivals": "Arribos noos",
"directory.recently_active": "Cun atividade dae pagu",
"disabled_account_banner.account_settings": "Cunfiguratziones de su contu",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
"embed.instructions": "Inserta custa publicatzione in su situ web tuo copiende su còdighe de suta.",
@ -180,13 +187,19 @@
"errors.unexpected_crash.copy_stacktrace": "Còpia stacktrace in punta de billete",
"errors.unexpected_crash.report_issue": "Sinnala unu problema",
"explore.search_results": "Resurtados de sa chirca",
"explore.suggested_follows": "Gente",
"explore.trending_statuses": "Publicatziones",
"explore.trending_tags": "Etichetas",
"filter_modal.select_filter.expired": "iscadidu",
"firehose.all": "Totus",
"follow_request.authorize": "Autoriza",
"follow_request.reject": "Refuda",
"follow_requests.unlocked_explanation": "Fintzas si su contu tuo no est blocadu, su personale de {domain} at pensadu chi forsis bolias revisionare a manu is rechestas de custos contos.",
"footer.about": "Informatziones",
"footer.invite": "Invita gente",
"footer.keyboard_shortcuts": "Incurtzaduras de tecladu",
"footer.privacy_policy": "Polìtica de riservadesa",
"footer.status": "Istadu",
"generic.saved": "Sarvadu",
"getting_started.heading": "Comente cumintzare",
"hashtag.column_header.tag_mode.all": "e {additional}",
@ -263,6 +276,7 @@
"lists.search": "Chirca intre sa gente chi ses sighende",
"lists.subheading": "Is listas tuas",
"load_pending": "{count, plural, one {# elementu nou} other {# elementos noos}}",
"loading_indicator.label": "Carrighende…",
"media_gallery.toggle_visible": "Cua {number, plural, one {immàgine} other {immàgines}}",
"mute_modal.duration": "Durada",
"mute_modal.hide_notifications": "Boles cuare is notìficas de custa persone?",
@ -288,6 +302,7 @@
"navigation_bar.search": "Chirca",
"navigation_bar.security": "Seguresa",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.favourite": "{name} at marcadu comente a preferidu s'istadu tuo",
"notification.follow": "{name} ti sighit",
"notification.follow_request": "{name} at dimandadu de ti sighire",
"notification.mention": "{name} t'at mentovadu",
@ -328,6 +343,8 @@
"onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon",
"onboarding.profile.display_name": "Nòmine visìbile",
"onboarding.profile.note": "Biografia",
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
"onboarding.start.skip": "Want to skip right ahead?",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
@ -344,6 +361,7 @@
"poll.total_votes": "{count, plural, one {# votu} other {# votos}}",
"poll.vote": "Vota",
"poll.voted": "As votadu custa risposta",
"poll.votes": "{votes, plural, one {# votu} other {# votos}}",
"poll_button.add_poll": "Agiunghe unu sondàgiu",
"poll_button.remove_poll": "Cantzella su sondàgiu",
"privacy.change": "Modìfica s'istadu de riservadesa",
@ -353,25 +371,41 @@
"privacy.private.short": "Followers-only",
"privacy.public.short": "Pùblicu",
"privacy.unlisted.short": "Esclùidu de sa lista",
"recommended": "Cussigiadu",
"refresh": "Atualiza",
"regeneration_indicator.label": "Carrighende…",
"regeneration_indicator.sublabel": "Preparende sa lìnia de tempus printzipale tua.",
"relative_time.days": "{number} dies a oe",
"relative_time.full.just_now": "immoe etotu",
"relative_time.hours": "{number} oras a immoe",
"relative_time.just_now": "immoe",
"relative_time.minutes": "{number} minutos a immoe",
"relative_time.seconds": "{number} segundos a immoe",
"relative_time.today": "oe",
"reply_indicator.cancel": "Annulla",
"report.block": "Bloca",
"report.categories.other": "Àteru",
"report.category.title_account": "profilu",
"report.category.title_status": "publicatzione",
"report.close": "Fatu",
"report.forward": "Torra a imbiare a {target}",
"report.forward_hint": "Custu contu est de un'àteru serbidore. Ddi boles imbiare puru una còpia anònima de custu informe?",
"report.mute": "A sa muda",
"report.next": "Imbeniente",
"report.placeholder": "Cummentos additzionales",
"report.submit": "Imbia",
"report.target": "Informende de {target}",
"report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached",
"report_notification.categories.other": "Àteru",
"search.placeholder": "Chirca",
"search_popout.user": "utente",
"search_results.accounts": "Profilos",
"search_results.all": "Totus",
"search_results.hashtags": "Etichetas",
"search_results.statuses": "Publicatziones",
"server_banner.administered_by": "Amministradu dae:",
"server_banner.learn_more": "Àteras informatziones",
"server_banner.server_stats": "Istatìsticas de su serbidore:",
"sign_in_banner.sign_in": "Sign in",
"status.admin_account": "Aberi s'interfache de moderatzione pro @{name}",
"status.admin_status": "Aberi custa publicatzione in s'interfache de moderatzione",
@ -382,6 +416,7 @@
"status.copy": "Còpia su ligòngiu a sa publicatzione tua",
"status.delete": "Cantzella",
"status.detailed_status": "Visualizatzione de detàlliu de arresonada",
"status.edit": "Modìfica",
"status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",
"status.embed": "Afissa",
"status.filtered": "Filtradu",
@ -413,6 +448,7 @@
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"status.unmute_conversation": "Torra a ativare s'arresonada",
"status.unpin": "Boga dae pitzu de su profilu",
"subscribed_languages.save": "Sarva is modìficas",
"tabs_bar.home": "Printzipale",
"tabs_bar.notifications": "Notìficas",
"time_remaining.days": "{number, plural, one {abarrat # die} other {abarrant # dies}}",

View File

@ -391,6 +391,7 @@
"lists.search": "Vyhľadávaj medzi užívateľmi, ktorých sleduješ",
"lists.subheading": "Tvoje zoznamy",
"load_pending": "{count, plural, one {# nová položka} other {# nových položiek}}",
"loading_indicator.label": "Načítam…",
"media_gallery.toggle_visible": "Zapni/Vypni viditeľnosť",
"moved_to_account_banner.text": "Vaše konto {disabledAccount} je momentálne zablokované, pretože ste sa presunuli na {movedToAccount}.",
"mute_modal.duration": "Trvanie",
@ -480,6 +481,14 @@
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon",
"onboarding.profile.discoverable": "Urob môj profil objaviteľný",
"onboarding.profile.display_name": "Zobrazované meno",
"onboarding.profile.display_name_hint": "Tvoje plné meno, alebo tvoje zábavné meno…",
"onboarding.profile.lead": "Toto môžeš vždy dokončiť neskôr v nastaveniach, kde je dostupných ešte viac volieb na prispôsobenie.",
"onboarding.profile.note": "O tebe",
"onboarding.profile.note_hint": "Môžeš @spomenúť iných ľudí, alebo #haštagy…",
"onboarding.profile.save_and_continue": "Ulož a pokračuj",
"onboarding.profile.upload_avatar": "Nahraj profilový obrázok",
"onboarding.profile.upload_header": "Nahraj profilové záhlavie",
"onboarding.share.lead": "Daj ľudom vedieť, ako ťa môžu na Mastodone nájsť!",
"onboarding.share.message": "Na Mastodone som {username}. Príď ma nasledovať na {url}",
"onboarding.share.next_steps": "Ďalšie možné kroky:",
@ -594,6 +603,7 @@
"search.quick_action.status_search": "Príspevky zodpovedajúce {x}",
"search.search_or_paste": "Hľadaj, alebo vlož URL adresu",
"search_popout.full_text_search_disabled_message": "Nie je k dispozícii v doméne {domain}.",
"search_popout.full_text_search_logged_out_message": "Dostupné iba keď si prihlásený/á.",
"search_popout.language_code": "ISO kód jazyka",
"search_popout.options": "Možnosti vyhľadávania",
"search_popout.quick_actions": "Rýchle akcie",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Postime me përputhje me {x}",
"search.search_or_paste": "Kërkoni, ose hidhni një URL",
"search_popout.full_text_search_disabled_message": "Jo i passhëm në {domain}.",
"search_popout.full_text_search_logged_out_message": "E përdorshme vetëm kur keni bërë hyrjen në llogari.",
"search_popout.language_code": "Kod ISO gjuhe",
"search_popout.options": "Mundësi kërkimi",
"search_popout.quick_actions": "Veprime të shpejta",

View File

@ -60,7 +60,7 @@
"account.report": "รายงาน @{name}",
"account.requested": "กำลังรอการอนุมัติ คลิกเพื่อยกเลิกคำขอติดตาม",
"account.requested_follow": "{name} ได้ขอติดตามคุณ",
"account.share": "แบ่งปันโปรไฟล์ของ @{name}",
"account.share": "แชร์โปรไฟล์ของ @{name}",
"account.show_reblogs": "แสดงการดันจาก @{name}",
"account.statuses_counter": "{count, plural, other {{counter} โพสต์}}",
"account.unblock": "เลิกปิดกั้น @{name}",
@ -319,7 +319,7 @@
"home.show_announcements": "แสดงประกาศ",
"interaction_modal.description.favourite": "ด้วยบัญชีใน Mastodon คุณสามารถชื่นชอบโพสต์นี้เพื่อแจ้งให้ผู้สร้างทราบว่าคุณชื่นชมโพสต์และบันทึกโพสต์ไว้สำหรับภายหลัง",
"interaction_modal.description.follow": "ด้วยบัญชีใน Mastodon คุณสามารถติดตาม {name} เพื่อรับโพสต์ของเขาในฟีดหน้าแรกของคุณ",
"interaction_modal.description.reblog": "ด้วยบัญชีใน Mastodon คุณสามารถดันโพสต์นี้เพื่อแบ่งปันโพสต์กับผู้ติดตามของคุณเอง",
"interaction_modal.description.reblog": "ด้วยบัญชีใน Mastodon คุณสามารถดันโพสต์นี้เพื่อแชร์โพสต์กับผู้ติดตามของคุณเอง",
"interaction_modal.description.reply": "ด้วยบัญชีใน Mastodon คุณสามารถตอบกลับโพสต์นี้",
"interaction_modal.login.action": "นำฉันกลับบ้าน",
"interaction_modal.login.prompt": "โดเมนของเซิร์ฟเวอร์บ้านของคุณ เช่น mastodon.social",
@ -495,7 +495,7 @@
"onboarding.share.lead": "แจ้งให้ผู้คนทราบวิธีที่เขาสามารถค้นหาคุณใน Mastodon!",
"onboarding.share.message": "ฉันคือ {username} ใน #Mastodon! มาติดตามฉันที่ {url}",
"onboarding.share.next_steps": "ขั้นตอนถัดไปที่เป็นไปได้:",
"onboarding.share.title": "แบ่งปันโปรไฟล์ของคุณ",
"onboarding.share.title": "แชร์โปรไฟล์ของคุณ",
"onboarding.start.lead": "ตอนนี้คุณเป็นส่วนหนึ่งของ Mastodon แพลตฟอร์มสื่อสังคมที่มีเอกลักษณ์เฉพาะตัว กระจายศูนย์ ที่ซึ่งคุณ—ไม่ใช่อัลกอริทึม—เรียบเรียงประสบการณ์ของคุณเอง มาช่วยให้คุณเริ่มต้นใช้งานพรมแดนทางสังคมใหม่นี้กันเลย:",
"onboarding.start.skip": "ไม่ต้องการความช่วยเหลือในการเริ่มต้นใช้งาน?",
"onboarding.start.title": "คุณทำสำเร็จแล้ว!",
@ -506,7 +506,7 @@
"onboarding.steps.setup_profile.body": "เพิ่มการโต้ตอบของคุณโดยการมีโปรไฟล์ที่ครอบคลุม",
"onboarding.steps.setup_profile.title": "ปรับแต่งโปรไฟล์ของคุณ",
"onboarding.steps.share_profile.body": "แจ้งให้เพื่อน ๆ ของคุณทราบวิธีค้นหาคุณใน Mastodon",
"onboarding.steps.share_profile.title": "แบ่งปันโปรไฟล์ Mastodon ของคุณ",
"onboarding.steps.share_profile.title": "แชร์โปรไฟล์ Mastodon ของคุณ",
"onboarding.tips.2fa": "<strong>คุณทราบหรือไม่?</strong> คุณสามารถรักษาความปลอดภัยบัญชีของคุณได้โดยตั้งค่าการรับรองความถูกต้องด้วยสองปัจจัยในการตั้งค่าบัญชีของคุณ การรับรองความถูกต้องด้วยสองปัจจัยทำงานร่วมกับแอป TOTP ใด ๆ ที่คุณเลือก ไม่จำเป็นต้องมีหมายเลขโทรศัพท์!",
"onboarding.tips.accounts_from_other_servers": "<strong>คุณทราบหรือไม่?</strong> เนื่องจาก Mastodon เป็นแบบกระจายศูนย์ โปรไฟล์บางส่วนที่คุณเจอจะได้รับการโฮสต์ในเซิร์ฟเวอร์อื่น ๆ ที่ไม่ใช่ของคุณ และคุณยังสามารถโต้ตอบกับเขาได้อย่างไร้รอยต่อ! เซิร์ฟเวอร์ของเขาอยู่ในครึ่งหลังของชื่อผู้ใช้ของเขา!",
"onboarding.tips.migration": "<strong>คุณทราบหรือไม่?</strong> หากคุณรู้สึกว่า {domain} ไม่ใช่ตัวเลือกเซิร์ฟเวอร์ที่ยอดเยี่ยมสำหรับคุณในอนาคต คุณสามารถย้ายไปยังเซิร์ฟเวอร์ Mastodon อื่นได้โดยไม่สูญเสียผู้ติดตามของคุณ คุณยังสามารถโฮสต์เซิร์ฟเวอร์ของคุณเอง!",
@ -558,7 +558,7 @@
"report.categories.spam": "สแปม",
"report.categories.violation": "เนื้อหาละเมิดกฎของเซิร์ฟเวอร์จำนวนหนึ่งหรือมากกว่า",
"report.category.subtitle": "เลือกที่ตรงกันที่สุด",
"report.category.title": "บอกเราถึงสิ่งที่กำลังเกิดขึ้นกับ {type} นี้",
"report.category.title": "บอกเราถึงสิ่งที่กำลังเกิดขึ้นกับ{type}นี้",
"report.category.title_account": "โปรไฟล์",
"report.category.title_status": "โพสต์",
"report.close": "เสร็จสิ้น",
@ -629,7 +629,7 @@
"sign_in_banner.create_account": "สร้างบัญชี",
"sign_in_banner.sign_in": "เข้าสู่ระบบ",
"sign_in_banner.sso_redirect": "เข้าสู่ระบบหรือลงทะเบียน",
"sign_in_banner.text": "เข้าสู่ระบบเพื่อติดตามโปรไฟล์หรือแฮชแท็ก ชื่นชอบ แบ่งปัน และตอบกลับโพสต์ คุณยังสามารถโต้ตอบจากบัญชีของคุณในเซิร์ฟเวอร์อื่น",
"sign_in_banner.text": "เข้าสู่ระบบเพื่อติดตามโปรไฟล์หรือแฮชแท็ก ชื่นชอบ แชร์ และตอบกลับโพสต์ คุณยังสามารถโต้ตอบจากบัญชีของคุณในเซิร์ฟเวอร์อื่น",
"status.admin_account": "เปิดส่วนติดต่อการควบคุมสำหรับ @{name}",
"status.admin_domain": "เปิดส่วนติดต่อการควบคุมสำหรับ {domain}",
"status.admin_status": "เปิดโพสต์นี้ในส่วนติดต่อการควบคุม",
@ -675,7 +675,7 @@
"status.replyAll": "ตอบกลับกระทู้",
"status.report": "รายงาน @{name}",
"status.sensitive_warning": "เนื้อหาที่ละเอียดอ่อน",
"status.share": "แบ่งปัน",
"status.share": "แชร์",
"status.show_filter_reason": "แสดงต่อไป",
"status.show_less": "แสดงน้อยลง",
"status.show_less_all": "แสดงน้อยลงทั้งหมด",

View File

@ -0,0 +1 @@
{}

View File

@ -376,7 +376,7 @@
"lightbox.previous": "上一步",
"limited_account_hint.action": "一律顯示個人檔案",
"limited_account_hint.title": "此個人檔案已被 {domain} 的管理員隱藏。",
"link_preview.author": "由 {name} 提供",
"link_preview.author": "來自 {name}",
"lists.account.add": "新增至列表",
"lists.account.remove": "自列表中移除",
"lists.delete": "刪除列表",

View File

@ -470,8 +470,8 @@ class FeedManager
check_for_blocks = status.active_mentions.pluck(:account_id)
check_for_blocks.push(status.in_reply_to_account) if status.reply? && !status.in_reply_to_account_id.nil?
should_filter = blocks_or_mutes?(receiver_id, check_for_blocks, :mentions) # Filter if it's from someone I blocked, in reply to someone I blocked, or mentioning someone I blocked (or muted)
should_filter ||= (status.account.silenced? && !Follow.where(account_id: receiver_id, target_account_id: status.account_id).exists?) # of if the account is silenced and I'm not following them
should_filter = blocks_or_mutes?(receiver_id, check_for_blocks, :mentions) # Filter if it's from someone I blocked, in reply to someone I blocked, or mentioning someone I blocked (or muted)
should_filter ||= status.account.silenced? && !Follow.where(account_id: receiver_id, target_account_id: status.account_id).exists? # of if the account is silenced and I'm not following them
should_filter
end

View File

@ -37,6 +37,7 @@ class LinkDetailsExtractor
def language
lang = json['inLanguage']
lang = lang.first if lang.is_a?(Array)
lang.is_a?(Hash) ? (lang['alternateName'] || lang['name']) : lang
end

View File

@ -6,7 +6,7 @@ module Account::Counters
ALLOWED_COUNTER_KEYS = %i(statuses_count following_count followers_count).freeze
included do
has_one :account_stat, inverse_of: :account
has_one :account_stat, inverse_of: :account, dependent: nil
after_save :save_account_stat
end

View File

@ -5,7 +5,7 @@ module Remotable
class_methods do
def remotable_attachment(attachment_name, limit, suppress_errors: true, download_on_assign: true, attribute_name: nil)
attribute_name ||= "#{attachment_name}_remote_url".to_sym
attribute_name ||= :"#{attachment_name}_remote_url"
define_method("download_#{attachment_name}!") do |url = nil|
url ||= self[attribute_name]

View File

@ -13,7 +13,7 @@
class Conversation < ApplicationRecord
validates :uri, uniqueness: true, if: :uri?
has_many :statuses
has_many :statuses, dependent: nil
def local?
uri.nil?

View File

@ -38,7 +38,7 @@ class CustomEmoji < ApplicationRecord
belongs_to :category, class_name: 'CustomEmojiCategory', optional: true
has_one :local_counterpart, -> { where(domain: nil) }, class_name: 'CustomEmoji', primary_key: :shortcode, foreign_key: :shortcode, inverse_of: false
has_one :local_counterpart, -> { where(domain: nil) }, class_name: 'CustomEmoji', primary_key: :shortcode, foreign_key: :shortcode, inverse_of: false, dependent: nil
has_attached_file :image, styles: { static: { format: 'png', convert_options: '-coalesce +profile "!icc,*" +set date:modify +set date:create +set date:timestamp' } }, validate_media_type: false

View File

@ -11,7 +11,7 @@
#
class CustomEmojiCategory < ApplicationRecord
has_many :emojis, class_name: 'CustomEmoji', foreign_key: 'category_id', inverse_of: :category
has_many :emojis, class_name: 'CustomEmoji', foreign_key: 'category_id', inverse_of: :category, dependent: nil
validates :name, presence: true, uniqueness: true
end

View File

@ -25,7 +25,7 @@ class DomainBlock < ApplicationRecord
validates :domain, presence: true, uniqueness: true, domain: true
has_many :accounts, foreign_key: :domain, primary_key: :domain, inverse_of: false
has_many :accounts, foreign_key: :domain, primary_key: :domain, inverse_of: false, dependent: nil
delegate :count, to: :accounts, prefix: true
scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }

View File

@ -20,7 +20,7 @@ class Invite < ApplicationRecord
include Expireable
belongs_to :user, inverse_of: :invites
has_many :users, inverse_of: :invite
has_many :users, inverse_of: :invite, dependent: nil
scope :available, -> { where(expires_at: nil).or(where('expires_at >= ?', Time.now.utc)) }

View File

@ -68,12 +68,14 @@ class Status < ApplicationRecord
has_many :bookmarks, inverse_of: :status, dependent: :destroy
has_many :reblogs, foreign_key: 'reblog_of_id', class_name: 'Status', inverse_of: :reblog, dependent: :destroy
has_many :reblogged_by_accounts, through: :reblogs, class_name: 'Account', source: :account
has_many :replies, foreign_key: 'in_reply_to_id', class_name: 'Status', inverse_of: :thread
has_many :replies, foreign_key: 'in_reply_to_id', class_name: 'Status', inverse_of: :thread, dependent: nil
has_many :mentions, dependent: :destroy, inverse_of: :status
has_many :mentioned_accounts, through: :mentions, source: :account, class_name: 'Account'
has_many :active_mentions, -> { active }, class_name: 'Mention', inverse_of: :status
has_many :media_attachments, dependent: :nullify
# The `dependent` option is enabled by the initial `mentions` association declaration
has_many :active_mentions, -> { active }, class_name: 'Mention', inverse_of: :status # rubocop:disable Rails/HasManyOrHasOneDependent
# Those associations are used for the private search index
has_many :local_mentioned, -> { merge(Account.local) }, through: :active_mentions, source: :account
has_many :local_favorited, -> { merge(Account.local) }, through: :favourites, source: :account
@ -82,11 +84,13 @@ class Status < ApplicationRecord
has_and_belongs_to_many :tags
has_one :preview_cards_status, inverse_of: :status # Because of a composite primary key, the dependent option cannot be used
# Because of a composite primary key, the `dependent` option cannot be used on this association
has_one :preview_cards_status, inverse_of: :status # rubocop:disable Rails/HasManyOrHasOneDependent
has_one :notification, as: :activity, dependent: :destroy
has_one :status_stat, inverse_of: :status
has_one :status_stat, inverse_of: :status, dependent: nil
has_one :poll, inverse_of: :status, dependent: :destroy
has_one :trend, class_name: 'StatusTrend', inverse_of: :status
has_one :trend, class_name: 'StatusTrend', inverse_of: :status, dependent: nil
validates :uri, uniqueness: true, presence: true, unless: :local?
validates :text, presence: true, unless: -> { with_media? || reblog? }

View File

@ -37,7 +37,7 @@ class Trends::History
end
def uses
with_redis { |redis| redis.get(key_for(:uses))&.to_i || 0 }
with_redis { |redis| redis.get(key_for(:uses)).to_i }
end
def add(account_id)

View File

@ -84,12 +84,12 @@ class User < ApplicationRecord
belongs_to :role, class_name: 'UserRole', optional: true
accepts_nested_attributes_for :account
has_many :applications, class_name: 'Doorkeeper::Application', as: :owner
has_many :backups, inverse_of: :user
has_many :invites, inverse_of: :user
has_many :applications, class_name: 'Doorkeeper::Application', as: :owner, dependent: nil
has_many :backups, inverse_of: :user, dependent: nil
has_many :invites, inverse_of: :user, dependent: nil
has_many :markers, inverse_of: :user, dependent: :destroy
has_many :webauthn_credentials, dependent: :destroy
has_many :ips, class_name: 'UserIp', inverse_of: :user
has_many :ips, class_name: 'UserIp', inverse_of: :user, dependent: nil
has_one :invite_request, class_name: 'UserInviteRequest', inverse_of: :user, dependent: :destroy
accepts_nested_attributes_for :invite_request, reject_if: ->(attributes) { attributes['text'].blank? && !Setting.require_invite_text }

View File

@ -62,7 +62,7 @@ class UserSettings::Setting
def key
if namespace
"#{namespace}.#{name}".to_sym
:"#{namespace}.#{name}"
else
name
end

View File

@ -19,7 +19,7 @@ class Web::PushSubscription < ApplicationRecord
belongs_to :user, optional: true
belongs_to :access_token, class_name: 'Doorkeeper::AccessToken', optional: true
has_one :session_activation, foreign_key: 'web_push_subscription_id', inverse_of: :web_push_subscription
has_one :session_activation, foreign_key: 'web_push_subscription_id', inverse_of: :web_push_subscription, dependent: nil
validates :endpoint, presence: true
validates :key_p256dh, presence: true

View File

@ -170,9 +170,9 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
as_array(@json['tag']).each do |tag|
if equals_or_includes?(tag['type'], 'Hashtag')
@raw_tags << tag['name']
@raw_tags << tag['name'] if tag['name'].present?
elsif equals_or_includes?(tag['type'], 'Mention')
@raw_mentions << tag['href']
@raw_mentions << tag['href'] if tag['href'].present?
elsif equals_or_includes?(tag['type'], 'Emoji')
@raw_emojis << tag
end

View File

@ -27,7 +27,7 @@
%button.button= t('admin.accounts.search')
= link_to t('admin.accounts.reset'), admin_reports_path, class: 'button negative'
- @reports.group_by(&:target_account_id).each do |_target_account_id, reports|
- @reports.group_by(&:target_account_id).each_value do |reports|
- target_account = reports.first.target_account
.report-card
.report-card__profile

View File

@ -14,5 +14,5 @@
%label= t('activerecord.attributes.doorkeeper/application.scopes')
%span.hint= t('simple_form.hints.defaults.scopes')
- Doorkeeper.configuration.scopes.group_by { |s| s.split(':').first }.each do |_key, value|
- Doorkeeper.configuration.scopes.group_by { |s| s.split(':').first }.each_value do |value|
= f.input :scopes, label: false, hint: false, collection: value.sort, wrapper: :with_block_label, include_blank: false, label_method: ->(scope) { safe_join([content_tag(:samp, scope, class: class_for_scope(scope)), content_tag(:span, t("doorkeeper.scopes.#{scope}"), class: 'hint')]) }, selected: f.object.scopes.all, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li'

View File

@ -14,7 +14,6 @@ require 'active_job/railtie'
# require 'action_mailbox/engine'
# require 'action_text/engine'
# require 'rails/test_unit/railtie'
require 'sprockets/railtie'
# Used to be implicitly required in action_mailbox/engine
require 'mail'

View File

@ -20,7 +20,7 @@ namespace :systemd do
SYSTEMD_SERVICES.each do |service|
SERVICE_ACTIONS.each do |action|
desc "Perform a #{action} on #{service} service"
task "#{service}:#{action}".to_sym do
task :"#{service}:#{action}" do
on roles(:app) do
# runs e.g. "sudo restart mastodon-sidekiq.service"
sudo :systemctl, action, "#{fetch(:application)}-#{service}.service"

View File

@ -71,17 +71,6 @@ Rails.application.configure do
# Highlight code that enqueued background job in logs.
config.active_job.verbose_enqueue_logs = true
# Debug mode disables concatenation and preprocessing of assets.
config.assets.debug = true
# Suppress logger output for asset requests.
config.assets.quiet = true
# Adds additional error checking when serving assets at runtime.
# Checks for improperly declared sprockets dependencies.
# Raises helpful error messages.
config.assets.raise_runtime_errors = true
# Raises error for missing translations.
# config.i18n.raise_on_missing_translations = true

View File

@ -78,6 +78,7 @@ ignore_unused:
- 'imports.preambles.{following,blocking,muting,domain_blocking,bookmarks,lists}_html'
- 'mail_subscriptions.unsubscribe.emails.*'
- 'preferences.other' # some locales are missing other keys, therefore leading i18n-tasks to detect `preferences` as plural and not finding use
- 'edit_profile.other' # some locales are missing other keys, therefore leading i18n-tasks to detect `preferences` as plural and not finding use
ignore_inconsistent_interpolations:
- '*.one'

View File

@ -1,16 +0,0 @@
# frozen_string_literal: true
# Be sure to restart your server when you modify this file.
# Version of your assets, change this if you want to expire all your assets.
Rails.application.config.assets.version = '1.0'
# Add additional assets to the asset load path.
# Rails.application.config.assets.paths << Emoji.images_path
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in the app/assets
# folder are already added.
# Rails.application.config.assets.precompile += %w( admin.js admin.css )
Rails.application.config.assets.initialize_on_precompile = true

View File

@ -0,0 +1 @@
fil:

View File

@ -20,7 +20,7 @@ hu:
attributes:
username:
invalid: csak betűket, számokat vagy alávonást tartalmazhat
reserved: fenntartott
reserved: foglalt
admin/webhook:
attributes:
url:

View File

@ -0,0 +1 @@
ne:

View File

@ -0,0 +1 @@
ry:

View File

@ -0,0 +1 @@
tlh:

View File

@ -0,0 +1 @@
fil:

View File

@ -44,7 +44,7 @@ hu:
action: Jelszó módosítása
explanation: A fiókodhoz tartozó jelszó módosítását kezdeményezted.
extra: Amennyiben nem te kezdeményezted a módosítást, kérjük tekintsd ezt az emailt tárgytalannak. A jelszavad változatlan marad mindaddig, amíg újat nem hozol létre a fenti linkre kattintva.
subject: 'Mastodon: Jelszó visszaállítási lépések'
subject: 'Mastodon: Jelszóvisszaállítási utasítások'
title: Jelszó visszaállítása
two_factor_disabled:
explanation: A fiókod kétlépcsős hitelesítését kikapcsoltuk. A bejelentkezés mostantól csak az e-mail cím és a jelszó használatával lesz lehetséges.
@ -52,14 +52,14 @@ hu:
title: Kétlépcsős hitelesítés kikapcsolva
two_factor_enabled:
explanation: A kétlépcsős hitelesítést engedélyeztük a fiókodban. A bejelentkezéshez a párosított TOTP alkalmazás által generált tokenre lesz szükség.
subject: Kétlépcsős azonosítás engedélyezve
subject: 'Mastodon: Kétlépcsős azonosítás engedélyezve'
title: Kétlépcsős hitelesítés engedélyezve
two_factor_recovery_codes_changed:
explanation: A korábbi helyreállítási kódok letiltásra és újragenerálásra kerültek.
subject: Kétlépcsős helyreállítási kódok újra létrejöttek
subject: 'Mastodon: Kétlépcsős helyreállítási kódok újból előállítva'
title: A kétlépcsős kódok megváltoztak
unlock_instructions:
subject: 'Mastodon: Feloldási lépések'
subject: 'Mastodon: Feloldási utasítások'
webauthn_credential:
added:
explanation: A következő biztonsági kulcsot hozzáadtuk a fiókodhoz

View File

@ -0,0 +1 @@
ne:

View File

@ -0,0 +1 @@
ry:

View File

@ -0,0 +1 @@
tlh:

View File

@ -0,0 +1 @@
fil:

View File

@ -0,0 +1 @@
ne:

View File

@ -0,0 +1 @@
ry:

View File

@ -69,6 +69,7 @@ sc:
confirmations:
revoke: Seguru?
index:
scopes: Permissos
title: Is aplicatziones autorizadas tuas
errors:
messages:
@ -104,6 +105,20 @@ sc:
authorized_applications:
destroy:
notice: Aplicatzione revocada.
grouped_scopes:
title:
accounts: Contos
bookmarks: Sinnalibros
conversations: Arresonadas
filters: Filtros
follows: Sighende
lists: Listas
media: Allegados multimediales
notifications: Notìficas
push: Notìficas push
reports: Informes
search: Chirca
statuses: Publicatziones
layouts:
admin:
nav:

View File

@ -0,0 +1 @@
tlh:

1
config/locales/fil.yml Normal file
View File

@ -0,0 +1 @@
fil:

View File

@ -611,6 +611,7 @@ fr-QC:
created_at: Signalé
delete_and_resolve: Supprimer les messages
forwarded: Transféré
forwarded_replies_explanation: Ce rapport provient d'un utilisateur sur une autre instance et concerne du contenu non-local. Il vous a été transmis car le contenu signalé est en réponse à l'un de vos utilisateurs.
forwarded_to: Transféré à %{domain}
mark_as_resolved: Marquer comme résolu
mark_as_sensitive: Marquer comme sensible

View File

@ -611,6 +611,7 @@ fr:
created_at: Signalé
delete_and_resolve: Supprimer les messages
forwarded: Transféré
forwarded_replies_explanation: Ce rapport provient d'un utilisateur sur une autre instance et concerne du contenu non-local. Il vous a été transmis car le contenu signalé est en réponse à l'un de vos utilisateurs.
forwarded_to: Transféré à %{domain}
mark_as_resolved: Marquer comme résolu
mark_as_sensitive: Marquer comme sensible

View File

@ -4,7 +4,7 @@ hu:
about_mastodon_html: 'A jövő közösségi hálózata: Hirdetések és céges megfigyelés nélkül, etikus dizájnnal és decentralizációval! Legyél a saját adataid ura a Mastodonnal!'
contact_missing: Nincs megadva
contact_unavailable: N/A
hosted_on: "%{domain} Mastodon szerver"
hosted_on: "%{domain} Mastodon-kiszolgáló"
title: Névjegy
accounts:
follow: Követés
@ -747,7 +747,7 @@ hu:
desc_html: Ez hCaptcha-ból származó külső scripteket használ, mely biztonsági vagy adatvédelmi résnek bizonyulhat. Ezen kívül ez <strong>a regisztrációs folyamatot jelentősen megnehezítheti bizonyos (kifejezetten különleges szükségletű) emberek számára</strong>. Emiatt fontold meg más módszerek, mint pl. jóváhagyás-alapú vagy meghívásalapú regisztráció használatát.
title: Az új felhasználóknak egy CAPTCHA-t kell megoldaniuk, hogy megerősítsék a fiókjuk regisztrációját
content_retention:
preamble: Felhasználók által generált tartalom Mastodonon való tárolásának szabályozása.
preamble: A felhasználók által előállított tartalom Mastodonon való tárolásának szabályozása.
title: Tartalom megtartása
default_noindex:
desc_html: Azokat a felhasználókat érinti, akik nem módosították ezt a beállítást
@ -1007,8 +1007,8 @@ hu:
hint_html: Ha másik fiókról kívánsz átlépni erre a fiókra, itt létrehozhatsz egy aliast, amelyre szükség van, mielőtt folytathatod a követők áthelyezését a régi fiókból erre. Ez az áthelyezés önmagában <strong>ártalmatlan és visszafordítható</strong> folyamat. <strong>A fiók áttelepítése a régi fiókból indul el. </strong>
remove: Alias szétkapcsolása
appearance:
advanced_web_interface: Haladó webes felület
advanced_web_interface_hint: 'Ha szeretnéd, a teljes képernyőszélességet felhasználhatod. A haladó webes felülettel különböző oszlopokat állíthatsz be, hogy egyszerre annyi infót láthass, amennyit csak akarsz: Saját idővonal, értesítések, föderációs idővonal, bármennyi lista vagy hashtag.'
advanced_web_interface: Speciális webes felület
advanced_web_interface_hint: 'Ha szeretnéd, a képernyő teljes szélességét kihasználhatod. A speciális webes felülettel különböző oszlopokat állíthatsz be, hogy egyszerre annyi információt láthass, amennyit csak akarsz: Kezdőoldal, értesítések, föderációs idővonal, bármennyi lista vagy hashtag.'
animations_and_accessibility: Animáció és akadálymentesítés
confirmation_dialogs: Megerősítő párbeszédablakok
discovery: Felfedezés
@ -1052,7 +1052,7 @@ hu:
delete_account: Felhasználói fiók törlése
delete_account_html: Felhasználói fiókod törléséhez <a href="%{path}">kattints ide</a>. A rendszer újbóli megerősítést fog kérni.
description:
prefix_invited_by_user: "@%{name} meghív téged, hogy csatlakozz ehhez a Mastodon kiszolgálóhoz."
prefix_invited_by_user: "@%{name} meghív téged, hogy csatlakozz ehhez a Mastodon-kiszolgálóhoz."
prefix_sign_up: Regisztrláj még ma a Mastodonra!
suffix: Egy fiókkal követhetsz másokat, bejegyzéseket tehetsz közzé, eszmét cserélhetsz más Mastodon szerverek felhasználóival!
didnt_get_confirmation: Nem kaptál visszaigazoló hivatkozást?
@ -1101,7 +1101,7 @@ hu:
title: 'Bejelentkezés ide: %{domain}'
sign_up:
manual_review: A(z) %{domain} regisztrációi a moderátorok kézi felülvizsgálatán mennek át. Hogy segítsd a regisztráció feldolgozását, írj röviden magadról, és hogy miért szeretnél fiókot a(z) %{domain} oldalon.
preamble: Egy fiókkal ezen a Mastodon kiszolgálón követhetsz bárkit a hálózaton, függetlenül attól, hogy az illető fiókja melyik kiszolgálón található.
preamble: Egy fiókkal ezen a Mastodon-kiszolgálón követhetsz bárkit a hálózaton, függetlenül attól, hogy az illető fiókja melyik kiszolgálón található.
title: Állítsuk be a fiókod a %{domain} kiszolgálón.
status:
account_status: Fiók állapota
@ -1234,7 +1234,7 @@ hu:
filters:
contexts:
account: Profil
home: Saját idővonal
home: Kezdőlap és listák
notifications: Értesítések
public: Nyilvános idővonalak
thread: Beszélgetések
@ -1245,7 +1245,7 @@ hu:
statuses_hint_html: Ez a szűrő egyedi bejegyzések kiválasztására vonatkozik, függetlenül attól, hogy megfelelnek-e a lenti kulcsszavaknak. <a href="%{path}">Engedélyezze vagy távolítsa el a bejegyzéseket a szűrőből</a>.
title: Szűrő szerkesztése
errors:
deprecated_api_multiple_keywords: Ezek a paraméterek nem módosíthatóak az alkalmazásból, mert több mint egy szűrőkulcsszóra is hatással vannak. Használd az alkalmazás vagy a webes felület újabb verzióját.
deprecated_api_multiple_keywords: Ezek a paraméterek nem módosíthatók az alkalmazásból, mert egynél több szűrőkulcsszóra is hatással vannak. Használd az alkalmazás vagy a webes felület újabb verzióját.
invalid_context: A megadott kontextus hamis vagy hiányzik
index:
contexts: 'Szűrés helye: %{contexts}'
@ -1396,7 +1396,7 @@ hu:
unsubscribe:
action: Igen, leiratkozás
complete: Leiratkozva
confirmation_html: Biztos vagy benne, hogy le szeretnél iratkozni arról, hogy %{type} típusú üzeneteket kapj a %{domain} Mastodon kiszolgálón a %{email} címedre? Bármikor újra feliratkozhatsz az <a href="%{settings_path}">email értesítések beállításainál</a>.
confirmation_html: 'Biztos, hogy leiratkozol arról, hogy %{type} típusú üzeneteket kapj a %{domain} Mastodon-kiszolgálótól erre a címedre: %{email}? Bármikor újra feliratkozhatsz az <a href="%{settings_path}">e-mail-értesítések beállításánál</a>.'
emails:
notification_emails:
favourite: kedvencnek jelölésről email értesítő
@ -1405,7 +1405,7 @@ hu:
mention: megemlítésről email értesítő
reblog: megtolásról email értesítő
resubscribe_html: Ha tévedésből iratkoztál le, újra feliratkozhatsz az <a href="%{settings_path}">email értesítések beállításainál</a>.
success_html: Mostantól nem kapsz %{type} típusú üzeneket a %{domain} Mastodon kiszolgálón a %{email} címedre.
success_html: 'Mostantól nem kapsz %{type} típusú üzeneket a(z) %{domain} Mastodon-kiszolgálón erre a címedre: %{email}.'
title: Leiratkozás
media_attachments:
validations:
@ -1743,9 +1743,9 @@ hu:
tags:
does_not_match_previous_name: nem illeszkedik az előző névvel
themes:
contrast: Mastodon (Nagy kontrasztú)
default: Mastodon (Sötét)
mastodon-light: Mastodon (Világos)
contrast: Mastodon (nagy kontrasztú)
default: Mastodon (sötét)
mastodon-light: Mastodon (világos)
time:
formats:
default: "%Y. %b %d., %H:%M"
@ -1782,7 +1782,7 @@ hu:
subject: A %{date}-i fellebbezésedet visszautasították
title: Fellebbezés visszautasítva
backup_ready:
explanation: A Mastodon fiókod teljes mentését kérted. A mentés kész ás letölthető!
explanation: A Mastodon-fiókod teljes mentését kérted. A mentés elkészült, és letölthető.
subject: Az adataidról készült archív letöltésre kész
title: Archiválás
suspicious_sign_in:

View File

@ -37,10 +37,12 @@ lt:
accounts:
add_email_domain_block: Blokuoti el. pašto domeną
approve: Patvirtinti
approved_msg: Sėkmingai patvirtinta %{username} registracijos paraiška
are_you_sure: Ar esi įsitikinęs (-usi)?
avatar: Avataras
by_domain: Domenas
change_email:
changed_msg: El. paštas sėkmingai pakeistas!
current_email: Dabartinis el paštas
label: Pakeisti el pašto adresą
new_email: Naujas el pašto adresas
@ -466,6 +468,8 @@ lt:
prev: Ankstesnis
preferences:
other: Kita
privacy:
hint_html: "<strong>Tikrink, kaip nori, kad tavo profilis ir įrašai būtų randami.</strong> Įjungus įvairias Mastodon funkcijas, jos gali padėti pasiekti platesnę auditoriją. Akimirką peržiūrėk šiuos nustatymus, kad įsitikintum, jog jie atitinka tavo naudojimo būdą."
remote_follow:
missing_resource: Jūsų paskyros nukreipimo URL nerasta
scheduled_statuses:
@ -515,6 +519,11 @@ lt:
public_long: Visi gali matyti
unlisted: Neįtrauktas į sąrašus
unlisted_long: Matyti gali visi, tačiau nėra įtraukti į viešąsias laiko skales
statuses_cleanup:
enabled_hint: Automatiškai ištrina įrašus, kai jie pasiekia nustatytą amžiaus ribą, nebent jie atitinka vieną iš toliau nurodytų išimčių
keep_polls_hint: Neištrina jokių tavo apklausų
keep_self_bookmark: Laikyti įrašus, kuriuos pažymėjai
keep_self_bookmark_hint: Neištrina tavo pačių įrašų, jei esi juos pažymėjęs (-usi)
stream_entries:
sensitive_content: Jautrus turinys
themes:
@ -551,22 +560,31 @@ lt:
explanation: Štai keletas patarimų, kaip pradėti
final_action: Pradėti kelti įrašus
final_step: 'Pradėk skelbti! Net jei ir neturi sekėjų, tavo viešus įrašus gali matyti kiti, pavyzdžiui, vietinėje laiko skalėje arba saitažodžiuose. Galbūt norėsi prisistatyti saitažodyje #introductions.'
full_handle: Jūsų pilnas slapyvardis
full_handle_hint: Štai ką jūs sakytumėte savo draugams, kad jie galėtų jums siųsti žinutes arba just sekti iš kitų serverių.
full_handle: Tavo pilnas slapyvardis
full_handle_hint: Štai ką pasakytum savo draugams, kad jie galėtų parašyti arba sekti tave iš kito serverio.
subject: Sveiki atvykę į Mastodon
title: Sveiki atvykę, %{name}!
users:
follow_limit_reached: Negalite sekti daugiau nei %{limit} žmonių
follow_limit_reached: Negali sekti daugiau nei %{limit} žmonių
go_to_sso_account_settings: Eik į savo tapatybės teikėjo paskyros nustatymus
invalid_otp_token: Netinkamas dviejų veiksnių kodas
otp_lost_help_html: Jei praradai prieigą prie abiejų, gali susisiek su %{email}
seamless_external_login: Jūs esate prisijungę per išorini įrenginį, todėl slaptąžodis ir el pašto nustatymai neprieinami.
seamless_external_login: Esi prisijungęs (-usi) per išorinę paslaugą, todėl slaptažodžio ir el. pašto nustatymai nepasiekiami.
signed_in_as: 'Prisijungta kaip:'
verification:
extra_instructions_html: <strong>Patarimas:</strong> nuoroda tavo svetainėje gali būti nematoma. Svarbi dalis tai, kas <code>rel="me"</code> neleidžia apsimesti interneto svetainėse, kuriose yra naudotojų sukurto turinio. Vietoj to gali naudoti net <code>nuorodą</code> puslapio antraštėje esančią žymę <code>a</code>, tačiau HTML turi būti pasiekiamas nevykdant JavaScript.
hint_html: "<strong>Savo tapatybės patvirtinimas Mastodon skirtas visiems.</strong> Remiantis atviraisiais žiniatinklio standartais, dabar ir visam laikui nemokamas. Viskas, ko tau reikia, yra asmeninė svetainė, pagal kurią žmonės tave atpažįsta. Kai iš savo profilio pateiksi nuorodą į šią svetainę, patikrinsime, ar svetainėje yra nuoroda į tavo profilį, ir parodysime vizualinį indikatorių."
instructions_html: Nukopijuok ir įklijuok toliau pateiktą kodą į savo svetainės HTML. Tada į vieną iš papildomų profilio laukų skirtuke „Redaguoti profilį“ įrašyk savo svetainės adresą ir išsaugok pakeitimus.
verification: Patvirtinimas
verified_links: Tavo patikrintos nuorodos
webauthn_credentials:
create:
error: Kilo problema pridedant saugumo raktą. Bandyk dar kartą.
success: Tavo saugumo raktas buvo sėkmingai pridėtas.
delete_confirmation: Ar tikrai nori ištrinti šį saugumo raktą?
description_html: Jei įjungsi <strong>saugumo rakto tapatybės nustatymą</strong>, prisijungiant reikės naudoti vieną iš savo saugumo raktų.
destroy:
error: Kilo problema ištrinant saugumo raktą. Bandyk dar kartą.
success: Tavo saugumo raktas buvo sėkmingai ištrintas.
nickname_hint: Įvesk naujojo saugumo rakto slapyvardį
not_enabled: Dar neįjungei WebAuthn

1
config/locales/ne.yml Normal file
View File

@ -0,0 +1 @@
ne:

1
config/locales/ry.yml Normal file
View File

@ -0,0 +1 @@
ry:

View File

@ -5,6 +5,7 @@ sc:
contact_missing: No cunfiguradu
contact_unavailable: No a disponimentu
hosted_on: Mastodon allogiadu in %{domain}
title: Informatziones
accounts:
follow: Sighi
followers:
@ -45,6 +46,7 @@ sc:
confirm: Cunfirma
confirmed: Cunfirmadu
confirming: Cunfirmende
custom: Personalizadu
delete: Cantzella datos
deleted: Cantzelladu
demote: Degrada
@ -81,7 +83,9 @@ sc:
moderation:
active: Ativu
all: Totus
disabled: Disativadu
pending: De imbiare
silenced: Limitadu
suspended: Suspèndidu
title: Moderatzione
moderation_notes: Notas de moderatzione
@ -112,6 +116,7 @@ sc:
search: Chirca
search_same_email_domain: Àteras persones cun su pròpiu domìniu de posta
search_same_ip: Àteras persones cun sa pròpiu IP
security: Seguresa
sensitive: Sensìbile
sensitized: marcadu comente a sensìbile
shared_inbox_url: URL de intrada cumpartzida
@ -122,6 +127,7 @@ sc:
silenced: Limitadas
statuses: Tuts
subscribe: Sutascrie·ti
suspend: Suspensione
suspended: Suspèndidu
suspension_irreversible: Is datos de custu contu sunt istados cantzellados in manera irreversìbile. Podes bogare sa suspensione a su contu pro chi si potzat impreare, ma no at a recuperare datu perunu de is chi teniat in antis.
suspension_reversible_hint_html: Su contu est istadu suspèndidu, e is datos ant a èssere cantzelladu de su totu su %{date}. Finas a tando, su contu si podet ripristinare sena efetu malu perunu. Si boles cantzellare totu is datos de su contu immediatamente ddu podes fàghere inoghe in bassu.
@ -274,6 +280,7 @@ sc:
updated_msg: Emoji atualizadu
upload: Càrriga
dashboard:
media_storage: Immagasinamentu
software: Programmas
space: Impreu de ispàtziu
title: Pannellu
@ -281,21 +288,28 @@ sc:
add_new: Permite sa federatzione cun domìniu
created_msg: Sa federatzione cun su domìniu est istada permìtida
destroyed_msg: Sa federatzione cun su domìniu no est istada permìtida
import: Importatzione
undo: Non permitas sa federatzione cun su domìniu
domain_blocks:
add_new: Agiunghe blocu de domìniu nou
confirm_suspension:
cancel: Annulla
confirm: Suspensione
created_msg: Protzessende su blocu de domìniu
destroyed_msg: Su blocu de domìniu est istadu iscontzadu
domain: Domìniu
edit: Modìfica su blocu de su domìniu
existing_domain_block_html: As giai impostu lìmites prus astrintos a %{name}, ddu dias dèpere <a href="%{unblock_url}">isblocare</a> prima.
import: Importatzione
new:
create: Crea unu blocu
hint: Su blocu de domìniu no at a impedire sa creatzione de contos noos in sa base de datos, ma ant a èssere aplicados in manera retroativa mètodos de moderatzione ispetzìficos subra custos contos.
severity:
noop: Perunu
silence: A sa muda
suspend: Suspensione
title: Blocu de domìniu nou
not_permitted: Non tenes su permissu de fàghere custa atzione
obfuscate: Cua su nòmine de domìniu
obfuscate_hint: Cua una parte de su nòmine de domìniu in sa lista si sa visualizatzione de sa lista de domìnios limitados est ativa
private_comment: Cummentu privadu
@ -326,9 +340,24 @@ sc:
title: Cussìgios de sighidura
unsuppress: Recùpera su cussìgiu de sighidura
instances:
back_to_all: Totus
back_to_limited: Limitadu
back_to_warning: Atentzione
by_domain: Domìniu
content_policies:
policies:
reject_reports: Refuda informes
silence: A sa muda
suspend: Suspensione
dashboard:
instance_reports_measure: informes a subra de àtere
delivery:
all: Totus
delivery_available: Sa cunsigna est a disponimentu
empty: Perunu domìniu agatadu.
known_accounts:
one: "%{count} contu connòschidu"
other: "%{count} contos connòschidos"
moderation:
all: Totus
limited: Limitadas
@ -390,18 +419,23 @@ sc:
notes:
one: "%{count} nota"
other: "%{count} notas"
action_log: Registru de controllu
action_taken_by: Mesuras adotadas dae
are_you_sure: Seguru?
assign_to_self: Assigna a mie
assigned: Moderatzione assignada
by_target_domain: Domìniu de su contu signaladu
cancel: Annulla
comment:
none: Perunu
confirm: Cunfirma
created_at: Sinnaladu
forwarded: Torradu a imbiare
forwarded_to: Torradu a imbiare a %{domain}
mark_as_resolved: Marca comente a isòrvidu
mark_as_sensitive: Signala comente a sensìbile
mark_as_unresolved: Marcare comente a non isòrvidu
no_one_assigned: Nemos
notes:
create: Agiunghe una nota
create_and_resolve: Isorve cun una nota
@ -419,6 +453,15 @@ sc:
unassign: Boga s'assignatzione
unresolved: No isòrvidu
updated_at: Atualizadu
view_profile: Visualiza profilu
roles:
categories:
administration: Amministratzione
invites: Invitos
moderation: Moderatzione
delete: Cantzella
privileges:
administrator: Amministratzione
rules:
add_new: Agiunghe règula
delete: Cantzella
@ -427,10 +470,26 @@ sc:
empty: Peruna règula de serbidore definida ancora.
title: Règulas de su serbidore
settings:
about:
manage_rules: Gesti is règulas de su serbidore
title: Informatziones
appearance:
title: Aspetu
default_noindex:
desc_html: Ìmplicat a totu is utentes chi no apant modificadu custa cunfiguratzione
title: Esclude in manera predefinida is utentes dae s'inditzamentu de is motores de chirca
discovery:
follow_recommendations: Cussìgios de sighidura
profile_directory: Diretòriu de profilos
public_timelines: Lìnias de tempos pùblicas
title: Iscoberta
trends: Tendèntzias
domain_blocks:
all: Pro totus
disabled: Pro nemos
users: Pro utentes locales in lìnia
registrations:
title: Registros
registrations_mode:
modes:
approved: Aprovatzione rechesta pro si registrare
@ -439,7 +498,10 @@ sc:
site_uploads:
delete: Cantzella s'archìviu carrigadu
destroyed_msg: Càrriga de su situ cantzellada.
software_updates:
documentation_link: Àteras informatziones
statuses:
application: Aplicatzione
back_to_account: Torra a sa pàgina de su contu
deleted: Cantzelladu
media:
@ -447,6 +509,10 @@ sc:
no_status_selected: Perunu istadu est istadu mudadu dae chi non nd'as seletzionadu
title: Istados de su contu
with_media: Cun elementos multimediales
strikes:
actions:
none: "%{name} at imbiadu un'avisu a %{target}"
suspend: "%{name} at suspèndidu su contu de %{target}"
system_checks:
database_schema_check:
message_html: Ddoe at tràmudas de base de datos in suspesu. Pone·ddas in esecutzione pro ti assegurare chi s'aplicatzione funtzionet comente si tocat
@ -459,12 +525,24 @@ sc:
review: Revisiona s'istadu
updated_msg: Cunfiguratzione de etichetas atualizada
title: Amministratzione
trends:
pending_review: De revisionare
tags:
title: Etichetas de tendèntzia
title: Tendèntzias
warning_presets:
add_new: Agiunghe noa
delete: Cantzella
edit_preset: Modìfica s'avisu predefinidu
empty: No as cunfiguradu ancora perunu avisu predefinidu.
title: Gesti is cunfiguratziones predefinidas de is avisos
webhooks:
delete: Cantzella
disable: Disativa
disabled: Disativadu
enable: Ativa
enabled: Ativu
status: Istadu
admin_mailer:
new_pending_account:
body: Is detàllios de su contu nou sunt a suta. Podes aprovare o refudare custa rechesta.
@ -473,6 +551,9 @@ sc:
body: "%{reporter} at sinnaladu %{target}"
body_remote: Una persone de su domìniu %{domain} at sinnaladu %{target}
subject: Informe nou pro %{instance} (#%{id})
new_trends:
new_trending_tags:
title: Etichetas de tendèntzia
aliases:
add_new: Crea unu nomìngiu
created_msg: Nomìngiu creadu. Immoe podes cumintzare a tramudare dae su contu betzu.
@ -495,17 +576,21 @@ sc:
notification_preferences: Muda is preferèntzias de posta
salutation: "%{name},"
settings: 'Muda is preferèntzias de posta: %{link}'
unsubscribe: Annulla sa sutiscritzione
view: 'Visualizatzione:'
view_profile: Visualiza profilu
view_status: Ammustra s'istadu
applications:
created: Aplicatzione creada
destroyed: Aplicatzione cantzellada
logout: Essi
regenerate_token: Torra a generare s'identificadore de atzessu
token_regenerated: Identificadore de atzessu generadu
warning: Dae cara a custos datos. Non ddos cumpartzas mai cun nemos!
your_token: S'identificadore tuo de atzessu
auth:
confirmations:
login_link: intra
delete_account: Cantzella su contu
delete_account_html: Si boles cantzellare su contu, ddu podes <a href="%{path}">fàghere inoghe</a>. T'amus a dimandare una cunfirmatzione.
description:
@ -528,11 +613,14 @@ sc:
register: Registru
registration_closed: "%{instance} no atzetat àteras persones"
reset_password: Reseta sa crae
rules:
back: A coa
security: Seguresa
set_new_password: Cunfigura una crae noa
status:
account_status: Istadu de su contu
confirming: Isetende chi sa posta eletrònica siat cumpletada.
functional: Su contu tuo est operativu.
pending: Sa dimanda tua est in protzessu de revisione dae su personale nostru. Podet serbire unu pagu de tempus. As a retzire unu messàgiu eletrònicu si sa dimanda est aprovada.
redirecting_to: Su contu tuo est inativu pro ite in die de oe est torrende a indiritzare a %{acct}.
too_fast: Formulàriu imbiadu tropu a lestru, torra a proare.
@ -581,8 +669,14 @@ sc:
more_details_html: Pro àteros detàllios, bide sa <a href="%{terms_path}">normativa de riservadesa</a>.
username_available: Su nòmine de utente tuo at a torrare a èssere a disponimentu
username_unavailable: Su nòmine de utente tuo no at a abarrare a disponimentu
disputes:
strikes:
title_actions:
none: Atentzione
domain_validator:
invalid_domain: no est unu nòmine de domìniu vàlidu
edit_profile:
other: Àteru
errors:
'400': Sa dimanda chi as imbiadu non fiat vàlida o non fiat curreta.
'403': Non tenes permissu pro bìdere custa pàgina.
@ -638,11 +732,15 @@ sc:
title: Agiunghe unu filtru nou
generic:
all: Totus
cancel: Annulla
changes_saved_msg: Modìficas sarvadas.
confirm: Cunfirma
copy: Còpia
delete: Cantzella
none: Perunu
order_by: Òrdina pro
save_changes: Sarva is modìficas
today: oe
validation_errors:
one: Calicuna cosa ancora no est andende. Bide sa faddina in bàsciu
other: Calicuna cosa ancora no est andende. Bide is %{count} faddinas in bàsciu
@ -655,12 +753,15 @@ sc:
overwrite: Subrascrie
overwrite_long: Sostitui is registros atuales cun cussos noos
preface: Podes importare datos chi as esportadu dae unu àteru serbidore, che a sa lista de sa gente chi ses sighende o blochende.
status: Istadu
success: Datos carrigados; ant a èssere protzessados luego
type: Casta de importatzione
types:
blocking: Lista de blocos
bookmarks: Sinnalibros
domain_blocking: Lista domìnios blocados
following: Lista de sighiduras
lists: Listas
muting: Lista gente a sa muda
upload: Càrriga
invites:
@ -685,6 +786,13 @@ sc:
expires_at: Iscadit
uses: Impreos
title: Invita gente
login_activities:
authentication_methods:
password: crae
webauthn: craes de seguresa
mail_subscriptions:
unsubscribe:
title: Annulla sa sutiscritzione
media_attachments:
validations:
images_and_video: Non si podet allegare unu vìdeu in una publicatzione chi cuntenet giai immàgines
@ -797,6 +905,8 @@ sc:
other: Àteru
posting_defaults: Valores predefinidos de publicatzione
public_timelines: Lìnias de tempos pùblicas
privacy:
search: Chirca
reactions:
errors:
limit_reached: Lìmite de reatziones diferentes cròmpidu
@ -850,6 +960,7 @@ sc:
platforms:
adobe_air: Adobe Air
android: Android
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
linux: Linux
@ -934,6 +1045,7 @@ sc:
'2629746': 1 mese
'31556952': 1 annu
'5259492': 2 meses
'604800': 1 chida
'63113904': 2 annos
'7889238': 3 meses
stream_entries:
@ -969,6 +1081,7 @@ sc:
subject: S'archìviu tuo est prontu pro èssere iscarrigadu
title: Collida dae s'archìviu
warning:
reason: 'Resone:'
subject:
disable: Su contu tuo %{acct} est istadu cungeladu
none: Avisu pro %{acct}

View File

@ -0,0 +1 @@
fil:

View File

@ -81,8 +81,8 @@ hu:
bootstrap_timeline_accounts: Ezek a fiókok ki lesznek tűzve az új felhasználók követési javaslatainak élére.
closed_registrations_message: Akkor jelenik meg, amikor a regisztráció le van zárva
content_cache_retention_period: A más kiszolgálókról származó bejegyzések megadott számú nap után törölve lesznek, ha pozitív értékre van állítva. Ez lehet, hogy nem fordítható vissza.
custom_css: A Mastodon webes verziójában használhatsz egyedi stílusokat.
mascot: Felülvágja a haladó webes felületen található illusztrációt.
custom_css: A Mastodon webes verziójában használhatsz egyéni stílusokat.
mascot: Felülbírálja a speciális webes felületen található illusztrációt.
media_cache_retention_period: A letöltött médiafájlok megadott számú nap után törölve lesznek, ha pozitív értékre van állítva, és igény szerint újból le lesznek töltve.
peers_api_enabled: Azon domainek listája, melyekkel ez a kiszolgáló találkozott a fediverzumban. Nem csatolunk adatot arról, hogy föderált kapcsolatban vagy-e az adott kiszolgálóval, csak arról, hogy a kiszolgálód tud a másikról. Ezt olyan szolgáltatások használják, melyek általában a föderációról készítenek statisztikákat.
profile_directory: A profilok jegyzéke minden olyan felhasználót felsorol, akik engedélyezték a felfedezhetőségüket.
@ -103,7 +103,7 @@ hu:
form_challenge:
current_password: Beléptél egy biztonsági térben
imports:
data: Egy másik Mastodon kiszolgálóról exportált CSV-fájl
data: Egy másik Mastodon-kiszolgálóról exportált CSV-fájl
invite_request:
text: Ez segít nekünk átnézni a jelentkezésedet
ip_block:
@ -199,7 +199,7 @@ hu:
otp_attempt: Kétlépcsős azonosító kód
password: Jelszó
phrase: Kulcsszó vagy kifejezés
setting_advanced_layout: Haladó webes felület engedélyezése
setting_advanced_layout: Speciális webes felület engedélyezése
setting_aggregate_reblogs: Megtolások csoportosítása az idővonalakon
setting_always_send_emails: E-mail értesítések küldése mindig
setting_auto_play_gif: GIF-ek automatikus lejátszása

View File

@ -43,7 +43,7 @@ hy:
setting_display_media_hide_all: Երբեք մեդիա ցոյց չտալ
setting_display_media_show_all: Մեդիա միշտ ցոյց տալ
setting_use_blurhash: Կտորները հիմնուում են թաքցուած վիզուալի վրայ՝ խամրեցնելով դետալները
setting_use_pending_items: Թաքցնել հոսքի թարմացումները կտտոի ետեւում՝ աւտօմատ թարմացուող հոսքի փոխարէն
setting_use_pending_items: Թաքցնել հոսքի թարմացումները կոճակի ետեւում՝ աւտօմատ թարմացուող հոսքի փոխարէն
username: Միայն լատինատառեր, թուեր եւ տակի գծիկ
whole_word: Եթէ բանալի բառը կամ արտայայտութիւնը պարունակում է միայն այբբենական նիշեր եւ թուեր, ապա այն կիրառուելու է ամբողջ բառի հետ համընկնելու դէպքում միայն
domain_allow:

View File

@ -27,14 +27,33 @@ lt:
none: Naudok šią parinktį norėdamas (-a) išsiųsti įspėjimą naudotojui, nesukeldamas (-a) jokio kito veiksmo.
sensitive: Priversk visus šio naudotojo medijos priedus pažymėti kaip jautrius.
silence: Neleisk naudotojui skelbti viešai matomų įrašų, paslėpk jų įrašus ir pranešimus nuo žmonių, kurie neseka jo. Uždaro visus su šia paskyra susijusius ataskaitas.
suspend: Neleisk jokios sąveikos iš šios paskyros arba į ją ir ištrink jos turinį. Sugrąžinama per 30 dienų. Uždaro visas su šia paskyra susijusias ataskaitas.
warning_preset_id: Pasirinktinai. Gali pridėti pasirinktinį tekstą iš anksto nustatyto rinkinio pabaigoje
announcement:
all_day: Jei pažymėta, bus rodomos tik laikotarpio datos
ends_at: Pasirinktinai. Skelbimas šiuo laiku bus automatiškai panaikintas
scheduled_at: Palik tuščią, kad skelbimas būtų paskelbtas iš karto
starts_at: Pasirinktinai. Jei skelbimas susietas su tam tikru laiko tarpu
text: Gali naudoti įrašo sintaksę. Būk dėmesingas (-a), kiek vietos naudotojo ekrane užims skelbimas
appeal:
text: Gali pateikti apeliaciją dėl streiko tik vieną kartą
defaults:
autofollow: Žmonės, kurie užsiregistruos per kvietimą, automatiškai seks tave
avatar: PNG, GIF arba JPG. Ne daugiau kaip %{size}. Bus sumažintas iki %{dimensions} tšk.
header: PNG, GIF arba JPG. Ne daugiau kaip %{size}. Bus sumažintas iki %{dimensions}tšk.
bot: Signalizuoti kitiems, kad paskyroje daugiausia atliekami automatiniai veiksmai ir kad ji gali būti nestebima
context: Vienas arba keli kontekstai, kuriems turėtų būti taikomas filtras
current_password: Saugumo sumetimais įvesk dabartinės paskyros slaptažodį
current_username: Kad patvirtintum, įvesk dabartinės paskyros naudotojo vardą
digest: Siunčiama tik po ilgo neaktyvumo laikotarpio ir tik tuo atveju, jei negavai jokių asmeninių žinučių
email: Tau bus išsiųstas patvirtinimo el. laiškas
header: PNG, GIF arba JPG. Ne daugiau kaip %{size}. Bus sumažintas iki %{dimensions} tšk.
inbox_url: Nukopijuok URL adresą iš pradinio puslapio perdavėjo, kurį nori naudoti
irreversible: Filtruoti įrašai išnyks negrįžtamai, net jei vėliau filtras bus pašalintas
locale: Naudotojo sąsajos kalba, el. laiškai ir stumiamieji pranešimai
password: Naudok bent 8 simbolius
phrase: Bus suderinta, neatsižvelgiant į teksto korpusą arba įrašo turinio įspėjimą
phrase: Bus suderinta, neatsižvelgiant į teksto lygį arba įrašo turinio įspėjimą
scopes: Prie kurių API programai bus leidžiama pasiekti. Pasirinkus aukščiausio lygio sritį, atskirų sričių pasirinkti nereikia.
setting_aggregate_reblogs: Nerodyti naujų pakėlimų įrašams, kurie neseniai buvo pakelti (taikoma tik naujai gautiems pakėlimams)
setting_always_send_emails: Paprastai pranešimai el. paštu nebus siunčiami, kai aktyviai naudoji Mastodon
setting_default_sensitive: Jautrioji medija pagal numatytuosius nustatymus yra paslėpta ir gali būti atskleista paspaudus
setting_display_media_default: Slėpti mediją, pažymėtą kaip jautrią
@ -42,21 +61,116 @@ lt:
setting_display_media_show_all: Visada rodyti mediją
setting_use_blurhash: Gradientai pagrįsti paslėptų vaizdų spalvomis, tačiau užgožia bet kokias detales
setting_use_pending_items: Slėpti laiko skalės naujienas po paspaudimo, vietoj automatinio kanalo slinkimo
username: Gali naudoti raides, skaičius ir pabraukimus
whole_word: Kai raktažodis ar frazė yra tik raidinis ir skaitmeninis, jis bus taikomas tik tada, jei atitiks visą žodį
email_domain_block:
with_dns_records: Bus bandoma išspręsti nurodyto domeno DNS įrašus, o rezultatai taip pat bus blokuojami
featured_tag:
name: 'Štai keletas pastaruoju metu dažniausiai saitažodžių, kurių tu naudojai:'
filters:
action: Pasirink, kokį veiksmą atlikti, kai įrašas atitinka filtrą
actions:
hide: Visiškai paslėpti filtruotą turinį ir elgtis taip, tarsi jo neegzistuotų
warn: Slėpti filtruojamą turinį po įspėjimu, paminint filtro pavadinimą
form_admin_settings:
activity_api_enabled: Vietinių paskelbtų įrašų, aktyvių naudotojų ir naujų registracijų skaičiai kas savaitę
backups_retention_period: Laikyti sukurtus naudotojų archyvus nurodytą dienų skaičių.
peers_api_enabled: Domenų pavadinimų sąrašas, su kuriais šis serveris susidūrė fediverse. Čia nėra duomenų apie tai, ar tu bendrauji su tam tikru serveriu, tik apie tai, kad tavo serveris apie jį žino. Tai naudojama tarnybose, kurios renka federacijos statistiką bendrąja prasme.
site_contact_email: Kaip žmonės gali su tavimi susisiekti teisiniais ar pagalbos užklausimais.
site_contact_username: Kaip žmonės gali tave pasiekti Mastodon.
site_extended_description: Bet kokia papildoma informacija, kuri gali būti naudinga lankytojams ir naudotojams. Gali būti struktūrizuota naudojant Markdown sintaksę.
thumbnail: Maždaug 2:1 dydžio vaizdas, rodomas šalia tavo serverio informacijos.
timeline_preview: Atsijungę lankytojai galės naršyti naujausius viešus įrašus, esančius serveryje.
trends: Trendai rodo, kurios įrašai, saitažodžiai ir naujienų istorijos tavo serveryje sulaukia didžiausio susidomėjimo.
sessions:
webauthn: Jei tai USB raktas, būtinai jį įkišk ir, jei reikia, paliesk.
otp: 'Įvesk telefono programėlėje sugeneruotą dviejų tapatybės kodą arba naudok vieną iš atkūrimo kodų:'
webauthn: Jei tai USB raktas, būtinai jį įkišk ir, jei reikia, paspausk.
settings:
indexable: Tavo profilio puslapis gali būti rodomas paieškos rezultatuose Google, Bing ir kituose.
user:
chosen_languages: Kai pažymėta, viešose laiko skalėse bus rodomi tik įrašai pasirinktomis kalbomis
role: Vaidmuo valdo, kokius leidimus naudotojas (-a) turi
labels:
account:
indexable: Įtraukti viešus įrašus į paieškos rezultatus
show_collections: Rodyti sekimus ir sekėjus profilyje
unlocked: Automatiškai priimti naujus sekėjus
account_warning_preset:
title: Pavadinimas
admin_account_action:
include_statuses: Įtraukti praneštus įrašus į el. laišką
defaults:
avatar: Profilio nuotrauka
bot: Tai automatinė paskyra
chosen_languages: Filtruoti kalbas
display_name: Rodomas vardas
email: El. pašto adresas
expires_in: Nustoja galioti po
fields: Papildomi laukai
irreversible: Mesti vietoj slėpti
locale: Sąsajos kalba
max_uses: Maksimalus naudojimo skaičius
new_password: Naujas slaptažodis
note: Biografija
password: Slaptažodis
phrase: Raktažodis arba frazė
setting_auto_play_gif: Automatiškai leisti animuotų GIF
setting_boost_modal: Rodyti patvirtinimo dialogą prieš pakėliant įrašą
setting_default_language: Skelbimo kalba
setting_default_privacy: Skelbimo privatumas
setting_default_sensitive: Visada žymėti mediją kaip jautrią
setting_delete_modal: Rodyti patvirtinimo dialogą prieš ištrinant įrašą
setting_display_media: Medijos rodymas
setting_display_media_hide_all: Slėpti viską
setting_display_media_show_all: Rodyti viską
setting_expand_spoilers: Visada išplėsti įrašus, pažymėtus turinio įspėjimais
setting_hide_network: Slėpti savo socialinę diagramą
setting_system_font_ui: Naudoti numatytąjį sistemos šriftą
setting_theme: Svetainės tema
setting_use_pending_items: Lėtas režimas
title: Pavadinimas
type: Importo tipas
username: Naudotojo vardas
username_or_email: Naudotojo vardas arba el. paštas
whole_word: Visas žodis
email_domain_block:
with_dns_records: Įtraukti MX įrašus ir domeno IP adresus
featured_tag:
name: Saitažodis
filters:
actions:
hide: Slėpti visiškai
warn: Slėpti su įspėjimu
form_admin_settings:
activity_api_enabled: Skelbti suvestinį statistiką apie naudotojų veiklą per API
bootstrap_timeline_accounts: Visada rekomenduoti šias paskyras naujiems naudotojams
content_cache_retention_period: Turinio talpyklos išlaikymo laikotarpis
custom_css: Pasirinktinis CSS
mascot: Pasirinktinis talismanas (pasenęs)
registrations_mode: Kas gali užsiregistruoti
show_domain_blocks_rationale: Rodyti, kodėl domenai buvo užblokuoti
site_extended_description: Išplėstas aprašymas
site_short_description: Serverio aprašymas
site_terms: Privatumo politika
site_title: Serverio pavadinimas
theme: Numatytoji tema
thumbnail: Serverio miniatūra
invite_request:
text: Kodėl nori prisijungti?
notification_emails:
favourite: Kažkas pamėgo tavo įrašą
follow: Kažkas seka tave
follow_request: Kažkas paprašė sekti tave
mention: Kažkas paminėjo tave
pending_account: Reikia peržiūros naujam paskyrui
reblog: Kažkas pakėlė tavo įrašą
software_updates:
label: Yra nauja Mastodon versija
patch: Pranešti apie klaidų ištaisymo atnaujinimus
rule:
text: Taisyklė
settings:
show_application: Rodyti, iš kurios programėles išsiuntei įrašą
tag:
listable: Leisti šį saitažodį rodyti paieškose ir pasiūlymuose
name: Saitažodis
@ -64,11 +178,15 @@ lt:
usable: Leisti įrašams naudoti šį saitažodį
user:
role: Vaidmuo
time_zone: Laiko juosta
user_role:
color: Ženklelio spalva
highlighted: Rodyti vaidmenį kaip ženklelį naudotojo profiliuose
name: Pavadinimas
permissions_as_keys: Leidimai
position: Prioritetas
webhook:
events: Įgalinti įvykiai
events: Įjungti įvykiai
template: Naudingosios apkrovos šablonas
url: Galutinio taško URL
'no': Ne

View File

@ -0,0 +1 @@
ne:

View File

@ -0,0 +1 @@
ry:

View File

@ -53,6 +53,8 @@ sc:
domain: Custu domìniu at a pòdere recuperare datos dae custu serbidore e is datos in intrada dae cue ant a èssere protzessados e archiviados
email_domain_block:
with_dns_records: S'at a fàghere unu tentativu de risòlvere is registros DNS de su domìniu e fintzas is risultados ant a èssere blocados
form_admin_settings:
activity_api_enabled: Nùmeru de tuts publicados in locale, utentes ativos e registros noos in perìodos chidajolos
form_challenge:
current_password: Ses intrende in un'àrea segura
imports:
@ -155,6 +157,7 @@ sc:
setting_use_pending_items: Modalidade lenta
severity: Severidade
sign_in_token_attempt: Còdighe de seguresa
title: Tìtulu
type: Casta de importatzione
username: Nòmine utente
username_or_email: Nòmine utente o indiritzu de posta eletrònica
@ -163,6 +166,16 @@ sc:
with_dns_records: Include registros MX e indiritzos IP de su domìniu
featured_tag:
name: Eticheta
form_admin_settings:
activity_api_enabled: Pùblica istatìsticas agregadas subra s'atividade de s'utente
custom_css: CSS personalizadu
peers_api_enabled: Pùblica sa lista de serbidores iscobertos in s'API
profile_directory: Ativa diretòriu de profilos
show_domain_blocks: Ammustra blocos de domìniu
site_contact_username: Nòmine de utente de su cuntatu
site_short_description: Descritzione de su serbidore
site_title: Nòmine de su serbidore
thumbnail: Miniadura de su serbidore
interactions:
must_be_follower: Bloca is notìficas dae chie non ti sighit
must_be_following: Bloca is notìficas dae gente chi non sighis
@ -186,6 +199,7 @@ sc:
mention: Una persone t'at mentovadu
pending_account: Unu contu nou tenet bisòngiu de una revisione
reblog: Una persone at cumpartzidu s'istadu tuo
report: Imbiu de un'informe nou
rule:
text: Règula
tag:
@ -193,6 +207,9 @@ sc:
name: Eticheta
trendable: Permite a custa eticheta de apàrrere in is tendèntzias
usable: Permite a is tuts de impreare custa eticheta
user_role:
name: Nòmine
permissions_as_keys: Permissos
'no': Nono
recommended: Cussigiadu
required:

View File

@ -0,0 +1 @@
tlh:

1
config/locales/tlh.yml Normal file
View File

@ -0,0 +1 @@
tlh:

View File

@ -6,6 +6,6 @@ UserRole.everyone
# Create default roles defined in config file
default_roles = YAML.load_file(Rails.root.join('config', 'roles.yml'))
default_roles.each do |_, config|
default_roles.each_value do |config|
UserRole.create_with(position: config['position'], permissions_as_keys: config['permissions'], highlighted: true).find_or_create_by(name: config['name'])
end

View File

@ -472,15 +472,13 @@ module Mastodon::CLI
end
total = 0
total += Account.where(id: ::Follow.where(account: account).select(:target_account_id)).count if options[:follows]
total += Account.where(id: ::Follow.where(target_account: account).select(:account_id)).count if options[:followers]
total += account.following.reorder(nil).count if options[:follows]
total += account.followers.reorder(nil).count if options[:followers]
progress = create_progress_bar(total)
processed = 0
if options[:follows]
scope = Account.where(id: ::Follow.where(account: account).select(:target_account_id))
scope.find_each do |target_account|
account.following.reorder(nil).find_each do |target_account|
UnfollowService.new.call(account, target_account)
rescue => e
progress.log pastel.red("Error processing #{target_account.id}: #{e}")
@ -493,9 +491,7 @@ module Mastodon::CLI
end
if options[:followers]
scope = Account.where(id: ::Follow.where(target_account: account).select(:account_id))
scope.find_each do |target_account|
account.followers.reorder(nil).find_each do |target_account|
UnfollowService.new.call(target_account, account)
rescue => e
progress.log pastel.red("Error processing #{target_account.id}: #{e}")

View File

@ -7,10 +7,10 @@ module Mastodon::CLI
class EmailDomainBlocks < Base
desc 'list', 'List blocked e-mail domains'
def list
EmailDomainBlock.where(parent_id: nil).order(id: 'DESC').find_each do |entry|
EmailDomainBlock.where(parent_id: nil).find_each do |entry|
say(entry.domain.to_s, :white)
EmailDomainBlock.where(parent_id: entry.id).order(id: 'DESC').find_each do |child|
EmailDomainBlock.where(parent_id: entry.id).find_each do |child|
say(" #{child.domain}", :cyan)
end
end

View File

@ -48,8 +48,8 @@ module Mastodon::CLI
next if account.avatar.blank? && account.header.blank?
next if options[:remove_headers] && account.header.blank?
size = (account.header_file_size || 0)
size += (account.avatar_file_size || 0) if options[:prune_profiles]
size = account.header_file_size || 0
size += account.avatar_file_size || 0 if options[:prune_profiles]
unless dry_run?
account.header.destroy
@ -265,6 +265,7 @@ module Mastodon::CLI
elsif options[:days].present?
scope = MediaAttachment.remote
else
say('Specify the source of media attachments', :red)
exit(1)
end

View File

@ -120,7 +120,7 @@ module Mastodon::CLI
say('Beginning removal of now-orphaned media attachments to free up disk space...')
scope = MediaAttachment.reorder(nil).unattached.where('created_at < ?', options[:days].pred.days.ago)
scope = MediaAttachment.unattached.where('created_at < ?', options[:days].pred.days.ago)
processed = 0
removed = 0
progress = create_progress_bar(scope.count)

View File

@ -99,7 +99,7 @@ module Mastodon::Snowflake
def id_at(timestamp, with_random: true)
id = timestamp.to_i * 1000
id += rand(1000) if with_random
id = id << 16
id <<= 16
id += rand(2**16) if with_random
id
end

View File

@ -196,7 +196,7 @@
"eslint-plugin-jsx-a11y": "~6.8.0",
"eslint-plugin-prettier": "^5.0.0",
"eslint-plugin-promise": "~6.1.1",
"eslint-plugin-react": "~7.33.0",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0",
"husky": "^8.0.3",
"jest": "^29.5.0",

View File

@ -161,12 +161,13 @@ RSpec.describe Admin::AccountsController do
it 'logs action' do
expect(subject).to have_http_status 302
log_item = Admin::ActionLog.last
expect(log_item).to_not be_nil
expect(log_item.action).to eq :approve
expect(log_item.account_id).to eq current_user.account_id
expect(log_item.target_id).to eq account.user.id
expect(latest_admin_action_log)
.to be_present
.and have_attributes(
action: eq(:approve),
account_id: eq(current_user.account_id),
target_id: eq(account.user.id)
)
end
end
@ -201,12 +202,13 @@ RSpec.describe Admin::AccountsController do
it 'logs action' do
expect(subject).to have_http_status 302
log_item = Admin::ActionLog.last
expect(log_item).to_not be_nil
expect(log_item.action).to eq :reject
expect(log_item.account_id).to eq current_user.account_id
expect(log_item.target_id).to eq account.user.id
expect(latest_admin_action_log)
.to be_present
.and have_attributes(
action: eq(:reject),
account_id: eq(current_user.account_id),
target_id: eq(account.user.id)
)
end
end
@ -427,4 +429,10 @@ RSpec.describe Admin::AccountsController do
end
end
end
private
def latest_admin_action_log
Admin::ActionLog.last
end
end

View File

@ -9,11 +9,9 @@ describe Admin::ActionLogsController do
let!(:account) { Fabricate(:account) }
before do
_orphaned_logs = %w(
Account User UserRole Report DomainBlock DomainAllow
EmailDomainBlock UnavailableDomain Status AccountWarning
Announcement IpBlock Instance CustomEmoji CanonicalEmailBlock Appeal
).map { |type| Admin::ActionLog.new(account: account, action: 'destroy', target_type: type, target_id: 1312).save! }
orphaned_log_types.map do |type|
Fabricate(:action_log, account: account, action: 'destroy', target_type: type, target_id: 1312)
end
end
describe 'GET #index' do
@ -24,4 +22,27 @@ describe Admin::ActionLogsController do
expect(response).to have_http_status(200)
end
end
private
def orphaned_log_types
%w(
Account
AccountWarning
Announcement
Appeal
CanonicalEmailBlock
CustomEmoji
DomainAllow
DomainBlock
EmailDomainBlock
Instance
IpBlock
Report
Status
UnavailableDomain
User
UserRole
)
end
end

View File

@ -192,16 +192,11 @@ RSpec.describe Admin::DomainBlocksController do
let(:original_severity) { 'suspend' }
let(:new_severity) { 'silence' }
it 'changes the block severity' do
expect { subject }.to change { domain_block.reload.severity }.from('suspend').to('silence')
end
it 'undoes individual suspensions' do
expect { subject }.to change { remote_account.reload.suspended? }.from(true).to(false)
end
it 'performs individual silences' do
expect { subject }.to change { remote_account.reload.silenced? }.from(false).to(true)
it 'changes the block severity, suspensions, and silences' do
expect { subject }
.to change_severity('suspend', 'silence')
.and change_suspended(true, false)
.and change_silenced(false, true)
end
end
@ -209,17 +204,26 @@ RSpec.describe Admin::DomainBlocksController do
let(:original_severity) { 'silence' }
let(:new_severity) { 'suspend' }
it 'changes the block severity' do
expect { subject }.to change { domain_block.reload.severity }.from('silence').to('suspend')
it 'changes the block severity, silences, and suspensions' do
expect { subject }
.to change_severity('silence', 'suspend')
.and change_silenced(true, false)
.and change_suspended(false, true)
end
end
it 'undoes individual silences' do
expect { subject }.to change { remote_account.reload.silenced? }.from(true).to(false)
end
private
it 'performs individual suspends' do
expect { subject }.to change { remote_account.reload.suspended? }.from(false).to(true)
end
def change_severity(from, to)
change { domain_block.reload.severity }.from(from).to(to)
end
def change_silenced(from, to)
change { remote_account.reload.silenced? }.from(from).to(to)
end
def change_suspended(from, to)
change { remote_account.reload.suspended? }.from(from).to(to)
end
end

View File

@ -24,7 +24,7 @@ RSpec.describe Admin::ExportDomainAllowsController do
get :export, params: { format: :csv }
expect(response).to have_http_status(200)
expect(response.body).to eq(File.read(File.join(file_fixture_path, 'domain_allows.csv')))
expect(response.body).to eq(domain_allows_csv_file)
end
end
@ -40,7 +40,7 @@ RSpec.describe Admin::ExportDomainAllowsController do
# Domains should now be added
get :export, params: { format: :csv }
expect(response).to have_http_status(200)
expect(response.body).to eq(File.read(File.join(file_fixture_path, 'domain_allows.csv')))
expect(response.body).to eq(domain_allows_csv_file)
end
it 'displays error on no file selected' do
@ -49,4 +49,10 @@ RSpec.describe Admin::ExportDomainAllowsController do
expect(flash[:error]).to eq(I18n.t('admin.export_domain_allows.no_file'))
end
end
private
def domain_allows_csv_file
File.read(File.join(file_fixture_path, 'domain_allows.csv'))
end
end

View File

@ -26,7 +26,13 @@ RSpec.describe Admin::ExportDomainBlocksController do
get :export, params: { format: :csv }
expect(response).to have_http_status(200)
expect(response.body).to eq(File.read(File.join(file_fixture_path, 'domain_blocks.csv')))
expect(response.body).to eq(domain_blocks_csv_file)
end
private
def domain_blocks_csv_file
File.read(File.join(file_fixture_path, 'domain_blocks.csv'))
end
end

BIN
spec/fixtures/files/elite-assets.tar.gz vendored Normal file

Binary file not shown.

View File

@ -12,7 +12,7 @@ describe PostDeploymentMigrationGenerator, type: :generator do
include FileUtils
tests described_class
destination File.expand_path('../../tmp', __dir__)
destination Rails.root.join('tmp', 'generator-test')
before { prepare_destination }
after { rm_rf(destination_root) }

View File

@ -29,15 +29,27 @@ describe ApplicationHelper do
describe 'body_classes' do
context 'with a body class string from a controller' do
before do
without_partial_double_verification do
allow(helper).to receive_messages(body_class_string: 'modal-layout compose-standalone', current_flavour: 'glitch', current_skin: 'default', current_account: Fabricate(:account))
end
end
before { helper.extend controller_helpers }
it 'uses the controller body classes in the result' do
expect(helper.body_classes).to match(/modal-layout compose-standalone/)
end
private
def controller_helpers
Module.new do
def body_class_string = 'modal-layout compose-standalone'
def body_class_string = 'modal-layout compose-standalone'
def current_account
@current_account ||= Fabricate(:account)
end
def current_flavour = 'glitch'
def current_skin = 'default'
end
end
end
end
@ -122,9 +134,7 @@ describe ApplicationHelper do
describe 'available_sign_up_path' do
context 'when registrations are closed' do
before do
without_partial_double_verification do
allow(Setting).to receive(:registrations_mode).and_return('none')
end
allow(Setting).to receive(:[]).with('registrations_mode').and_return 'none'
end
it 'redirects to joinmastodon site' do

View File

@ -23,12 +23,19 @@ RSpec.describe HomeHelper do
context 'with a valid account' do
let(:account) { Fabricate(:account) }
it 'returns a link to the account' do
without_partial_double_verification do
allow(helper).to receive_messages(current_account: account, prefers_autoplay?: false)
result = helper.account_link_to(account)
before { helper.extend controller_helpers }
expect(result).to match "@#{account.acct}"
it 'returns a link to the account' do
result = helper.account_link_to(account)
expect(result).to match "@#{account.acct}"
end
private
def controller_helpers
Module.new do
def current_account = Account.last
end
end
end

View File

@ -3,16 +3,12 @@
require 'rails_helper'
describe MediaComponentHelper do
before { helper.extend controller_helpers }
describe 'render_video_component' do
let(:media) { Fabricate(:media_attachment, type: :video, status: Fabricate(:status)) }
let(:result) { helper.render_video_component(media.status) }
before do
without_partial_double_verification do
allow(helper).to receive(:current_account).and_return(media.account)
end
end
it 'renders a react component for the video' do
expect(parsed_html.div['data-component']).to eq('Video')
end
@ -22,12 +18,6 @@ describe MediaComponentHelper do
let(:media) { Fabricate(:media_attachment, type: :audio, status: Fabricate(:status)) }
let(:result) { helper.render_audio_component(media.status) }
before do
without_partial_double_verification do
allow(helper).to receive(:current_account).and_return(media.account)
end
end
it 'renders a react component for the audio' do
expect(parsed_html.div['data-component']).to eq('Audio')
end
@ -37,12 +27,6 @@ describe MediaComponentHelper do
let(:media) { Fabricate(:media_attachment, type: :audio, status: Fabricate(:status)) }
let(:result) { helper.render_media_gallery_component(media.status) }
before do
without_partial_double_verification do
allow(helper).to receive(:current_account).and_return(media.account)
end
end
it 'renders a react component for the media gallery' do
expect(parsed_html.div['data-component']).to eq('MediaGallery')
end
@ -54,10 +38,6 @@ describe MediaComponentHelper do
before do
PreviewCardsStatus.create(status: status, preview_card: Fabricate(:preview_card))
without_partial_double_verification do
allow(helper).to receive(:current_account).and_return(status.account)
end
end
it 'returns the correct react component markup' do
@ -69,12 +49,6 @@ describe MediaComponentHelper do
let(:status) { Fabricate(:status, poll: Fabricate(:poll)) }
let(:result) { helper.render_poll_component(status) }
before do
without_partial_double_verification do
allow(helper).to receive(:current_account).and_return(status.account)
end
end
it 'returns the correct react component markup' do
expect(parsed_html.div['data-component']).to eq('Poll')
end
@ -85,4 +59,10 @@ describe MediaComponentHelper do
def parsed_html
Nokogiri::Slop(result)
end
def controller_helpers
Module.new do
def current_account = Account.last
end
end
end

View File

@ -6,6 +6,8 @@ require 'mastodon/cli/accounts'
describe Mastodon::CLI::Accounts do
let(:cli) { described_class.new }
it_behaves_like 'CLI Command'
# `parallelize_with_progress` cannot run in transactions, so instead,
# stub it with an alternative implementation that runs sequentially
# and can run in transactions.
@ -24,12 +26,6 @@ describe Mastodon::CLI::Accounts do
end
end
describe '.exit_on_failure?' do
it 'returns true' do
expect(described_class.exit_on_failure?).to be true
end
end
describe '#create' do
shared_examples 'a new user with given email address and username' do
it 'creates a new user with the specified email address' do

View File

@ -6,11 +6,7 @@ require 'mastodon/cli/cache'
describe Mastodon::CLI::Cache do
let(:cli) { described_class.new }
describe '.exit_on_failure?' do
it 'returns true' do
expect(described_class.exit_on_failure?).to be true
end
end
it_behaves_like 'CLI Command'
describe '#clear' do
before { allow(Rails.cache).to receive(:clear) }

View File

@ -6,11 +6,7 @@ require 'mastodon/cli/canonical_email_blocks'
describe Mastodon::CLI::CanonicalEmailBlocks do
let(:cli) { described_class.new }
describe '.exit_on_failure?' do
it 'returns true' do
expect(described_class.exit_on_failure?).to be true
end
end
it_behaves_like 'CLI Command'
describe '#find' do
let(:arguments) { ['user@example.com'] }

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