diff --git a/.bundler-audit.yml b/.bundler-audit.yml deleted file mode 100644 index a457fc41e8..0000000000 --- a/.bundler-audit.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -ignore: - # Sidekiq security issue, fixes in the latest Sidekiq 7 but we can not upgrade. Will be fixed in Sidekiq 6.5.10 - - CVE-2023-26141 diff --git a/.gitignore b/.gitignore index 2bc8b18c8f..cb442609a1 100644 --- a/.gitignore +++ b/.gitignore @@ -31,9 +31,6 @@ # Ignore Vagrant files .vagrant/ -# Ignore Capistrano customizations -/config/deploy/* - # Ignore IDE files .vscode/ .idea/ diff --git a/.prettierignore b/.prettierignore index 27b6d5458a..07f83bb423 100644 --- a/.prettierignore +++ b/.prettierignore @@ -31,9 +31,6 @@ # Ignore Vagrant files .vagrant/ -# Ignore Capistrano customizations -/config/deploy/* - # Ignore IDE files .vscode/ .idea/ diff --git a/Capfile b/Capfile deleted file mode 100644 index 86efa5bacf..0000000000 --- a/Capfile +++ /dev/null @@ -1,15 +0,0 @@ -# frozen_string_literal: true - -require 'capistrano/setup' -require 'capistrano/deploy' -require 'capistrano/scm/git' - -install_plugin Capistrano::SCM::Git - -require 'capistrano/rbenv' -require 'capistrano/bundler' -require 'capistrano/yarn' -require 'capistrano/rails/assets' -require 'capistrano/rails/migrations' - -Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r } diff --git a/Gemfile b/Gemfile index 5ce96f71f2..449b0a9203 100644 --- a/Gemfile +++ b/Gemfile @@ -170,12 +170,6 @@ group :development do # Linter CLI for HAML files gem 'haml_lint', require: false - # Deployment automation - gem 'capistrano', '~> 3.17' - gem 'capistrano-rails', '~> 1.6' - gem 'capistrano-rbenv', '~> 2.2' - gem 'capistrano-yarn', '~> 2.0' - # Validate missing i18n keys gem 'i18n-tasks', '~> 1.0', require: false end diff --git a/Gemfile.lock b/Gemfile.lock index 33dc8cb9b4..c64487c2e1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -84,9 +84,9 @@ GEM erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - active_model_serializers (0.10.13) - actionpack (>= 4.1, < 7.1) - activemodel (>= 4.1, < 7.1) + active_model_serializers (0.10.14) + actionpack (>= 4.1) + activemodel (>= 4.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) activejob (7.0.8) @@ -112,8 +112,6 @@ GEM addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) aes_key_wrap (1.1.0) - airbrussh (1.4.1) - sshkit (>= 1.6.1, != 1.7.0) android_key_attestation (0.3.0) annotate (3.2.0) activerecord (>= 3.2, < 8.0) @@ -175,21 +173,6 @@ GEM bundler-audit (0.9.1) bundler (>= 1.2.0, < 3) thor (~> 1.0) - capistrano (3.17.3) - airbrussh (>= 1.0.0) - i18n - rake (>= 10.0.0) - sshkit (>= 1.9.0) - capistrano-bundler (2.1.0) - capistrano (~> 3.1) - capistrano-rails (1.6.3) - capistrano (~> 3.1) - capistrano-bundler (>= 1.1, < 3) - capistrano-rbenv (2.2.0) - capistrano (~> 3.1) - sshkit (~> 1.3) - capistrano-yarn (2.0.2) - capistrano (~> 3.0) capybara (3.39.2) addressable matrix @@ -473,11 +456,8 @@ GEM net-protocol net-protocol (0.2.1) timeout - net-scp (4.0.0) - net-ssh (>= 2.6.5, < 8.0.0) net-smtp (0.3.3) net-protocol - net-ssh (7.1.0) nio4r (2.5.9) nokogiri (1.15.4) mini_portile2 (~> 2.8.2) @@ -691,7 +671,7 @@ GEM rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) semantic_range (3.0.0) - sidekiq (6.5.9) + sidekiq (6.5.10) connection_pool (>= 2.2.5, < 3) rack (~> 2.0) redis (>= 4.5.0, < 5) @@ -726,9 +706,6 @@ GEM actionpack (>= 5.2) activesupport (>= 5.2) sprockets (>= 3.0.0) - sshkit (1.21.5) - net-scp (>= 1.1.2) - net-ssh (>= 2.8.0) stackprof (0.2.25) statsd-ruby (1.5.0) stoplight (3.0.2) @@ -829,10 +806,6 @@ DEPENDENCIES brakeman (~> 6.0) browser bundler-audit (~> 0.9) - capistrano (~> 3.17) - capistrano-rails (~> 1.6) - capistrano-rbenv (~> 2.2) - capistrano-yarn (~> 2.0) capybara (~> 3.39) charlock_holmes (~> 0.7.7) chewy (~> 7.3) diff --git a/SECURITY.md b/SECURITY.md index 9a08c4e251..3e13377db6 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -15,6 +15,7 @@ A "vulnerability in Mastodon" is a vulnerability in the code distributed through | Version | Supported | | ------- | ---------------- | +| 4.2.x | Yes | | 4.1.x | Yes | | 4.0.x | Until 2023-10-31 | | 3.5.x | Until 2023-12-31 | diff --git a/app/javascript/mastodon/components/__tests__/hashtag_bar.tsx b/app/javascript/mastodon/components/__tests__/hashtag_bar.tsx index 1856b7109e..b7225fc92e 100644 --- a/app/javascript/mastodon/components/__tests__/hashtag_bar.tsx +++ b/app/javascript/mastodon/components/__tests__/hashtag_bar.tsx @@ -45,6 +45,21 @@ describe('computeHashtagBarForStatus', () => { ); }); + it('does not truncate the contents when the last child is a text node', () => { + const status = createStatus( + 'this is a #test. Some more text', + ['test'], + ); + + const { hashtagsInBar, statusContentProps } = + computeHashtagBarForStatus(status); + + expect(hashtagsInBar).toEqual([]); + expect(statusContentProps.statusContent).toMatchInlineSnapshot( + `"this is a #test. Some more text"`, + ); + }); + it('extract tags from the last line', () => { const status = createStatus( '

Simple text

#hashtag

', diff --git a/app/javascript/mastodon/components/hashtag_bar.tsx b/app/javascript/mastodon/components/hashtag_bar.tsx index d45a6e20eb..91fa922198 100644 --- a/app/javascript/mastodon/components/hashtag_bar.tsx +++ b/app/javascript/mastodon/components/hashtag_bar.tsx @@ -109,7 +109,7 @@ export function computeHashtagBarForStatus(status: StatusLike): { const lastChild = template.content.lastChild; - if (!lastChild) return defaultResult; + if (!lastChild || lastChild.nodeType === Node.TEXT_NODE) return defaultResult; template.content.removeChild(lastChild); const contentWithoutLastLine = template; diff --git a/app/javascript/mastodon/components/scrollable_list.jsx b/app/javascript/mastodon/components/scrollable_list.jsx index 7672a4e424..79dc481362 100644 --- a/app/javascript/mastodon/components/scrollable_list.jsx +++ b/app/javascript/mastodon/components/scrollable_list.jsx @@ -78,7 +78,7 @@ class ScrollableList extends PureComponent { const clientHeight = this.getClientHeight(); const offset = scrollHeight - scrollTop - clientHeight; - if (400 > offset && this.props.onLoadMore && this.props.hasMore && !this.props.isLoading) { + if (scrollTop > 0 && offset < 400 && this.props.onLoadMore && this.props.hasMore && !this.props.isLoading) { this.props.onLoadMore(); } diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index 4b055f53a4..85d6f2474a 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -190,6 +190,7 @@ "conversation.open": "কথপোকথন দেখান", "conversation.with": "{names} এর সঙ্গে", "copypaste.copied": "অনুলিপিকৃত", + "copypaste.copy_to_clipboard": "ক্লিপবোর্ডে কপি করুন", "directory.federated": "পরিচিত ফেডিভারসের থেকে", "directory.local": "শুধু {domain} থেকে", "directory.new_arrivals": "নতুন আগত", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 4c920b038f..87d7c90c41 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -686,7 +686,7 @@ "timeline_hint.resources.followers": "Seuraajat", "timeline_hint.resources.follows": "seurattua", "timeline_hint.resources.statuses": "Vanhemmat julkaisut", - "trends.counter_by_accounts": "{count, plural, one {{counter} henkilö} other {{counter} henkilöä}} viimeisten {days, plural, one {päivän} other {{days} päivän}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} henkilö} other {{counter} henkilöä}} {days, plural, one {viimeisen päivän} other {viimeisten {days} päivän}} aikana", "trends.trending_now": "Suosittua nyt", "ui.beforeunload": "Luonnos häviää, jos poistut Mastodonista.", "units.short.billion": "{count} mrd.", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index aab7b9a8fb..7f71d9318b 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -161,13 +161,13 @@ "compose_form.spoiler.unmarked": "Pievienot satura brīdinājumu", "compose_form.spoiler_placeholder": "Ieraksti savu brīdinājumu šeit", "confirmation_modal.cancel": "Atcelt", - "confirmations.block.block_and_report": "Bloķēt un Ziņot", + "confirmations.block.block_and_report": "Bloķēt un ziņot", "confirmations.block.confirm": "Bloķēt", "confirmations.block.message": "Vai tiešām vēlies bloķēt {name}?", "confirmations.cancel_follow_request.confirm": "Atsaukt pieprasījumu", "confirmations.cancel_follow_request.message": "Vai tiešām vēlies atsaukt pieprasījumu sekot {name}?", "confirmations.delete.confirm": "Dzēst", - "confirmations.delete.message": "Vai tiešām vēlies dzēst šo ziņu?", + "confirmations.delete.message": "Vai tiešām vēlies dzēst šo ierakstu?", "confirmations.delete_list.confirm": "Dzēst", "confirmations.delete_list.message": "Vai tiešam vēlies neatgriezeniski dzēst šo sarakstu?", "confirmations.discard_edit_media.confirm": "Atmest", @@ -244,7 +244,7 @@ "empty_column.public": "Šeit vēl nekā nav! Ieraksti ko publiski vai pieseko lietotājiem no citiem serveriem", "error.unexpected_crash.explanation": "Koda kļūdas vai pārlūkprogrammas saderības problēmas dēļ šo lapu nevarēja parādīt pareizi.", "error.unexpected_crash.explanation_addons": "Šo lapu nevarēja parādīt pareizi. Šo kļūdu, iespējams, izraisīja pārlūkprogrammas papildinājums vai automātiskās tulkošanas rīki.", - "error.unexpected_crash.next_steps": "Mēģini atsvaidzināt lapu. Ja tas nepalīdz, vari lietot Mastodon, izmantojot citu pārlūkprogrammu vai lietotni.", + "error.unexpected_crash.next_steps": "Mēģini atsvaidzināt lapu. Ja tas nepalīdz, iespējams, varēsi lietot Mastodon, izmantojot citu pārlūkprogrammu vai lietotni.", "error.unexpected_crash.next_steps_addons": "Mēģini tos atspējot un atsvaidzināt lapu. Ja tas nepalīdz, iespējams, varēsi lietot Mastodon, izmantojot citu pārlūkprogrammu vai lietotni.", "errors.unexpected_crash.copy_stacktrace": "Kopēt stacktrace uz starpliktuvi", "errors.unexpected_crash.report_issue": "Ziņot par problēmu", @@ -309,11 +309,11 @@ "home.column_settings.show_replies": "Rādīt atbildes", "home.explore_prompt.body": "Tavā mājas plūsmā būs dažādu ziņu sajaukums no atsaucēm, kurām esi izvēlējies sekot, personām, kurām esi izvēlējies sekot, un ziņām, kuras tās izceļ. Ja tas šķiet pārāk kluss, iespējams, vēlēsies:", "home.explore_prompt.title": "Šī ir tava Mastodon mājvieta.", - "home.hide_announcements": "Slēpt anonsus", + "home.hide_announcements": "Slēpt paziņojumus", "home.pending_critical_update.body": "Lūdzu, pēc iespējas ātrāk atjaunini savu Mastodon serveri!", "home.pending_critical_update.link": "Skatīt jauninājumus", "home.pending_critical_update.title": "Pieejams kritisks drošības jauninājums!", - "home.show_announcements": "Rādīt anonsus", + "home.show_announcements": "Rādīt paziņojumus", "interaction_modal.description.favourite": "Ar Mastodon kontu tu vari pievienot šo ziņu izlasei, lai informētu autoru, ka to novērtē, un saglabātu to vēlākai lasīšanai.", "interaction_modal.description.follow": "Ar Mastodon kontu tu vari sekot {name}, lai saņemtu viņu ziņas savā mājas plūsmā.", "interaction_modal.description.reblog": "Izmantojot kontu Mastodon, tu vari izcelt šo ziņu, lai kopīgotu to ar saviem sekotājiem.", @@ -369,7 +369,7 @@ "lightbox.close": "Aizvērt", "lightbox.compress": "Saspiest attēla skata lodziņu", "lightbox.expand": "Izvērst attēla skata lodziņu", - "lightbox.next": "Nākamais", + "lightbox.next": "Tālāk", "lightbox.previous": "Iepriekšējais", "limited_account_hint.action": "Tik un tā rādīt profilu", "limited_account_hint.title": "{domain} moderatori ir paslēpuši šo profilu.", @@ -422,8 +422,8 @@ "navigation_bar.search": "Meklēt", "navigation_bar.security": "Drošība", "not_signed_in_indicator.not_signed_in": "Lai piekļūtu šim resursam, tev ir jāpierakstās.", - "notification.admin.report": "{name} sūdzējās par {target}", - "notification.admin.sign_up": "{name} pierakstījās", + "notification.admin.report": "{name} ziņoja par {target}", + "notification.admin.sign_up": "{name} ir pierakstījies", "notification.favourite": "{name} pievienoja tavu ziņu izlasei", "notification.follow": "{name} uzsāka tev sekot", "notification.follow_request": "{name} nosūtīja tev sekošanas pieprasījumu", @@ -435,7 +435,7 @@ "notification.update": "{name} rediģēja ierakstu", "notifications.clear": "Notīrīt paziņojumus", "notifications.clear_confirmation": "Vai tiešām vēlies neatgriezeniski notīrīt visus savus paziņojumus?", - "notifications.column_settings.admin.report": "Jaunas sūdzības:", + "notifications.column_settings.admin.report": "Jauni ziņojumi:", "notifications.column_settings.admin.sign_up": "Jaunas pierakstīšanās:", "notifications.column_settings.alert": "Darbvirsmas paziņojumi", "notifications.column_settings.favourite": "Izlase:", @@ -445,7 +445,7 @@ "notifications.column_settings.follow": "Jauni sekotāji:", "notifications.column_settings.follow_request": "Jauni sekošanas pieprasījumi:", "notifications.column_settings.mention": "Pieminējumi:", - "notifications.column_settings.poll": "Aptauju rezultāti:", + "notifications.column_settings.poll": "Aptaujas rezultāti:", "notifications.column_settings.push": "Uznirstošie paziņojumi", "notifications.column_settings.reblog": "Pastiprinātie ieraksti:", "notifications.column_settings.show": "Rādīt kolonnā", @@ -457,13 +457,13 @@ "notifications.filter.all": "Visi", "notifications.filter.boosts": "Pastiprinātie ieraksti", "notifications.filter.favourites": "Izlases", - "notifications.filter.follows": "Sekošana", + "notifications.filter.follows": "Seko", "notifications.filter.mentions": "Pieminējumi", - "notifications.filter.polls": "Aptauju rezultāti", + "notifications.filter.polls": "Aptaujas rezultāti", "notifications.filter.statuses": "Jaunumi no cilvēkiem, kuriem tu seko", "notifications.grant_permission": "Piešķirt atļauju.", "notifications.group": "{count} paziņojumi", - "notifications.mark_as_read": "Atzīmēt visus paziņojumus kā izlasītus", + "notifications.mark_as_read": "Atzīmēt katru paziņojumu kā izlasītu", "notifications.permission_denied": "Darbvirsmas paziņojumi nav pieejami, jo iepriekš tika noraidīts pārlūka atļauju pieprasījums", "notifications.permission_denied_alert": "Darbvirsmas paziņojumus nevar iespējot, jo pārlūkprogrammai atļauja tika iepriekš atteikta", "notifications.permission_required": "Darbvirsmas paziņojumi nav pieejami, jo nav piešķirta nepieciešamā atļauja.", @@ -563,25 +563,25 @@ "report.reasons.spam": "Tas ir spams", "report.reasons.spam_description": "Ļaunprātīgas saites, viltus iesaistīšana vai atkārtotas atbildes", "report.reasons.violation": "Tas pārkāpj servera noteikumus", - "report.reasons.violation_description": "Tu zini, ka tas pārkāpj konkrētus noteikumus", + "report.reasons.violation_description": "Tu zini, ka tas pārkāpj īpašus noteikumus", "report.rules.subtitle": "Atlasi visus atbilstošos", "report.rules.title": "Kuri noteikumi tiek pārkāpti?", "report.statuses.subtitle": "Atlasi visus atbilstošos", "report.statuses.title": "Vai ir kādi ieraksti, kas atbalsta šo sūdzību?", "report.submit": "Iesniegt", - "report.target": "Sūdzība par {target}", - "report.thanks.take_action": "Vari veikt šīs darbības, lai kontrolētu Mastodon redzamo saturu:", + "report.target": "Ziņošana par: {target}", + "report.thanks.take_action": "Tālāk ir norādītas iespējas, kā kontrolēt Mastodon redzamo saturu:", "report.thanks.take_action_actionable": "Kamēr mēs to izskatām, tu vari veikt darbības pret @{name}:", "report.thanks.title": "Vai nevēlies to redzēt?", "report.thanks.title_actionable": "Paldies, ka ziņoji, mēs to izskatīsim.", "report.unfollow": "Pārtraukt sekot @{name}", "report.unfollow_explanation": "Tu seko šim kontam. Lai vairs neredzētu viņu ziņas savā mājas plūsmā, pārtrauc viņiem sekot.", - "report_notification.attached_statuses": "{count, plural, one {Pievienots {count} ieraksts} other {Pievienoti {count} ieraksti}}", + "report_notification.attached_statuses": "Pievienoti {count, plural,one {{count} sūtījums} other {{count} sūtījumi}}", "report_notification.categories.legal": "Tiesisks", "report_notification.categories.other": "Cita", "report_notification.categories.spam": "Spams", "report_notification.categories.violation": "Noteikumu pārkāpums", - "report_notification.open": "Atvērt sūdzību", + "report_notification.open": "Atvērt ziņojumu", "search.no_recent_searches": "Nav nesen veiktu meklējumu", "search.placeholder": "Meklēšana", "search.quick_action.account_search": "Profili atbilst {x}", @@ -628,7 +628,7 @@ "status.direct_indicator": "Pieminēts privāti", "status.edit": "Rediģēt", "status.edited": "Rediģēts {date}", - "status.edited_x_times": "Rediģēts {count, plural, one {{count} reizi} other {{count} reizes}}", + "status.edited_x_times": "Rediģēts {count, plural, one {{count} reize} other {{count} reizes}}", "status.embed": "Iestrādāt", "status.favourite": "Iecienīts", "status.filter": "Filtrē šo ziņu", @@ -656,8 +656,8 @@ "status.remove_bookmark": "Noņemt grāmatzīmi", "status.replied_to": "Atbildēja {name}", "status.reply": "Atbildēt", - "status.replyAll": "Atbildēt uz pavedienu", - "status.report": "Sūdzēties par @{name}", + "status.replyAll": "Atbildēt uz tematu", + "status.report": "Ziņot par @{name}", "status.sensitive_warning": "Sensitīvs saturs", "status.share": "Kopīgot", "status.show_filter_reason": "Tomēr rādīt", @@ -668,7 +668,7 @@ "status.show_original": "Rādīt oriģinālu", "status.title.with_attachments": "{user} publicējis {attachmentCount, plural, one {pielikumu} other {{attachmentCount} pielikumus}}", "status.translate": "Tulkot", - "status.translated_from_with": "Tulkots no {lang}, izmantojot {provider}", + "status.translated_from_with": "Tulkots no {lang} izmantojot {provider}", "status.uncached_media_warning": "Priekšskatījums nav pieejams", "status.unmute_conversation": "Noņemt sarunas apklusinājumu", "status.unpin": "Noņemt profila piespraudumu", @@ -681,16 +681,16 @@ "time_remaining.hours": "{number, plural, one {Atlikusi # stunda} other {Atlikušas # stundas}}", "time_remaining.minutes": "{number, plural, one {Atlikusi # minūte} other {Atlikušas # minūtes}}", "time_remaining.moments": "Atlikuši daži mirkļi", - "time_remaining.seconds": "{number, plural, one {Atlikusi # sekunde} other {Atlikušas # sekundes}}", + "time_remaining.seconds": "Atlikušas {number, plural, one {# sekunde} other {# sekundes}}", "timeline_hint.remote_resource_not_displayed": "{resource} no citiem serveriem nav parādīti.", "timeline_hint.resources.followers": "Sekotāji", - "timeline_hint.resources.follows": "Sekojošie", + "timeline_hint.resources.follows": "Seko", "timeline_hint.resources.statuses": "Vecāki ieraksti", "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} cilvēki}} par {days, plural, one {# dienu} other {{days} dienām}}", "trends.trending_now": "Aktuālās tendences", - "ui.beforeunload": "Ja pametīsiet Mastodon, jūsu melnraksts tiks zaudēts.", + "ui.beforeunload": "Ja pametīsit Mastodonu, jūsu melnraksts tiks zaudēts.", "units.short.billion": "{count}Mjd", - "units.short.million": "{count}Mjn", + "units.short.million": "{count}M", "units.short.thousand": "{count}Tk", "upload_area.title": "Velc un nomet, lai augšupielādētu", "upload_button.label": "Pievienot bildi, video vai audio datni", @@ -707,7 +707,7 @@ "upload_modal.apply": "Pielietot", "upload_modal.applying": "Pielieto…", "upload_modal.choose_image": "Izvēlēties attēlu", - "upload_modal.description_placeholder": "Raibais runcis Rīgā ratu rumbā rūc", + "upload_modal.description_placeholder": "Raibais runcis rīgā ratu rumbā rūc", "upload_modal.detect_text": "Noteikt tekstu no attēla", "upload_modal.edit_media": "Rediģēt multividi", "upload_modal.hint": "Noklikšķini vai velc apli priekšskatījumā, lai izvēlētos fokusa punktu, kas vienmēr būs redzams visos sīktēlos.", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index c6993c809c..3814e69151 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -593,6 +593,7 @@ "search_results.all": "Semua", "search_results.hashtags": "Tanda pagar", "search_results.nothing_found": "Tidak dapat menemui apa-apa untuk istilah carian tersebut", + "search_results.see_all": "Lihat semua", "search_results.statuses": "Hantaran", "search_results.title": "Mencari {q}", "server_banner.about_active_users": "Pengguna pelayan ini sepanjang 30 hari yang lalu (Pengguna Aktif Bulanan)", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index ae9cef5938..69db89dc86 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -537,7 +537,7 @@ "relative_time.today": "сегодня", "reply_indicator.cancel": "Отмена", "report.block": "Заблокировать", - "report.block_explanation": "В перестаните видеть посты этого пользователя, а он(а) больше не сможет подписаться на вас и читать ваши посты. Он(а) сможет понять что вы заблокировали его/её.", + "report.block_explanation": "Вы перестанете видеть посты этого пользователя, и он(а) больше не сможет подписаться на вас и читать ваши посты. Он(а) сможет понять, что вы заблокировали его/её.", "report.categories.legal": "Правовая информация", "report.categories.other": "Другое", "report.categories.spam": "Спам", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index 4d116bfd31..632e716bca 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -1,6 +1,7 @@ { "about.blocks": "මැදිහත්කරණ සේවාදායක", "about.contact": "සබඳතාව:", + "about.disclaimer": "මාස්ටඩන් යනු නිදහස් විවෘත මූලාශ්‍ර මෘදුකාංගයකි. එය මාස්ටඩන් gGmbH හි වෙළඳ නාමයකි.", "about.domain_blocks.suspended.title": "අත්හිටුවා ඇත", "about.rules": "සේවාදායකයේ නීති", "account.account_note_header": "සටහන", @@ -25,6 +26,7 @@ "account.follows.empty": "තවමත් කිසිවෙක් අනුගමනය නොකරයි.", "account.follows_you": "ඔබව අනුගමනය කරයි", "account.go_to_profile": "පැතිකඩට යන්න", + "account.joined_short": "එක් වූ දිනය", "account.link_verified_on": "මෙම සබැඳියේ අයිතිය {date} දී පරීක්‍ෂා කෙරිණි", "account.media": "මාධ්‍යය", "account.mention": "@{name} සඳහන් කරන්ක", @@ -102,6 +104,8 @@ "compose_form.publish_form": "නව ලිපිය", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "වෙනස්කම් සුරකින්න", + "compose_form.spoiler.marked": "අන්තර්ගත අවවාදය ඉවත් කරන්න", + "compose_form.spoiler.unmarked": "අන්තර්ගත අවවාදයක් එක් කරන්න", "compose_form.spoiler_placeholder": "අවවාදය මෙහි ලියන්න", "confirmation_modal.cancel": "අවලංගු", "confirmations.block.block_and_report": "අවහිර කර වාර්තා කරන්න", @@ -131,7 +135,7 @@ "directory.new_arrivals": "නව පැමිණීම්", "directory.recently_active": "මෑත දී සක්‍රියයි", "disabled_account_banner.account_settings": "ගිණුමේ සැකසුම්", - "embed.instructions": "පහත කේතය පිටපත් කිරීමෙන් මෙම තත්ත්වය ඔබේ වෙබ් අඩවියට ඇතුළත් කරන්න.", + "embed.instructions": "පහත කේතය පිටපත් කිරීමෙන් මෙම ලිපිය ඔබගේ අඩවියට කාවද්දන්න.", "embed.preview": "මෙන්න එය පෙනෙන අන්දම:", "emoji_button.activity": "ක්‍රියාකාරකම", "emoji_button.clear": "මකන්න", @@ -151,7 +155,7 @@ "empty_column.account_timeline": "මෙහි ලිපි නැත!", "empty_column.account_unavailable": "පැතිකඩ නොතිබේ", "empty_column.blocks": "කිසිදු පරිශීලකයෙකු අවහිර කර නැත.", - "empty_column.bookmarked_statuses": "ඔබට තවමත් පිටු සලකුණු කළ මෙවලම් කිසිවක් නොමැත. ඔබ එකක් පිටු සලකුණු කළ විට, එය මෙහි පෙන්වනු ඇත.", + "empty_column.bookmarked_statuses": "ඔබ සතුව පොත්යොමු තබන ලද ලිපි කිසිවක් නැත. ඔබ පොත්යොමුවක් තබන විට, එය මෙහි දිස්වනු ඇත.", "empty_column.domain_blocks": "අවහිර කරන ලද වසම් නැත.", "empty_column.explore_statuses": "දැන් කිසිවක් නැඹුරු නොවේ. පසුව නැවත පරීක්ෂා කරන්න!", "empty_column.follow_requests": "ඔබට තවමත් අනුගමන ඉල්ලීම් ලැබී නැත. ඉල්ලීමක් ලැබුණු විට, එය මෙහි පෙන්වනු ඇත.", @@ -353,7 +357,7 @@ "report.forward": "{target} වෙත හරවන්න", "report.forward_hint": "ගිණුම වෙනත් සේවාදායකයකින්. වාර්තාවේ නිර්නාමික පිටපතක් එතනටත් එවන්න?", "report.mute": "නිහඬ", - "report.mute_explanation": "ඔබට ඔවුන්ගේ පෝස්ට් නොපෙනේ. ඔවුන්ට තවමත් ඔබව අනුගමනය කිරීමට සහ ඔබේ පළ කිරීම් දැකීමට හැකි අතර ඒවා නිශ්ශබ්ද කර ඇති බව නොදැනේ.", + "report.mute_explanation": "ඔබ ඔවුන්ගේ ලිපි නොදකිනු ඇත. ඔවුන්ට තවමත් ඔබව අනුගමනයට සහ ඔබගේ ලිපි දැකීමට හැකි අතර ඔවුන්ව නිහඬ කර ඇති බව දැන ගැනීමට නොහැකිය.", "report.next": "ඊළඟ", "report.placeholder": "අමතර අදහස්", "report.reasons.dislike": "මම එයට අකැමතියි", @@ -367,7 +371,7 @@ "report.rules.subtitle": "අදාළ සියල්ල තෝරන්න", "report.rules.title": "කුමන නීති උල්ලංඝනය කරන්නේද?", "report.statuses.subtitle": "අදාළ සියල්ල තෝරන්න", - "report.statuses.title": "මෙම වාර්තාව උපස්ථ කරන පෝස්ට් තිබේද?", + "report.statuses.title": "මෙම වාර්තාව උපස්ථ කළ ලිපි තිබේ ද?", "report.submit": "යොමන්න", "report.target": "{target} වාර්තා කිරීම", "report.thanks.take_action": "මාස්ටඩන් හි ඔබ දකින දෑ පාලනයට තිබෙන විකල්ප:", @@ -375,7 +379,7 @@ "report.thanks.title": "මෙය නොපෙන්විය යුතුද?", "report.thanks.title_actionable": "වාර්තා කිරීමට ස්තූතියි, අපි මේ ගැන සොයා බලමු.", "report.unfollow": "@{name}අනුගමනය නොකරන්න", - "report.unfollow_explanation": "ඔබ මෙම ගිණුම අනුගමනය කරයි. ඔබේ නිවසේ සංග්‍රහයේ ඔවුන්ගේ පළ කිරීම් තවදුරටත් නොදැකීමට, ඒවා අනුගමනය නොකරන්න.", + "report.unfollow_explanation": "ඔබ මෙම ගිණුම අනුගමනය කරයි. ඔබගේ මුල් පිටුවේ ඔවුන්ගේ ලිපි නොදැකීමට, ඔවුන්ව තවදුරටත් අනුගමනය නොකරන්න.", "report_notification.attached_statuses": "{count, plural, one {ලිපි {count}} other {ලිපි {count} ක්}} අමුණා ඇත", "report_notification.categories.other": "වෙනත්", "report_notification.categories.spam": "ආයාචිත", @@ -443,7 +447,7 @@ "timeline_hint.resources.followers": "අනුගාමිකයින්", "timeline_hint.resources.follows": "අනුගමනය", "timeline_hint.resources.statuses": "පරණ ලිපි", - "trends.trending_now": "දැන් ප්‍රවණතාවය", + "trends.trending_now": "දැන් නැගී එන", "ui.beforeunload": "ඔබ මාස්ටඩන් හැර ගියහොත් කටුපිටපත අහිමි වේ.", "units.short.billion": "{count}බී", "units.short.million": "ද.ල. {count}", diff --git a/app/lib/activitypub/case_transform.rb b/app/lib/activitypub/case_transform.rb index da2c5eb8b0..bf5de72210 100644 --- a/app/lib/activitypub/case_transform.rb +++ b/app/lib/activitypub/case_transform.rb @@ -14,6 +14,8 @@ module ActivityPub::CaseTransform when String camel_lower_cache[value] ||= if value.start_with?('_:') "_:#{value.delete_prefix('_:').underscore.camelize(:lower)}" + elsif LanguagesHelper::ISO_639_1_REGIONAL.key?(value.to_sym) + value else value.underscore.camelize(:lower) end diff --git a/app/lib/admin/metrics/dimension/software_versions_dimension.rb b/app/lib/admin/metrics/dimension/software_versions_dimension.rb index 72a98a88ab..ccf556eae0 100644 --- a/app/lib/admin/metrics/dimension/software_versions_dimension.rb +++ b/app/lib/admin/metrics/dimension/software_versions_dimension.rb @@ -25,7 +25,8 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim end def ruby_version - value = "#{RUBY_VERSION}p#{RUBY_PATCHLEVEL}" + yjit = defined?(RubyVM::YJIT) && RubyVM::YJIT.enabled? + value = "#{RUBY_VERSION}p#{RUBY_PATCHLEVEL}#{yjit ? ' +YJIT' : ''}" { key: 'ruby', diff --git a/app/lib/admin/metrics/dimension/space_usage_dimension.rb b/app/lib/admin/metrics/dimension/space_usage_dimension.rb index cc85608904..f1b6dba040 100644 --- a/app/lib/admin/metrics/dimension/space_usage_dimension.rb +++ b/app/lib/admin/metrics/dimension/space_usage_dimension.rb @@ -11,7 +11,7 @@ class Admin::Metrics::Dimension::SpaceUsageDimension < Admin::Metrics::Dimension protected def perform_query - [postgresql_size, redis_size, media_size] + [postgresql_size, redis_size, media_size, search_size].compact end def postgresql_size @@ -65,4 +65,22 @@ class Admin::Metrics::Dimension::SpaceUsageDimension < Admin::Metrics::Dimension redis.info end end + + def search_size + return unless Chewy.enabled? + + client_info = Chewy.client.info + + value = Chewy.client.indices.stats['indices'].values.sum { |index_data| index_data['primaries']['store']['size_in_bytes'] } + + { + key: 'search', + human_key: client_info.dig('version', 'distribution') == 'opensearch' ? 'OpenSearch' : 'Elasticsearch', + value: value.to_s, + unit: 'bytes', + human_value: number_to_human_size(value), + } + rescue Faraday::ConnectionFailed, Elasticsearch::Transport::Transport::Error + nil + end end diff --git a/app/models/account.rb b/app/models/account.rb index fa5cacd1af..e15606368a 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -131,7 +131,7 @@ class Account < ApplicationRecord scope :searchable, -> { without_unapproved.without_suspended.where(moved_to_account_id: nil) } scope :discoverable, -> { searchable.without_silenced.where(discoverable: true).joins(:account_stat) } scope :followable_by, ->(account) { joins(arel_table.join(Follow.arel_table, Arel::Nodes::OuterJoin).on(arel_table[:id].eq(Follow.arel_table[:target_account_id]).and(Follow.arel_table[:account_id].eq(account.id))).join_sources).where(Follow.arel_table[:id].eq(nil)).joins(arel_table.join(FollowRequest.arel_table, Arel::Nodes::OuterJoin).on(arel_table[:id].eq(FollowRequest.arel_table[:target_account_id]).and(FollowRequest.arel_table[:account_id].eq(account.id))).join_sources).where(FollowRequest.arel_table[:id].eq(nil)) } - scope :by_recent_status, -> { order(Arel.sql('account_stats.last_status_at DESC NULLS LAST')) } + scope :by_recent_status, -> { includes(:account_stat).merge(AccountStat.order('last_status_at DESC NULLS LAST')).references(:account_stat) } scope :by_recent_sign_in, -> { order(Arel.sql('users.current_sign_in_at DESC NULLS LAST')) } scope :popular, -> { order('account_stats.followers_count desc') } scope :by_domain_and_subdomains, ->(domain) { where(domain: Instance.by_domain_and_subdomains(domain).select(:domain)) } diff --git a/app/models/relationship_filter.rb b/app/models/relationship_filter.rb index 955d7d188a..d686f9ed89 100644 --- a/app/models/relationship_filter.rb +++ b/app/models/relationship_filter.rb @@ -114,7 +114,7 @@ class RelationshipFilter def activity_scope(value) case value when 'dormant' - AccountStat.where(last_status_at: nil).or(AccountStat.where(AccountStat.arel_table[:last_status_at].lt(1.month.ago))) + Account.joins(:account_stat).where(account_stat: { last_status_at: [nil, ...1.month.ago] }) else raise Mastodon::InvalidParameterError, "Unknown activity: #{value}" end diff --git a/config/locales/doorkeeper.si.yml b/config/locales/doorkeeper.si.yml index 31b38444d3..d3550cf598 100644 --- a/config/locales/doorkeeper.si.yml +++ b/config/locales/doorkeeper.si.yml @@ -58,10 +58,10 @@ si: authorize: සත්‍යාපනය deny: ප්‍රතික්ෂේප කරන්න error: - title: දෝෂයක් සිදුවී ඇත + title: දෝෂයක් සිදු වී ඇත new: prompt_html: "%{client_name} ඔබගේ ගිණුමට ප්‍රවේශ වීමට අවසර ලබා ගැනීමට කැමති වේ. එය තෙවන පාර්ශවීය යෙදුමකි. ඔබ එය විශ්වාස නොකරන්නේ නම්, ඔබ එයට අවසර නොදිය යුතුය." - review_permissions: අවසර සමාලෝචනය කරන්න + review_permissions: අවසර සමාලෝචනය title: බලය පැවරීමේ අවශ්ය show: title: මෙම අවසර කේතය පිටපත් කර එය යෙදුමට අලවන්න. @@ -73,11 +73,11 @@ si: index: authorized_at: "%{date}මත අවසර දී ඇත" description_html: මේවා API භාවිතයෙන් ඔබගේ ගිණුමට ප්‍රවේශ විය හැකි යෙදුම් වේ. ඔබ මෙහි හඳුනා නොගත් යෙදුම් තිබේ නම්, හෝ යෙදුමක් වැරදි ලෙස හැසිරෙන්නේ නම්, ඔබට එහි ප්‍රවේශය අවලංගු කළ හැක. - last_used_at: අවසන් වරට භාවිතා කළේ %{date} + last_used_at: අන්තිම භාවිතය %{date} never_used: භාවිතා කර නැත scopes: අවසර superapp: අභ්‍යන්තර - title: ඔබගේ බලයලත් අයදුම්පත් + title: ඔබගේ බලයලත් යෙදුම් errors: messages: access_denied: සම්පත් හිමිකරු හෝ අවසර සේවාදායකය ඉල්ලීම ප්‍රතික්ෂේප කළේය. diff --git a/config/locales/ko.yml b/config/locales/ko.yml index cc3fd07c49..ff337cc6ca 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -47,7 +47,7 @@ ko: label: 역할 변경 no_role: 역할 없음 title: "%{username}의 역할 변경" - confirm: 확정 + confirm: 신원 확인 confirmed: 확인됨 confirming: 확인 중 custom: 사용자 지정 diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 02a34fd856..28a1a33dcb 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -460,7 +460,7 @@ lv: description_html: Tu gatavojies importēt domēna bloku sarakstu. Lūdzu, ļoti rūpīgi pārskati šo sarakstu, it īpaši, ja tu pats neesi to veidojis. existing_relationships_warning: Esošās sekošanas attiecības private_comment_description_html: 'Lai palīdzētu tev izsekot, no kurienes nāk importētie bloki, tiks izveidoti importētie bloki ar šādu privātu komentāru: %{comment}' - private_comment_template: Importēts no %{source} %{date} + private_comment_template: Importēt no %{source} %{date} title: Importēt bloķētos domēnus invalid_domain_block: 'Viens vai vairāki domēna bloķi tika izlaisti šādas kļūdas(-u) dēļ: %{error}' new: @@ -1107,7 +1107,7 @@ lv: new_confirmation_instructions_sent: Pēc dažām minūtēm saņemsi jaunu e-pastu ar apstiprinājuma saiti! title: Pārbaudi savu iesūtni sign_in: - preamble_html: Pierakstieties ar saviem %{domain} akreditācijas datiem. Ja jūsu konts ir mitināts citā serverī, jūs nevarēsit pieteikties šeit. + preamble_html: Piesakies ar saviem %{domain} akreditācijas datiem. Ja tavs konts ir mitināts citā serverī, tu nevarēsi pieteikties šeit. title: Pierakstīties %{domain} sign_up: manual_review: Reģistrācijas domēnā %{domain} manuāli pārbauda mūsu moderatori. Lai palīdzētu mums apstrādāt tavu reģistrāciju, uzraksti mazliet par sevi un to, kāpēc vēlies kontu %{domain}. diff --git a/config/locales/si.yml b/config/locales/si.yml index 787d6fde38..51e1b838f3 100644 --- a/config/locales/si.yml +++ b/config/locales/si.yml @@ -16,8 +16,6 @@ si: last_active: අවසාන ක්රියාකාරී link_verified_on: මෙම සබැඳියේ හිමිකාරිත්වය %{date}හි පරීක්ෂා කරන ලදී nothing_here: මෙහි කිසිවක් නැත! - pin_errors: - following: ඔබට අනුමත කිරීමට අවශ්‍ය පුද්ගලයා ඔබ දැනටමත් අනුගමනය කරමින් සිටිය යුතුය posts: one: ලිපිය other: ලිපි @@ -69,7 +67,7 @@ si: invite_request_text: එක්වීමට හේතුව invited_by: විසින් ආරාධනා කරන ලදී ip: අ.ජා. කෙ. (IP) - joined: එක් වී ඇත + joined: එක් වූ දිනය location: all: සියල්ල local: ස්ථානීය @@ -123,7 +121,7 @@ si: security_measures: only_password: මුරපදය පමණි password_and_2fa: මුරපදය සහ 2FA - sensitized: සංවේදී ලෙස සලකුණු කර ඇත + sensitized: සංවේදී බව සලකුණු කර ඇත shared_inbox_url: බෙදාගත් එන ලිපි URL show: created_reports: වාර්තා හැදුවා @@ -173,7 +171,7 @@ si: destroy_email_domain_block: ඊමේල් ඩොමේන් බ්ලොක් එක මකන්න destroy_instance: වසම පිරිසිදු කරන්න destroy_ip_block: IP රීතිය මකන්න - destroy_status: පළ කිරීම මකන්න + destroy_status: ලිපිය මකන්න destroy_unavailable_domain: ලබා ගත නොහැකි වසම මකන්න disable_2fa_user: 2FA අබල කරන්න disable_custom_emoji: අභිරුචි ඉමෝජි අබල කරන්න @@ -199,7 +197,7 @@ si: update_announcement: නිවේදනය යාවත්කාල කරන්න update_custom_emoji: අභිරුචි ඉමොජි යාවත්කාලීන කරන්න update_domain_block: ඩොමේන් බ්ලොක් යාවත්කාලීන කරන්න - update_status: පළ කිරීම යාවත්කාලීන කරන්න + update_status: ලිපිය යාවත්කාල කරන්න actions: approve_user_html: "%{name} අනුමත ලියාපදිංචිය %{target}සිට" assigned_to_self_report_html: "%{name} වාර්තාව %{target} තමන්ටම පවරා ඇත" @@ -220,7 +218,6 @@ si: destroy_email_domain_block_html: "%{name} අවහිර නොකළ විද්‍යුත් තැපැල් වසම %{target}" destroy_instance_html: "%{name} පිරිසිදු කරන ලද වසම %{target}" destroy_ip_block_html: IP %{target}සඳහා %{name} මකා දැමූ රීතිය - destroy_status_html: "%{name} පෝස්ට් %{target}විසින් ඉවත් කරන ලදී" destroy_unavailable_domain_html: "%{name} වසම %{target}වෙත බෙදා හැරීම නැවත ආරම්භ විය" disable_2fa_user_html: "%{name} පරිශීලක %{target}සඳහා සාධක දෙකක අවශ්‍යතාවය අක්‍රීය කර ඇත" disable_custom_emoji_html: "%{name} ආබාධිත ඉමොජි %{target}" @@ -236,18 +233,17 @@ si: reopen_report_html: "%{name} නැවත විවෘත කළ වාර්තාව %{target}" reset_password_user_html: "%{name} පරිශීලක %{target}හි මුරපදය යළි පිහිටුවන්න" resolve_report_html: "%{name} විසඳන ලද වාර්තාව %{target}" - sensitive_account_html: "%{name} %{target}හි මාධ්‍ය සංවේදී ලෙස සලකුණු කර ඇත" + sensitive_account_html: "%{target}ගේ මාධ්‍ය සංවේදී බව %{name} සලකුණු කර ඇත" silence_account_html: "%{name} සීමිත %{target}ගිණුමක්" suspend_account_html: "%{name} %{target}ගේ ගිණුම අත්හිටුවා ඇත" unassigned_report_html: "%{name} පවරා නොදුන් වාර්තාව %{target}" unblock_email_account_html: "%{name} %{target}ගේ ඊමේල් ලිපිනය අවහිර කිරීම ඉවත් කරන ලදී" - unsensitive_account_html: "%{name} සලකුණු නොකළ %{target}ගේ මාධ්‍ය සංවේදී ලෙස" + unsensitive_account_html: "%{target}ගේ මාධ්‍ය සංවේදී බව %{name} ඉවත් කර ඇත" unsilence_account_html: "%{target}ගිණුමේ %{name} undid සීමාව" unsuspend_account_html: "%{name} අත්හිටුවන ලද %{target}ගිණුම" update_announcement_html: "%{name} යාවත්කාලීන නිවේදනය %{target}" update_custom_emoji_html: "%{name} යාවත්කාලීන කළ ඉමොජි %{target}" update_domain_block_html: "%{target}සඳහා %{name} යාවත්කාලීන කරන ලද වසම් වාරණ" - update_status_html: "%{name} %{target}යාවත්කාලීන කරන ලද පළ කිරීම" empty: ලඝු-සටහන් හමු නොවිණි. filter_by_action: ක්‍රියාමාර්ගය අනුව පෙරන්න filter_by_user: පරිශ්‍රීලකයා අනුව පෙරන්න @@ -305,8 +301,8 @@ si: dashboard: active_users: ක්රියාකාරී පරිශීලකයන් interactions: අන්තර්ක්රියා - media_storage: මාධ්ය ගබඩාව - new_users: නව පරිශීලකයන් + media_storage: මාධ්‍ය ආචයනය + new_users: නව පරිශ්‍රීලකයින් opened_reports: විවෘත වාර්තා pending_appeals_html: one: "%{count} අභියාචනයක් බලාපොරොත්තු වේ" @@ -435,7 +431,7 @@ si: unavailable: ලබා ගත නොහැක delivery_available: බෙදා හැරීම ලබා ගත හැකිය delivery_error_days: බෙදා හැරීමේ දෝෂ සහිත දින - delivery_error_hint: දින %{count} ක් සඳහා බෙදා හැරීම කළ නොහැකි නම්, එය ස්වයංක්‍රීයව බෙදා හැරිය නොහැකි ලෙස ලකුණු කරනු ලැබේ. + delivery_error_hint: දවස් %{count} කින් බාරදීමට නොහැකි වුවහොත්, බාරදීමට නොහැකි බව ස්වයංක්‍රීයව සලකුණු වේ. destroyed_msg: "%{domain} සිට දත්ත දැන් ආසන්න මකාදැමීම සඳහා පෝලිම් කර ඇත." empty: වසම් කිසිවක් හමු නොවීය. known_accounts: @@ -454,7 +450,7 @@ si: total_followed_by_them: ඔවුන් විසින් අනුගමනය කරන ලදී total_followed_by_us: අප විසින් අනුගමනය කරන ලදී total_reported: ඔවුන් ගැන වාර්තා - total_storage: මාධ්ය ඇමුණුම් + total_storage: මාධ්‍ය ඇමුණුම් totals_time_period_hint_html: පහත දැක්වෙන එකතුවෙහි සියලු කාලය සඳහා දත්ත ඇතුළත් වේ. invites: deactivate_all: සියල්ල අක්‍රිය කරන්න @@ -483,11 +479,9 @@ si: relays: add_new: නව රිලේ එක් කරන්න delete: මකන්න - description_html: "ෆෙඩරේෂන් රිලේ යනු එයට දායක වී ප්‍රකාශයට පත් කරන සේවාදායකයන් අතර විශාල ප්‍රසිද්ධ පළ කිරීම් හුවමාරු කරන අතරමැදි සේවාදායකයකි. එය කුඩා සහ මධ්‍යම සේවාදායකයන්ට fediverseවෙතින් අන්තර්ගතය සොයා ගැනීමට උදවු කළ හැකි අතර, එසේ නොමැති නම් දේශීය පරිශීලකයින්ට දුරස්ථ සේවාදායකයන් මත වෙනත් පුද්ගලයින් හස්තීයව අනුගමනය කිරීම අවශ්‍ය වේ." disable: අබල කරන්න disabled: අබලයි enable: සබල කරන්න - enable_hint: සක්‍රිය කළ පසු, ඔබේ සේවාදායකය මෙම රිලේ වෙතින් සියලුම පොදු පළ කිරීම් සඳහා දායක වන අතර, මෙම සේවාදායකයේ පොදු පළ කිරීම් එයට යැවීම ආරම්භ කරනු ඇත. enabled: සබල කර ඇත inbox_url: රිලේ URL pending: රිලේ අනුමැතිය සඳහා රැඳී සිටිමින් @@ -507,8 +501,6 @@ si: action_log: විගණන සටහන action_taken_by: විසින් ගන්නා ලද පියවර actions: - delete_description_html: වාර්තා කරන ලද පළ කිරීම් මකා දැමෙනු ඇති අතර එම ගිණුමේම අනාගත උල්ලංඝනයන් තීව්‍ර කිරීමට ඔබට උදවු කිරීමට වර්ජනයක් වාර්තා කරනු ඇත. - mark_as_sensitive_description_html: වාර්තා කරන ලද පළ කිරීම් වල මාධ්‍ය සංවේදී ලෙස සලකුණු කරනු ලබන අතර එම ගිණුම මගින් අනාගත උල්ලංඝනයන් උත්සන්න කිරීමට ඔබට උපකාර කිරීමට වර්ජනයක් වාර්තා කරනු ඇත. other_description_html: ගිණුමේ හැසිරීම පාලනය කිරීම සහ වාර්තා කළ ගිණුමට සන්නිවේදනය අභිරුචිකරණය කිරීම සඳහා තවත් විකල්ප බලන්න. resolve_description_html: වාර්තා කරන ලද ගිණුමට එරෙහිව කිසිදු ක්‍රියාමාර්ගයක් නොගනු ඇත, වැඩ වර්ජනයක් වාර්තා නොකෙරේ, වාර්තාව වසා දමනු ඇත. actions_description_html: මෙම වාර්තාව විසඳීමට ගත යුතු ක්‍රියාමාර්ගය තීරණය කරන්න. ඔබ වාර්තා කරන ලද ගිණුමට එරෙහිව දණ්ඩනීය ක්‍රියාමාර්ගයක් ගන්නේ නම්, Spam කාණ්ඩය තෝරාගත් විට හැර, ඔවුන්ට විද්‍යුත් තැපෑලෙන් දැනුම්දීමක් යවනු ලැබේ. @@ -526,14 +518,14 @@ si: delete_and_resolve: ලිපි මකන්න forwarded: හරවා යවා ඇත forwarded_to: "%{domain} වෙත හරවා යැවිණි" - mark_as_resolved: විසඳා ඇති ලෙස ලකුණු කරන්න - mark_as_sensitive: සංවේදී ලෙස ලකුණු කරන්න - mark_as_unresolved: නොවිසඳුනු ලෙස ලකුණු කරන්න + mark_as_resolved: විසඳූ බව යොදන්න + mark_as_sensitive: සංවේදී බව යොදන්න + mark_as_unresolved: නොවිසඳූ බව යොදන්න no_one_assigned: කිසිවෙක් නැත notes: create: සටහන එකතු කරන්න - create_and_resolve: සටහන සමඟ විසඳන්න - create_and_unresolve: සටහනක් සමඟ නැවත විවෘත කරන්න + create_and_resolve: සටහනක් සමඟ විසඳන්න + create_and_unresolve: සටහනක් සමඟ නැවත අරින්න delete: මකන්න placeholder: ගෙන ඇති ක්‍රියාමාර්ග, හෝ වෙනත් අදාළ යාවත්කාලීන විස්තර කරන්න... title: සටහන් @@ -564,7 +556,12 @@ si: moderation: මැදිහත්කරණය special: විශේෂ delete: මකන්න + permissions_count: + one: අවසර %{count} + other: අවසර %{count} privileges: + administrator: පරිපාලක + delete_user_data: පරිශ්‍රීලක දත්ත මකන්න invite_users: ආරාධනා කරන්න manage_announcements: නිවේදනය කළමනාකරණය manage_federation: ඒකාබද්ධ කළමනාකරණය @@ -592,6 +589,7 @@ si: title: පෙනුම discovery: profile_directory: පැතිකඩ නාමාවලිය + public_timelines: ප්‍රසිද්ධ කාලරේඛා domain_blocks: all: හැමෝටම disabled: කාටවත් නෑ @@ -626,7 +624,7 @@ si: media: title: මාධ්‍යය metadata: පාරදත්ත - no_status_selected: කිසිවක් තෝරා නොගත් බැවින් තනතුරු කිසිවක් වෙනස් කර නැත + no_status_selected: කිසිවක් නොතේරූ බැවින් ලිපි කිසිවක් වෙනස් කර නැත open: ලිපිය අරින්න original_status: මුල් ලිපිය status_changed: ලිපිය සංශෝධිතයි @@ -639,7 +637,7 @@ si: disable: "%{name} %{target}ගේ ගිණුම නිශ්චල කළේය" mark_statuses_as_sensitive: "%{target}ගේ ලිපි සංවේදී බව %{name} සලකුණු කර ඇත" none: "%{name} %{target}අනතුරු ඇඟවීමක් යවා ඇත" - sensitive: "%{name} %{target}ගේ ගිණුම සංවේදී ලෙස ලකුණු කර ඇත" + sensitive: "%{target}ගේ ගිණුම සංවේදී බව %{name} සලකුණු කර ඇත" silence: "%{name} සීමිත %{target}ගිණුමක්" suspend: "%{name} %{target}ගේ ගිණුම අත්හිටුවා ඇත" appeal_approved: අභියාචනා කළා @@ -691,9 +689,9 @@ si: title: ප්‍රකාශකයන් rejected: ප්‍රතික්ෂේප කළා statuses: - allow: පළ කිරීමට ඉඩ දෙන්න + allow: පළ කිරීමට ඉඩදෙන්න allow_account: කතුවරයාට ඉඩ දෙන්න - disallow: පළ කිරීමට ඉඩ නොදෙන්න + disallow: ප්‍රකාශනයට ඉඩ නොදෙන්න disallow_account: කතුවරයාට ඉඩ නොදෙන්න not_discoverable: කර්තෘ සොයා ගත හැකි බව තෝරාගෙන නැත shared_by: @@ -732,12 +730,12 @@ si: webhooks: add_new: අන්ත ලක්ෂ්‍යය එක් කරන්න delete: මකන්න - disable: අක්රිය කරන්න - disabled: ආබාධිතයි + disable: අබල කරන්න + disabled: අබලයි edit: අන්ත ලක්ෂ්‍යය සංස්කරණය කරන්න empty: ඔබට තවම වින්‍යාස කර ඇති කිසිදු webhook අන්ත ලක්ෂ්‍යයක් නොමැත. enable: සබල කරන්න - enabled: ක්රියාකාරී + enabled: ක්‍රියාත්මකයි enabled_events: one: සබල සිදුවීම් 1 other: සබල සිදුවීම් %{count} @@ -752,7 +750,6 @@ si: actions: delete_statuses: ඔවුන්ගේ පළ කිරීම් මකා දැමීමට disable: ඔවුන්ගේ ගිණුම කැටි කිරීමට - mark_statuses_as_sensitive: ඔවුන්ගේ තනතුරු සංවේදී ලෙස සලකුණු කිරීමට none: අනතුරු ඇඟවීමක් sensitive: ඔවුන්ගේ ගිණුම සංවේදී ලෙස සලකුණු කිරීමට silence: ඔවුන්ගේ ගිණුම සීමා කිරීමට @@ -769,7 +766,7 @@ si: new_trending_links: title: නැඟී එන සබැඳි new_trending_statuses: - title: ප්‍රවණතා පළ කිරීම් + title: නැගී එන ලිපි new_trending_tags: no_approved_tags: දැනට අනුමත ප්‍රවණතා හැෂ් ටැග් නොමැත. requirements: 'මෙම ඕනෑම අපේක්ෂකයෙකුට #%{rank} අනුමත ප්‍රවණතා හැෂ් ටැගය අභිබවා යා හැකිය, එය දැනට ලකුණු %{lowest_tag_score}ක් සමඟ #%{lowest_tag_name} වේ.' @@ -803,11 +800,13 @@ si: applications: created: යෙදුම සාර්ථකව සෑදිණි destroyed: යෙදුම සාර්ථකව මකා ඇත + logout: නික්මෙන්න regenerate_token: ප්‍රවේශ ටෝකනය නැවත උත්පාදනය කරන්න token_regenerated: ප්‍රවේශ ටෝකනය සාර්ථකව ප්‍රතිජනනය කරන ලදී warning: මෙම දත්ත සමඟ ඉතා ප්රවේශම් වන්න. එය කිසි විටෙක කිසිවෙකු සමඟ බෙදා නොගන්න! your_token: ඔබේ ප්‍රවේශ ටෝකනය auth: + apply_for_account: ගිණුමක් ඉල්ලන්න delete_account: ගිණුම මකන්න delete_account_html: ඔබට ඔබගේ ගිණුම මකා දැමීමට අවශ්‍ය නම්, ඔබට මෙතැනින් ඉදිරියට යා හැක. තහවුරු කිරීම සඳහා ඔබෙන් අසනු ඇත. description: @@ -823,14 +822,25 @@ si: logout: නික්මෙන්න migrate_account: වෙනත් ගිණුමකට යන්න migrate_account_html: ඔබට මෙම ගිණුම වෙනත් එකකට හරවා යැවීමට අවශ්‍ය නම්, ඔබට එය මෙහි වින්‍යාසගත කළ හැක. + progress: + details: ඔබගේ විස්තර + rules: නීති පිළිගන්න + providers: + cas: CAS + saml: SAML register: ලියාපදිංචිය registration_closed: "%{instance} නව සාමාජිකයින් පිළිගන්නේ නැත" reset_password: මුරපදය යළි සකසන්න rules: accept: පිළිගන්න back: ආපසු + title_invited: ඔබට ආරාධනා කර ඇත. security: ආරක්‍ෂාව set_new_password: නව මුරපදය සකසන්න + setup: + title: ඔබගේ එනලිපි බලන්න + sign_in: + title: "%{domain} වෙත පිවිසෙන්න" status: account_status: ගිණුමේ තත්වය confirming: විද්‍යුත් තැපෑල තහවුරු කිරීම සම්පූර්ණ කිරීම සඳහා රැඳී සිටිමින්. @@ -876,7 +886,7 @@ si: warning: before: 'ඉදිරියට යාමට පෙර, කරුණාකර මෙම සටහන් හොඳින් කියවන්න:' caches: වෙනත් සේවාදායකයන් විසින් හැඹිලිගත කර ඇති අන්තර්ගතය දිගටම පැවතිය හැක - data_removal: ඔබගේ පළ කිරීම් සහ අනෙකුත් දත්ත ස්ථිරවම ඉවත් කරනු ලැබේ + data_removal: ඔබගේ ලිපි සහ අනෙකුත් දත්ත සදහටම ඉවත් කෙරෙනු ඇත email_change_html: ඔබට ඔබගේ ගිණුම මකා කළ හැක email_contact_html: එය තවමත් නොපැමිණියේ නම්, ඔබට උදව් සඳහා %{email} විද්‍යුත් තැපෑලෙන් යැවිය හැක email_reconfirmation_html: ඔබට තහවුරු කිරීමේ විද්‍යුත් තැපෑල නොලැබුනේ නම්, ඔබට එය නැවත ඉල්ලා සිටිය හැක @@ -900,13 +910,12 @@ si: description_html: මේවා ඔබගේ ගිණුමට එරෙහිව ගන්නා ලද ක්‍රියා සහ %{instance}හි කාර්ය මණ්ඩලය විසින් ඔබට එවා ඇති අනතුරු ඇඟවීම් වේ. recipient: වෙත යොමු කරන ලදී reject_appeal: අභියාචනය ප්‍රතික්ෂේප කරන්න - status: 'පළ කිරීම #%{id}' - status_removed: පළ කිරීම දැනටමත් පද්ධතියෙන් ඉවත් කර ඇත + status: "#%{id} ලිපිය" + status_removed: ලිපිය දැනටමත් පද්ධතියෙන් ඉවත් කර ඇත title: "%{action} සිට %{date}" title_actions: - delete_statuses: පසු ඉවත් කිරීම + delete_statuses: ලිපි ඉවත් කිරීම disable: ගිණුම කැටි කිරීම - mark_statuses_as_sensitive: තනතුරු සංවේදී ලෙස සලකුණු කිරීම none: අවවාදයයි sensitive: ගිණුම සංවේදී ලෙස සලකුණු කිරීම silence: ගිණුම සීමා කිරීම @@ -941,7 +950,7 @@ si: archive_takeout: date: දිනය download: ඔබගේ සංරක්‍ෂිතය බාගන්න - hint_html: ඔබට ඔබගේ පළ කිරීම් සහ උඩුගත කළ මාධ්‍යහි සංරක්ෂිතයක් ඉල්ලා සිටිය හැක. නිර්යාත කළ දත්ත ActivityPub ආකෘතියෙන්, ඕනෑම අනුකූල මෘදුකාංගයකට කියවිය හැකිය. ඔබට දින 7කට වරක් ලේඛනාගාරයක් ඉල්ලා සිටිය හැක. + hint_html: ඔබට ලිපි සහ උඩුගත කළ මාධ්‍යවල සංරක්‍ෂණයක් ඉල්ලීමට හැකිය. නිර්යාත කළ දත්ත ActivityPub ආකෘතියට ගැළපෙන ඕනෑම මෘදුකාංගයකින් කියවීමට හැකිය. ඔබට දවස් 7 කට වරක් සංරක්‍ෂණයක් ඉල්ලීමට හැකිය. in_progress: ඔබගේ සංරක්ෂිතය සම්පාදනය කරමින්... request: ඔබගේ සංරක්ෂිතය ඉල්ලන්න size: ප්‍රමාණය @@ -951,16 +960,15 @@ si: domain_blocks: වසම් අවහිර කිරීම් lists: ලැයිස්තු mutes: ඔබ නිහඬ කරන්න - storage: මාධ්‍ය ගබඩාව + storage: මාධ්‍ය ආචයනය featured_tags: add_new: අලුතින් එකතු කරන්න - hint_html: "විශේෂාංගගත හැෂ් ටැග් මොනවාද? ඒවා ඔබේ පොදු පැතිකඩෙහි ප්‍රමුඛව ප්‍රදර්ශනය වන අතර එම හැෂ් ටැග් යටතේ ඔබේ පොදු පළ කිරීම් බ්‍රවුස් කිරීමට මිනිසුන්ට ඉඩ සලසයි. නිර්මාණාත්මක කෘති හෝ දිගු කාලීන ව්යාපෘති පිළිබඳ වාර්තාවක් තබා ගැනීම සඳහා ඔවුන් විශිෂ්ට මෙවලමක් වේ." filters: contexts: account: පැතිකඩයන් home: මුල සහ ලැයිස්තු notifications: දැනුම්දීම් - public: පොදු කාලරේඛා + public: ප්‍රසිද්ධ කාලරේඛා thread: සංවාද edit: add_keyword: මූල පදය එක් කරන්න @@ -1018,9 +1026,12 @@ si: overwrite: උඩින් ලියන්න overwrite_long: වත්මන් වාර්තා නව ඒවා සමඟ ප්‍රතිස්ථාපනය කරන්න preface: ඔබ අනුගමන කරන හෝ අවහිර කරන පුද්ගලයින්ගේ ලැයිස්තුවක් වැනි වෙනත් සේවාදායකයකින් ඔබ නිර්යාත කර ඇති දත්ත ඔබට ආයාත කළ හැක. + status: තත්‍වය success: ඔබගේ දත්ත සාර්ථකව උඩුගත කර ඇති අතර නියමිත වේලාවට සැකසෙනු ඇත titles: lists: ලැයිස්තු ආයාත වෙමින් + type_groups: + constructive: අනුගමන හා පොත්යොමු types: blocking: අවහිර ලැයිස්තුව bookmarks: පොත්යොමු @@ -1064,7 +1075,7 @@ si: title: සත්‍යාපන ඉතිහාසය media_attachments: validations: - images_and_video: දැනටමත් පින්තූර අඩංගු පළ කිරීමකට වීඩියෝවක් ඇමිණිය නොහැක + images_and_video: දැනටමත් රූප අඩංගු ලිපියකට දෘශ්‍යකයක් ඇමිණීමට නොහැකිය not_ready: සැකසීම අවසන් නොකළ ගොනු ඇමිණිය නොහැක. මොහොතකින් නැවත උත්සාහ කරන්න! too_many: ගොනු 4කට වඩා ඇමිණිය නොහැක migrations: @@ -1168,8 +1179,8 @@ si: too_many_options: අථක %{max} කට වඩා අඩංගු නොවිය යුතුය preferences: other: වෙනත් - posting_defaults: පෙරනිමි පළ කිරීම - public_timelines: පොදු කාලරේඛා + posting_defaults: සැමවිට පළ කරන ආකාරය + public_timelines: ප්‍රසිද්ධ කාලරේඛා privacy: search: සොයන්න privacy_policy: @@ -1203,11 +1214,8 @@ si: rss: content_warning: 'අන්තර්ගත අනතුරු ඇඟවීම:' descriptions: - account: "@%{acct}සිට පොදු පළ කිරීම්" - tag: "#%{hashtag}ටැග් කර ඇති පොදු පළ කිරීම්" + account: "@%{acct} වෙතින් ප්‍රසිද්ධ ලිපි" scheduled_statuses: - over_daily_limit: ඔබ අද දිනට නියමිත පළ කිරීම් %{limit} සීමාව ඉක්මවා ඇත - over_total_limit: ඔබ නියමිත පළ කිරීම් %{limit} සීමාව ඉක්මවා ඇත too_soon: නියමිත දිනය අනාගතයේ විය යුතුය sessions: activity: අවසාන ක්‍රියාකාරකම @@ -1259,7 +1267,7 @@ si: account_settings: ගිණුමේ සැකසුම් aliases: ගිණුම් අන්වර්ථ නාමයන් appearance: පෙනුම - authorized_apps: අවසර ලත් යෙදුම් + authorized_apps: බලයලත් යෙදුම් back: මාස්ටඩන් වෙත ආපසු delete: ගිණුම මැකීම development: සංවර්ධනය @@ -1273,7 +1281,7 @@ si: preferences: අභිප්‍රේත profile: ප්‍රසිද්ධ පැතිකඩ relationships: අනුගාමිකයින් සහ අනුගාමිකයින් - statuses_cleanup: ස්වයංක්‍රීය පළ කිරීම් මකාදැමීම + statuses_cleanup: ස්වයංක්‍රීය ලිපි මැකීම two_factor_authentication: ද්වි සාධක Aut webauthn_authentication: ආරක්‍ෂණ යතුරු statuses: @@ -1295,13 +1303,13 @@ si: other: 'අනුමත නොකළ හැෂ් ටැග් අඩංගු විය: %{tags}' edited_at_html: සංස්කරණය %{date} errors: - in_reply_not_found: ඔබ පිළිතුරු දීමට උත්සාහ කරන පළ කිරීම පවතින බවක් නොපෙනේ. + in_reply_not_found: ඔබ පිළිතුරු දීමට තැත් කරන ලිපිය නොපවතින බව පෙනෙයි. open_in_web: වෙබයේ විවෘත කරන්න over_character_limit: අක්ෂර සීමාව %{max} ඉක්මවා ඇත pin_errors: - direct: සඳහන් කළ පරිශීලකයින්ට පමණක් පෙනෙන පළ කිරීම් ඇමිණිය නොහැක - limit: ඔබ දැනටමත් උපරිම පළ කිරීම් සංඛ්‍යාව අමුණා ඇත - ownership: වෙනත් කෙනෙකුගේ පළ කිරීමක් ඇමිණිය නොහැක + direct: සඳහන් කළ අයට පමණක් පෙනෙන ලිපි ඇමිණීමට නොහැකිය + limit: දැනටමත් මුදුනට ඇමිණිමට හැකි ලිපි සීමාවට ළඟා වී ඇත + ownership: වෙනත් අයගේ ලිපි ඇමිණීමට නොහැකිය poll: total_people: one: පුද්ගලයින් %{count} @@ -1324,16 +1332,14 @@ si: unlisted: ලැයිස්තුගත නොකළ unlisted_long: සෑම කෙනෙකුටම දැකිය හැක, නමුත් පොදු කාලරාමුවෙහි ලැයිස්තුගත කර නොමැත statuses_cleanup: - enabled: පැරණි පළ කිරීම් ස්වයංක්‍රීයව මකන්න - enabled_hint: ඔබේ පළ කිරීම් පහත ව්‍යතිරේකවලින් එකකට ගැලපෙන්නේ නම් මිස, ඒවා නිශ්චිත වයස් සීමාවකට ළඟා වූ පසු ස්වයංක්‍රීයව මකයි + enabled: පරණ ලිපි ස්වයංක්‍රීයව මකන්න exceptions: හැර දැමීම් - explanation: පළ කිරීම් මකා දැමීම මිල අධික මෙහෙයුමක් වන බැවින්, සේවාදායකය වෙනත් ආකාරයකින් කාර්යබහුල නොවන විට කාලයත් සමඟ මෙය සෙමින් සිදු කෙරේ. මෙම හේතුව නිසා, ඔබේ පළ කිරීම් වයස් සීමාවට ළඟා වූ පසු ටික වේලාවකට පසුව මකා දැමිය හැක. ignore_favs: ප්‍රියතමයන් නොසලකන්න interaction_exceptions: අන්තර්ක්‍රියා මත පදනම් වූ ව්‍යතිරේක keep_direct: සෘජු පණිවිඩ තබාගන්න keep_direct_hint: ඔබගේ සෘජු පණිවිඩ කිසිවක් මැකෙන්නේ නැත keep_media: මාධ්‍ය ඇමුණුම් සහිත ලිපි තබාගන්න - keep_media_hint: මාධ්‍ය ඇමුණුම් ඇති ඔබේ පළ කිරීම් කිසිවක් මකන්නේ නැත + keep_media_hint: මාධ්‍ය ඇමුණුම් සහිත ඔබගේ ලිපි කිසිවක් මැකෙන්නේ නැත keep_pinned: ඇමිණූ ලිපි තබාගන්න keep_pinned_hint: ඔබ ඇමිණූ ලිපි කිසිවක් නොමැකෙයි keep_polls_hint: ඔබගේ මත විමසුම් මැකෙන්නේ නැත @@ -1374,12 +1380,12 @@ si: edit: සංස්කරණය enabled: ද්වි-සාධක සත්‍යාපනය සක්‍රීය කර ඇත enabled_success: ද්වි-සාධක සත්‍යාපනය සාර්ථකව සබල කර ඇත - generate_recovery_codes: ප්‍රතිසාධන කේත ජනනය කරන්න + generate_recovery_codes: ප්‍රතිසාධන කේත උත්පාදනය කරන්න lost_recovery_codes: ඔබගේ දුරකථනය නැති වුවහොත් ඔබගේ ගිණුමට ප්‍රවේශය නැවත ලබා ගැනීමට ප්‍රතිසාධන කේත ඔබට ඉඩ සලසයි. ඔබට ඔබේ ප්‍රතිසාධන කේත නැති වී ඇත්නම්, ඔබට ඒවා මෙහි නැවත උත්පාදනය කළ හැක. ඔබගේ පැරණි ප්‍රතිසාධන කේත අවලංගු වනු ඇත. - methods: ද්වි සාධක ක්රම + methods: ද්වි සාධක ක්‍රම otp: Authenticator යෙදුම - recovery_codes: උපස්ථ ප්‍රතිසාධන කේත - recovery_codes_regenerated: ප්‍රතිසාධන කේත සාර්ථකව ප්‍රතිජනනය කරන ලදී + recovery_codes: ප්‍රතිසාධන කේත උපස්ථය + recovery_codes_regenerated: ප්‍රතිසාධන කේත නැවත උත්පාදනය කෙරිණි recovery_instructions_html: ඔබට කවදා හෝ ඔබගේ දුරකථනයට ප්‍රවේශය අහිමි වුවහොත්, ඔබගේ ගිණුමට ප්‍රවේශය නැවත ලබා ගැනීමට පහත ප්‍රතිසාධන කේත වලින් එකක් භාවිතා කළ හැක. ප්‍රතිසාධන කේත ආරක්ෂිතව තබා ගන්න. උදාහරණයක් ලෙස, ඔබට ඒවා මුද්‍රණය කර වෙනත් වැදගත් ලේඛන සමඟ ගබඩා කළ හැකිය. webauthn: ආරක්‍ෂණ යතුරු user_mailer: @@ -1407,19 +1413,17 @@ si: appeal: අභියාචනයක් ඉදිරිපත් කරන්න appeal_description: මෙය දෝෂයක් බව ඔබ විශ්වාස කරන්නේ නම්, ඔබට %{instance}හි කාර්ය මණ්ඩලයට අභියාචනයක් ඉදිරිපත් කළ හැක. categories: - spam: ආයාචිත තැපැල් + spam: ආයාචිත violation: අන්තර්ගතය පහත ප්‍රජා මාර්ගෝපදේශ උල්ලංඝනය කරයි explanation: disable: ඔබට තවදුරටත් ඔබගේ ගිණුම භාවිතා කළ නොහැක, නමුත් ඔබගේ පැතිකඩ සහ අනෙකුත් දත්ත නොවෙනස්ව පවතී. ඔබට ඔබගේ දත්තවල උපස්ථයක් ඉල්ලා සිටීමට, ගිණුම් සැකසීම් වෙනස් කිරීමට හෝ ඔබගේ ගිණුම මකා දැමීමට හැකිය. - sensitive: මෙතැන් සිට, ඔබගේ උඩුගත කරන ලද සියලුම මාධ්‍ය ගොනු සංවේදී ලෙස සලකුණු කර ක්ලික්-හරහා අනතුරු ඇඟවීමක් පිටුපස සඟවනු ඇත. - silence: ඔබට තවමත් ඔබගේ ගිණුම භාවිතා කළ හැකි නමුත් දැනටමත් ඔබව අනුගමනය කරන පුද්ගලයින් පමණක් මෙම සේවාදායකයේ ඔබගේ පළ කිරීම් දකිනු ඇති අතර, විවිධ සොයාගැනීම් විශේෂාංග වලින් ඔබව බැහැර කරනු ලැබිය හැක. කෙසේ වෙතත්, අනෙක් අය තවමත් ඔබව අතින් අනුගමනය කළ හැක. + sensitive: මේ මොහොත් සිට ඔබ උඩුගත කරන සියලුම මාධ්‍ය ගොනු සංවේදී ලෙස සලකා අවවාදයක් පිටුපස සඟවනු ඇත. suspend: ඔබට තවදුරටත් ඔබගේ ගිණුම භාවිතා කළ නොහැකි අතර, ඔබගේ පැතිකඩ සහ අනෙකුත් දත්ත තවදුරටත් ප්‍රවේශ විය නොහැක. දින 30කින් පමණ දත්ත සම්පූර්ණයෙන් ඉවත් කරන තෙක් ඔබට තවමත් ඔබේ දත්තවල උපස්ථයක් ඉල්ලා සිටීමට පුරනය විය හැක, නමුත් ඔබව අත්හිටුවීම මගහැර යාම වැළැක්වීමට අපි මූලික දත්ත කිහිපයක් රඳවා ගන්නෙමු. reason: 'හේතුව:' - statuses: 'උපුටා දක්වන ලද පළ කිරීම්:' subject: - delete_statuses: "%{acct} හි ඔබගේ පළ කිරීම් ඉවත් කර ඇත" + delete_statuses: "%{acct} හි ඔබගේ ලිපිය ඉවත් කර ඇත" disable: ඔබගේ ගිණුම %{acct} කර ඇත - mark_statuses_as_sensitive: "%{acct} හි ඔබගේ පළ කිරීම් සංවේදී ලෙස සලකුණු කර ඇත" + mark_statuses_as_sensitive: ඔබගේ %{acct} ලිපි සංවේදී බව සලකුණු කර ඇත none: "%{acct} සඳහා අවවාදය" sensitive: ඔබගේ %{acct} ලිපිය මේ මොහොතේ සිට සංවේදී ලෙස සලකයි silence: ඔබගේ ගිණුම %{acct} සීමා කර ඇත @@ -1427,7 +1431,7 @@ si: title: delete_statuses: ලිපි ඉවත් කර ඇත disable: ගිණුම නිශ්චල කර ඇත - mark_statuses_as_sensitive: පළ කිරීම් සංවේදී ලෙස ලකුණු කර ඇත + mark_statuses_as_sensitive: ලිපි සංවේදී බව සලකුණු කර ඇත none: අවවාදයයි sensitive: ගිණුම සංවේදී බව යොදා ඇත silence: ගිණුම සීමා කර ඇත diff --git a/config/locales/simple_form.si.yml b/config/locales/simple_form.si.yml index 917d3791f6..7e529c0eee 100644 --- a/config/locales/simple_form.si.yml +++ b/config/locales/simple_form.si.yml @@ -11,7 +11,6 @@ si: title: විකල්ප. ලබන්නාට නොපෙනේ admin_account_action: send_email_notification: පරිශීලකයාට ඔවුන්ගේ ගිණුම සමඟ සිදු වූ දේ පිළිබඳ පැහැදිලි කිරීමක් ලැබෙනු ඇත - text_html: විකල්ප. ඔබට post syntax භාවිතා කළ හැක. කාලය ඉතිරි කර ගැනීම සඳහා ඔබට අනතුරු ඇඟවීමේ කළ හැක type_html: "%{acct}සමඟ කළ යුතු දේ තෝරන්න" types: disable: පරිශීලකයාගේ ගිණුම භාවිතා කිරීමෙන් වළක්වන්න, නමුත් ඔවුන්ගේ අන්තර්ගතය මකා දැමීම හෝ සඟවන්න එපා. @@ -23,7 +22,7 @@ si: ends_at: විකල්ප. මෙම අවස්ථාවේදී නිවේදනය ස්වයංක්‍රීයව ප්‍රකාශනය කිරීමෙන් ඉවත් වනු ඇත scheduled_at: නිවේදනය වහාම ප්‍රකාශයට පත් කිරීමට හිස්ව තබන්න starts_at: විකල්ප. ඔබගේ නිවේදනය නිශ්චිත කාල පරාසයකට බැඳී ඇත්නම් - text: ඔබට post syntax භාවිතා කළ හැක. කරුණාකර පරිශීලකයාගේ තිරය මත නිවේදනය ලබා ගන්නා ඉඩ ගැන සැලකිලිමත් වන්න + text: ඔබට ලිපි පද ගැළපුම් භාවිතා කිරීමට හැකිය. කරුණාකර නිවේදනයෙන් පරිශ්‍රීලකයින්ගේ තිරයේ ඉඩ කෙතරම් ඇහිරෙනවා ද පිළිබඳව සැලකිලිමත් වන්න appeal: text: ඔබට වර්ජනයකට අභියාචනා කළ හැක්කේ එක් වරක් පමණි defaults: @@ -120,7 +119,7 @@ si: text: මෙම තීරණය ආපසු හැරවිය යුත්තේ මන්දැයි පැහැදිලි කරන්න defaults: autofollow: ඔබගේ ගිණුම අනුගමනය කිරීමට ආරාධනා කරන්න - avatar: අවතාරය + avatar: පැතිකඩ ඡායාරූපය chosen_languages: භාෂා පෙරන්න confirm_new_password: නව මුරපදය තහවුරු කරන්න confirm_password: මුරපදය තහවුරු කරන්න @@ -148,7 +147,6 @@ si: setting_default_privacy: ලිපියේ රහස්‍යතාව setting_default_sensitive: සෑමවිට මාධ්‍ය සංවේදී බව සලකුණු කරන්න setting_delete_modal: ලිපියක් මැකීමට පෙර ඒ ගැන විමසන්න - setting_disable_swiping: ස්වයිප් චලන අක්‍රීය කරන්න setting_display_media: මාධ්ය සංදර්ශකය setting_display_media_default: පෙරනිමි setting_display_media_hide_all: සියල්ල සඟවන්න @@ -156,7 +154,7 @@ si: setting_expand_spoilers: අන්තර්ගත අවවාද සහිත ලිපි සැමවිට දිගහරින්න setting_hide_network: ඔබගේ ජාලය සඟවන්න setting_reduce_motion: සජීවිකරණවල චලනය අඩු කරන්න - setting_system_font_ui: පද්ධතියේ පෙරනිමි අකුරු භාවිතා කරන්න + setting_system_font_ui: පද්ධතියේ පෙරනිමි රුවකුරු භාවිතා කරන්න setting_theme: අඩවියේ තේමාව setting_trends: අද ප්‍රවණතා පෙන්වන්න setting_unfollow_modal: යමෙකු අනුගමනය නොකිරීමට පෙර තහවුරු කිරීමේ සංවාදය පෙන්වන්න @@ -175,8 +173,8 @@ si: name: හෑෂ් ටැගය filters: actions: - hide: සම්පූර්ණයෙන්ම සඟවන්න - warn: අනතුරු ඇඟවීමක් සමඟ සඟවන්න + hide: මුළුමනින්ම සඟවන්න + warn: අවවාදයක් සහිතව සඟවන්න form_admin_settings: custom_css: අභිරුචි CSS profile_directory: පැතිකඩ නාමාවලිය සබල කරන්න @@ -184,8 +182,6 @@ si: site_title: සේවාදායකයේ නම theme: පෙරනිමි තේමාව interactions: - must_be_follower: අනුගාමිකයින් නොවන අයගේ දැනුම්දීම් අවහිර කරන්න - must_be_following: ඔබ අනුගමනය නොකරන පුද්ගලයින්ගේ දැනුම්දීම් අවහිර කරන්න must_be_following_dm: ඔබ නොදන්නා අයගෙන් සෘජු පණිවිඩ ලැබීම අවහිර කරන්න invite: comment: අදහස @@ -201,12 +197,9 @@ si: notification_emails: digest: digest ඊමේල් යවන්න favourite: යමෙක් ඔබගේ ලිපියට ප්‍රිය කළා - follow: කවුරුහරි ඔබව අනුගමනය කළා - follow_request: කවුරුහරි ඔබව අනුගමනය කරන ලෙස ඉල්ලා සිටියේය - mention: කවුරුහරි ඔබව සඳහන් කළා - pending_account: නව ගිණුම සමාලෝචනය අවශ්‍යයි - report: නව වාර්තාවක් ඉදිරිපත් කෙරේ - trending_tag: නව ප්‍රවණතාවයට සමාලෝචනයක් අවශ්‍ය වේ + follow: යමෙක් ඔබව අනුගමනය කළා + mention: යමෙක් ඔබව සඳහන් කළා + report: නව වාර්තාවක් යොමු කර ඇත rule: text: නීතිය tag: diff --git a/spec/models/relationship_filter_spec.rb b/spec/models/relationship_filter_spec.rb index ac31885774..fccd42aaad 100644 --- a/spec/models/relationship_filter_spec.rb +++ b/spec/models/relationship_filter_spec.rb @@ -6,32 +6,60 @@ describe RelationshipFilter do let(:account) { Fabricate(:account) } describe '#results' do - context 'when default params are used' do - subject do - described_class.new(account, 'order' => 'active').results + let(:account_of_7_months) { Fabricate(:account_stat, statuses_count: 1, last_status_at: 7.months.ago).account } + let(:account_of_1_day) { Fabricate(:account_stat, statuses_count: 1, last_status_at: 1.day.ago).account } + let(:account_of_3_days) { Fabricate(:account_stat, statuses_count: 1, last_status_at: 3.days.ago).account } + let(:silent_account) { Fabricate(:account_stat, statuses_count: 0, last_status_at: nil).account } + + before do + account.follow!(account_of_7_months) + account.follow!(account_of_1_day) + account.follow!(account_of_3_days) + account.follow!(silent_account) + end + + context 'when ordering by last activity' do + context 'when not filtering' do + subject do + described_class.new(account, 'order' => 'active').results + end + + it 'returns followings ordered by last activity' do + expect(subject).to eq [account_of_1_day, account_of_3_days, account_of_7_months, silent_account] + end end - before do - add_following_account_with(last_status_at: 7.days.ago) - add_following_account_with(last_status_at: 1.day.ago) - add_following_account_with(last_status_at: 3.days.ago) + context 'when filtering for dormant accounts' do + subject do + described_class.new(account, 'order' => 'active', 'activity' => 'dormant').results + end + + it 'returns dormant followings ordered by last activity' do + expect(subject).to eq [account_of_7_months, silent_account] + end + end + end + + context 'when ordering by account creation' do + context 'when not filtering' do + subject do + described_class.new(account, 'order' => 'recent').results + end + + it 'returns followings ordered by last account creation' do + expect(subject).to eq [silent_account, account_of_3_days, account_of_1_day, account_of_7_months] + end end - it 'returns followings ordered by last activity' do - expected_result = account.following.eager_load(:account_stat).reorder(nil).by_recent_status + context 'when filtering for dormant accounts' do + subject do + described_class.new(account, 'order' => 'recent', 'activity' => 'dormant').results + end - expect(subject).to eq expected_result + it 'returns dormant followings ordered by last activity' do + expect(subject).to eq [silent_account, account_of_7_months] + end end end end - - def add_following_account_with(last_status_at:) - following_account = Fabricate(:account) - Fabricate(:account_stat, account: following_account, - last_status_at: last_status_at, - statuses_count: 1, - following_count: 0, - followers_count: 0) - Fabricate(:follow, account: account, target_account: following_account).account - end end diff --git a/spec/serializers/activitypub/note_serializer_spec.rb b/spec/serializers/activitypub/note_serializer_spec.rb index 4b2b8ec875..31ee31f132 100644 --- a/spec/serializers/activitypub/note_serializer_spec.rb +++ b/spec/serializers/activitypub/note_serializer_spec.rb @@ -7,7 +7,7 @@ describe ActivityPub::NoteSerializer do let!(:account) { Fabricate(:account) } let!(:other) { Fabricate(:account) } - let!(:parent) { Fabricate(:status, account: account, visibility: :public) } + let!(:parent) { Fabricate(:status, account: account, visibility: :public, language: 'zh-TW') } let!(:reply_by_account_first) { Fabricate(:status, account: account, thread: parent, visibility: :public) } let!(:reply_by_account_next) { Fabricate(:status, account: account, thread: parent, visibility: :public) } let!(:reply_by_other_first) { Fabricate(:status, account: other, thread: parent, visibility: :public) } @@ -18,8 +18,15 @@ describe ActivityPub::NoteSerializer do @serialization = ActiveModelSerializers::SerializableResource.new(parent, serializer: described_class, adapter: ActivityPub::Adapter) end - it 'has a Note type' do - expect(subject['type']).to eql('Note') + it 'has the expected shape' do + expect(subject).to include({ + '@context' => include('https://www.w3.org/ns/activitystreams'), + 'type' => 'Note', + 'attributedTo' => ActivityPub::TagManager.instance.uri_for(account), + 'contentMap' => include({ + 'zh-TW' => a_kind_of(String), + }), + }) end it 'has a replies collection' do diff --git a/yarn.lock b/yarn.lock index 4f10eb4a20..f3c22be095 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1825,9 +1825,9 @@ integrity sha512-tOQQBVH8LsUpGXqDnk+kaOGVsgZ8maHAhEiw3Git3p88q+c0Slgu47HuDnL6sVxeCfz24zbq7dOjsVYDiTpDIA== "@reduxjs/toolkit@^1.9.5": - version "1.9.6" - resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.6.tgz#fc968b45fe5b17ff90932c4556960d9c1078365a" - integrity sha512-Gc4ikl90ORF4viIdAkY06JNUnODjKfGxZRwATM30EdHq8hLSVoSrwXne5dd739yenP5bJxAX7tLuOWK5RPGtrw== + version "1.9.7" + resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.7.tgz#7fc07c0b0ebec52043f8cb43510cf346405f78a6" + integrity sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ== dependencies: immer "^9.0.21" redux "^4.2.1"