Merge branch 'main' into feature/require-mfa-by-admin

This commit is contained in:
FredysFonseca 2025-08-08 01:23:32 -04:00 committed by GitHub
commit 4ce99fcf55
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
46 changed files with 945 additions and 100 deletions

View File

@ -1,18 +0,0 @@
# frozen_string_literal: true
module EmailHelper
def self.included(base)
base.extend(self)
end
def email_to_canonical_email(str)
username, domain = str.downcase.split('@', 2)
username, = username.delete('.').split('+', 2)
"#{username}@#{domain}"
end
def email_to_canonical_email_hash(str)
Digest::SHA2.new(256).hexdigest(email_to_canonical_email(str))
end
end

View File

@ -1,13 +1,15 @@
{
"about.blocks": "Moderasiya olunan serverlər",
"about.blocks": "Moderasiya edilmiş serverlər",
"about.contact": "Əlaqə:",
"about.disclaimer": "Mastodon pulsuz, açıq-mənbəli proqram təminatıdır və Mastodon gGmbH-nin əmtəə nişanıdır.",
"about.domain_blocks.no_reason_available": "Səbəb naməlumdur",
"about.domain_blocks.preamble": "Mastodon adətən fediversedəki hər hansısa bir serverdən olan məzmuna baxmaq və istifadəçilərlə qarşılıqlı əlaqədə olmaq imkanı verir. Bunlar bu serverdə edilmiş istisnalardır.",
"about.default_locale": "İlkin",
"about.disclaimer": "Mastodon ödənişsiz, açıq-mənbəli yazılımdır və Mastodon gGmbH-nin əmtəə nişanıdır.",
"about.domain_blocks.no_reason_available": "Səbəb mövcud deyil",
"about.domain_blocks.preamble": "Mastodon, adətən fediverse-dəki hər hansısa bir serverdən məzmuna baxmağınıza və istifadəçilərlə qarşılıqlı əlaqədə olmağınıza imkanı verir. Bunlar, bu serverdə edilmiş istisnalardır.",
"about.domain_blocks.silenced.explanation": "Siz bu serverdəki profilləri və məzmunu xüsusi olaraq axtarmasanız və ya izləməsəniz ümumiyyətlə görməyəcəksiniz.",
"about.domain_blocks.silenced.title": "Məhdudlaşdırılmış",
"about.domain_blocks.suspended.explanation": "Bu serverdən heç bir data emal edilməyəcək, saxlanılmayacaq və ya mübadilə edilməyəcək və bu serverdən olan istifadəçilərlə hər hansı qarşılıqlı əlaqə qeyri-mümkün olacaq.",
"about.domain_blocks.suspended.explanation": "Bu serverdəki heç bir veri emal edilməyəcək, saxlanılmayacaq və ya mübadilə edilməyəcək, bu serverdəki istifadəçilərlə hər hansısa bir qarşılıqlı əlaqə və ya ünsiyyət mümkünsüz olacaq.",
"about.domain_blocks.suspended.title": "Qadağa qoyulub",
"about.language_label": "Dil",
"about.not_available": "Bu məlumat bu serverdə əlçatan edilməyib.",
"about.powered_by": "{mastodon} tərəfindən təchiz edilən desentralizasiya edilmiş sosial media",
"about.rules": "Server qaydaları",
@ -19,6 +21,7 @@
"account.block_domain": "{domain} domenini blokla",
"account.block_short": "Blok",
"account.blocked": "Bloklanıb",
"account.blocking": "Əngəlləmə",
"account.cancel_follow_request": "İzləməni ləğv et",
"account.copy": "Profil linkini kopyala",
"account.direct": "@{name} istifadəçisini fərdi olaraq etiketlə",
@ -27,6 +30,11 @@
"account.edit_profile": "Profili redaktə et",
"account.enable_notifications": "@{name} paylaşım edəndə mənə bildiriş göndər",
"account.endorse": "Profildə seçilmişlərə əlavə et",
"account.familiar_followers_many": "{name1}, {name2} və tanıdığınız digər {othersCount, plural, one {digər bir nəfər} other {# nəfər}} izləyir",
"account.familiar_followers_one": "{name1} izləyir",
"account.familiar_followers_two": "{name1} və {name2} izləyir",
"account.featured": "Seçilmiş",
"account.featured.accounts": "Profillər",
"account.featured.hashtags": "Etiketler",
"account.featured_tags.last_status_at": "Son paylaşım {date} tarixində olub",
"account.featured_tags.last_status_never": "Paylaşım yoxdur",
@ -35,9 +43,11 @@
"account.followers": "İzləyicilər",
"account.followers.empty": "Bu istifadəçini hələ ki, heç kim izləmir.",
"account.followers_counter": "{count, plural, one {{counter} izləyici} other {{counter} izləyici}}",
"account.followers_you_know_counter": "bildiyiniz {counter}",
"account.following": "İzləyir",
"account.following_counter": "{count, plural, one {{counter} izləyir} other {{counter} izləyir}}",
"account.follows.empty": "Bu istifadəçi hələ ki, heç kimi izləmir.",
"account.follows_you": "Sizi izləyir",
"account.go_to_profile": "Profilə get",
"account.hide_reblogs": "@{name} istifadəçisindən olan gücləndirmələri gizlət",
"account.in_memoriam": "Xatirə.",
@ -52,18 +62,23 @@
"account.mute_notifications_short": "Bildirişləri səssizləşdir",
"account.mute_short": "Səssizləşdir",
"account.muted": "Səssizləşdirilib",
"account.muting": "Səssizə alınır",
"account.mutual": "Bir-birinizi izləyirsiniz",
"account.no_bio": "Təsvir göstərilməyib.",
"account.open_original_page": "Orijinal səhifəni aç",
"account.posts": "Paylaşım",
"account.posts_with_replies": "Paylaşım və cavablar",
"account.remove_from_followers": "{name} - izləyicilərdən çıxart",
"account.report": "@{name} istifadəçisini şikayət et",
"account.requested": "Təsdiq edilməsi gözlənilir. İzləmə sorğusunu ləğv etmək üçün kliklə",
"account.requested_follow": "{name} sizi izləmək sorğusu göndərib",
"account.requests_to_follow_you": "Sizi izləmək istəyir",
"account.share": "@{name} profilini paylaş",
"account.show_reblogs": "@{name} istifadəçisindən olan gücləndirmələri göstər",
"account.statuses_counter": "{count, plural, one {{counter} paylaşım} other {{counter} paylaşım}}",
"account.unblock": "@{name} blokunu aç",
"account.unblock_domain": "{domain} domeninin blokunu aç",
"account.unblock_domain_short": "Əngəldən çıxart",
"account.unblock_short": "Bloku aç",
"account.unendorse": "Profildə seçilmişlərə əlavə etmə",
"account.unfollow": "İzləmədən çıxar",
@ -162,11 +177,11 @@
"column.pins": "Bərkidilmiş paylaşımlar",
"column.public": "Federasiya zaman qrafiki",
"column_back_button.label": "Geriyə",
"column_header.hide_settings": "Parametrləri gizlət",
"column_header.hide_settings": "Ayarları gizlət",
"column_header.moveLeft_settings": "Sütunu sola köçür",
"column_header.moveRight_settings": "Sütunu sağa köçür",
"column_header.pin": "Bərkit",
"column_header.show_settings": "Parametrləri göstər",
"column_header.show_settings": "Ayarları göstər",
"column_header.unpin": "Bərkitmə",
"column_search.cancel": "İmtina",
"community.column_settings.local_only": "Sadəcə lokalda",
@ -192,7 +207,7 @@
"compose_form.poll.type": "Stil",
"compose_form.publish": "Paylaş",
"compose_form.reply": "Cavabla",
"compose_form.save_changes": "Yenilə",
"compose_form.save_changes": "Güncəllə",
"compose_form.spoiler.marked": "Məzmun xəbərdarlığını sil",
"compose_form.spoiler.unmarked": "Məzmun xəbərdarlığı əlavə et",
"compose_form.spoiler_placeholder": "Məzmun xəbərdarlığı (məcburi deyil)",
@ -204,6 +219,13 @@
"confirmations.delete_list.confirm": "Sil",
"confirmations.delete_list.message": "Bu siyahını həmişəlik silmək istədiyinizə əminsiniz?",
"confirmations.delete_list.title": "Siyahı silinsin?",
"confirmations.discard_draft.confirm": "Silib davam et",
"confirmations.discard_draft.edit.cancel": "Düzəliş etməyə davam",
"confirmations.discard_draft.edit.message": "Davam etsəniz, hazırda düzəliş etdiyiniz göndərişdəki bütün dəyişikliklər silinəcək.",
"confirmations.discard_draft.edit.title": "Göndərişinizə etdiyiniz bütün dəyişikliklər silinsin?",
"confirmations.discard_draft.post.cancel": "Qaralama kimi davam etdir",
"confirmations.discard_draft.post.message": "Davam etsəniz, hazırda tərtib etdiyiniz göndəriş silinəcək.",
"confirmations.discard_draft.post.title": "Qaralama göndərişiniz silinsin?",
"confirmations.discard_edit_media.confirm": "Ləğv et",
"confirmations.discard_edit_media.message": "Media təsvirində və ya önizləmədə yadda saxlanmamış dəyişiklikləriniz var, ləğv edilsin?",
"confirmations.follow_to_list.confirm": "İzlə və siyahıya əlavə et",
@ -213,13 +235,19 @@
"confirmations.logout.message": ıxmaq istədiyinizə əminsiniz?",
"confirmations.logout.title": ıxış edilsin?",
"confirmations.missing_alt_text.confirm": "Alternativ mətn əlavə et",
"confirmations.missing_alt_text.message": "Paylaşımınız alternativ mətn ehtiva etmir. Təsvir əlavə etmək onun daha çox insan üçün əlçatan olmasına kömək edir.",
"confirmations.missing_alt_text.message": "Göndərişinizdə alternativ mətn yoxdur. Daha çox insanın məzmununuza erişməsinə kömək etmək üçün açıqlama əlavə edin.",
"confirmations.missing_alt_text.secondary": "Yenə də paylaş",
"confirmations.missing_alt_text.title": "Alternativ mətn əlavə edilsin?",
"confirmations.mute.confirm": "Səssizləşdir",
"confirmations.redraft.confirm": "Sil və qaralamaya köçür",
"confirmations.redraft.message": "Bu paylaşımı silmək və qaralamaya köçürmək istədiyinizə əminsiniz? Bəyənmələr və gücləndirmələr itəcək və orijinal paylaşıma olan cavablar tənha qalacaq.",
"confirmations.redraft.title": "Paylaşım silinsin & qaralamaya köçürülsün?",
"confirmations.remove_from_followers.confirm": "İzləyicini çıxart",
"confirmations.remove_from_followers.message": "{name} sizi izləməyəcək. Davam etmək istədiyinizə əminsiniz?",
"confirmations.remove_from_followers.title": "İzləyici çıxarılsın?",
"confirmations.revoke_quote.confirm": "Göndərişi sil",
"confirmations.revoke_quote.message": "Bu əməliyyatın geri dönüşü yoxdur.",
"confirmations.revoke_quote.title": "Göndəriş silinsin?",
"confirmations.unfollow.confirm": "İzləmədən çıxar",
"confirmations.unfollow.message": "{name} izləmədən çıxmaq istədiyinizə əminsiniz?",
"confirmations.unfollow.title": "İstifadəçi izləmədən çıxarılsın?",
@ -232,12 +260,12 @@
"conversation.with": "{names} ilə",
"copy_icon_button.copied": "Mübadilə buferinə köçürüldü",
"copypaste.copied": "Kopyalandı",
"copypaste.copy_to_clipboard": "Kopyala",
"copypaste.copy_to_clipboard": "Lövhəyə kopyala",
"directory.federated": "Bilinən fediversedən",
"directory.local": "Sadəcə {domain}",
"directory.new_arrivals": "Yeni gələnlər",
"directory.recently_active": "Bayaq aktiv olanlar",
"disabled_account_banner.account_settings": "Hesab parametrləri",
"disabled_account_banner.account_settings": "Hesab ayarları",
"disabled_account_banner.text": "Sizin hesabınız {disabledAccount} hal-hazırda deaktiv edilib.",
"dismissable_banner.community_timeline": "Bunlar, hesabları {domain} serverində yerləşən insanların ən son ictimai paylaşımlarıdır.",
"dismissable_banner.dismiss": "Bağla",
@ -273,7 +301,7 @@
"emoji_button.food": "Yemək və içki",
"emoji_button.label": "Emoji daxil et",
"emoji_button.nature": "Təbiət",
"emoji_button.not_found": "Uyğun emoji tapılmadı",
"emoji_button.not_found": "Uyuşan emoji tapılmadı",
"emoji_button.objects": "Obyektlər",
"emoji_button.people": "İnsanlar",
"emoji_button.recent": "Tez-tez istifadə edilən",
@ -296,6 +324,232 @@
"empty_column.follow_requests": "İzləmə sorğularınız yoxdur. Qəbul etdikdə burada görəcəksiniz.",
"empty_column.followed_tags": "Heç bir heşteq izləmirsiniz. İzlədikdə burada görünəcək.",
"empty_column.hashtag": "Bu heşteqdə hələ ki, heç nə yoxdur.",
"empty_column.notification_requests": "Hamısı hazırdır! Burada heç nə yoxdur. Yeni bildiriş aldığınız zaman, ayarlarınıza görə burada görünəcək.",
"errors.unexpected_crash.report_issue": "Problemi bildir",
"explore.suggested_follows": "İnsanlar",
"explore.title": "Trendlər",
"explore.trending_links": "Xəbərlər",
"explore.trending_statuses": "Göndərişlər",
"explore.trending_tags": "Mövzu etiketləri",
"featured_carousel.header": "{count, plural, one {Sancılmış göndəriş} other {Sancılmış göndərişlər}}",
"featured_carousel.next": "Növbəti",
"featured_carousel.post": "Göndəriş",
"featured_carousel.previous": "Əvvəlki",
"featured_carousel.slide": "{index}/{total}",
"filter_modal.added.context_mismatch_explanation": "Bu filtr kateqoriyası, bu göndərişdə erişdiyiniz kontekstə aid deyil. Əgər göndərişin bu kontekstdə də filtrlənməsini istəyirsinizsə, filtrə düzəliş etməyiniz lazımdır.",
"filter_modal.added.context_mismatch_title": "Kontekst uyuşmur!",
"filter_modal.added.expired_explanation": "Bu filtr kateqoriyasının vaxtı bitib, filtri tətbiq etmək üçün bitmə tarixini dəyişdirməlisiniz.",
"filter_modal.added.expired_title": "Vaxtı bitmiş filtr!",
"filter_modal.added.review_and_configure": "Bu filt kateqoriyasını incələmək və daha detallı konfiqurasiya etmək üçün {settings_link} ünvanına gedin.",
"filter_modal.added.review_and_configure_title": "Filtr ayarları",
"filter_modal.added.settings_link": "ayarlar səhifəsi",
"filter_modal.added.short_explanation": "Bu göndəriş, aşağıdakı filtr kateqoriyasına əlavə edilib: {title}.",
"filter_modal.added.title": "Filtr əlavə edilib!",
"filter_warning.matches_filter": "“<span>{title}</span>” filtri ilə uyuşur",
"follow_suggestions.hints.friends_of_friends": "Bu profil izlədiyiniz insanlar arasında populyardır.",
"follow_suggestions.hints.most_followed": "Bu profil {domain} serverində ən çox izlənilənlərdən biridir."
"follow_suggestions.hints.most_followed": "Bu profil {domain} serverində ən çox izlənilənlərdən biridir.",
"generic.saved": "Saxlanıldı",
"getting_started.heading": "Başlayaq",
"hashtag.admin_moderation": "#{name} üçün moderasiya interfeysini aç",
"hashtag.browse": "#{hashtag} göndərişlərinə bax",
"hashtag.browse_from_account": "@{name} - #{hashtag} göndərişlərinə bax",
"hashtag.column_header.tag_mode.all": "və {additional}",
"hashtag.column_header.tag_mode.any": "və ya {additional}",
"hashtag.column_header.tag_mode.none": "{additional} olmadan",
"hashtag.column_settings.select.no_options_message": "Heç bir təklif tapılmadı",
"hashtag.column_settings.select.placeholder": "Mövzu etiketlərini daxil edin…",
"hashtag.column_settings.tag_mode.all": "Bunların hamısı",
"hashtag.column_settings.tag_mode.any": "Bunlardan hər hansısa biri",
"hashtag.column_settings.tag_mode.none": "Bunların heç biri",
"hashtag.column_settings.tag_toggle": "Bu sütun üçün əlavə etiketləri daxil et",
"hashtag.counter_by_accounts": "{count, plural, one {{counter} iştirakçı} other {{counter} iştirakçı}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} göndəriş} other {{counter} göndəriş}}",
"hashtag.counter_by_uses_today": "Bu gün {count, plural, one {{counter} göndəriş} other {{counter} göndəriş}}",
"hashtag.follow": "Mövzu etiketini izlə",
"hashtag.mute": "#{hashtag} - səssizə al",
"hashtag.unfollow": "Mövzu etiketini izləmə",
"hashtags.and_other": "…və daha {count, plural, one {}other {# ədəd}}",
"hints.profiles.followers_may_be_missing": "Bu profilin izləyiciləri əskik ola bilər.",
"hints.profiles.follows_may_be_missing": "Bu profilin izləyənləri əskik ola bilər.",
"home.column_settings.show_quotes": "Sitatları göstər",
"home.column_settings.show_replies": "Cavabları göstər",
"home.hide_announcements": "Elanları gizlət",
"home.pending_critical_update.body": "Lütfən Mastodon serverinizi mümkün olan ən qısa müddətdə güncəlləyin!",
"home.pending_critical_update.link": "Güncəlləmələrə bax",
"home.pending_critical_update.title": "Kritik güvənlik güncəlləməsi mövcuddur!",
"home.show_announcements": "Elanları göstər",
"ignore_notifications_modal.ignore": "Bildirişləri yox say",
"ignore_notifications_modal.limited_accounts_title": "Moderasiya edilmiş hesabların bildirişləri yox sayılsın?",
"ignore_notifications_modal.new_accounts_title": "Yeni hesabların bildirişləri yox sayılsın?",
"ignore_notifications_modal.not_followers_title": "Sizi izləməyən şəxslərin bildirişləri yox sayılsın?",
"ignore_notifications_modal.not_following_title": "İzləmədiyiniz şəxslərin bildirişləri yox sayılsın?",
"ignore_notifications_modal.private_mentions_title": "İstənilməyən Şəxsi Adçəkmələrdən gələn bildirişlər yox sayılsın?",
"info_button.label": "Kömək",
"interaction_modal.action.favourite": "Davam etmək üçün hesabınızdan sevimlilərə əlavə etməlisiniz.",
"interaction_modal.action.follow": "Davam etmək üçün hesabınızdan izləməlisiniz.",
"interaction_modal.action.reblog": "Davam etmək üçün hesabınızdan təkrar göndərməlisiniz.",
"interaction_modal.action.reply": "Davam etmək üçün hesabınızdan cavab verməlisiniz.",
"interaction_modal.action.vote": "Davam etmək üçün hesabınızdan səs verməlisiniz.",
"keyboard_shortcuts.profile": "Müəllifin profilini aç",
"keyboard_shortcuts.reply": "Göndərişə cavab ver",
"learn_more_link.got_it": "Anladım",
"learn_more_link.learn_more": "Daha ətraflı",
"lightbox.close": "Bağla",
"lightbox.next": "Növbəti",
"lightbox.previous": "Əvvəlki",
"lightbox.zoom_in": "Həqiqi ölçüyə qayıt",
"limited_account_hint.action": "Yenə də profili göstər",
"limited_account_hint.title": "Bu profil, {domain} moderatorları tərəfindən gizlədildi.",
"navigation_bar.account_settings": "Parol və təhlükəsizlik",
"navigation_bar.moderation": "Moderasiya",
"not_signed_in_indicator.not_signed_in": "Bu resursa erişmək üçün giriş etməlisiniz.",
"notification.moderation-warning.learn_more": "Daha ətraflı",
"notification.moderation_warning": "Bir moderasiya xəbərdarlığı aldınız",
"notification.moderation_warning.action_delete_statuses": "Bəzi göndərişləriniz silindi.",
"notification.moderation_warning.action_disable": "Hesabınız sıradan çıxarılıb.",
"notification.moderation_warning.action_mark_statuses_as_sensitive": "Bəzi göndərişləriniz həssas olaraq işarələnib.",
"notification.moderation_warning.action_none": "Hesabınız bir moderasiya xəbərdarlığı aldı.",
"notification.moderation_warning.action_sensitive": "Göndərişləriniz artıq həssas olaraq işarələnəcək.",
"notification.moderation_warning.action_silence": "Hesabınız məhdudlaşdırılıb.",
"notification.moderation_warning.action_suspend": "Hesabınızın fəaliyyəti dayandırılıb.",
"notification_requests.confirm_dismiss_multiple.message": "{count, plural, one {bir bildiriş sorğusunu} other {# bildiriş sorğusunu}} bağlamaq üzrəsiniz. {count, plural, one {Ona} other {Onlara}} yenidən asanlıqla erişə bilməyəcəksiniz. Davam etmək istədiyinizə əminsiniz?",
"notification_requests.explainer_for_limited_account": "Hesab, bir moderator tərəfindən məhdudlaşdırıldığı üçün bu hesabın bildirişləri filtrləndi.",
"notification_requests.explainer_for_limited_remote_account": "Hesab və ya onun serveri, bir moderator tərəfindən məhdudlaşdırıldığı üçün bu hesabın bildirişləri filtrləndi.",
"notifications.filter.statuses": "İzlədiyiniz şəxslərdən güncəlləmələr",
"notifications.policy.filter_limited_accounts_hint": "Server moderatorları tərəfindən məhdudlaşdırılıb",
"notifications.policy.filter_limited_accounts_title": "Moderasiya edilmiş hesablar",
"password_confirmation.exceeds_maxlength": "Parol təsdiqi, maksimum parol uzunluğunu aşır",
"password_confirmation.mismatching": "Parol təsdiqi uyuşmur",
"privacy_policy.last_updated": "Son güncəlləmə {date}",
"report.category.subtitle": "Ən çox uyuşanı seçin",
"report_notification.categories.spam_sentence": "spam",
"report_notification.categories.violation": "Qayda pozuntusu",
"report_notification.categories.violation_sentence": "qayda pozuntusu",
"report_notification.open": "Hesabatı aç",
"search.clear": "Axtarışı təmizlə",
"search.no_recent_searches": "Son axtarışlar yoxdur",
"search.placeholder": "Axtar",
"search.quick_action.account_search": "Uyuşan profillər {x}",
"search.quick_action.go_to_account": "{x} profilinə get",
"search.quick_action.go_to_hashtag": "{x} mövzu etiketinə get",
"search.quick_action.open_url": "URL-ni Mastodon-da aç",
"search.quick_action.status_search": "Uyuşan göndərişlər {x}",
"search.search_or_paste": "Axtar və ya URL-ni yapışdır",
"search_popout.full_text_search_disabled_message": "{domain} domenində mövcud deyil.",
"search_popout.full_text_search_logged_out_message": "Yalnız giriş edildiyi zaman əlçatandır.",
"search_popout.language_code": "ISO dil kodu",
"search_popout.options": "Axtarış seçimləri",
"search_popout.quick_actions": "Cəld əməliyyatlar",
"search_popout.recent": "Son axtarışlar",
"search_popout.specific_date": "müəyyən tarix",
"search_popout.user": "istifadəçi",
"search_results.accounts": "Profillər",
"search_results.all": "Hamısı",
"search_results.hashtags": "Mövzu etiketləri",
"search_results.no_results": "Nəticə yoxdur.",
"search_results.no_search_yet": "Göndərişləri, profilləri və ya mövzu etiketlərini axtarmağa çalışın.",
"search_results.see_all": "Hamısına bax",
"search_results.statuses": "Göndərişlər",
"search_results.title": "\"{q}\" axtar",
"server_banner.about_active_users": "Son 30 gündə bu serveri istifadə edənlər (aylıq aktiv istifadəçilər)",
"server_banner.active_users": "aktiv istifadəçilər",
"server_banner.is_one_of_many": "{domain}, fediverse-də iştirak etmək üçün istifadə edə biləcəyiniz bir neçə müstəqil Mastodon serverlərindən biridir.",
"server_banner.server_stats": "Server statistikaları:",
"sign_in_banner.create_account": "Hesab yarat",
"sign_in_banner.follow_anyone": "fediverse-dəki hər kəsi izləyin və hamısına xronoloji ardıcıllıqla baxın. Heç bir alqoritm, reklam və ya klikləmə tələsi yoxdur.",
"sign_in_banner.mastodon_is": "Mastodon, baş verənlərdən xəbərdar olmağın ən yaxşı yoldur.",
"sign_in_banner.sign_in": "Giriş",
"sign_in_banner.sso_redirect": "Giriş və ya Qeydiyyat",
"status.admin_account": "@{name} üçün moderasiya interfeysini aç",
"status.admin_domain": "{domain} üçün moderasiya interfeysini aç",
"status.admin_status": "Moderasiya interfeysində bu göndərişi aç",
"status.block": "Əngəllə: @{name}",
"status.bookmark": "Əlfəcin",
"status.context.load_new_replies": "Yeni cavablar mövcuddur",
"status.context.loading": "Daha çox cavab yoxlanılır",
"status.delete": "Sil",
"status.direct": "Şəxsi olaraq adını çək: @{name}",
"status.direct_indicator": "Şəxsi olaraq adını çək",
"status.edit": "Düzəliş et",
"status.edited": "Son düzəliş {date}",
"status.edited_x_times": "{count, plural, one {{count} dəfə} other {{count} dəfə}} düzəliş edilib",
"status.favourite": "Sevimli",
"status.favourites": "{count, plural, one {sevimli} other {sevimli}}",
"status.filter": "Bu göndərişi filtrlə",
"status.history.created": "{name}, {date} yaratdı",
"status.history.edited": "{name}, {date} düzəliş etdi",
"status.load_more": "Daha çoxunu yüklə",
"status.media.open": "Açmaq üçün kliklə",
"status.media.show": "Göstərmək üçün kliklə",
"status.media_hidden": "Media gizlidir",
"status.mention": "Adını çək: @{name}",
"status.more": "Daha çox",
"status.mute": "@{name} - səssizə al",
"status.mute_conversation": "Danışığın səsini kəs",
"status.open": "Bu göndərişi genişləndir",
"status.quote_error.filtered": "Bəzi filtrlərinizə görə gizlidir",
"status.quote_error.not_available": "Göndəriş əlçatmazdır",
"status.quote_error.pending_approval": "Göndəriş gözləmədədir",
"status.read_more": "Daha çoxunu oxu",
"status.remove_bookmark": "Əlfəcini sil",
"status.remove_favourite": "Sevimlilərdən sil",
"status.replied_to": "Cavab verildi: {name}",
"status.reply": "Cavabla",
"status.report": "Bildir: @{name}",
"status.sensitive_warning": "Həssas məzmun",
"status.share": "Paylaş",
"status.show_less_all": "Hamısı üçün daha az göstər",
"status.show_more_all": "Hamısı üçün daha çox göstər",
"status.show_original": "Orijinalı göstər",
"status.translate": "Tərcümə et",
"status.translated_from_with": "{provider} ilə {lang} dilindən tərcümə edilib",
"status.uncached_media_warning": "Önizləmə mövcud deyil",
"status.unmute_conversation": "Danışığın səsini aç",
"subscribed_languages.save": "Dəyişiklikləri saxla",
"subscribed_languages.target": "{target} üçün abunə olunmuş dilləri dəyişdir",
"tabs_bar.home": "Ana səhifə",
"tabs_bar.menu": "Menyu",
"tabs_bar.notifications": "Bildirişlər",
"tabs_bar.publish": "Yeni göndəriş",
"tabs_bar.search": "Axtar",
"terms_of_service.effective_as_of": "{date} etibarilə qüvvədə",
"terms_of_service.title": "Xidmət Şərtləri",
"terms_of_service.upcoming_changes_on": "{date} tarixində ediləcək dəyişikliklər",
"time_remaining.days": "{number, plural, one {# gün} other {# gün}} qalıb",
"time_remaining.hours": "{number, plural, one {# saat} other {# saat}} qalıb",
"time_remaining.minutes": "{number, plural, one {# dəqiqə} other {# dəqiqə}} qalıb",
"time_remaining.moments": "Bir neçə dəqiqə qalıb",
"time_remaining.seconds": "{number, plural, one {# saniyə} other {# saniyə}} qalıb",
"trends.trending_now": "İndi trenddədir",
"ui.beforeunload": "Mastodon-u tərk etsəniz, qaralamanız itəcək.",
"units.short.billion": "{count} mlyrd",
"units.short.million": "{count} mlyn",
"units.short.thousand": "{count} min",
"upload_area.title": "Yükləmək üçün sürüklə və burax",
"upload_button.label": "Təsvir, video və ya səs faylı əlavə et",
"upload_error.limit": "Fayl yükləmə limiti aşılıb.",
"upload_error.poll": "Anketlərdə fayl yükləməyə icazə verilmir.",
"upload_form.drag_and_drop.instructions": "Bir media qoşmasını daşımaq üçün boşluq və ya enter düyməsinə basın. Sürükləmə zamanı, media qoşmasını hər hansısa bir yönə hərəkət etdirmək üçün ox düymələrini istifadə edin. Media qoşmasını yeni mövqeyinə buraxmaq üçün təkrar boşluq və ya enter düyməsinə basın, ləğv etmək üçün escape düyməsinə basın.",
"upload_form.drag_and_drop.on_drag_cancel": "Sürükləmə ləğv edilib. {item} media qoşması buraxıldı.",
"upload_form.drag_and_drop.on_drag_end": "{item} media qoşması buraxıldı.",
"upload_form.drag_and_drop.on_drag_over": "{item} media qoşması daşındı.",
"upload_form.drag_and_drop.on_drag_start": "{item} media qoşması alındı.",
"upload_form.edit": "Düzəliş et",
"upload_progress.label": "Yüklənir...",
"upload_progress.processing": "Emal edilir…",
"username.taken": "Bu istifadəçi adı götürülüb. Başqasını sınayın",
"video.close": "Videonu bağla",
"video.download": "Faylı endir",
"video.exit_fullscreen": "Tam ekrandan çıx",
"video.expand": "Videonu genişləndir",
"video.fullscreen": "Tam ekran",
"video.hide": "Videonu gizlət",
"video.mute": "Səsi kəs",
"video.pause": "Fasilə ver",
"video.play": "Oxut",
"video.skip_backward": "Geri ötür",
"video.skip_forward": "İrəli ötür",
"video.unmute": "Səsi aç",
"video.volume_down": "Həcmi azalt",
"video.volume_up": "Həcmi artır"
}

View File

@ -245,6 +245,7 @@
"confirmations.remove_from_followers.confirm": "Elimina el seguidor",
"confirmations.remove_from_followers.message": "{name} deixarà de seguir-vos. Tirem endavant?",
"confirmations.remove_from_followers.title": "Eliminem el seguidor?",
"confirmations.revoke_quote.message": "Aquesta acció no es pot desfer.",
"confirmations.unfollow.confirm": "Deixa de seguir",
"confirmations.unfollow.message": "Segur que vols deixar de seguir {name}?",
"confirmations.unfollow.title": "Deixar de seguir l'usuari?",
@ -657,6 +658,7 @@
"notifications.column_settings.mention": "Mencions:",
"notifications.column_settings.poll": "Resultats de lenquesta:",
"notifications.column_settings.push": "Notificacions push",
"notifications.column_settings.quote": "Cites:",
"notifications.column_settings.reblog": "Impulsos:",
"notifications.column_settings.show": "Mostra a la columna",
"notifications.column_settings.sound": "Reprodueix so",
@ -894,6 +896,7 @@
"status.reply": "Respon",
"status.replyAll": "Respon al fil",
"status.report": "Denuncia @{name}",
"status.revoke_quote": "Elimina la meva publicació de la de @{name}",
"status.sensitive_warning": "Contingut sensible",
"status.share": "Comparteix",
"status.show_less_all": "Mostra'n menys per a tot",

View File

@ -245,6 +245,9 @@
"confirmations.remove_from_followers.confirm": "Odstranit sledujícího",
"confirmations.remove_from_followers.message": "{name} vás přestane sledovat. Jste si jisti, že chcete pokračovat?",
"confirmations.remove_from_followers.title": "Odstranit sledujícího?",
"confirmations.revoke_quote.confirm": "Odstranit příspěvek",
"confirmations.revoke_quote.message": "Tuto akci nelze vrátit zpět.",
"confirmations.revoke_quote.title": "Odstranit příspěvek?",
"confirmations.unfollow.confirm": "Přestat sledovat",
"confirmations.unfollow.message": "Opravdu chcete {name} přestat sledovat?",
"confirmations.unfollow.title": "Přestat sledovat uživatele?",
@ -896,6 +899,7 @@
"status.reply": "Odpovědět",
"status.replyAll": "Odpovědět na vlákno",
"status.report": "Nahlásit @{name}",
"status.revoke_quote": "Odstranit můj příspěvek z příspěvku @{name}",
"status.sensitive_warning": "Citlivý obsah",
"status.share": "Sdílet",
"status.show_less_all": "Zobrazit méně pro všechny",

View File

@ -245,6 +245,9 @@
"confirmations.remove_from_followers.confirm": "Fjern følger",
"confirmations.remove_from_followers.message": "{name} vil ikke længere følge dig. Er du sikker på, at du vil fortsætte?",
"confirmations.remove_from_followers.title": "Fjern følger?",
"confirmations.revoke_quote.confirm": "Fjern indlæg",
"confirmations.revoke_quote.message": "Denne handling kan ikke fortrydes.",
"confirmations.revoke_quote.title": "Fjern indlæg?",
"confirmations.unfollow.confirm": "Følg ikke længere",
"confirmations.unfollow.message": "Er du sikker på, at du ikke længere vil følge {name}?",
"confirmations.unfollow.title": "Følg ikke længere bruger?",
@ -896,6 +899,7 @@
"status.reply": "Besvar",
"status.replyAll": "Svar alle",
"status.report": "Anmeld @{name}",
"status.revoke_quote": "Fjern mit indlæg fra @{name}'s indlæg",
"status.sensitive_warning": "Følsomt indhold",
"status.share": "Del",
"status.show_less_all": "Vis mindre for alle",

View File

@ -245,6 +245,9 @@
"confirmations.remove_from_followers.confirm": "Follower entfernen",
"confirmations.remove_from_followers.message": "{name} wird dir nicht länger folgen. Bist du dir sicher?",
"confirmations.remove_from_followers.title": "Follower entfernen?",
"confirmations.revoke_quote.confirm": "Beitrag entfernen",
"confirmations.revoke_quote.message": "Diese Aktion kann nicht rückgängig gemacht werden.",
"confirmations.revoke_quote.title": "Beitrag entfernen?",
"confirmations.unfollow.confirm": "Entfolgen",
"confirmations.unfollow.message": "Möchtest du {name} wirklich entfolgen?",
"confirmations.unfollow.title": "Profil entfolgen?",
@ -362,7 +365,7 @@
"filter_modal.select_filter.subtitle": "Einem vorhandenen Filter hinzufügen oder einen neuen erstellen",
"filter_modal.select_filter.title": "Diesen Beitrag filtern",
"filter_modal.title.status": "Beitrag per Filter ausblenden",
"filter_warning.matches_filter": "Übereinstimmend mit dem Filter „<span>{title}</span>“",
"filter_warning.matches_filter": "Ausgeblendet wegen des Filters „<span>{title}</span>“",
"filtered_notifications_banner.pending_requests": "Von {count, plural, =0 {keinem Profil, das dir möglicherweise bekannt ist} one {einem Profil, das dir möglicherweise bekannt ist} other {# Profilen, die dir möglicherweise bekannt sind}}",
"filtered_notifications_banner.title": "Gefilterte Benachrichtigungen",
"firehose.all": "Alle Server",
@ -896,6 +899,7 @@
"status.reply": "Antworten",
"status.replyAll": "Allen antworten",
"status.report": "@{name} melden",
"status.revoke_quote": "Meinen zitierten Beitrag aus dem Beitrag von @{name} entfernen",
"status.sensitive_warning": "Inhaltswarnung",
"status.share": "Teilen",
"status.show_less_all": "Alles einklappen",

View File

@ -40,6 +40,7 @@
"account.followers": "Sekvantoj",
"account.followers.empty": "Ankoraŭ neniu sekvas ĉi tiun uzanton.",
"account.followers_counter": "{count, plural, one{{counter} sekvanto} other {{counter} sekvantoj}}",
"account.followers_you_know_counter": "Vi scias {counter}",
"account.following": "Sekvatoj",
"account.following_counter": "{count, plural, one {{counter} sekvato} other {{counter} sekvatoj}}",
"account.follows.empty": "La uzanto ankoraŭ ne sekvas iun ajn.",
@ -215,6 +216,11 @@
"confirmations.delete_list.confirm": "Forigi",
"confirmations.delete_list.message": "Ĉu vi certas, ke vi volas porĉiame forigi ĉi tiun liston?",
"confirmations.delete_list.title": "Ĉu forigi liston?",
"confirmations.discard_draft.confirm": "Forĵetu kaj daŭrigu",
"confirmations.discard_draft.edit.cancel": "Daŭrigi redaktadon",
"confirmations.discard_draft.edit.title": "Ĉu forĵeti ŝanĝojn al via afiŝo?",
"confirmations.discard_draft.post.cancel": "Daŭrigi malneton",
"confirmations.discard_draft.post.title": "Ĉu forĵeti vian malneton?",
"confirmations.discard_edit_media.confirm": "Forĵeti",
"confirmations.discard_edit_media.message": "Vi havas nekonservitajn ŝanĝojn de la priskribo aŭ la antaŭvidigo de la vidaŭdaĵo, ĉu vi forĵetu ilin malgraŭe?",
"confirmations.follow_to_list.confirm": "Sekvi kaj aldoni al listo",
@ -234,6 +240,9 @@
"confirmations.remove_from_followers.confirm": "Forigi sekvanton",
"confirmations.remove_from_followers.message": "{name} ne plu sekvos vin. Ĉu vi certas ke vi volas daŭri?",
"confirmations.remove_from_followers.title": "Forigi sekvanton?",
"confirmations.revoke_quote.confirm": "Forigi afiŝon",
"confirmations.revoke_quote.message": "Ĉi tiu ago ne povas esti malfarita.",
"confirmations.revoke_quote.title": "Ĉu forigi afiŝon?",
"confirmations.unfollow.confirm": "Ne plu sekvi",
"confirmations.unfollow.message": "Ĉu vi certas, ke vi volas ĉesi sekvi {name}?",
"confirmations.unfollow.title": "Ĉu ĉesi sekvi uzanton?",
@ -484,6 +493,8 @@
"keyboard_shortcuts.translate": "Traduki afiŝon",
"keyboard_shortcuts.unfocus": "Senfokusigi verki tekstareon/serĉon",
"keyboard_shortcuts.up": "Movu supren en la listo",
"learn_more_link.got_it": "Komprenite",
"learn_more_link.learn_more": "Lernu pli",
"lightbox.close": "Fermi",
"lightbox.next": "Antaŭen",
"lightbox.previous": "Malantaŭen",
@ -577,6 +588,7 @@
"notification.label.mention": "Mencii",
"notification.label.private_mention": "Privata mencio",
"notification.label.private_reply": "Privata respondo",
"notification.label.quote": "{name} citis vian afiŝon",
"notification.label.reply": "Respondi",
"notification.mention": "Mencii",
"notification.mentioned_you": "{name} menciis vin",
@ -634,6 +646,7 @@
"notifications.column_settings.mention": "Mencioj:",
"notifications.column_settings.poll": "Balotenketaj rezultoj:",
"notifications.column_settings.push": "Puŝsciigoj",
"notifications.column_settings.quote": "Citaĵoj:",
"notifications.column_settings.reblog": "Diskonigoj:",
"notifications.column_settings.show": "Montri en kolumno",
"notifications.column_settings.sound": "Eligi sonon",
@ -851,6 +864,9 @@
"status.mute_conversation": "Silentigi konversacion",
"status.open": "Pligrandigu ĉi tiun afiŝon",
"status.pin": "Alpingli al la profilo",
"status.quote_error.not_available": "Afiŝo ne disponebla",
"status.quote_error.pending_approval": "Pritraktata afiŝo",
"status.quote_error.pending_approval_popout.title": "Ĉu pritraktata citaĵo? Restu trankvila",
"status.read_more": "Legi pli",
"status.reblog": "Diskonigi",
"status.reblog_private": "Diskonigi kun la sama videbleco",

View File

@ -245,6 +245,9 @@
"confirmations.remove_from_followers.confirm": "Quitar seguidor",
"confirmations.remove_from_followers.message": "{name} dejará de seguirte. ¿Estás seguro de que querés continuar?",
"confirmations.remove_from_followers.title": "¿Quitar seguidor?",
"confirmations.revoke_quote.confirm": "Eliminar mensaje",
"confirmations.revoke_quote.message": "Esta acción no se puede deshacer.",
"confirmations.revoke_quote.title": "¿Eliminar mensaje?",
"confirmations.unfollow.confirm": "Dejar de seguir",
"confirmations.unfollow.message": "¿Estás seguro que querés dejar de seguir a {name}?",
"confirmations.unfollow.title": "¿Dejar de seguir al usuario?",
@ -896,6 +899,7 @@
"status.reply": "Responder",
"status.replyAll": "Responder al hilo",
"status.report": "Denunciar a @{name}",
"status.revoke_quote": "Eliminar mi mensaje de la cita de @{name}",
"status.sensitive_warning": "Contenido sensible",
"status.share": "Compartir",
"status.show_less_all": "Mostrar menos para todo",

View File

@ -245,6 +245,9 @@
"confirmations.remove_from_followers.confirm": "Eliminar seguidor",
"confirmations.remove_from_followers.message": "{name} dejará de seguirte. ¿Estás seguro de que quieres continuar?",
"confirmations.remove_from_followers.title": "¿Eliminar seguidor?",
"confirmations.revoke_quote.confirm": "Eliminar publicación",
"confirmations.revoke_quote.message": "Esta acción no se puede deshacer.",
"confirmations.revoke_quote.title": "¿Deseas eliminar la publicación?",
"confirmations.unfollow.confirm": "Dejar de seguir",
"confirmations.unfollow.message": "¿Estás seguro de que quieres dejar de seguir a {name}?",
"confirmations.unfollow.title": "¿Dejar de seguir al usuario?",
@ -896,6 +899,7 @@
"status.reply": "Responder",
"status.replyAll": "Responder al hilo",
"status.report": "Reportar @{name}",
"status.revoke_quote": "Eliminar mi publicación de la cita de @{name}",
"status.sensitive_warning": "Contenido sensible",
"status.share": "Compartir",
"status.show_less_all": "Mostrar menos para todo",

View File

@ -245,6 +245,9 @@
"confirmations.remove_from_followers.confirm": "Eliminar seguidor",
"confirmations.remove_from_followers.message": "{name} dejará de seguirte. ¿Estás seguro de que quieres continuar?",
"confirmations.remove_from_followers.title": "¿Eliminar seguidor?",
"confirmations.revoke_quote.confirm": "Eliminar publicación",
"confirmations.revoke_quote.message": "Esta acción no tiene vuelta atrás.",
"confirmations.revoke_quote.title": "¿Eliminar la publicación?",
"confirmations.unfollow.confirm": "Dejar de seguir",
"confirmations.unfollow.message": "¿Seguro que quieres dejar de seguir a {name}?",
"confirmations.unfollow.title": "¿Dejar de seguir al usuario?",
@ -896,6 +899,7 @@
"status.reply": "Responder",
"status.replyAll": "Responder al hilo",
"status.report": "Reportar a @{name}",
"status.revoke_quote": "Eliminar mi publicación de la cita de {name}",
"status.sensitive_warning": "Contenido sensible",
"status.share": "Compartir",
"status.show_less_all": "Mostrar menos para todo",

View File

@ -245,6 +245,9 @@
"confirmations.remove_from_followers.confirm": "برداشتن پی‌گیرنده",
"confirmations.remove_from_followers.message": "دیگر {name} پیتان نخواهد گرفت. مطمئنید که می‌خواهید ادامه دهید؟",
"confirmations.remove_from_followers.title": "برداشتن پی‌گیرنده؟",
"confirmations.revoke_quote.confirm": "حذف فرسته",
"confirmations.revoke_quote.message": "این اقدام قابل بازگشت نیست.",
"confirmations.revoke_quote.title": "آیا فرسته را حذف کنم؟",
"confirmations.unfollow.confirm": "پی‌نگرفتن",
"confirmations.unfollow.message": "مطمئنید که می‌خواهید به پی‌گیری از {name} پایان دهید؟",
"confirmations.unfollow.title": "ناپی‌گیری کاربر؟",
@ -498,6 +501,8 @@
"keyboard_shortcuts.translate": "برای ترجمه یک پست",
"keyboard_shortcuts.unfocus": "برداشتن تمرکز از ناحیهٔ نوشتن یا جست‌وجو",
"keyboard_shortcuts.up": "بالا بردن در سیاهه",
"learn_more_link.got_it": "متوجه شدم",
"learn_more_link.learn_more": "دانستن بیش‌تر",
"lightbox.close": "بستن",
"lightbox.next": "بعدی",
"lightbox.previous": "قبلی",
@ -598,6 +603,7 @@
"notification.label.mention": "اشاره",
"notification.label.private_mention": "اشارهٔ خصوصی",
"notification.label.private_reply": "پاسخ خصوصی",
"notification.label.quote": "{name} فرسته‌تان را نقل کرد",
"notification.label.reply": "پاسخ",
"notification.mention": "اشاره",
"notification.mentioned_you": "{name} از شما نام برد",
@ -655,6 +661,7 @@
"notifications.column_settings.mention": "اشاره‌ها:",
"notifications.column_settings.poll": "نتایج نظرسنجی:",
"notifications.column_settings.push": "آگاهی‌های ارسالی",
"notifications.column_settings.quote": "نقل‌قول‌ها:",
"notifications.column_settings.reblog": "تقویت‌ها:",
"notifications.column_settings.show": "نمایش در ستون",
"notifications.column_settings.sound": "پخش صدا",
@ -873,6 +880,9 @@
"status.open": "گسترش این فرسته",
"status.pin": "سنجاق به نمایه",
"status.quote_error.filtered": "نهفته بنا بر یکی از پالایه‌هایتان",
"status.quote_error.not_available": "فرسته در دسترس نیست",
"status.quote_error.pending_approval_popout.body": "نقل‌قول‌هایی که در سراسر فدیورس هم‌رسانی می‌شوند ممکن است زمان‌بر باشند تا نمایش داده شوند، چون کارسازهای مختلف از شیوه‌نامه‌های متفاوتی استفاده می‌کنند.",
"status.quote_post_author": "فرسته‌ای از @{name} نقل شد",
"status.read_more": "بیشتر بخوانید",
"status.reblog": "تقویت",
"status.reblog_private": "تقویت برای مخاطبان نخستین",
@ -887,6 +897,7 @@
"status.reply": "پاسخ",
"status.replyAll": "پاسخ به رشته",
"status.report": "گزارش @{name}",
"status.revoke_quote": "حذف فرسته‌ام از فرسته @{name}",
"status.sensitive_warning": "محتوای حساس",
"status.share": "هم‌رسانی",
"status.show_less_all": "نمایش کمتر همه",

View File

@ -245,6 +245,9 @@
"confirmations.remove_from_followers.confirm": "Strika fylgjara",
"confirmations.remove_from_followers.message": "{name} fer ikki longur at fylgja tær. Er tú vís/ur í at tú vilt halda fram?",
"confirmations.remove_from_followers.title": "Strika fylgjara?",
"confirmations.revoke_quote.confirm": "Strika post",
"confirmations.revoke_quote.message": "Hendan atgerðin kann ikki angrast.",
"confirmations.revoke_quote.title": "Strika post?",
"confirmations.unfollow.confirm": "Fylg ikki",
"confirmations.unfollow.message": "Ert tú vís/ur í, at tú vil steðga við at fylgja {name}?",
"confirmations.unfollow.title": "Gevst at fylgja brúkara?",
@ -600,6 +603,7 @@
"notification.label.mention": "Umrøða",
"notification.label.private_mention": "Privat umrøða",
"notification.label.private_reply": "Privat svar",
"notification.label.quote": "{name} siteraði postin hjá tær",
"notification.label.reply": "Svara",
"notification.mention": "Umrøð",
"notification.mentioned_you": "{name} nevndi teg",
@ -657,6 +661,7 @@
"notifications.column_settings.mention": "Umrøður:",
"notifications.column_settings.poll": "Úrslit frá atkvøðugreiðslu:",
"notifications.column_settings.push": "Trýstifráboðanir",
"notifications.column_settings.quote": "Sitatir:",
"notifications.column_settings.reblog": "Stimbranir:",
"notifications.column_settings.show": "Vís í teigi",
"notifications.column_settings.sound": "Spæl ljóð",
@ -894,6 +899,7 @@
"status.reply": "Svara",
"status.replyAll": "Svara tráðnum",
"status.report": "Melda @{name}",
"status.revoke_quote": "Strika postin hjá mær frá postinum hjá @{name}",
"status.sensitive_warning": "Viðkvæmt tilfar",
"status.share": "Deil",
"status.show_less_all": "Vís øllum minni",

View File

@ -600,6 +600,7 @@
"notification.label.mention": "Luaigh",
"notification.label.private_mention": "Lua príobháideach",
"notification.label.private_reply": "Freagra príobháideach",
"notification.label.quote": "Luaigh {name} do phost",
"notification.label.reply": "Freagra",
"notification.mention": "Luaigh",
"notification.mentioned_you": "Luaigh {name} tú",
@ -657,6 +658,7 @@
"notifications.column_settings.mention": "Tráchtanna:",
"notifications.column_settings.poll": "Torthaí suirbhéanna:",
"notifications.column_settings.push": "Brúfhógraí",
"notifications.column_settings.quote": "Luachain:",
"notifications.column_settings.reblog": "Moltaí:",
"notifications.column_settings.show": "Taispeáin i gcolún",
"notifications.column_settings.sound": "Seinn an fhuaim",

View File

@ -245,6 +245,9 @@
"confirmations.remove_from_followers.confirm": "Quitar seguidora",
"confirmations.remove_from_followers.message": "{name} vai deixar de seguirte. É isto o que queres?",
"confirmations.remove_from_followers.title": "Quitar seguidora?",
"confirmations.revoke_quote.confirm": "Eliminar publicación",
"confirmations.revoke_quote.message": "Esta acción non se pode desfacer.",
"confirmations.revoke_quote.title": "Eliminar publicación?",
"confirmations.unfollow.confirm": "Deixar de seguir",
"confirmations.unfollow.message": "Tes certeza de querer deixar de seguir a {name}?",
"confirmations.unfollow.title": "Deixar de seguir á usuaria?",
@ -658,6 +661,7 @@
"notifications.column_settings.mention": "Mencións:",
"notifications.column_settings.poll": "Resultados da enquisa:",
"notifications.column_settings.push": "Notificacións emerxentes",
"notifications.column_settings.quote": "Citacións:",
"notifications.column_settings.reblog": "Promocións:",
"notifications.column_settings.show": "Amosar en columna",
"notifications.column_settings.sound": "Reproducir son",
@ -895,6 +899,7 @@
"status.reply": "Responder",
"status.replyAll": "Responder ao tema",
"status.report": "Denunciar @{name}",
"status.revoke_quote": "Retirar a miña publicación da cita de @{name}",
"status.sensitive_warning": "Contido sensíbel",
"status.share": "Compartir",
"status.show_less_all": "Amosar menos para todos",

View File

@ -245,6 +245,9 @@
"confirmations.remove_from_followers.confirm": "הסרת עוקב",
"confirmations.remove_from_followers.message": "{name} יוסר/תוסר ממעקב אחריך. האם להמשיך?",
"confirmations.remove_from_followers.title": "להסיר עוקב/עוקבת?",
"confirmations.revoke_quote.confirm": "הסרת הודעה",
"confirmations.revoke_quote.message": "פעולה זו אינה הפיכה.",
"confirmations.revoke_quote.title": "הסרת הודעה?",
"confirmations.unfollow.confirm": "הפסקת מעקב",
"confirmations.unfollow.message": "להפסיק מעקב אחרי {name}?",
"confirmations.unfollow.title": "לבטל מעקב אחר המשתמש.ת?",
@ -658,6 +661,7 @@
"notifications.column_settings.mention": "פניות:",
"notifications.column_settings.poll": "תוצאות סקר:",
"notifications.column_settings.push": "התראות בדחיפה",
"notifications.column_settings.quote": "ציטוטים:",
"notifications.column_settings.reblog": "הדהודים:",
"notifications.column_settings.show": "הצגה בטור",
"notifications.column_settings.sound": "שמע מופעל",
@ -895,6 +899,7 @@
"status.reply": "תגובה",
"status.replyAll": "תגובה לשרשור",
"status.report": "דיווח על @{name}",
"status.revoke_quote": "הסירו את הודעתי מההודעה של @{name}",
"status.sensitive_warning": "תוכן רגיש",
"status.share": "שיתוף",
"status.show_less_all": "להציג פחות מהכל",

View File

@ -658,6 +658,7 @@
"notifications.column_settings.mention": "Megemlítések:",
"notifications.column_settings.poll": "Szavazási eredmények:",
"notifications.column_settings.push": "Leküldéses értesítések",
"notifications.column_settings.quote": "Idézetek:",
"notifications.column_settings.reblog": "Megtolások:",
"notifications.column_settings.show": "Megjelenítés az oszlopban",
"notifications.column_settings.sound": "Hang lejátszása",

View File

@ -245,6 +245,9 @@
"confirmations.remove_from_followers.confirm": "Fjarlægja fylgjanda",
"confirmations.remove_from_followers.message": "{name} mun hætta að fylgjast með þér. Ertu viss um að þú viljir halda áfram?",
"confirmations.remove_from_followers.title": "Fjarlægja fylgjanda?",
"confirmations.revoke_quote.confirm": "Fjarlægja færslu",
"confirmations.revoke_quote.message": "Þessa aðgerð er ekki hægt að afturkalla.",
"confirmations.revoke_quote.title": "Fjarlægja færslu?",
"confirmations.unfollow.confirm": "Hætta að fylgja",
"confirmations.unfollow.message": "Ertu viss um að þú viljir hætta að fylgjast með {name}?",
"confirmations.unfollow.title": "Hætta að fylgjast með viðkomandi?",
@ -896,6 +899,7 @@
"status.reply": "Svara",
"status.replyAll": "Svara þræði",
"status.report": "Kæra @{name}",
"status.revoke_quote": "Fjarlægja færsluna mína úr færslu frá @{name}",
"status.sensitive_warning": "Viðkvæmt efni",
"status.share": "Deila",
"status.show_less_all": "Sýna minna fyrir allt",

View File

@ -245,6 +245,9 @@
"confirmations.remove_from_followers.confirm": "Volger verwijderen",
"confirmations.remove_from_followers.message": "{name} zal je niet meer volgen. Weet je zeker dat je wilt doorgaan?",
"confirmations.remove_from_followers.title": "Volger verwijderen?",
"confirmations.revoke_quote.confirm": "Bericht verwijderen",
"confirmations.revoke_quote.message": "Deze actie kan niet ongedaan worden gemaakt.",
"confirmations.revoke_quote.title": "Bericht verwijderen?",
"confirmations.unfollow.confirm": "Ontvolgen",
"confirmations.unfollow.message": "Weet je het zeker dat je {name} wilt ontvolgen?",
"confirmations.unfollow.title": "Gebruiker ontvolgen?",
@ -896,6 +899,7 @@
"status.reply": "Reageren",
"status.replyAll": "Op iedereen reageren",
"status.report": "@{name} rapporteren",
"status.revoke_quote": "Mijn bericht uit het bericht van @{name} verwijderen",
"status.sensitive_warning": "Gevoelige inhoud",
"status.share": "Delen",
"status.show_less_all": "Alles minder tonen",

View File

@ -245,6 +245,9 @@
"confirmations.remove_from_followers.confirm": "Remover seguidor",
"confirmations.remove_from_followers.message": "{name} vai parar de seguir-te. Tens a certeza que prentedes continuar?",
"confirmations.remove_from_followers.title": "Remover seguidor?",
"confirmations.revoke_quote.confirm": "Remover publicação",
"confirmations.revoke_quote.message": "Esta ação é irreversível.",
"confirmations.revoke_quote.title": "Remover publicação?",
"confirmations.unfollow.confirm": "Deixar de seguir",
"confirmations.unfollow.message": "De certeza que queres deixar de seguir {name}?",
"confirmations.unfollow.title": "Deixar de seguir o utilizador?",
@ -896,6 +899,7 @@
"status.reply": "Responder",
"status.replyAll": "Responder à conversa",
"status.report": "Denunciar @{name}",
"status.revoke_quote": "Remover a minha publicação da publicação de @{name}",
"status.sensitive_warning": "Conteúdo sensível",
"status.share": "Partilhar",
"status.show_less_all": "Ocultar conteúdo sensível em todas",

View File

@ -245,6 +245,9 @@
"confirmations.remove_from_followers.confirm": "Takipçi kaldır",
"confirmations.remove_from_followers.message": "{name} sizi takip etmeyi bırakacaktır. Devam etmek istediğinize emin misiniz?",
"confirmations.remove_from_followers.title": "Takipçiyi kaldır?",
"confirmations.revoke_quote.confirm": "Gönderiyi kaldır",
"confirmations.revoke_quote.message": "Bu işlem geri alınamaz.",
"confirmations.revoke_quote.title": "Gönderiyi silmek ister misiniz?",
"confirmations.unfollow.confirm": "Takibi bırak",
"confirmations.unfollow.message": "{name} adlı kullanıcıyı takibi bırakmak istediğinden emin misin?",
"confirmations.unfollow.title": "Kullanıcıyı takipten çık?",
@ -658,6 +661,7 @@
"notifications.column_settings.mention": "Bahsetmeler:",
"notifications.column_settings.poll": "Anket sonuçları:",
"notifications.column_settings.push": "Anlık bildirimler",
"notifications.column_settings.quote": "Alıntılar:",
"notifications.column_settings.reblog": "Yeniden paylaşanlar:",
"notifications.column_settings.show": "Sütunda göster",
"notifications.column_settings.sound": "Ses çal",
@ -895,6 +899,7 @@
"status.reply": "Yanıtla",
"status.replyAll": "Konuyu yanıtla",
"status.report": "@{name} adlı kişiyi bildir",
"status.revoke_quote": "@{name}'nin gönderisinden benim gönderimi kaldır",
"status.sensitive_warning": "Hassas içerik",
"status.share": "Paylaş",
"status.show_less_all": "Hepsi için daha az göster",

View File

@ -227,6 +227,9 @@
"confirmations.redraft.confirm": "Видалити та виправити",
"confirmations.redraft.message": "Ви впевнені, що хочете видалити цей допис та переписати його? Додавання у вибране та поширення буде втрачено, а відповіді на оригінальний допис залишаться без першоджерела.",
"confirmations.redraft.title": "Видалити та переробити допис?",
"confirmations.revoke_quote.confirm": "Видалити публікацію",
"confirmations.revoke_quote.message": "Цю дію не можна скасувати.",
"confirmations.revoke_quote.title": "Видалити публікацію?",
"confirmations.unfollow.confirm": "Відписатися",
"confirmations.unfollow.message": "Ви впевнені, що хочете відписатися від {name}?",
"confirmations.unfollow.title": "Відписатися від користувача?",
@ -862,6 +865,7 @@
"status.reply": "Відповісти",
"status.replyAll": "Відповісти на ланцюжок",
"status.report": "Поскаржитися на @{name}",
"status.revoke_quote": "Видалити мою публікацію з допису @{name}",
"status.sensitive_warning": "Делікатний вміст",
"status.share": "Поділитися",
"status.show_less_all": "Згорнути для всіх",

View File

@ -245,6 +245,9 @@
"confirmations.remove_from_followers.confirm": "Xóa người theo dõi",
"confirmations.remove_from_followers.message": "{name} sẽ không còn theo dõi bạn.Bạn có chắc tiếp tục?",
"confirmations.remove_from_followers.title": "Xóa người theo dõi?",
"confirmations.revoke_quote.confirm": "Gỡ tút",
"confirmations.revoke_quote.message": "Hành động này không thể hoàn tác.",
"confirmations.revoke_quote.title": "Gỡ tút?",
"confirmations.unfollow.confirm": "Bỏ theo dõi",
"confirmations.unfollow.message": "Bạn có chắc muốn bỏ theo dõi {name}?",
"confirmations.unfollow.title": "Bỏ theo dõi",
@ -896,6 +899,7 @@
"status.reply": "Trả lời",
"status.replyAll": "Trả lời",
"status.report": "Báo cáo @{name}",
"status.revoke_quote": "Gỡ tút của tôi khỏi trích dẫn của @{name}",
"status.sensitive_warning": "Nhạy cảm",
"status.share": "Chia sẻ",
"status.show_less_all": "Thu gọn",

View File

@ -245,6 +245,9 @@
"confirmations.remove_from_followers.confirm": "移除跟隨者",
"confirmations.remove_from_followers.message": "{name} 將會停止跟隨您。您確定要繼續嗎?",
"confirmations.remove_from_followers.title": "是否移除該跟隨者?",
"confirmations.revoke_quote.confirm": "移除嘟文",
"confirmations.revoke_quote.message": "此動作無法復原。",
"confirmations.revoke_quote.title": "您是否確定移除嘟文?",
"confirmations.unfollow.confirm": "取消跟隨",
"confirmations.unfollow.message": "您確定要取消跟隨 {name} 嗎?",
"confirmations.unfollow.title": "是否取消跟隨該使用者?",
@ -896,6 +899,7 @@
"status.reply": "回覆",
"status.replyAll": "回覆討論串",
"status.report": "檢舉 @{name}",
"status.revoke_quote": "將我的嘟文自 @{name} 之嘟文中移除",
"status.sensitive_warning": "敏感內容",
"status.share": "分享",
"status.show_less_all": "隱藏所有內容警告與額外標籤",

View File

@ -61,6 +61,7 @@ class ActivityPub::Activity::Delete < ActivityPub::Activity
ActivityPub::Forwarder.new(@account, @json, @quote.status).forward!
@quote.reject!
DistributionWorker.perform_async(@quote.status_id, { 'update' => true })
end
def forwarder

View File

@ -19,13 +19,13 @@ class ActivityPub::Activity::QuoteRequest < ActivityPub::Activity
private
def accept_quote_request!(quoted_status)
status = status_from_uri(@json['instrument'])
# TODO: import inlined quote post if possible
status ||= ActivityPub::FetchRemoteStatusService.new.call(@json['instrument'], on_behalf_of: @account.followers.local.first, request_id: @options[:request_id])
status = status_from_uri(instrument_uri)
status ||= import_instrument(quoted_status)
status ||= ActivityPub::FetchRemoteStatusService.new.call(instrument_uri, on_behalf_of: quoted_status.account, request_id: @options[:request_id])
# TODO: raise if status is nil
# Sanity check
return unless status.quote.quoted_status == quoted_status
return unless status.quote.quoted_status == quoted_status && status.account == @account
status.quote.ensure_quoted_access
status.quote.update!(activity_uri: @json['id'])
@ -35,15 +35,30 @@ class ActivityPub::Activity::QuoteRequest < ActivityPub::Activity
ActivityPub::DeliveryWorker.perform_async(json, quoted_status.account_id, @account.inbox_url)
end
def import_instrument(quoted_status)
return unless @json['instrument'].is_a?(Hash)
# NOTE: Replacing the object's context by that of the parent activity is
# not sound, but it's consistent with the rest of the codebase
instrument = @json['instrument'].merge({ '@context' => @json['@context'] })
return if non_matching_uri_hosts?(instrument['id'], @account.uri)
ActivityPub::FetchRemoteStatusService.new.call(instrument['id'], prefetched_body: instrument, on_behalf_of: quoted_status.account, request_id: @options[:request_id])
end
def reject_quote_request!(quoted_status)
quote = Quote.new(
quoted_status: quoted_status,
quoted_account: quoted_status.account,
status: Status.new(account: @account, uri: @json['instrument']),
status: Status.new(account: @account, uri: instrument_uri),
account: @account,
activity_uri: @json['id']
)
json = Oj.dump(serialize_payload(quote, ActivityPub::RejectQuoteRequestSerializer))
ActivityPub::DeliveryWorker.perform_async(json, quoted_status.account_id, @account.inbox_url)
end
def instrument_uri
value_or_id(@json['instrument'])
end
end

View File

@ -12,24 +12,29 @@
#
class CanonicalEmailBlock < ApplicationRecord
include EmailHelper
include CanonicalEmail
include Paginable
belongs_to :reference_account, class_name: 'Account', optional: true
validates :canonical_email_hash, presence: true, uniqueness: true
scope :matching_email, ->(email) { where(canonical_email_hash: email_to_canonical_email_hash(email)) }
scope :matching_email, ->(email) { where(canonical_email_hash: digest(normalize_value_for(:email, email))) }
def self.block?(email)
matching_email(email).exists?
end
def self.digest(value)
Digest::SHA256.hexdigest(value)
end
def to_log_human_identifier
canonical_email_hash
end
def email=(email)
self.canonical_email_hash = email_to_canonical_email_hash(email)
end
def self.block?(email)
matching_email(email).exists?
super
self.canonical_email_hash = self.class.digest(self.email)
end
end

View File

@ -0,0 +1,27 @@
# frozen_string_literal: true
module CanonicalEmail
extend ActiveSupport::Concern
included do
normalizes :email, with: ->(value) { canonicalize_email(value) }
end
class_methods do
def canonicalize_email(email)
email
.downcase
.split('@', 2)
.then { |local, domain| [canonical_username(local), domain] }
.join('@')
end
def canonical_username(username)
username
.to_s
.delete('.')
.split('+', 2)
.first
end
end
end

View File

@ -1,11 +1,22 @@
# frozen_string_literal: true
class ActivityPub::QuoteRequestSerializer < ActivityPub::Serializer
def self.serializer_for(model, options)
case model.class.name
when 'Status'
ActivityPub::NoteSerializer
else
super
end
end
context_extensions :quote_requests
attributes :id, :type, :actor, :instrument
attributes :id, :type, :actor
attribute :virtual_object, key: :object
has_one :instrument
def id
object.activity_uri
end
@ -23,7 +34,6 @@ class ActivityPub::QuoteRequestSerializer < ActivityPub::Serializer
end
def instrument
# TODO: inline object?
ActivityPub::TagManager.instance.uri_for(object.status)
instance_options[:allow_post_inlining] && object.status.local? ? object.status : ActivityPub::TagManager.instance.uri_for(object.status)
end
end

View File

@ -8,11 +8,18 @@ class RevokeQuoteService < BaseService
@account = quote.quoted_account
@quote.reject!
distribute_update!
distribute_stamp_deletion!
end
private
def distribute_update!
return if @quote.status_id.nil?
DistributionWorker.perform_async(@quote.status_id, { 'update' => true })
end
def distribute_stamp_deletion!
ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url|
[signed_activity_json, @account.id, inbox_url]

View File

@ -17,6 +17,6 @@ class ActivityPub::QuoteRequestWorker < ActivityPub::RawDistributionWorker
end
def payload
@payload ||= Oj.dump(serialize_payload(@quote, ActivityPub::QuoteRequestSerializer, signer: @account))
@payload ||= Oj.dump(serialize_payload(@quote, ActivityPub::QuoteRequestSerializer, signer: @account, allow_post_inlining: true))
end
end

View File

@ -1 +1,77 @@
---
az:
activerecord:
attributes:
poll:
expires_at: Son tarix
options: Seçimlər
user:
agreement: Xidmət razılaşması
email: E-poçt ünvanı
locale: Lokal
password: Parol
user/account:
username: İstifadəçi adı
user/invite_request:
text: Səbəb
errors:
attributes:
domain:
invalid: yararlı bir domen adı deyil
messages:
invalid_domain_on_line: "%{value} yararlı bir domen adı deyil"
models:
account:
attributes:
fields:
fields_with_values_missing_labels: əskik etiketli dəyərlər ehtiva edir
username:
invalid: yalnız hərf, rəqəm və altdan xətt ehtiva etməlidir
reserved: rezerv edilib
admin/webhook:
attributes:
url:
invalid: yararlı bir URL deyil
doorkeeper/application:
attributes:
website:
invalid: yararlı bir URL deyil
import:
attributes:
data:
malformed: yanlış formatdadır
list_account:
attributes:
account_id:
taken: artıq siyahıdadır
must_be_following: izlənilən bir hesab olmalıdır
status:
attributes:
reblog:
taken: göndərişi artıq mövcuddur
terms_of_service:
attributes:
effective_date:
too_soon: çox tezdir, %{date} tarixindən sonra olmalıdır
user:
attributes:
date_of_birth:
below_limit: yaş limitinin altındadır
email:
blocked: icazə verilməyən bir e-poçt provayderi istifadə edir
unreachable: mövcud olaraq görünmür
role_id:
elevated: hazırkı rolunuzdan yüksək ola bilməz
user_role:
attributes:
permissions_as_keys:
dangerous: təməl rol üçün güvənli olmayan icazələri ehtiva edir
elevated: hazırkı rolunuzun sahib olmadığı icazələri ehtiva edə bilməz
own_role: hazırkı rolunuzla dəyişdirilə bilməz
position:
elevated: hazırkı rolunuzdan yüksək ola bilməz
own_role: hazırkı rolunuzla dəyişdirilə bilməz
webhook:
attributes:
events:
invalid_permissions: hüquqlarınız olmayan tədbirləri ehtiva edə bilməz

View File

@ -1 +1,168 @@
---
az:
about:
about_mastodon_html: 'Gələcəyin sosial şəbəkəsi: Reklam yoxdur, korporativ müşahidə yoxdur, etik dizayn və mərkəziyyətsizlik! Mastodon ilə öz verilərinizə sahib çıxın!'
admin:
account_actions:
title: "%{acct} üzərində moderasiya əməliyyatını icra et"
account_moderation_notes:
created_msg: Moderasiya notu uğurla yaradıldı!
destroyed_msg: Moderasiya notu uğurla məhv edildi!
accounts:
delete: Veriləri sil
destroyed_msg: "%{username} - verilərinin tezliklə silinməsi növbədədir"
moderation:
title: Moderasiya
moderation_notes: Moderasiya notları
remote_suspension_irreversible: Bu hesabın veriləri geri qaytarılmayacaq şəkildə silinib.
remote_suspension_reversible_hint_html: Hesabın fəaliyyəti öz serverində dayandırılıb və verilər %{date} tarixində tamamilə silinəcək. O vaxta qədər, uzaq server hər hansısa mənfi təsir olmadan bu hesabı bərpa edə bilər. Hesabın bütün verilərini dərhal silmək istəyirsinizsə, bunu aşağıdan edə bilərsiniz.
reset_password: Parolu sıfırla
security_measures:
only_password: Yalnız parol
password_and_2fa: Parol və 2FA
suspension_irreversible: Bu hesabın veriləri geri qaytarılmayacaq şəkildə silinib. Hesabı istifadəyə yararlı etmək üçün hesab fəaliyyətinin dayandırılma prosesini ləğv edə bilərsiniz, ancaq daha əvvəl sahib olduğunuz heç bir veri geri qaytarılmayacaq.
action_logs:
action_types:
reset_password_user: Parolu sıfırla
actions:
approve_appeal_html: "%{name}, moderasiya qərarına %{target} tərəfindən verilən etirazı təsdiqlədi"
reject_appeal_html: "%{name}, moderasiya qərarına %{target} tərəfindən verilən etirazı rədd etdi"
reset_password_user_html: "%{name}, %{target} istifadəçisinin parolunu sıfırladı"
dashboard:
software: Yazılım
instances:
moderation:
title: Moderasiya
moderation_notes:
create: Moderasiya notu əlavə et
description_html: Notlara baxın, gələcəkdə özünüz və digər moderatorlar üçün notlar buraxın
title: Moderasiya notları
reports:
actions:
suspend_description_html: Hesab və onun bütün məzmunları əlçatmaz olacaq və nəticədə silinəcək və onunla əlaqə qurmaq mümkün olmayacaq. 30 gün ərzində geri qaytarıla bilər. Bu hesaba aid bütün hesabatları bağlayır.
assigned: Təyin edilmiş moderator
confirm_action: "@%{acct} üzərindəki moderasiya əməliyyatını təsdiqlə"
notes_description_html: Notlara baxın, gələcəkdə özünüz və digər moderatorlar üçün notlar buraxın
quick_actions_description_html: 'Cəld bir əməliyyat edin və ya bildirilən məzmuna baxmaq üçün aşağı diyirlərin:'
roles:
categories:
moderation: Moderasiya
privileges:
delete_user_data: İstifadəçi verilərini sil
delete_user_data_description: İstifadəçilərin, digər istifadəçilərin verilərini gecikmə olmadan silməsinə icazə verir
manage_appeals_description: İstifadəçilərin moderasiya əməliyyatlarına etdiyi etirazları incələməsinə icazə verir
manage_reports_description: İstifadəçilərin hesabatları incələməsinə və bunlara qarşı moderasiya əməliyyatlarını icra etməsinə icazə verir
manage_settings: Ayarları idarə et
manage_settings_description: İstifadəçilərin sayt ayarlarını dəyişdirməsinə icazə verir
manage_taxonomies_description: İstifadəçilərin trend məzmunu incələməsinə və mövzu etiketləri ayarlarını güncəlləməsinə icazə verir
manage_user_access: İstifadəçi erişimini idarə et
manage_user_access_description: İstifadəçilərin, digər istifadəçilərin iki faktorlu kimlik doğrulamasını sıradan çıxartmasına, onların e-poçt ünvanlarını dəyişdirməsinə və onların parolunu sıfırlamasına icazə verir
manage_users_description: İstifadəçilərin digər istifadəçilərin detallarını görməsinə və onlara qarşı moderasiya əməliyyatlarını icra etməsinə icazə verir
view_dashboard_description: İstifadəçilərin idarəetmə lövhəsinə və müxtəlif metriklərə erişməsinə icazə verir
view_devops_description: İstifadəçilərin Sidekiq və pgHero idarəetmə lövhələrinə erişməsinə icazə verir
settings:
registrations:
moderation_recommandation: Hər kəs üçün qeydiyyatı açmazdan əvvəl lütfən əmin olun ki, adekvat və reaktiv moderasiya komandanız var!
registrations_mode:
warning_hint: Moderasiya komandanızın spam və zərərli qeydiyyatları vaxtında idarə edə biləcəyinə əmin deyilsinizsə, “Qeydiyyat üçün təsdiq tələb olunur”dan istifadə etməyi tövsiyə edirik.
title: Server ayarları
statuses:
metadata: Meta veri
system_checks:
elasticsearch_version_check:
message_html: 'Uyumlu olmayan Elasticsearch versiyası: %{value}'
tags:
updated_msg: Mövzu etiketi ayarları uğurla güncəlləndi
admin_mailer:
auto_close_registrations:
body: Son vaxtlarda moderator fəaliyyətinin olmamasına görə, %{instance} üzərindəki qeydiyyatlar avtomatik olaraq manual yoxlanış tələb edəcək şəkildə dəyişdirilib, beləliklə %{instance} potensial zərərli aktyorlar tərəfindən istifadə edilən platforma çevrilməyəcək. İstənilən vaxt açıq qeydiyyat rejiminə qaytara bilərsiniz.
new_appeal:
body: "%{target}, %{date} tarixində %{action_taken_by} tərəfindən verilmiş %{type} moderasiya qərarına etiraz edir. Yazılanlar:"
next_steps: Moderasiya qərarını geri almaq üçün etirazı təsdiqləyə, ya da etirazı yox saya bilərsiniz.
subject: "%{username}, %{instance} üzərindəki bir moderasiya qərarına etiraz edir"
appearance:
animations_and_accessibility: Animasiyalar və erişiləbilənlik
applications:
regenerate_token: Erişim tokenini təkrar yarat
token_regenerated: Erişim tokeni uğurla yaradıldı
your_token: Erişim tokeniniz
auth:
confirmations:
wrong_email_hint: Əgər bu e-poçt ünvanı doğru deyilsə, hesab ayarlarında onu dəyişdirə bilərsiniz.
forgot_password: Parolunuzu unutmusunuz?
invalid_reset_password_token: Parol sıfırlama tokeni yararsızdır və ya vaxtı bitib. Lütfən yenisini tələb edin.
link_to_otp: Telefonunuzdan iki faktorlu kodu və ya bir geri qaytarma kodunu daxil edin
reset_password: Parolu sıfırla
rules:
preamble: Bunlar, %{domain} moderatorları tərəfindən təyin edilib və tətbiq edilib.
preamble_invited: Davam etməzdən əvvəl, lütfən %{domain} moderatorları tərəfindən təyin edilmiş qaydaları nəzərdən keçirin.
set_new_password: Yeni parol təyin et
status:
self_destruct: "%{domain} bağlandığı üçün, hesabınıza yalnız məhdud erişiminiz olacaq."
challenge:
hint_html: "<strong>İpucu:</strong> Sonrakı bir saat ərzində sizdən parolu soruşmayacağıq."
invalid_password: Yararsız parol
prompt: Davam etmək üçün parolu təsdiqlə
deletes:
confirm_password: Kimliyinizi doğrulamaq üçün hazırkı parolunuzu daxil edin
exports:
archive_takeout:
hint_html: "<strong>Göndərişlərinizin və yüklədiyiniz medianın</strong> bir arxivini tələb edə bilərsiniz. Xaricə köçürülmüş verilər, istənilən uyumlu yazılım tərəfindən oxuna bilən ActivityPub formatında olacaq. Hər 7 gündə bir dəfə arxiv tələb edə bilərsiniz."
filters:
edit:
statuses_hint_html: Bu filtr, aşağıdakı açar sözləri ilə uyuşmasından asılı olmayaraq fərdi göndərişləri seçmək üçün tətbiq olunur. <a href="%{path}">Göndərişləri incələyin və ya filtrdən silin</a>.
generic:
all_matching_items_selected_html:
one: Axtarışınızla uyuşan <strong>%{count}</strong> element seçilib.
other: Axtarışınızla uyuşan <strong>%{count}</strong> element seçilib.
select_all_matching_items:
one: Axtarışınızla uyuşan <0>%{count}</0> elementi seçin.
other: Axtarışınızla uyuşan <0>%{count}</0> elementi seçin.
imports:
errors:
incompatible_type: Seçilmiş daxilə köçürmə növü ilə uyumlu deyil
invites:
prompt: Bu serverə erişim icazəsi vermək üçün keçid yaradın və başqaları ilə paylaşın
login_activities:
authentication_methods:
password: parol
description_html: Əgər tanımadığınız bir fəaliyyəti görsəniz, parolunuzu dəyişdirməyi və iki faktorlu kimlik doğrulamanı fəallaşdırmağı düşünə bilərsiniz
migrations:
warning:
disabled_account: Hazırkı hesabınız daha sonra istifadəyə yararsız olacaq. Ancaq, verilərin xaricə köçürülməsinə, həmçinin təkrar aktivləşdirmə prosesinə erişə biləcəksiniz.
moderation:
title: Moderasiya
sessions:
browsers:
edge: Microsoft Edge
settings:
account_settings: Hesab ayarları
development: Gəlişdirmə
strikes: Moderasiya pozuntuları
statuses_cleanup:
enabled_hint: Aşağıdakı istisnalardan heç birinə uyuşmadığı müddətcə, göndərişləriniz qeyd edilmiş yaş həddinə çatdıqda avtomatik silinir
tags:
does_not_match_previous_name: əvvəlki adla uyuşmur
two_factor_authentication:
generate_recovery_codes: Geri qaytarma kodlarını yarat
lost_recovery_codes: Geri qaytarma kodları, telefonunuzu itirdiyiniz halda hesabınıza yenidən erişməyinizə imkan verir. Geri qaytarma kodlarınızı itirsəniz, onları təkrar yarada bilərsiniz. Köhnə geri qaytarma kodlarınız yararsız sayılacaq.
recovery_codes: Geri qaytarma kodlarını nüsxələ
recovery_codes_regenerated: Geri qaytarma kodları uğurla yaradıldı
recovery_instructions_html: Telefonunuza erişə bilmirsinizsə, hesabınıza təkrar erişə bilmək üçün aşağıdakı geri qaytarma kodlarından birini istifadə edə bilərsiniz. <strong>Geri qaytarma kodlarını etibarlı yerdə saxlayın</strong>. Misal üçün, bunları çap edib digər vacib sənədlərin yanında saxlaya bilərsiniz.
user_mailer:
appeal_approved:
action: Hesab ayarları
suspicious_sign_in:
change_password: parolu dəyişdir
subject: Hesabınıza yeni bir IP ünvanından erişildi
warning:
explanation:
disable: Artıq hesabınızı istifadə edə bilməzsiniz, ancaq profiliniz və digər veriləriniz olduğu kimi qalacaq. Verilərinizin bir nüsxəsini tələb edə, hesab ayarlarınızı dəyişdirə və ya hesabınızı silə bilərsiniz.
suspend: Hesabınızı artıq istifadə edə bilməzsiniz, profiliniz və digər veriləriniz artıq əlçatmazdır. Təxminən 30 gün ərzində verilər tamamilə silinənə qədər verilərinizin bir nüsxəsini tələb etmək üçün hələ də hesabınıza giriş edə bilərsiniz, ancaq hesab fəaliyyətinin dayandırılması prosesini ləğv etməyinizi önləmək üçün bəzi təməl veriləri saxlayacağıq.
welcome:
feature_creativity: Mastodon özünüzü onlayn mühitdə ifadə etməyinizə kömək edəcək səs, video və şəkil göndərişləri, erişiləbilənlik açıqlamaları, anketlər, məzmun xəbərdarlıqları, animasiyalı avatarlar, özəl emojilər, kiçik şəkli kəsmə nəzarəti və daha çoxunu dəstəkləyir. Öz sənətinizi, musiqinizi və ya podkastınızı dərc edirsinizsə, Mastodon sizin üçün buradadır.
feature_moderation_title: Olmalı olduğu şəkildə moderasiya
users:
go_to_sso_account_settings: Kimlik provayderinizin hesab ayarlarına gedin
otp_lost_help_html: Hər ikisinə də erişə bilmirsinizsə, %{email} ilə əlaqə saxlayın
seamless_external_login: Xarici bir server üzərindən giriş etdiyiniz üçün parol və e-poçt ayarları mövcud deyil.

View File

@ -4,16 +4,16 @@ az:
confirmations:
confirmed: E-poçt ünvanınız uğurla təsdiqləndi.
send_instructions: Bir neçə dəqiqə ərzində e-poçt ünvanınızı necə təsdiqləyəcəyinizə dair təlimatları olan bir e-məktub alacaqsınız. Bu e-məktubu almamısınızsa, spam qovluğunuzu yoxlayın.
send_paranoid_instructions: E-poçt ünvanınız verilənlər bazamızda varsa, bir neçə dəqiqədən sonra e-poçt ünvanınızı necə təsdiqləyəcəyinizə dair təlimatları olan bir e-məktub alacaqsınız. Bu e-məktubu almamısınızsa, spam qovluğunuzu yoxlayın.
send_paranoid_instructions: E-poçt ünvanınız veri bazamızda varsa, bir neçə dəqiqə sonra e-poçt ünvanınızı necə təsdiqləyəcəyinizə dair təlimatları olan bir e-poçt alacaqsınız. Bu e-poçtu almamısınızsa, spam qovluğunuzu yoxlayın.
failure:
already_authenticated: Siz artıq daxil olmusunuz.
inactive: Hesabınız hələ aktivləşdirilməyib.
invalid: Səhv %{authentication_keys} və ya parol.
invalid: Yararsız %{authentication_keys} və ya parol.
last_attempt: Hesabınız blok olmamışdan əvvəl bir dəfə də cəhdiniz var.
locked: Hesabınız bloklandı.
not_found_in_database: Səhv %{authentication_keys} və ya parol.
locked: Hesabınız kilidlənib.
not_found_in_database: Yararsız %{authentication_keys} və ya parol.
omniauth_user_creation_failure: Bu kimlik üçün hesab yaradarkən xəta.
pending: Hesabınız hələ yoxlanışdadır.
pending: Hesabınız hələ incələnir.
timeout: Sessiyanın vaxtı bitdi. Xahiş edirik davam etmək üçün yenidən daxil olun.
unauthenticated: Davam etmək üçün daxil olmaq və ya qeydiyyatdan keçmək lazımdır.
unconfirmed: Davam etmək üçün e-poçt ünvanınızı təsdiqləməlisiniz.
@ -22,25 +22,81 @@ az:
action: E-poçt ünvanını təsdiqlə
action_with_app: Təsdiqlə və %{app}-a geri qayıt
explanation: Siz %{host} saytında bu e-poçt ilə hesab yaratmısınız. Onu aktivləşdirməkdən bir klik uzaqlıqdasınız. Əgər bu siz olmamısınızsa, zəhmət olmasa, bu e-məktuba məhəl qoymayın.
explanation_when_pending: Bu e-poçt ünvanı ilə %{host} saytına dəvət üçün müraciət etmisiniz. Siz e-poçt ünvanınızı təsdiqlədikdən sonra müraciətinizi nəzərdən keçirəcəyik. Siz məlumatlarınızı dəyişdirmək və ya hesabınızı silmək üçün daxil ola bilərsiniz, lakin hesabınız təsdiqlənənə qədər əksər funksiyaları istifadə edə bilməzsiniz. Müraciətiniz rədd edilərsə, məlumatlarınız silinəcək, buna görə də sizdən heç bir tədbir tələb olunmayacaq. Əgər bu siz deyildinizsə, zəhmət, bu e-məktuba məhəl qoymayın.
explanation_when_pending: Bu e-poçt ünvanı ilə %{host} ünvanına dəvət üçün müraciət etmisiniz. E-poçt ünvanınızı təsdiqlədikdən sonra müraciətinizi nəzərdən keçirəcəyik. Hesab məlumatlarını dəyişdirmək və ya hesabınızı silmək üçün giriş edə bilərsiniz, ancaq hesabınız təsdiqlənənə qədər əksər funksiyalara erişə bilməyəcəksiniz. Müraciətinizə rədd cavabı gəlsə, veriləriniz silinəcək, sizdən heç bir əməliyyat etməyiniz istənilməyəcək. Əgər bu siz deyilsinizsə, lütfən bu e-poçtu yox sayın.
extra_html: Həmçinin zəhmət olmasa, <a href="%{terms_path}">serverin qaydalarını</a> və <a href="%{policy_path}">istifadə şərtlərini</a> oxuyun.
subject: 'Mastodon: %{instance} üçün təsdiqlənmə təlimatları'
title: E-poçt ünvanını təsdiqlə
email_changed:
explanation: 'Hesabınız üçün e-poçt ünvanı buna dəyişdirilir:'
extra: E-poçtunuzu dəyişməmisinizsə, çox güman ki, kimsə hesabınıza giriş əldə edib. Zəhmət olmasa, parolunuzu dərhal dəyişdirin və ya hesabınıza daxil ola bilməyəcəksinizsə, server admini ilə əlaqə saxlayın.
extra: E-poçtunuzu dəyişməmisinizsə, çox güman ki, kimsə hesabınıza erişib. Hesabınıza giriş edə bilmirsinizsə, lütfən parolunuzu dərhal dəyişdirin və ya server admini ilə əlaqə saxlayın.
subject: 'Mastodon: E-poçt dəyişdirildi'
title: Yeni e-poçt ünvanı
password_change:
explanation: Hesabınızın parolu dəyişdirilib.
extra: Parolunuzu dəyişməmisinizsə, çox güman ki, kimsə hesabınıza giriş əldə edib. Zəhmət olmasa, parolunuzu dərhal dəyişdirin və ya hesabınıza daxil ola bilməyəcəksinizsə, server admini ilə əlaqə saxlayın.
extra: Parolunuzu dəyişməmisinizsə, çox güman ki, kimsə hesabınıza erişib. Hesabınıza giriş edə bilmirsinizsə, lütfən parolunuzu dərhal dəyişdirin və ya server admini ilə əlaqə saxlayın.
subject: 'Mastodon: Parol dəyişdirildi'
title: Parol dəyişdirildi
reconfirmation_instructions:
explanation: E-poçtunuzu dəyişdirmək üçün yeni ünvanı təsdiqləyin.
extra: Əgər bu dəyişiklik sizin tərəfinizdən deyilsə, zəhmət olmasa, bu e-məktuba məhəl qoymayın. Siz yuxarıdakı linkə daxil olana qədər Mastodon hesabının e-poçt ünvanı dəyişməyəcək.
extra: Bu dəyişikliyi siz etməmisinizsə, lütfən bu e-poçtu yox sayın. Yuxarıdakı keçidə erişənə qədər Mastodon hesabının e-poçt ünvanı dəyişməyəcək.
subject: 'Mastodon: %{instance} üçün e-poçtu təsdiqlə'
title: E-poçt ünvanını təsdiqlə
reset_password_instructions:
action: Parolu dəyiş
explanation: Siz hesabınız üçün yeni parol tələb etmisiniz.
extra: Bunu siz tələb etməmisinizsə, lütfən bu e-poçtu yox sayın. Parolunuz, yuxarıdakı keçidə erişənə və siz yeni birini yaradana qədər dəyişməyəcək.
subject: 'Mastodon: Parol sıfırlama təlimatları'
title: Parolu sıfırla
two_factor_disabled:
explanation: Giriş etmək, indi yalnız e-poçt ünvanı və parol ilə mümkündür.
subject: 'Mastodon: İki faktorlu kimlik doğrulama sıradan çıxarılıb'
subtitle: İki faktorlu kimlik doğrulama hesabınız üçün sıradan çıxarılıb.
title: 2FA sıradan çıxarılıb
two_factor_enabled:
explanation: Giriş etmək üçün cütləşdirilmiş TOTP tətbiqi tərəfindən yaradılmış bir token tələb olunur.
subject: 'Mastodon: İki faktorlu kimlik doğrulama fəaldır'
subtitle: İki faktorlu kimlik doğrulama hesabınız üçün fəallaşdırılıb.
title: 2FA fəaldır
two_factor_recovery_codes_changed:
explanation: Əvvəlki geri qaytarma kodları yararsız sayıldı və yeniləri yaradıldı.
subject: 'Mastodon: İki faktorlu geri qaytarma kodları təkrar yaradılıb'
subtitle: Əvvəlki geri qaytarma kodları yararsız sayıldı və yeniləri yaradıldı.
title: 2FA geri qaytarma kodları dəyişdirilib
unlock_instructions:
subject: 'Mastodon: Kilid açma təlimatları'
webauthn_credential:
added:
explanation: Aşağıdakı güvənlik açarı, hesabınıza əlavə edilib
subject: 'Mastodon: Yeni güvənlik açarı'
title: Yeni bir güvənlik açarı əlavə edilib
deleted:
explanation: Aşağıdakı güvənlik açarı, hesabınızdan silinib
subject: 'Mastodon: Güvənlik açarı silindi'
title: Güvənlik açarlarınızdan biri silinib
webauthn_disabled:
explanation: Güvənlik açarı ilə kimlik doğrulama hesabınız üçün sıradan çıxarılıb.
extra: Giriş, artıq yalnız cütləşdirilmiş TOTP tətbiqi tərəfindən yaradılmış token ilə mümkündür.
subject: 'Mastodon: Güvənlik açarları ilə kimlik doğrulama sıradan çıxarılıb'
title: Güvənlik açarları sıradan çıxarılıb
webauthn_enabled:
explanation: Güvənlik açarı ilə kimlik doğrulama hesabınız üçün fəallaşdırılıb.
extra: Güvənlik açarınız artıq giriş üçün istifadə edilə bilər
subject: 'Mastodon: Güvənlik açarı ilə kimlik doğrulama fəaldır'
title: Güvənlik açarları fəaldır
omniauth_callbacks:
failure: '%{kind} üzərindən kimliyiniz doğrulana bilmədi, çünki "%{reason}".'
success: "%{kind} hesabından kimliyiniz uğurla doğrulandı."
passwords:
no_token: Parol sıfırlama e-poçtunu istifadə etmədən bu səhifəyə erişə bilməzsiniz. Əgər parol sıfırlama e-poçtu ilə bura gəlmisinizsə, lütfən verilmiş tam URL-ni istifadə etdiyinizə əmin olun.
send_instructions: E-poçt ünvanınız veri bazamızda varsa, bir neçə dəqiqə sonra e-poçt ünvanınızda parolu geri qaytarma keçidini alacaqsınız. Bu e-poçtu almamısınızsa, spam qovluğunuzu yoxlayın.
send_paranoid_instructions: E-poçt ünvanınız veri bazamızda varsa, bir neçə dəqiqə sonra e-poçt ünvanınızda parolu geri qaytarma keçidini alacaqsınız. Bu e-poçtu almamısınızsa, spam qovluğunuzu yoxlayın.
updated: Parolunuz uğurla dəyişdirildi. Artıq hesabınıza daxil olmusunuz.
updated_not_active: Parolunuz uğurla dəyişdirildi.
registrations:
destroyed: Xudahafiz! Hesabınız uğurla ləğv edilib. Sizi tezliklə yenidən görməyi ümid edirik.
update_needs_confirmation: Hesabınızı uğurla güncəllədiniz, ancaq yeni e-poçt ünvanını doğrulamağımız lazımdır. Lütfən e-poçtunuzu yoxlayın, yeni e-poçt ünvanınızı təsdiqləmək üçün təsdiq keçidini izləyin. Əgər bu e-poçtu almamısınızsa spam qovluğunu yoxlayın.
updated: Hesabınız uğurla güncəllənib.
sessions:
already_signed_out: Uğurla hesabdan çıxış edildi.
signed_in: Uğurla hesaba daxil olundu.
signed_out: Uğurla hesabdan çıxış edildi.

View File

@ -1 +1,26 @@
---
az:
doorkeeper:
errors:
messages:
invalid_token:
expired: Erişim tokeninin vaxtı bitib
revoked: Erişim tokeni ləğv edilib
unknown: Erişim tokeni yararsızdır
grouped_scopes:
access:
read: Yalnız oxuma erişimi
read/write: Oxuma və yazma erişimi
write: Yalnız yazma erişimi
title:
all: Mastodon hesabınıza tam erişim
scopes:
admin:read: serverdəki bütün veriləri oxuma
admin:write: serverdəki bütün veriləri dəyişdirmə
admin:write:accounts: hesablarda moderasiya əməliyyatlarını icra et
admin:write:canonical_email_blocks:
admin:write:domain_allows: domen icazələri üzərində moderasiya əməliyyatlarını icra et
admin:write:ip_blocks: IP əngəlləmələri üzrə moderasiya əməliyyatlarını icra et
admin:write:reports: hesabatlarda moderasiya əməliyyatlarını icra et
read: hesabınızın bütün verilərini oxuma
write: hesabınızın bütün verilərini dəyişdirmə

View File

@ -190,6 +190,7 @@ fa:
create_relay: ایجاد رله
create_unavailable_domain: ایجاد دامنهٔ ناموجود
create_user_role: ایجاد نقش
create_username_block: ایجاد قانون نام‌کاربری
demote_user: تنزل کاربر
destroy_announcement: حذف اعلامیه
destroy_canonical_email_block: حذف انسداد رایانامه
@ -203,6 +204,7 @@ fa:
destroy_status: حذف وضعیت
destroy_unavailable_domain: حذف دامنهٔ ناموجود
destroy_user_role: نابودی نقش
destroy_username_block: حذف قانون نام‌کاربری
disable_2fa_user: از کار انداختن ورود دومرحله‌ای
disable_custom_emoji: از کار انداختن شکلک سفارشی
disable_relay: غیرفعال‌سازی رله
@ -237,6 +239,7 @@ fa:
update_report: به‌روز رسانی گزارش
update_status: به‌روز رسانی وضعیت
update_user_role: به روزرسانی نقش
update_username_block: به‌روزرسانی قانون نام‌کاربری
actions:
approve_appeal_html: "%{name} درخواست تجدیدنظر تصمیم مدیر را از %{target} پذیرفت"
approve_user_html: "%{name} ثبت نام %{target} را تایید کرد"
@ -1085,6 +1088,8 @@ fa:
other: در هفته گذشته توسط %{count} نفر استفاده شده است
title: توصیه ها و روندها
trending: پرطرفدار
username_blocks:
delete: حذف
warning_presets:
add_new: افزودن تازه
delete: زدودن
@ -1662,6 +1667,10 @@ fa:
title: اشارهٔ جدید
poll:
subject: نظرسنجی‌ای از %{name} پایان یافت
quote:
body: 'فرسته‌تان توسط %{name} نقل شد:'
subject: "%{name} فرسته‌تان را نقل کرد"
title: نقل‌قول جدید
reblog:
body: "%{name} فرستهٔ شما را تقویت کرد:"
subject: "%{name} فرستهٔ شما را تقویت کرد"
@ -1880,6 +1889,8 @@ fa:
ownership: نوشته‌های دیگران را نمی‌توان ثابت کرد
reblog: تقویت نمی‌تواند سنجاق شود
quote_policies:
followers: تنها پی‌گیرندگانتان
nobody: هیچ‌کس
public: هرکسی
title: "%{name}: «%{quote}»"
visibilities:

View File

@ -1687,6 +1687,10 @@ fo:
title: Nýggj umrøða
poll:
subject: Ein spurnarkanning hjá %{name} er endað
quote:
body: 'Postur tín var siteraður av %{name}:'
subject: "%{name} siteraði postin hjá tær"
title: Nýggj sitering
reblog:
body: 'Postur tín var stimbraður av %{name}:'
subject: "%{name} stimbraði tín post"

View File

@ -1804,6 +1804,10 @@ ga:
title: Lua nua
poll:
subject: Tháinig deireadh le vótaíocht le %{name}
quote:
body: 'Luaigh %{name} do phost:'
subject: Luaigh %{name} do phost
title: Luachan nua
reblog:
body: 'Treisíodh do phostáil le %{name}:'
subject: Mhol %{name} do phostáil

View File

@ -188,6 +188,7 @@ lt:
create_relay: Kurti perdavimą
create_unavailable_domain: Kurti nepasiekiamą domeną
create_user_role: Kurti vaidmenį
create_username_block: Kurti naudotojo vardo taisyklę
demote_user: Pažeminti naudotoją
destroy_announcement: Ištrinti skelbimą
destroy_custom_emoji: Ištrinti pasirinktinį jaustuką
@ -199,6 +200,7 @@ lt:
destroy_status: Ištrinti įrašą
destroy_unavailable_domain: Ištrinti nepasiekiamą domeną
destroy_user_role: Sunaikinti vaidmenį
destroy_username_block: Ištrinti naudotojo vardo taisyklę
disable_2fa_user: Išjungti 2FA
disable_custom_emoji: Išjungti pasirinktinį jaustuką
disable_relay: Išjungti perdavimą
@ -231,6 +233,7 @@ lt:
update_report: Atnaujinti ataskaitą
update_status: Atnaujinti įrašą
update_user_role: Atnaujinti vaidmenį
update_username_block: Atnaujinti naudotojo vardo taisyklę
actions:
approve_appeal_html: "%{name} patvirtino prižiūjimo veiksmo apeliaciją iš %{target}"
approve_user_html: "%{name} patvirtino registraciją iš %{target}"
@ -245,6 +248,7 @@ lt:
create_relay_html: "%{name} sukūrė perdavimą %{target}"
create_unavailable_domain_html: "%{name} sustabdė tiekimą į domeną %{target}"
create_user_role_html: "%{name} sukūrė %{target} vaidmenį"
create_username_block_html: "%{name} pridėjo taisyklę naudotojo vardams, turintiems %{target}"
demote_user_html: "%{name} pažemino naudotoją %{target}"
destroy_announcement_html: "%{name} ištrynė skelbimą %{target}"
destroy_custom_emoji_html: "%{name} ištrynė jaustuką %{target}"
@ -256,6 +260,7 @@ lt:
destroy_status_html: "%{name} pašalino įrašą %{target}"
destroy_unavailable_domain_html: "%{name} pratęsė tiekimą į domeną %{target}"
destroy_user_role_html: "%{name} ištrynė %{target} vaidmenį"
destroy_username_block_html: "%{name} pašalino taisyklę naudotojo vardams, turintiems %{target}"
disable_2fa_user_html: "%{name} išjungė dviejų veiksnių reikalavimą naudotojui %{target}"
disable_custom_emoji_html: "%{name} išjungė jaustuką %{target}"
disable_relay_html: "%{name} išjungė perdavimą %{target}"
@ -287,6 +292,7 @@ lt:
update_report_html: "%{name} atnaujino ataskaitą %{target}"
update_status_html: "%{name} atnaujino įrašą %{target}"
update_user_role_html: "%{name} pakeitė %{target} vaidmenį"
update_username_block_html: "%{name} atnaujino taisyklę naudotojo vardams, turintiems %{target}"
deleted_account: ištrinta paskyra
empty: Žurnalų nerasta.
filter_by_action: Filtruoti pagal veiksmą
@ -746,6 +752,22 @@ lt:
trending_rank: 'Tendencinga #%{rank}'
title: Rekomendacijos ir tendencijos
trending: Tendencinga
username_blocks:
add_new: Pridėti naują
block_registrations: Blokuoti registracijas
comparison:
contains: Yra
equals: Lygus
contains_html: Yra %{string}
created_msg: Sėkmingai sukurta naudotojo vardo taisyklė.
delete: Ištrinti
edit:
title: Redaguoti naudotojo vardo taisyklę
matches_exactly_html: Lygus %{string}
new:
create: Kurti taisyklę
title: Kurti naują naudotojo vardo taisyklę
no_username_block_selected: Jokios naudotojo vardo taisyklės nebuvo pakeistos, nes nė viena buvo pasirinkta.
warning_presets:
add_new: Pridėti naują
delete: Ištrinti

View File

@ -1945,25 +1945,25 @@ ru:
unlisted_long: Доступен кому угодно, но не отображается в публичных лентах
statuses_cleanup:
enabled: Автоматически удалять старые посты
enabled_hint: Автоматически удаляет ваши посты после того, как они достигли определённого возрастного порога, за некоторыми исключениями ниже.
enabled_hint: По истечении определённого срока с момента публикации ваши посты, кроме соответствующих отмеченным ниже исключениям, будут автоматически удалены
exceptions: Исключения
explanation: Из-за того, что удаление постов — это ресурсоёмкий процесс, оно производится медленно со временем, когда сервер менее всего загружен. По этой причине, посты могут удаляться не сразу, а спустя определённое время, по достижению возрастного порога.
ignore_favs: Игнорировать избранное
ignore_reblogs: Игнорировать продвижения
explanation: Удаление постов — это ресурсоёмкий процесс, поэтому оно производится постепенно, с течением времени, когда сервер менее всего загружен. По этой причине посты могут удаляться не сразу по прошествии установленного срока, а спустя некоторое время.
ignore_favs: Не учитывать добавление в избранное
ignore_reblogs: Не учитывать продвижения
interaction_exceptions: Исключения на основе взаимодействий
interaction_exceptions_explanation: 'Обратите внимание: нет никаких гарантий, что посты будут удалены, после того, как они единожды перешли порог по отметкам «избранного» или продвижений.'
keep_direct: Не удалять адресованные посты
keep_direct_hint: Не удалять ваши посты с «адресованной» видимостью.
keep_direct: Не удалять личные сообщения
keep_direct_hint: Те ваши посты, которые видны только упомянутым в них людям, не будут удалены
keep_media: Не удалять посты с вложениями
keep_media_hint: Не удалять ваши посты, содержащие любые медийные вложения.
keep_media_hint: Те ваши посты, которые содержат медиавложения, не будут удалены
keep_pinned: Не удалять закреплённые посты
keep_pinned_hint: Не удалять ваши посты, которые закреплены в профиле.
keep_pinned_hint: Те ваши посты, которые вы закрепили в своём профиле, не будут удалены
keep_polls: Не удалять опросы
keep_polls_hint: Не удалять ваши посты с опросами.
keep_self_bookmark: Не удалять закладки
keep_self_bookmark_hint: Не удалять ваши посты с закладками.
keep_self_fav: Оставить посты, отмеченные «избранными»
keep_self_fav_hint: Не удалять ваши посты, если вы отметили их как «избранные».
keep_polls_hint: Те ваши посты, которые содержат опросы, не будут удалены
keep_self_bookmark: Не удалять посты, добавленные в закладки
keep_self_bookmark_hint: Те ваши посты, которые вы добавили в закладки, не будут удалены
keep_self_fav: Не удалять посты, добавленные в избранное
keep_self_fav_hint: Те ваши посты, которые вы добавили в избранное, не будут удалены
min_age:
'1209600': 2 недели
'15778476': 6 месяцев
@ -1973,11 +1973,11 @@ ru:
'604800': 1 неделя
'63113904': 2 года
'7889238': 3 месяца
min_age_label: Возрастной порог
min_favs: Порог отметок «избранного»
min_favs_hint: Не удалять ваши посты, у которых количество отметок «избранного» достигло указанного выше значения. Оставьте поле пустым, чтобы удалять посты независимо от количества отметок
min_reblogs: Порог продвижений
min_reblogs_hint: Не удаляет ваши посты, количество продвижений которых достигло указанного выше значения. Оставьте поле пустым, чтобы удалять посты независимо от количества продвижений.
min_age_label: Интервал между публикацией и удалением поста
min_favs: Количество звёздочек, при котором пост не будет удалён
min_favs_hint: Те ваши посты, которые были добавлены в избранное столько раз, сколько вы укажете выше, не будут удалены. Оставьте поле пустым, чтобы удалять посты без учёта количества звёздочек
min_reblogs: Количество продвижений, при котором пост не будет удалён
min_reblogs_hint: Те ваши посты, которые были продвинуты столько раз, сколько вы укажете выше, не будут удалены. Оставьте поле пустым, чтобы удалять посты без учёта количества продвижений
stream_entries:
sensitive_content: Содержимое деликатного характера
strikes:

View File

@ -1 +1,32 @@
---
az:
simple_form:
hints:
admin_account_action:
include_statuses: İstifadəçi, hansı göndərişlərin moderasiya əməliyyatına və ya xəbərdarlığına səbəb olduğunu görəcək
defaults:
current_password: Təhlükəsizlik səbəblərinə görə lütfən hazırkı hesabın parolunu daxil edin
phrase: Mətndəki böyük-kiçik hərfdən və ya göndərişin məzmun xəbərdarlığından asılı olmayaraq uyuşdurulacaq
ip_block:
severities:
no_access: Bütün resurslara erişimi əngəllə
sessions:
otp: 'Telefon tətbiqiniz tərəfindən yaradılmış iki faktorlu kodu daxil edin və ya geri qaytarma kodlarınızdan birini istifadə edin:'
user_role:
permissions_as_keys: Bu rola sahib istifadəçilər bunlara erişə biləcək...
labels:
defaults:
confirm_new_password: Yeni parolu təsdiqlə
confirm_password: Parolu təsdiqlə
current_password: Hazırkı parol
data: Veri
new_password: Yeni parol
password: Parol
setting_system_scrollbars_ui: Sistemin ilkin diyircəyini istifadə edin
ip_block:
severities:
no_access: Erişimi əngəllə
notification_emails:
appeal: Kimsə, bir moderasiya qərarına etiraz edir
username_block:
username: Uyuşacaq söz

View File

@ -56,6 +56,7 @@ fa:
scopes: واسط‌های برنامه‌نویسی که این برنامه به آن دسترسی دارد. اگر بالاترین سطح دسترسی را انتخاب کنید، دیگر نیازی به انتخاب سطح‌های پایینی ندارید.
setting_aggregate_reblogs: برای تقویت‌هایی که به تازگی برایتان نمایش داده شده‌اند، تقویت‌های بیشتر را نمایش نده (فقط روی تقویت‌های اخیر تأثیر می‌گذارد)
setting_always_send_emails: در حالت عادی آگاهی‌های رایانامه‌ای هنگامی که فعّالانه از ماستودون استفاده می‌کنید فرستاده نمی‌شوند
setting_default_quote_policy: این تنظیمات تنها روی فرسته‌هایی ایجاد شده با نگارش بعدی Mastodon اعمال خواهد شد، اما می‌توانی ترجیحات خود را از قبل انتخاب کنید.
setting_default_sensitive: تصاویر حساس به طور پیش‌فرض پنهان هستند و می‌توانند با یک کلیک آشکار شوند
setting_display_media_default: تصویرهایی را که به عنوان حساس علامت زده شده‌اند پنهان کن
setting_display_media_hide_all: همیشه همهٔ عکس‌ها و ویدیوها را پنهان کن
@ -324,6 +325,7 @@ fa:
follow_request: شخصی خواست پیتان بگیرد
mention: شخصی از شما نام برد
pending_account: حساب تازهٔ نیازمند بررسی
quote: شخصی شما را نقل کرد
reblog: شخصی فرسته‌تان را تقویت کرد
report: گزارش جدیدی فرستاده شد
software_updates:

View File

@ -329,6 +329,7 @@ fo:
follow_request: Onkur biður um at fylgja tær
mention: Onkur nevndi teg
pending_account: Nýggj konta krevur viðgerð
quote: Onkur siteraði teg
reblog: Onkur stimbraði postin hjá tær
report: Nýggj melding er send inn
software_updates:

View File

@ -332,6 +332,7 @@ ga:
follow_request: D'iarr duine éigin tú a leanúint
mention: Luaigh duine éigin tú
pending_account: Ní mór athbhreithniú a dhéanamh ar chuntas nua
quote: Luaigh duine éigin thú
reblog: Mhol duine éigin do phostáil
report: Tá tuairisc nua curtha isteach
software_updates:

View File

@ -8,6 +8,7 @@ RSpec.describe ActivityPub::Activity::QuoteRequest, feature: :outgoing_quotes do
let(:quoted_post) { Fabricate(:status, account: recipient) }
let(:request_uri) { 'https://example.com/missing-ui' }
let(:quoted_uri) { ActivityPub::TagManager.instance.uri_for(quoted_post) }
let(:instrument) { 'https://example.com/unknown-status' }
let(:json) do
{
@ -21,8 +22,30 @@ RSpec.describe ActivityPub::Activity::QuoteRequest, feature: :outgoing_quotes do
type: 'QuoteRequest',
actor: ActivityPub::TagManager.instance.uri_for(sender),
object: quoted_uri,
instrument: 'https://example.com/unknown-status',
}.with_indifferent_access
instrument: instrument,
}.deep_stringify_keys
end
let(:status_json) do
{
'@context': [
'https://www.w3.org/ns/activitystreams',
{
'@id': 'https://w3id.org/fep/044f#quote',
'@type': '@id',
},
{
'@id': 'https://w3id.org/fep/044f#quoteAuthorization',
'@type': '@id',
},
],
id: 'https://example.com/unknown-status',
type: 'Note',
summary: 'Show more',
content: 'Hello universe',
quote: ActivityPub::TagManager.instance.uri_for(quoted_post),
attributedTo: ActivityPub::TagManager.instance.uri_for(sender),
}.deep_stringify_keys
end
describe '#perform' do
@ -48,29 +71,20 @@ RSpec.describe ActivityPub::Activity::QuoteRequest, feature: :outgoing_quotes do
end
end
context 'when trying to quote a quotable local status' do
let(:status_json) do
{
'@context': [
'https://www.w3.org/ns/activitystreams',
{
'@id': 'https://w3id.org/fep/044f#quote',
'@type': '@id',
},
{
'@id': 'https://w3id.org/fep/044f#quoteAuthorization',
'@type': '@id',
},
],
id: 'https://example.com/unknown-status',
type: 'Note',
summary: 'Show more',
content: 'Hello universe',
quote: ActivityPub::TagManager.instance.uri_for(quoted_post),
attributedTo: ActivityPub::TagManager.instance.uri_for(sender),
}.deep_stringify_keys
context 'when trying to quote an unquotable local status with an inlined instrument' do
let(:instrument) { status_json.without('@context') }
it 'sends a Reject activity' do
expect { subject.perform }
.to enqueue_sidekiq_job(ActivityPub::DeliveryWorker)
.with(satisfying do |body|
outgoing_json = Oj.load(body)
outgoing_json['type'] == 'Reject' && json['instrument']['id'] == outgoing_json['object']['instrument'] && %w(type id actor object).all? { |key| json[key] == outgoing_json['object'][key] }
end, recipient.id, sender.inbox_url)
end
end
context 'when trying to quote a quotable local status' do
before do
stub_request(:get, 'https://example.com/unknown-status').to_return(status: 200, body: Oj.dump(status_json), headers: { 'Content-Type': 'application/activity+json' })
quoted_post.update(quote_approval_policy: Status::QUOTE_APPROVAL_POLICY_FLAGS[:public] << 16)
@ -86,5 +100,23 @@ RSpec.describe ActivityPub::Activity::QuoteRequest, feature: :outgoing_quotes do
end, recipient.id, sender.inbox_url)
end
end
context 'when trying to quote a quotable local status with an inlined instrument' do
let(:instrument) { status_json.without('@context') }
before do
quoted_post.update(quote_approval_policy: Status::QUOTE_APPROVAL_POLICY_FLAGS[:public] << 16)
end
it 'accepts the quote and sends an Accept activity' do
expect { subject.perform }
.to change { quoted_post.reload.quotes.accepted.count }.by(1)
.and enqueue_sidekiq_job(ActivityPub::DeliveryWorker)
.with(satisfying do |body|
outgoing_json = Oj.load(body)
outgoing_json['type'] == 'Accept' && json['instrument']['id'] == outgoing_json['object']['instrument'] && %w(type id actor object).all? { |key| json[key] == outgoing_json['object'][key] }
end, recipient.id, sender.inbox_url)
end
end
end
end

View File

@ -7,6 +7,14 @@ RSpec.describe CanonicalEmailBlock do
it { is_expected.to belong_to(:reference_account).class_name('Account').optional }
end
describe 'Normalizations' do
describe 'email' do
it { is_expected.to normalize(:email).from('TEST@HOST.EXAMPLE').to('test@host.example') }
it { is_expected.to normalize(:email).from('test+more@host.example').to('test@host.example') }
it { is_expected.to normalize(:email).from('test.user@host.example').to('testuser@host.example') }
end
end
describe 'Scopes' do
describe '.matching_email' do
subject { described_class.matching_email(email) }

View File

@ -23,7 +23,9 @@ RSpec.describe ActivityPub::QuoteRequestWorker do
type: 'QuoteRequest',
actor: ActivityPub::TagManager.instance.uri_for(quote.account),
object: ActivityPub::TagManager.instance.uri_for(quoted_status),
instrument: anything # TODO: inline post in request?
instrument: a_hash_including(
id: ActivityPub::TagManager.instance.uri_for(status)
)
)
end
end