1
0
Fork 0
forked from gitea/nas

Merge pull request #57 from kmycode/kb-draft-5.3-lts

Bump version to 5.4 LTS
This commit is contained in:
KMY(雪あすか) 2023-10-10 22:07:37 +09:00 committed by GitHub
commit e761229247
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
49 changed files with 1188 additions and 741 deletions

View file

@ -289,10 +289,6 @@ RSpec/MultipleMemoizedHelpers:
RSpec/NestedGroups:
Max: 6
RSpec/PendingWithoutReason:
Exclude:
- 'spec/models/account_spec.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
Rails/ApplicationController:
Exclude:

View file

@ -2,7 +2,7 @@
All notable changes to this project will be documented in this file.
## [4.2.1] - UNRELEASED
## [4.2.1] - 2023-10-10
### Added
@ -16,6 +16,11 @@ All notable changes to this project will be documented in this file.
### Fixed
- Fix clicking on already-opened thread post scrolling to the top of the thread ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27331), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/27338), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/27350))
- Fix some remote posts getting truncated ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27307))
- Fix some cases of infinite scroll code trying to fetch inaccessible posts in a loop ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27286))
- Fix `Vary` headers not being set on some redirects ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27272))
- Fix mentions being matched in some URL query strings ([mjankowski](https://github.com/mastodon/mastodon/pull/25656))
- Fix unexpected linebreak in version string in the Web UI ([vmstan](https://github.com/mastodon/mastodon/pull/26986))
- Fix double scroll bars in some columns in advanced interface ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27187))
- Fix boosts of local users being filtered in account timelines ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27204))
@ -32,7 +37,7 @@ All notable changes to this project will be documented in this file.
- Fix retention dashboard not displaying correct month ([vmstan](https://github.com/mastodon/mastodon/pull/27180))
- Fix tIME chunk not being properly removed from PNG uploads ([TheEssem](https://github.com/mastodon/mastodon/pull/27111))
- Fix division by zero in video in bitrate computation code ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27129))
- Fix inefficient queries in “Follows and followers” as well as several admin pages ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27116))
- Fix inefficient queries in “Follows and followers” as well as several admin pages ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27116), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/27306))
- Fix ActiveRecord using two connection pools when no replica is defined ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27061))
- Fix the search documentation URL in system checks ([renchap](https://github.com/mastodon/mastodon/pull/27036))

View file

@ -693,7 +693,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)

View file

@ -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 |

View file

@ -4,10 +4,10 @@ module WebAppControllerConcern
extend ActiveSupport::Concern
included do
prepend_before_action :redirect_unauthenticated_to_permalinks!
before_action :set_app_body_class
vary_by 'Accept, Accept-Language, Cookie'
before_action :redirect_unauthenticated_to_permalinks!
before_action :set_app_body_class
end
def skip_csrf_meta_tags?
@ -22,7 +22,9 @@ module WebAppControllerConcern
return if user_signed_in? && current_account.moved_to_account_id.nil?
redirect_path = PermalinkRedirector.new(request.path).redirect_path
return if redirect_path.blank?
redirect_to(redirect_path) if redirect_path.present?
expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.day) unless user_signed_in?
redirect_to(redirect_path)
end
end

View file

@ -3,7 +3,6 @@
class FollowerAccountsController < ApplicationController
include AccountControllerConcern
include SignatureVerification
include WebAppControllerConcern
vary_by -> { public_fetch_mode? ? 'Accept, Accept-Language, Cookie' : 'Accept, Accept-Language, Cookie, Signature' }

View file

@ -3,7 +3,6 @@
class FollowingAccountsController < ApplicationController
include AccountControllerConcern
include SignatureVerification
include WebAppControllerConcern
vary_by -> { public_fetch_mode? ? 'Accept, Accept-Language, Cookie' : 'Accept, Accept-Language, Cookie, Signature' }

View file

@ -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 #<a class="zrl" href="https://example.com/search?tag=test">test</a>. Some more text',
['test'],
);
const { hashtagsInBar, statusContentProps } =
computeHashtagBarForStatus(status);
expect(hashtagsInBar).toEqual([]);
expect(statusContentProps.statusContent).toMatchInlineSnapshot(
`"this is a #<a class="zrl" href="https://example.com/search?tag=test">test</a>. Some more text"`,
);
});
it('extract tags from the last line', () => {
const status = createStatus(
'<p>Simple text</p><p><a href="test">#hashtag</a></p>',

View file

@ -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;

View file

@ -73,7 +73,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();
}

View file

@ -233,6 +233,8 @@ class Status extends ImmutablePureComponent {
componentDidMount () {
attachFullscreenListener(this.onFullScreenChange);
this._scrollStatusIntoView();
}
UNSAFE_componentWillReceiveProps (nextProps) {
@ -638,10 +640,10 @@ class Status extends ImmutablePureComponent {
this.node = c;
};
componentDidUpdate (prevProps) {
const { status, ancestorsIds, multiColumn } = this.props;
_scrollStatusIntoView () {
const { status, multiColumn } = this.props;
if (status && (ancestorsIds.size > prevProps.ancestorsIds.size || prevProps.status?.get('id') !== status.get('id'))) {
if (status) {
window.requestAnimationFrame(() => {
this.node?.querySelector('.detailed-status__wrapper')?.scrollIntoView(true);
@ -658,6 +660,14 @@ class Status extends ImmutablePureComponent {
}
}
componentDidUpdate (prevProps) {
const { status, ancestorsIds } = this.props;
if (status && (ancestorsIds.size > prevProps.ancestorsIds.size || prevProps.status?.get('id') !== status.get('id'))) {
this._scrollStatusIntoView();
}
}
componentWillUnmount () {
detachFullscreenListener(this.onFullScreenChange);
}
@ -666,6 +676,22 @@ class Status extends ImmutablePureComponent {
this.setState({ fullscreen: isFullscreen() });
};
shouldUpdateScroll = (prevRouterProps, { location }) => {
// Do not change scroll when opening a modal
if (location.state?.mastodonModalKey !== prevRouterProps?.location?.state?.mastodonModalKey) {
return false;
}
// Scroll to focused post if it is loaded
const child = this.node?.querySelector('.detailed-status__wrapper');
if (child) {
return [0, child.offsetTop];
}
// Do not scroll otherwise, `componentDidUpdate` will take care of that
return false;
};
render () {
let ancestors, descendants, references;
const { isLoading, status, ancestorsIds, descendantsIds, referenceIds, intl, domain, multiColumn, pictureInPicture } = this.props;
@ -723,7 +749,7 @@ class Status extends ImmutablePureComponent {
)}
/>
<ScrollContainer scrollKey='thread'>
<ScrollContainer scrollKey='thread' shouldUpdateScroll={this.shouldUpdateScroll}>
<div className={classNames('scrollable', { fullscreen })} ref={this.setRef}>
{references}
{ancestors}

View file

@ -190,6 +190,7 @@
"conversation.open": "কথপোকথন দেখান",
"conversation.with": "{names} এর সঙ্গে",
"copypaste.copied": "অনুলিপিকৃত",
"copypaste.copy_to_clipboard": "ক্লিপবোর্ডে কপি করুন",
"directory.federated": "পরিচিত ফেডিভারসের থেকে",
"directory.local": "শুধু {domain} থেকে",
"directory.new_arrivals": "নতুন আগত",

View file

@ -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.",

View file

@ -102,7 +102,7 @@
"bundle_modal_error.message": "컴포넌트를 불러오는 중 문제가 발생했습니다.",
"bundle_modal_error.retry": "다시 시도",
"closed_registrations.other_server_instructions": "마스토돈은 분산화 되어 있기 때문에, 다른 서버에서 계정을 만들더라도 이 서버와 상호작용 할 수 있습니다.",
"closed_registrations_modal.description": "{domain}은 현재 가입이 막혀있는 상태입니다, 만약 마스토돈을 이용하기 위해 꼭 {domain}을 사용할 필요는 없다는 사실을 인지해 두세요.",
"closed_registrations_modal.description": "{domain}은 현재 가입이 막혀있는 상태입니다, 마스토돈을 이용하기 위해 꼭 {domain}을 사용할 필요는 없다는 사실을 인지해 두세요.",
"closed_registrations_modal.find_another_server": "다른 서버 찾기",
"closed_registrations_modal.preamble": "마스토돈은 분산화 되어 있습니다, 그렇기 때문에 어디에서 계정을 생성하든, 이 서버에 있는 누구와도 팔로우와 상호작용을 할 수 있습니다. 심지어는 스스로 서버를 만드는 것도 가능합니다!",
"closed_registrations_modal.title": "마스토돈에서 가입",

View file

@ -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",
@ -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.",

View file

@ -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)",

View file

@ -312,6 +312,7 @@
"home.hide_announcements": "ကြေညာချက်များကို ဖျောက်ပါ",
"home.pending_critical_update.body": "သင့် Mastodon ဆာဗာ အမြန်ဆုံး အပ်ဒိတ်လုပ်ပါ။",
"home.pending_critical_update.link": "အပ်ဒိတ်များကြည့်ရန်",
"home.pending_critical_update.title": "အရေးကြီးသည့် လုံခြုံရေးအပ်ဒိတ် ရနိုင်ပါမည်။",
"home.show_announcements": "ကြေညာချက်များကို ပြပါ",
"interaction_modal.description.favourite": "Mastodon အကောင့်ဖြင့် ဤပို့စ်ကို သင် favorite ပြုလုပ်ကြောင်း စာရေးသူအား အသိပေးပြီး နောက်ပိုင်းတွင် သိမ်းဆည်းနိုင်သည်။",
"interaction_modal.description.follow": "Mastodon အကောင့်ဖြင့် သင်၏ ပင်မစာမျက်နှာတွင် ၎င်းတို့၏ ပို့စ်များကို ရရှိရန်အတွက် {name} ကို စောင့်ကြည့်နိုင်ပါသည်။",
@ -594,6 +595,7 @@
"search_popout.options": "ရွေးချယ်ထားသည်များ ရှာဖွေရန်",
"search_popout.quick_actions": "အမြန်လုပ်ဆောင်မှုများ",
"search_popout.recent": "လတ်တလော ရှာဖွေမှုများ",
"search_popout.specific_date": "သီးခြားရက်စွဲ",
"search_popout.user": "အသုံးပြုသူ",
"search_results.accounts": "စာမျက်နှာ",
"search_results.all": "အားလုံး",

View file

@ -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": "Спам",

View file

@ -1,79 +1,88 @@
{
"about.blocks": "මැදිහත්කරණ සේවාදායක",
"about.contact": "සබඳතාව:",
"about.disclaimer": "මාස්ටඩන් යනු නිදහස් විවෘත මූලාශ්‍ර මෘදුකාංගයකි. එය මාස්ටඩන් gGmbH හි වෙළඳ නාමයකි.",
"about.domain_blocks.suspended.title": "අත්හිටුවා ඇත",
"about.rules": "සේවාදායකයේ නීති",
"account.account_note_header": "සටහන",
"account.add_or_remove_from_list": "ලැයිස්තු වලින් එකතු හෝ ඉවත් කරන්න",
"account.badges.bot": "ස්වයං ක්‍රමලේඛය",
"account.badges.bot": "ස්වයංක්‍රියයි",
"account.badges.group": "සමූහය",
"account.block": "@{name} අවහිර කරන්න",
"account.block_domain": "{domain} වසම අවහිර කරන්න",
"account.block_short": "අවහිර",
"account.blocked": "අවහිර කර ඇත",
"account.browse_more_on_origin_server": "මුල් පැතිකඩෙහි තවත් පිරික්සන්න",
"account.cancel_follow_request": "Withdraw follow request",
"account.disable_notifications": "@{name} පළ කරන විට මට දැනුම් නොදෙන්න",
"account.domain_blocked": "වසම අවහිර කර ඇත",
"account.edit_profile": "පැතිකඩ සංස්කරණය",
"account.enable_notifications": "@{name} පළ කරන විට මට දැනුම් දෙන්න",
"account.endorse": "පැතිකඩෙහි විශේෂාංගය",
"account.featured_tags.last_status_never": "ලිපි නැත",
"account.follow": "අනුගමනය",
"account.followers": "අනුගාමිකයින්",
"account.followers.empty": "කිසිවෙක් අනුගමනය කර නැත.",
"account.followers_counter": "{count, plural, one {{counter} අනුගාමිකයෙක්} other {{counter} අනුගාමිකයින්}}",
"account.following": "අනුගමන",
"account.following_counter": "{count, plural, one {අනුගාමිකයින් {counter}} other {අනුගාමිකයින් {counter}}}",
"account.followers_counter": "{count, plural, one {අනුගාමිකයින් {counter}} other {අනුගාමිකයින් {counter}}}",
"account.following": "අනුගමන",
"account.following_counter": "{count, plural, one {අනුගමන {counter}} other {අනුගමන {counter}}}",
"account.follows.empty": "තවමත් කිසිවෙක් අනුගමනය නොකරයි.",
"account.follows_you": "ඔබව අනුගමනය කරයි",
"account.hide_reblogs": "@{name}සිට බූස්ට් සඟවන්න",
"account.go_to_profile": "පැතිකඩට යන්න",
"account.joined_short": "එක් වූ දිනය",
"account.link_verified_on": "මෙම සබැඳියේ අයිතිය {date} දී පරීක්‍ෂා කෙරිණි",
"account.locked_info": "මෙම ගිණුමේ රහස්‍යතා තත්ත්වය අගුලු දමා ඇත. හිමිකරු ඔවුන් අනුගමනය කළ හැක්කේ කාටදැයි හස්තීයව සමාලෝචනය කරයි.",
"account.media": "මාධ්‍යය",
"account.mention": "@{name} සැඳහුම",
"account.media": "මාධ්‍ය",
"account.mention": "@{name} සඳහන් කරන්ක",
"account.mute": "@{name} නිහඬ කරන්න",
"account.mute_short": "නිහඬ",
"account.muted": "නිහඬ කළා",
"account.posts": "ලිපි",
"account.posts_with_replies": "ටූට්ස් සහ පිළිතුරු",
"account.posts_with_replies": "ලිපි සහ පිළිතුරු",
"account.report": "@{name} වාර්තා කරන්න",
"account.requested": "අනුමැතිය බලාපොරොත්තුවෙන්",
"account.share": "@{name} ගේ පැතිකඩ බෙදාගන්න",
"account.show_reblogs": "@{name}සිට බූස්ට් පෙන්වන්න",
"account.statuses_counter": "{count, plural, one {{counter} ටූට්} other {{counter} ටූට්ස්}}",
"account.statuses_counter": "{count, plural, one {ලිපි {counter}} other {ලිපි {counter}}}",
"account.unblock": "@{name} අනවහිර කරන්න",
"account.unblock_domain": "{domain} වසම අනවහිර කරන්න",
"account.unblock_short": "අනවහිර",
"account.unendorse": "පැතිකඩෙහි විශේෂාංග නොකරන්න",
"account.unfollow": "අනුගමනය නොකරන්න",
"account.unmute": "@{name}නිහඬ නොකරන්න",
"account.unmute_short": "නොනිහඬ",
"account_note.placeholder": "සටහන යෙදීමට ඔබන්න",
"admin.dashboard.daily_retention": "ලියාපදිංචි වීමෙන් පසු දිනකට පරිශීලක රඳවා ගැනීමේ අනුපාතය",
"admin.dashboard.monthly_retention": "ලියාපදිංචි වීමෙන් පසු මාසය අනුව පරිශීලක රඳවා ගැනීමේ අනුපාතය",
"admin.dashboard.retention.average": "සාමාන්යය",
"admin.dashboard.retention.cohort": "ලියාපදිංචි වීමේ මාසය",
"admin.dashboard.retention.cohort": "ලියාපදිංචි මාසය",
"admin.dashboard.retention.cohort_size": "නව පරිශ්‍රීලකයින්",
"alert.rate_limited.message": "{retry_time, time, medium} කට පසුව උත්සාහ කරන්න.",
"alert.rate_limited.title": "මිල සීමා සහිතයි",
"alert.unexpected.message": "අනපේක්ෂිත දෝෂයක් ඇතිවුනා.",
"alert.rate_limited.title": "අනුපාතනය වී ඇත",
"alert.unexpected.message": "අනපේක්‍ෂිත දෝෂයක් සිදු විය.",
"alert.unexpected.title": "අපොයි!",
"announcement.announcement": "නිවේදනය",
"attachments_list.unprocessed": "(සැකසුම් නොකළ)",
"audio.hide": "හඬපටය සඟවන්න",
"autosuggest_hashtag.per_week": "සතියකට {count}",
"boost_modal.combo": "ඊළඟ වතාවේ මෙය මඟ හැරීමට ඔබට {combo} එබිය හැක",
"boost_modal.combo": "ඊළඟ වතාවේ මෙය මඟ හැරීමට {combo} එබීමට හැකිය",
"bundle_column_error.copy_stacktrace": "දෝෂ වාර්තාවේ පිටපතක්",
"bundle_column_error.error.title": "අපොයි!",
"bundle_column_error.network.title": "ජාලයේ දෝෂයකි",
"bundle_column_error.retry": "නැවත උත්සාහ කරන්න",
"bundle_column_error.return": "ආපසු මුලට යන්න",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "වසන්න",
"bundle_modal_error.message": "මෙම සංරචකය පූරණය කිරීමේදී යම් දෙයක් වැරදී ඇත.",
"bundle_modal_error.message": "මෙම සංරචකය පූරණය දී යම් දෙයක් වැරදී ඇත.",
"bundle_modal_error.retry": "නැවත උත්සාහ කරන්න",
"closed_registrations_modal.find_another_server": "වෙනත් සේවාදායක",
"closed_registrations_modal.title": "මාස්ටඩන් හි ලියාපදිංචි වන්න",
"column.about": "පිලිබඳව",
"column.blocks": "අවහිර කළ අය",
"column.bookmarks": "පොත්යොමු",
"column.community": "දේශීය කාලරේඛාව",
"column.community": "ස්ථානීය කාලරේඛාව",
"column.direct": "පෞද්ගලික සැඳහුම්",
"column.directory": "පැතිකඩ පිරික්සන්න",
"column.domain_blocks": "අවහිර කළ වසම්",
"column.favourites": "ප්‍රියතමයන්",
"column.firehose": "සජීව සංග්‍රහ",
"column.follow_requests": "අනුගමන ඉල්ලීම්",
"column.home": "මුල් පිටුව",
"column.lists": "ලේඛන",
"column.lists": "ලැයිස්තු",
"column.mutes": "නිහඬ කළ අය",
"column.notifications": "දැනුම්දීම්",
"column.pins": "ඇමිණූ ලිපි",
"column.public": "ෆෙඩරේටඩ් කාලරේඛාව",
"column.public": "ඒකාබද්ධ කාලරේඛාව",
"column_back_button.label": "ආපසු",
"column_header.hide_settings": "සැකසුම් සඟවන්න",
"column_header.moveLeft_settings": "තීරුව වමට ගෙනයන්න",
@ -87,70 +96,62 @@
"community.column_settings.remote_only": "දුරස්ථව පමණයි",
"compose.language.change": "භාෂාව සංශෝධනය",
"compose.language.search": "භාෂා සොයන්න...",
"compose.published.body": "ලිපිය පළ විය.",
"compose.published.open": "අරින්න",
"compose.saved.body": "ලිපිය සුරැකිණි.",
"compose_form.direct_message_warning_learn_more": "තව දැනගන්න",
"compose_form.encryption_warning": "Mastodon හි පළ කිරීම් අන්තයේ සිට අවසානය දක්වා සංකේතනය කර නොමැත. Mastodon හරහා කිසිදු සංවේදී තොරතුරක් බෙදා නොගන්න.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.lock_disclaimer": "ඔබගේ ගිණුම {locked}නොවේ. ඔබගේ අනුගාමිකයින්ට පමණක් පළ කිරීම් බැලීමට ඕනෑම කෙනෙකුට ඔබව අනුගමනය කළ හැක.",
"compose_form.encryption_warning": "මාස්ටඩන් වෙත පළ කරන දෑ අන්ත සංකේතනයෙන් ආරක්‍ෂා නොවේ. මාස්ටඩන් හරහා කිසිදු සංවේදී තොරතුරක් බෙදා නොගන්න.",
"compose_form.lock_disclaimer.lock": "අගුළු දමා ඇත",
"compose_form.placeholder": "ඔබගේ සිතුවිලි මොනවාද?",
"compose_form.poll.add_option": "තේරීමක් යොදන්න",
"compose_form.poll.duration": "මත විමසීමේ කාලය",
"compose_form.poll.option_placeholder": "තේරීම {number}",
"compose_form.poll.remove_option": "මෙම ඉවත් කරන්න",
"compose_form.poll.switch_to_multiple": "තේරීම් කිහිපයක් ඉඩ දීම සඳහා මත විමසුම වෙනස් කරන්න",
"compose_form.poll.switch_to_single": "තනි තේරීමකට ඉඩ දීම සඳහා මත විමසුම වෙනස් කරන්න",
"compose_form.poll.switch_to_multiple": "තේරීම් කිහිපයක මත විමසුම වෙනස් කරන්න",
"compose_form.poll.switch_to_single": "තනි තේරීමකට මත විමසුම වෙනස් කරන්න",
"compose_form.publish": "ප්‍රකාශනය",
"compose_form.publish_form": "නව ලිපිය",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "වෙනස්කම් සුරකින්න",
"compose_form.sensitive.hide": "{count, plural, one {මාධ්ය සංවේදී ලෙස සලකුණු කරන්න} other {මාධ්ය සංවේදී ලෙස සලකුණු කරන්න}}",
"compose_form.sensitive.marked": "{count, plural, one {මාධ්‍ය සංවේදී ලෙස සලකුණු කර ඇත} other {මාධ්‍ය සංවේදී ලෙස සලකුණු කර ඇත}}",
"compose_form.sensitive.unmarked": "{count, plural, one {මාධ්‍ය සංවේදී ලෙස සලකුණු කර නැත} other {මාධ්‍ය සංවේදී ලෙස සලකුණු කර නැත}}",
"compose_form.spoiler.marked": "අනතුරු ඇඟවීම පිටුපස පෙළ සඟවා ඇත",
"compose_form.spoiler.unmarked": "ප්‍රයෝජනය සඟවා නැත",
"compose_form.spoiler.marked": "අන්තර්ගත අවවාදය ඉවත් කරන්න",
"compose_form.spoiler.unmarked": "අන්තර්ගත අවවාදයක් එක් කරන්න",
"compose_form.spoiler_placeholder": "අවවාදය මෙහි ලියන්න",
"confirmation_modal.cancel": "අවලංගු",
"confirmations.block.block_and_report": "අවහිර කර වාර්තා කරන්න",
"confirmations.block.confirm": "අවහිර",
"confirmations.block.message": "ඔබට {name} අවහිර කිරීමට වුවමනා ද?",
"confirmations.delete.confirm": "මකන්න",
"confirmations.delete.message": "ඔබට මෙම තත්ත්වය මැකීමට අවශ්‍ය බව විශ්වාසද?",
"confirmations.delete.message": "ඔබට මෙම ලිපිය මැකීමට වුවමනා ද?",
"confirmations.delete_list.confirm": "මකන්න",
"confirmations.delete_list.message": "ඔබට මෙම ලැයිස්තුව ස්ථිරවම මැකීමට අවශ්‍ය බව විශ්වාසද?",
"confirmations.delete_list.message": "ඔබට මෙම ලැයිස්තුව සදහටම මැකීමට වුවමනා ද?",
"confirmations.discard_edit_media.confirm": "ඉවත ලන්න",
"confirmations.discard_edit_media.message": "ඔබට මාධ්‍ය විස්තරයට හෝ පෙරදසුනට නොසුරකින ලද වෙනස්කම් තිබේ, කෙසේ වෙතත් ඒවා ඉවත දමන්නද?",
"confirmations.domain_block.confirm": "සම්පූර්ණ වසම අවහිර කරන්න",
"confirmations.domain_block.message": "ඔබට සම්පූර්ණ {domain}අවහිර කිරීමට අවශ්‍ය බව ඔබට සැබවින්ම විශ්වාසද? බොහෝ අවස්ථාවලදී ඉලක්කගත බ්ලොක් හෝ නිශ්ශබ්ද කිරීම් කිහිපයක් ප්රමාණවත් වන අතර වඩාත් යෝග්ය වේ. ඔබ කිසිදු පොදු කාලරාමුවක හෝ ඔබගේ දැනුම්දීම් වල එම වසමේ අන්තර්ගතය නොදකිනු ඇත. එම වසමෙන් ඔබගේ අනුගාමිකයින් ඉවත් කරනු ලැබේ.",
"confirmations.edit.confirm": "සංස්කරණය",
"confirmations.logout.confirm": "නික්මෙන්න",
"confirmations.logout.message": "ඔබට නික්මෙන්න අවශ්‍ය බව විශ්වාසද?",
"confirmations.mute.confirm": "නිශ්ශබ්ද",
"confirmations.mute.explanation": "මෙය ඔවුන්ගෙන් පළ කිරීම් සහ ඒවා සඳහන් කරන පළ කිරීම් සඟවයි, නමුත් එය ඔවුන්ට ඔබේ පළ කිරීම් බැලීමට සහ ඔබව අනුගමනය කිරීමට තවමත් ඉඩ ලබා දේ.",
"confirmations.mute.message": "ඔබට {name} නිශ්ශබ්ද කිරීමට අවශ්‍ය බව විශ්වාසද?",
"confirmations.redraft.confirm": "මකන්න සහ නැවත කෙටුම්පත් කරන්න",
"confirmations.mute.message": "{name} නිහඬ කිරීමට වුවමනා ද?",
"confirmations.reply.confirm": "පිළිතුර",
"confirmations.reply.message": "දැන් පිළිතුරු දීම ඔබ දැනට රචනා කරන පණිවිඩය උඩින් ලියයි. ඔබට ඉදිරියට යාමට අවශ්‍ය බව විශ්වාසද?",
"confirmations.unfollow.confirm": "අනුගමනය නොකරන්න",
"confirmations.unfollow.message": "ඔබට {name}අනුගමනය නොකිරීමට අවශ්‍ය බව විශ්වාසද?",
"conversation.delete": "සංවාදය මකන්න",
"conversation.mark_as_read": "කියවූ බව යොදන්න",
"conversation.open": "සංවාදය බලන්න",
"conversation.with": "{names} සමඟ",
"copypaste.copied": "පිටපත් විය",
"directory.federated": "දන්නා fediverse වලින්",
"copypaste.copy_to_clipboard": "පසුරුපුවරුවට පිටපතක්",
"directory.federated": "දන්නා ෆෙඩිවර්ස් වෙතින්",
"directory.local": "{domain} වෙතින් පමණි",
"directory.new_arrivals": "නව පැමිණීම්",
"directory.recently_active": "මෑත දී සක්‍රියයි",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
"embed.instructions": "පහත කේතය පිටපත් කිරීමෙන් මෙම තත්ත්වය ඔබේ වෙබ් අඩවියට ඇතුළත් කරන්න.",
"embed.preview": "එය පෙනෙන්නේ කෙසේද යන්න මෙන්න:",
"disabled_account_banner.account_settings": "ගිණුමේ සැකසුම්",
"embed.instructions": "පහත කේතය පිටපත් කිරීමෙන් මෙම ලිපිය ඔබගේ අඩවියට කාවද්දන්න.",
"embed.preview": "මෙන්න එය පෙනෙන අන්දම:",
"emoji_button.activity": "ක්‍රියාකාරකම",
"emoji_button.clear": "මකන්න",
"emoji_button.custom": "අභිරුචි",
"emoji_button.flags": "කොඩි",
"emoji_button.food": "ආහාර සහ පාන",
"emoji_button.label": "ඉමොජි යොදන්න",
"emoji_button.nature": "ස්වභාවික",
"emoji_button.nature": "සොබාදහම",
"emoji_button.not_found": "ගැළපෙන ඉමෝජි හමු නොවිණි",
"emoji_button.objects": "වස්තූන්",
"emoji_button.people": "මිනිසුන්",
@ -163,155 +164,146 @@
"empty_column.account_timeline": "මෙහි ලිපි නැත!",
"empty_column.account_unavailable": "පැතිකඩ නොතිබේ",
"empty_column.blocks": "කිසිදු පරිශීලකයෙකු අවහිර කර නැත.",
"empty_column.bookmarked_statuses": "ඔබට තවමත් පිටු සලකුණු කළ මෙවලම් කිසිවක් නොමැත. ඔබ එකක් පිටු සලකුණු කළ විට, එය මෙහි පෙන්වනු ඇත.",
"empty_column.community": "දේශීය කාලරේඛාව හිස් ය. පන්දුව පෙරළීමට ප්‍රසිද්ධියේ යමක් ලියන්න!",
"empty_column.bookmarked_statuses": "ඔබ සතුව පොත්යොමු තබන ලද ලිපි කිසිවක් නැත. ඔබ පොත්යොමුවක් තබන විට, එය මෙහි දිස්වනු ඇත.",
"empty_column.domain_blocks": "අවහිර කරන ලද වසම් නැත.",
"empty_column.explore_statuses": "දැන් කිසිවක් නැඹුරු නොවේ. පසුව නැවත පරීක්ෂා කරන්න!",
"empty_column.follow_requests": "ඔබට තවමත් අනුගමනය කිරීමේ ඉල්ලීම් කිසිවක් නොමැත. ඔබට එකක් ලැබුණු විට, එය මෙහි පෙන්වනු ඇත.",
"empty_column.hashtag": "මෙම හැෂ් ටැග් එකේ තවම කිසිවක් නොමැත.",
"empty_column.home": "ඔබගේ නිවසේ කාලරේඛාව හිස්ය! එය පිරවීම සඳහා තවත් පුද්ගලයින් අනුගමනය කරන්න. {suggestions}",
"empty_column.list": "මෙම ලැයිස්තුවේ තවමත් කිසිවක් නොමැත. මෙම ලැයිස්තුවේ සාමාජිකයන් නව තත්ව පළ කරන විට, ඔවුන් මෙහි දිස් වනු ඇත.",
"empty_column.follow_requests": "ඔබට තවමත් අනුගමන ඉල්ලීම් ලැබී නැත. ඉල්ලීමක් ලැබුණු විට, එය මෙහි පෙන්වනු ඇත.",
"empty_column.home": "මුල් පිටුව හිස් ය! මෙය පිරවීමට බොහෝ පුද්ගලයින් අනුගමනය කරන්න.",
"empty_column.lists": "ඔබට තවමත් ලැයිස්තු කිසිවක් නැත. ඔබ එකක් සාදන විට, එය මෙහි පෙන්වනු ඇත.",
"empty_column.mutes": "ඔබ තවමත් කිසිදු පරිශීලකයෙකු නිහඬ කර නැත.",
"empty_column.notifications": "ඔබට තවම දැනුම්දීම් කිසිවක් නැත. වෙනත් පුද්ගලයින් ඔබ සමඟ අන්තර් ක්‍රියා කරන විට, ඔබ එය මෙහි දකිනු ඇත.",
"empty_column.public": "මෙහි කිසිවක් නැත! යමක් ප්‍රසිද්ධියේ ලියන්න, නැතහොත් එය පිරවීම සඳහා වෙනත් සේවාදායකයන්ගෙන් පරිශීලකයන් හස්තීයව අනුගමනය කරන්න",
"empty_column.notifications": "ඔබට දැනුම්දීම් ලැබී නැත. අන් අය සහ ඔබ අතර අන්‍යෝන්‍ය බලපවත්වන දෑ මෙහි දිස්වනු ඇත.",
"error.unexpected_crash.explanation": "අපගේ කේතයේ දෝෂයක් හෝ බ්‍රවුසර ගැළපුම් ගැටලුවක් හේතුවෙන්, මෙම පිටුව නිවැරදිව ප්‍රදර්ශනය කළ නොහැක.",
"error.unexpected_crash.explanation_addons": "මෙම පිටුව නිවැරදිව ප්‍රදර්ශනය කළ නොහැක. මෙම දෝෂය බ්‍රවුසර ඇඩෝනයක් හෝ ස්වයංක්‍රීය පරිවර්තන මෙවලම් නිසා ඇති විය හැක.",
"error.unexpected_crash.next_steps": "පිටුව නැවුම් කිරීමට උත්සාහ කරන්න. එය උදව් නොකළහොත්, ඔබට තවමත් වෙනත් බ්‍රවුසරයක් හෝ ස්වදේශීය යෙදුමක් හරහා Mastodon භාවිත කිරීමට හැකි වේ.",
"error.unexpected_crash.next_steps_addons": "ඒවා අක්‍රිය කර පිටුව නැවුම් කිරීමට උත්සාහ කරන්න. එය උදව් නොකළහොත්, ඔබට තවමත් වෙනත් බ්‍රවුසරයක් හෝ ස්වදේශීය යෙදුමක් හරහා Mastodon භාවිත කිරීමට හැකි වේ.",
"errors.unexpected_crash.copy_stacktrace": "ස්ටැක්ට්රේස් පසුරු පුවරුවට පිටපත් කරන්න",
"error.unexpected_crash.next_steps": "පිටුව නැවුම් කර බලන්න. එයින් ඵලක් නොවේ නම්, වෙනත් අතිරික්සුවක් හෝ නිසග යෙදුමක් හරහා මාස්ටඩන් භාවිතා කරන්න.",
"error.unexpected_crash.next_steps_addons": "ඒවා අබල කර පිටුව නැවුම් කරන්න. එයින් ඵලක් නොවේ නම්, වෙනත් අතිරික්සුවක් හෝ නිසග යෙදුමක් හරහා මාස්ටඩන් භාවිතා කරන්න.",
"errors.unexpected_crash.report_issue": "ගැටළුව වාර්තාව",
"explore.search_results": "සෙවුම් ප්‍රතිඵල",
"explore.title": "ගවේශණය",
"explore.suggested_follows": "පුද්ගලයින්",
"explore.title": "ගවේශනය",
"explore.trending_links": "පුවත්",
"explore.trending_statuses": "ලිපි",
"filter_modal.added.expired_title": "පෙරහන ඉකුත්ය!",
"filter_modal.added.review_and_configure_title": "පෙරහන් සැකසුම්",
"filter_modal.added.settings_link": "සැකසුම් පිටුව",
"filter_modal.added.title": "පෙරහන එක් කළා!",
"filter_modal.select_filter.expired": "ඉකුත්ය",
"filter_modal.select_filter.prompt_new": "නව ප්‍රවර්ගය: {name}",
"filter_modal.select_filter.search": "සොයන්න හෝ සාදන්න",
"follow_request.authorize": "අවසරලත්",
"filter_modal.select_filter.title": "මෙම ලිපිය පෙරන්න",
"filter_modal.title.status": "ලිපියක් පෙරන්න",
"firehose.local": "මෙම සේවාදායකය",
"firehose.remote": "වෙනත් සේවාදායක",
"follow_request.reject": "ප්‍රතික්‍ෂේප",
"follow_requests.unlocked_explanation": "ඔබගේ ගිණුම අගුලු දමා නොතිබුණද, {domain} කාර්ය මණ්ඩලය සිතුවේ ඔබට මෙම ගිණුම් වලින් ලැබෙන ඉල්ලීම් හස්තීයව සමාලෝචනය කිරීමට අවශ්‍ය විය හැකි බවයි.",
"footer.about": "පිළිබඳව",
"footer.directory": "පැතිකඩ නාමාවලිය",
"footer.get_app": "යෙදුම ගන්න",
"footer.invite": "ආරාධනා කරන්න",
"footer.keyboard_shortcuts": "යතුරුපුවරුවේ කෙටිමං",
"footer.privacy_policy": "රහස්‍යතා ප්‍රතිපත්තිය",
"footer.source_code": "මූලාශ්‍ර කේතය බලන්න",
"footer.status": "තත්‍වය",
"generic.saved": "සුරැකිණි",
"getting_started.heading": "පටන් ගන්න",
"hashtag.column_header.tag_mode.all": "සහ {additional}",
"hashtag.column_header.tag_mode.any": "හෝ {additional}",
"hashtag.column_header.tag_mode.none": "{additional}නොමැතිව",
"hashtag.column_settings.select.no_options_message": "යෝජනා හමු නොවිණි",
"hashtag.column_settings.select.placeholder": "හැෂ් ටැග්…ඇතුලත් කරන්න",
"hashtag.column_settings.tag_mode.all": "මේ සියල්ලම",
"hashtag.column_settings.tag_mode.any": "ඇතුළත් එකක්",
"hashtag.column_settings.tag_mode.none": "මේ කිසිවක් නැත",
"hashtag.column_settings.tag_toggle": "මෙම තීරුවේ අමතර ටැග් ඇතුළත් කරන්න",
"home.actions.go_to_explore": "නැගී එන දෑ බලන්න",
"home.actions.go_to_suggestions": "පුද්ගලයින් සොයන්න",
"home.column_settings.basic": "මූලික",
"home.column_settings.show_reblogs": "බූස්ට් පෙන්වන්න",
"home.column_settings.show_replies": "පිළිතුරු පෙන්වන්න",
"home.explore_prompt.title": "මෙය ඔබගේ මාස්ටඩන් මුල් පිටුවයි.",
"home.hide_announcements": "නිවේදන සඟවන්න",
"home.pending_critical_update.link": "යාවත්කාල බලන්න",
"home.show_announcements": "නිවේදන පෙන්වන්න",
"intervals.full.days": "{number, plural, one {# දින} other {# දින}}",
"intervals.full.hours": "{number, plural, one {# පැය} other {# පැය}}",
"intervals.full.minutes": "{number, plural, one {විනාඩි #} other {# මිනිත්තු}}",
"interaction_modal.on_this_server": "මෙම සේවාදායකයෙහි",
"intervals.full.days": "{number, plural, one {දවස් #} other {දවස් #}}",
"intervals.full.hours": "{number, plural, one {පැය #} other {පැය #}}",
"intervals.full.minutes": "{number, plural, one {විනාඩි #} other {විනාඩි #}}",
"keyboard_shortcuts.back": "ආපසු යාත්‍රණය",
"keyboard_shortcuts.blocked": "අවහිර කළ පරිශීලක ලැයිස්තුව විවෘත කිරීමට",
"keyboard_shortcuts.boost": "වැඩි කිරීමට",
"keyboard_shortcuts.column": "එක් තීරුවක තත්ත්වය නාභිගත කිරීමට",
"keyboard_shortcuts.compose": "රචනා පාඨ ප්‍රදේශය නාභිගත කිරීමට",
"keyboard_shortcuts.description": "සවිස්තරය",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "ලැයිස්තුවේ පහළට ගමන් කිරීමට",
"keyboard_shortcuts.down": "ලැයිස්තුවේ පහළට ගෙනයන්න",
"keyboard_shortcuts.enter": "ලිපිය අරින්න",
"keyboard_shortcuts.favourites": "ප්‍රියතමයන් ලැයිස්තුව අරින්න",
"keyboard_shortcuts.federated": "ෆෙඩරේටඩ් කාලරාමුව විවෘත කිරීමට",
"keyboard_shortcuts.heading": "යතුරුපුවරු කෙටිමං",
"keyboard_shortcuts.home": "නිවසේ කාලරේඛාව විවෘත කිරීමට",
"keyboard_shortcuts.hotkey": "උණු යතුර",
"keyboard_shortcuts.legend": "මෙම පුරාවෘත්තය ප්රදර්ශනය කිරීමට",
"keyboard_shortcuts.local": "දේශීය කාලරේඛාව විවෘත කිරීමට",
"keyboard_shortcuts.mention": "කතුවරයා සඳහන් කිරීමට",
"keyboard_shortcuts.muted": "නිශ්ශබ්ද පරිශීලක ලැයිස්තුව විවෘත කිරීමට",
"keyboard_shortcuts.muted": "නිහඬ කළ අය පෙන්වන්න",
"keyboard_shortcuts.my_profile": "ඔබගේ පැතිකඩ අරින්න",
"keyboard_shortcuts.notifications": "දැනුම්දීම් තීරුව විවෘත කිරීමට",
"keyboard_shortcuts.open_media": "මාධ්‍ය අරින්න",
"keyboard_shortcuts.pinned": "ඇමිණූ ලිපි ලේඛනය අරින්න",
"keyboard_shortcuts.pinned": "ඇමිණූ ලිපි ලැයිස්තුව අරින්න",
"keyboard_shortcuts.profile": "කතෘගේ පැතිකඩ අරින්න",
"keyboard_shortcuts.reply": "පිළිතුරු දීමට",
"keyboard_shortcuts.requests": "පහත ඉල්ලීම් ලැයිස්තුව විවෘත කිරීමට",
"keyboard_shortcuts.search": "සෙවුම් අවධානය යොමු කිරීමට",
"keyboard_shortcuts.spoilers": "CW ක්ෂේත්‍රය පෙන්වීමට/සැඟවීමට",
"keyboard_shortcuts.spoilers": "CW ක්‍ෂේත්‍රය පෙන්වන්න/සඟවන්න",
"keyboard_shortcuts.start": "\"පටන් ගන්න\" තීරුව අරින්න",
"keyboard_shortcuts.toggle_hidden": "CW පිටුපස පෙළ පෙන්වීමට/සැඟවීමට",
"keyboard_shortcuts.toggle_sensitivity": "මාධ්‍ය පෙන්වන්න/සඟවන්න",
"keyboard_shortcuts.toot": "නව ලිපියක් අරඹන්න",
"keyboard_shortcuts.unfocus": "අවධානය යොමු නොකිරීමට textarea/search රචනා කරන්න",
"keyboard_shortcuts.up": "ලැයිස්තුවේ ඉහළට යාමට",
"keyboard_shortcuts.up": "ලැයිස්තුවේ ඉහළට ගෙනයන්න",
"lightbox.close": "වසන්න",
"lightbox.compress": "රූප බැලීමේ කොටුව සම්පීඩනය කරන්න",
"lightbox.expand": "රූප දර්ශන පෙට්ටිය දිග හරින්න",
"lightbox.next": "ඊළඟ",
"lightbox.previous": "පෙර",
"limited_account_hint.action": "කෙසේ හෝ පැතිකඩ පෙන්වන්න",
"lists.account.add": "ලේඛනයට දමන්න",
"lists.account.remove": "ලේඛනයෙන් ඉවතලන්න",
"lists.delete": "ලේඛනය මකන්න",
"lists.edit": "ලේඛනය සංස්කරණය",
"lists.account.add": "ලැයිස්තුවට දමන්න",
"lists.account.remove": "ලැයිස්තුවෙන් ඉවතලන්න",
"lists.delete": "ලැයිස්තුව මකන්න",
"lists.edit": "ලැයිස්තුව සංස්කරණය",
"lists.edit.submit": "සිරැසිය සංශෝධනය",
"lists.new.create": "ලැයිස්තුව එකතු කරන්න",
"lists.new.title_placeholder": "නව ලැයිස්තු මාතෘකාව",
"lists.replies_policy.followed": "අනුගමනය කරන ඕනෑම පරිශීලකයෙක්",
"lists.replies_policy.list": "ලැයිස්තුවේ සාමාජිකයන්",
"lists.new.title_placeholder": "නව ලැයිස්තුවේ සිරැසිය",
"lists.replies_policy.list": "ලැයිස්තුවේ සාමාජිකයින්",
"lists.replies_policy.none": "කිසිවෙක් නැත",
"lists.replies_policy.title": "පිළිතුරු පෙන්වන්න:",
"lists.search": "ඔබ අනුගමනය කරන පුද්ගලයින් අතර සොයන්න",
"lists.subheading": "ඔබගේ ලේඛන",
"load_pending": "{count, plural, one {# නව අයිතමයක්} other {නව අයිතම #ක්}}",
"lists.subheading": "ඔබගේ ලැයිස්තු",
"loading_indicator.label": "පූරණය වෙමින්...",
"media_gallery.toggle_visible": "{number, plural, one {රූපය සඟවන්න} other {පින්තූර සඟවන්න}}",
"mute_modal.duration": "පරාසය",
"mute_modal.hide_notifications": "මෙම පරිශීලකයාගෙන් දැනුම්දීම් සඟවන්නද?",
"mute_modal.indefinite": "අවිනිශ්චිත",
"mute_modal.hide_notifications": "මෙම පුද්ගලයාගේ දැනුම්දීම් සඟවන්නද?",
"navigation_bar.about": "පිළිබඳව",
"navigation_bar.blocks": "අවහිර කළ අය",
"navigation_bar.bookmarks": "පොත්යොමු",
"navigation_bar.community_timeline": "දේශීය කාලරේඛාව",
"navigation_bar.compose": "නව ටූට් සාදන්න",
"navigation_bar.discover": "සොයා ගන්න",
"navigation_bar.community_timeline": "ස්ථානීය කාලරේඛාව",
"navigation_bar.compose": "නව ලිපියක් ලියන්න",
"navigation_bar.direct": "පෞද්ගලික සැඳහුම්",
"navigation_bar.domain_blocks": "අවහිර කළ වසම්",
"navigation_bar.edit_profile": "පැතිකඩ සංස්කරණය",
"navigation_bar.explore": "ගවේෂණය කරන්න",
"navigation_bar.explore": "ගවේශනය",
"navigation_bar.favourites": "ප්‍රියතමයන්",
"navigation_bar.filters": "නිහඬ කළ වචන",
"navigation_bar.follow_requests": "අනුගමන ඉල්ලීම්",
"navigation_bar.follows_and_followers": "අනුගමන හා අනුගාමිකයින්",
"navigation_bar.lists": "ලේඛන",
"navigation_bar.follows_and_followers": "අනුගමන හා අනුගාමික",
"navigation_bar.lists": "ලැයිස්තු",
"navigation_bar.logout": "නික්මෙන්න",
"navigation_bar.mutes": "නිහඬ කළ අය",
"navigation_bar.personal": "පුද්ගලික",
"navigation_bar.pins": "ඇමිණූ ලිපි",
"navigation_bar.preferences": "අභිප්‍රේත",
"navigation_bar.public_timeline": "ෆෙඩරේටඩ් කාලරේඛාව",
"navigation_bar.public_timeline": "ඒකාබද්ධ කාලරේඛාව",
"navigation_bar.search": "සොයන්න",
"navigation_bar.security": "ආරක්ෂාව",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.report": "{name} වාර්තා {target}",
"notification.admin.sign_up": "{name} අත්සන් කර ඇත",
"notification.follow": "{name} ඔබව අනුගමනය කළා",
"notification.follow_request": "{name} ඔබව අනුගමනය කිරීමට ඉල්ලා ඇත",
"notification.mention": "{name} ඔබව සඳහන් කර ඇත",
"notification.own_poll": "ඔබගේ මත විමසුම නිමයි",
"notification.poll": "ඔබ ඡන්දය දුන් මත විමසුමක් නිමයි",
"notification.reblog": "{name} ඔබේ තත්ත්වය ඉහළ නැංවීය",
"notification.status": "{name} දැන් පළ කළා",
"notification.update": "{name} පළ කිරීමක් සංස්කරණය කළා",
"notification.update": "{name} ලිපියක් සංස්කරණය කළා",
"notifications.clear": "දැනුම්දීම් මකන්න",
"notifications.clear_confirmation": "ඔබට ඔබගේ සියලු දැනුම්දීම් ස්ථිරවම හිස් කිරීමට අවශ්‍ය බව විශ්වාසද?",
"notifications.clear_confirmation": "දැනුම්දීම් සියල්ල හිස් කිරීමට වුවමනා ද?",
"notifications.column_settings.admin.report": "නව වාර්තා:",
"notifications.column_settings.admin.sign_up": "නව ලියාපදිංචි:",
"notifications.column_settings.alert": "වැඩතල දැනුම්දීම්",
"notifications.column_settings.favourite": "ප්‍රියතමයන්:",
"notifications.column_settings.filter_bar.advanced": "සියළු ප්‍රවර්ග පෙන්වන්න",
"notifications.column_settings.filter_bar.category": "ඉක්මන් පෙරහන් තීරුව",
"notifications.column_settings.filter_bar.show_bar": "පෙරහන් තීරුව පෙන්වන්න",
"notifications.column_settings.follow": "නව අනුගාමිකයින්:",
"notifications.column_settings.follow_request": "නව අනුගමන ඉල්ලීම්:",
"notifications.column_settings.mention": "සැඳහුම්:",
"notifications.column_settings.poll": "ඡන්ද ප්‍රතිඵල:",
"notifications.column_settings.poll": "මත විමසුමේ ප්‍රතිඵල:",
"notifications.column_settings.push": "තල්ලු දැනුම්දීම්",
"notifications.column_settings.reblog": "තල්ලු කිරීම්:",
"notifications.column_settings.show": "තීරුවෙහි පෙන්වන්න",
"notifications.column_settings.sound": "ශබ්දය වාදනය",
"notifications.column_settings.status": "නව ලිපි:",
@ -319,38 +311,26 @@
"notifications.column_settings.unread_notifications.highlight": "නොකියවූ දැනුම්දීම් ඉස්මතු කරන්න",
"notifications.column_settings.update": "සංශෝධන:",
"notifications.filter.all": "සියල්ල",
"notifications.filter.boosts": "බූස්ට් කරයි",
"notifications.filter.favourites": "ප්‍රියතමයන්",
"notifications.filter.follows": "අනුගමනය",
"notifications.filter.mentions": "සැඳහුම්",
"notifications.filter.polls": "ඡන්ද ප්‍රතිඵල",
"notifications.filter.statuses": "ඔබ අනුගමනය කරන පුද්ගලයින්ගෙන් යාවත්කාලීන",
"notifications.grant_permission": "අවසර දෙන්න.",
"notifications.filter.polls": "මත විමසුමේ ප්‍රතිඵල",
"notifications.group": "දැනුම්දීම් {count}",
"notifications.mark_as_read": "සියළු දැනුම්දීම් කියවූ බව යොදන්න",
"notifications.permission_denied": "කලින් ප්‍රතික්ෂේප කළ බ්‍රවුසර අවසර ඉල්ලීම හේතුවෙන් ඩෙස්ක්ටොප් දැනුම්දීම් නොමැත",
"notifications.permission_denied_alert": "බ්‍රවුසර අවසරය පෙර ප්‍රතික්ෂේප කර ඇති බැවින්, ඩෙස්ක්ටොප් දැනුම්දීම් සබල කළ නොහැක",
"notifications.permission_required": "අවශ්‍ය අවසරය ලබා දී නොමැති නිසා ඩෙස්ක්ටොප් දැනුම්දීම් නොමැත.",
"notifications_permission_banner.enable": "වැඩතල දැනුම්දීම් සබල කරන්න",
"notifications_permission_banner.how_to_control": "Mastodon විවෘතව නොමැති විට දැනුම්දීම් ලබා ගැනීමට, ඩෙස්ක්ටොප් දැනුම්දීම් සබල කරන්න. ඔබට ඒවා සක්‍රිය කළ පසු ඉහත {icon} බොත්තම හරහා ඩෙස්ක්ටොප් දැනුම්දීම් ජනනය කරන්නේ කුමන ආකාරයේ අන්තර්ක්‍රියාද යන්න නිවැරදිව පාලනය කළ හැක.",
"notifications_permission_banner.title": "කිසිම දෙයක් අතපසු කරන්න එපා",
"onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon",
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
"onboarding.start.skip": "Want to skip right ahead?",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
"onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}",
"onboarding.steps.publish_status.body": "Say hello to the world.",
"onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.",
"onboarding.steps.setup_profile.title": "Customize your profile",
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
"notifications_permission_banner.title": "කිසිවක් අතපසු නොකරන්න",
"onboarding.compose.template": "ආයුබෝ #මාස්ටඩන්!",
"onboarding.share.title": "ඔබගේ පැතිකඩ බෙදාගන්න",
"onboarding.steps.publish_status.title": "පළමු ලිපිය පළ කරන්න",
"onboarding.steps.setup_profile.title": "ඔබගේ පැතිකඩ අභිරුචිකරණය",
"onboarding.steps.share_profile.body": "මාස්ටඩන් හි ඔබව සොයා ගන්නේ කෙසේදැයි යහළුවන්ට දන්වන්න",
"onboarding.steps.share_profile.title": "ඔබගේ පැතිකඩ බෙදාගන්න",
"poll.closed": "වසා ඇත",
"poll.refresh": "නැවුම් කරන්න",
"poll.reveal": "ප්‍රතිඵල බලන්න",
"poll.vote": "ඡන්දය",
"poll.voted": "ඔබ මෙම උත්තරයට ඡන්දය දී ඇත",
"poll_button.add_poll": "මත විමසුමක් යොදන්න",
"poll_button.add_poll": "මත විමසුමක් අරඹන්න",
"poll_button.remove_poll": "මත විමසුම ඉවතලන්න",
"privacy.change": "ලිපියේ රහස්‍යතාව සංශෝධනය",
"privacy.direct.long": "සඳහන් කළ අයට දිස්වෙයි",
@ -363,6 +343,7 @@
"refresh": "නැවුම් කරන්න",
"regeneration_indicator.label": "පූරණය වෙමින්…",
"relative_time.days": "ද. {number}",
"relative_time.full.days": "{number, plural, one {දවස් #} other {දවස් #}} කට පෙර",
"relative_time.full.hours": "{number, plural, one {පැය #} other {පැය #}} කට පෙර",
"relative_time.full.just_now": "මේ දැන්",
"relative_time.full.minutes": "{number, plural, one {විනාඩි #} other {විනාඩි #}} කට පෙර",
@ -377,21 +358,20 @@
"report.categories.other": "වෙනත්",
"report.categories.spam": "ආයාචිත",
"report.categories.violation": "අන්තර්ගතය නිසා සේවාදායකයේ නීතියක් හෝ කිහිපයක් කඩ වේ",
"report.category.subtitle": "හොඳම ගැලපීම තෝරන්න",
"report.category.title": "මෙම {type}සමඟ සිදුවන්නේ කුමක්දැයි අපට කියන්න",
"report.category.title_account": "පැතිකඩ",
"report.category.title_status": "තැපැල්",
"report.category.title_status": "ලිපිය",
"report.close": "අහවරයි",
"report.comment.title": "අප දැනගත යුතු යැයි ඔබ සිතන තවත් යමක් තිබේද?",
"report.forward": "{target} වෙත හරවන්න",
"report.forward_hint": "ගිණුම වෙනත් සේවාදායකයකින්. වාර්තාවේ නිර්නාමික පිටපතක් එතනටත් එවන්න?",
"report.mute": "නිහඬ",
"report.mute_explanation": "ඔබට ඔවුන්ගේ පෝස්ට් නොපෙනේ. ඔවුන්ට තවමත් ඔබව අනුගමනය කිරීමට සහ ඔබේ පළ කිරීම් දැකීමට හැකි අතර ඒවා නිශ්ශබ්ද කර ඇති බව නොදැනේ.",
"report.mute_explanation": "ඔබ ඔවුන්ගේ ලිපි නොදකිනු ඇත. ඔවුන්ට තවමත් ඔබව අනුගමනයට සහ ඔබගේ ලිපි දැකීමට හැකි අතර ඔවුන්ව නිහඬ කර ඇති බව දැන ගැනීමට නොහැකිය.",
"report.next": "ඊළඟ",
"report.placeholder": "අමතර අදහස්",
"report.reasons.dislike": "මම එයට අකැමතියි",
"report.reasons.dislike_description": "ඒක බලන්න ඕන දෙයක් නෙවෙයි",
"report.reasons.other": "ඒක වෙන දෙයක්",
"report.reasons.other": "එය වෙනත් දෙයක්",
"report.reasons.other_description": "ගැටළුව වෙනත් වර්ග වලට නොගැලපේ",
"report.reasons.spam": "එය අයාචිතයි",
"report.reasons.spam_description": "අනිෂ්ට සබැඳි, ව්‍යාජ නියැලීම, හෝ පුනරාවර්තන පිළිතුරු",
@ -400,23 +380,24 @@
"report.rules.subtitle": "අදාළ සියල්ල තෝරන්න",
"report.rules.title": "කුමන නීති උල්ලංඝනය කරන්නේද?",
"report.statuses.subtitle": "අදාළ සියල්ල තෝරන්න",
"report.statuses.title": "මෙම වාර්තාව උපස්ථ කරන පෝස්ට් තිබේද?",
"report.statuses.title": "මෙම වාර්තාව උපස්ථ කළ ලිපි තිබේ ද?",
"report.submit": "යොමන්න",
"report.target": "වාර්තාව {target}",
"report.thanks.take_action": "Mastodon හි ඔබ දකින දේ පාලනය කිරීම සඳහා ඔබේ විකල්ප මෙන්න:",
"report.target": "{target} වාර්තා කිරීම",
"report.thanks.take_action": "මාස්ටඩන් හි ඔබ දකින දෑ පාලනයට තිබෙන විකල්ප:",
"report.thanks.take_action_actionable": "අපි මෙය සමාලෝචනය කරන අතරතුර, ඔබට @{name}ට එරෙහිව පියවර ගත හැක:",
"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": "ආයාචිත",
"report_notification.categories.violation": "නීතිය කඩ කිරීම",
"report_notification.open": "විවෘත වාර්තාව",
"search.placeholder": "සොයන්න",
"search.quick_action.open_url": "ලිපිනය මාස්ටඩන්හි අරින්න",
"search.search_or_paste": "සොයන්න හෝ ඒ.ස.නි. අලවන්න",
"search_results.all": "සියල්ල",
"search_results.hashtags": "හැෂ් ටැග්",
"search_results.nothing_found": "මෙම සෙවුම් පද සඳහා කිසිවක් සොයාගත නොහැකි විය",
"search_results.see_all": "සියල්ල බලන්න",
"search_results.statuses": "ලිපි",
@ -424,24 +405,23 @@
"server_banner.learn_more": "තව දැනගන්න",
"sign_in_banner.create_account": "ගිණුමක් සාදන්න",
"sign_in_banner.sign_in": "පිවිසෙන්න",
"status.admin_account": "@{name}සඳහා මධ්‍යස්ථ අතුරුමුහුණත විවෘත කරන්න",
"status.admin_status": "මධ්‍යස්ථ අතුරුමුහුණතෙහි මෙම තත්ත්වය විවෘත කරන්න",
"status.admin_status": "මෙම ලිපිය මැදිහත්කරණ අතුරුමුහුණතෙහි අරින්න",
"status.block": "@{name} අවහිර",
"status.bookmark": "පොත්යොමුවක්",
"status.cannot_reblog": "මෙම තනතුර වැඩි කළ නොහැක",
"status.copy": "තත්වයට සබැඳිය පිටපත් කරන්න",
"status.delete": "මකන්න",
"status.detailed_status": "විස්තරාත්මක සංවාද දැක්ම",
"status.edit": "සංස්කරණය",
"status.edited": "සංශෝධිතයි {date}",
"status.edited_x_times": "සංශෝධිතයි {count, plural, one {වාර {count}} other {වාර {count}}}",
"status.embed": "කාවැද්දූ",
"status.filter": "මෙම ලිපිය පෙරන්න",
"status.filtered": "පෙරන ලද",
"status.hide": "ලිපිය සඟවන්න",
"status.history.created": "{name} නිර්මාණය {date}",
"status.history.edited": "{name} සංස්කරණය {date}",
"status.load_more": "තව පූරණය",
"status.media_hidden": "මාධ්‍ය සඟවා ඇත",
"status.mention": "@{name} සැඳහුම",
"status.mention": "@{name} සඳහන් කරන්ක",
"status.more": "තව",
"status.mute": "@{name} නිහඬව",
"status.mute_conversation": "සංවාදය නිහඬව",
@ -449,14 +429,10 @@
"status.pin": "පැතිකඩට අමුණන්න",
"status.pinned": "ඇමිණූ ලිපියකි",
"status.read_more": "තව කියවන්න",
"status.reblog": "බූස්ට් කරන්න",
"status.reblog_private": "මුල් දෘශ්‍යතාව සමඟ වැඩි කරන්න",
"status.reblogs.empty": "තාම කවුරුත් මේ toot එක boost කරලා නැහැ. යමෙකු එසේ කළ විට, ඔවුන් මෙහි පෙන්වනු ඇත.",
"status.redraft": "මකන්න සහ නැවත කෙටුම්පත",
"status.remove_bookmark": "පොත්යොමුව ඉවතලන්න",
"status.reply": "පිළිතුරු",
"status.replyAll": "නූලට පිළිතුරු දෙන්න",
"status.report": "@{name} වාර්තා",
"status.report": "@{name} වාර්තා කරන්න",
"status.sensitive_warning": "සංවේදී අන්තර්ගතයකි",
"status.share": "බෙදාගන්න",
"status.show_filter_reason": "කෙසේ වුවද පෙන්වන්න",
@ -464,29 +440,29 @@
"status.show_less_all": "සියල්ල අඩුවෙන් පෙන්වන්න",
"status.show_more": "තවත් පෙන්වන්න",
"status.show_more_all": "සියල්ල වැඩියෙන් පෙන්වන්න",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
"status.translate": "පරිවර්තනය",
"status.translated_from_with": "{provider} මගින් {lang} භාෂාවෙන් පරිවර්තනය කර ඇත",
"status.uncached_media_warning": "පෙරදසුන නැත",
"status.unmute_conversation": "සංවාදය නොනිහඬ",
"status.unpin": "පැතිකඩෙන් ගළවන්න",
"subscribed_languages.save": "වෙනස්කම් සුරකින්න",
"tabs_bar.home": "මුල් පිටුව",
"tabs_bar.notifications": "දැනුම්දීම්",
"time_remaining.days": "{number, plural, one {# දින} other {# දින}} අත්හැරියා",
"time_remaining.hours": "{number, plural, one {# පැය} other {# පැය}} අත්හැරියා",
"time_remaining.minutes": "{number, plural, one {විනාඩි #} other {# මිනිත්තු}} අත්හැරියා",
"time_remaining.moments": "ඉතිරිව ඇති මොහොත",
"time_remaining.seconds": "{number, plural, one {# දෙවැනි} other {# තත්පර}} අත්හැරියා",
"time_remaining.days": "{number, plural, one {දවස් #} other {දවස් #}} ක් ඉතිරිය",
"time_remaining.hours": "{number, plural, one {පැය #} other {පැය #}} ක් ඉතිරිය",
"time_remaining.minutes": "{number, plural, one {විනාඩි #} other {විනාඩි #}} ක් ඉතිරිය",
"time_remaining.seconds": "{number, plural, one {තත්පර #} other {තත්පර #}} ක් ඉතිරිය",
"timeline_hint.remote_resource_not_displayed": "වෙනත් සේවාදායකයන්ගෙන් {resource} දර්ශනය නොවේ.",
"timeline_hint.resources.followers": "අනුගාමිකයින්",
"timeline_hint.resources.follows": "අනුගමන",
"timeline_hint.resources.follows": "අනුගමන",
"timeline_hint.resources.statuses": "පරණ ලිපි",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"trends.trending_now": "දැන් ප්‍රවණතාවය",
"trends.trending_now": "දැන් නැගී එන",
"ui.beforeunload": "ඔබ මාස්ටඩන් හැර ගියහොත් කටුපිටපත අහිමි වේ.",
"units.short.billion": "{count}බී",
"units.short.million": "ද.ල. {count}",
"units.short.thousand": "{count}කි",
"upload_area.title": "උඩුගතයට ඇද දමන්න",
"upload_button.label": "රූප, දෘශ්‍යක හෝ හඬපට යොදන්න",
"upload_button.label": "රූප, දෘශ්‍යක හෝ හඬපට අමුණන්න",
"upload_error.limit": "සීමාව ඉක්මවා ඇත.",
"upload_error.poll": "මත විමසුම් සමඟ ගොනු යෙදීමට ඉඩ නොදේ.",
"upload_form.audio_description": "නොඇසෙන අය සඳහා විස්තර කරන්න",
@ -507,6 +483,7 @@
"upload_modal.preview_label": "පෙරදසුන ({ratio})",
"upload_progress.label": "උඩුගත වෙමින්...",
"upload_progress.processing": "සැකසෙමින්…",
"username.taken": "නම දැනටමත් අරගෙන ඇත",
"video.close": "දෘශ්‍යකය වසන්න",
"video.download": "ගොනුව බාගන්න",
"video.exit_fullscreen": "පූර්ණ තිරයෙන් පිටවන්න",

View file

@ -79,16 +79,16 @@
"admin.impact_report.instance_accounts": "Профілі облікових записів буде видалено",
"admin.impact_report.instance_followers": "Підписники, яких можуть втратити наші користувачі",
"admin.impact_report.instance_follows": "Підписники, яких можуть втратити їхні користувачі",
"admin.impact_report.title": "Наслідки",
"alert.rate_limited.message": "Спробуйте ще раз через {retry_time, time, medium}.",
"admin.impact_report.title": "Підсумки впливу",
"alert.rate_limited.message": "Спробуйте ще раз за {retry_time, time, medium}.",
"alert.rate_limited.title": "Швидкість обмежена",
"alert.unexpected.message": "Сталася неочікувана помилка.",
"alert.unexpected.title": "Ой!",
"announcement.announcement": "Оголошення",
"attachments_list.unprocessed": "(не оброблено)",
"audio.hide": "Сховати аудіо",
"autosuggest_hashtag.per_week": "{count} в тиждень",
"boost_modal.combo": "Ви можете натиснути {combo}, щоб пропустити це наступного разу",
"autosuggest_hashtag.per_week": "{count} на тиждень",
"boost_modal.combo": "Ви можете натиснути {combo}, щоби пропустити це наступного разу",
"bundle_column_error.copy_stacktrace": "Копіювати звіт про помилку",
"bundle_column_error.error.body": "Неможливо показати запитану сторінку. Це може бути спричинено помилкою у нашому коді, або через проблему сумісності з браузером.",
"bundle_column_error.error.title": "О, ні!",
@ -140,7 +140,7 @@
"compose.saved.body": "Допис збережено.",
"compose_form.direct_message_warning_learn_more": "Дізнатися більше",
"compose_form.encryption_warning": "Дописи на Mastodon не захищені шифруванням. Не поширюйте жодну делікатну інформацію.",
"compose_form.hashtag_warning": ей допис не буде зображений у жодній стрічці гештеґу, оскільки він прихований. Тільки публічні дописи можуть бути знайдені за гештеґом.",
"compose_form.hashtag_warning": ього допису не буде під жодним гештеґом, оскільки він не є загальнодоступним. За гештеґом можна шукати лише публічні дописи.",
"compose_form.lock_disclaimer": "Ваш обліковий запис не {locked}. Будь-який користувач може підписатися на вас та переглядати ваші дописи для підписників.",
"compose_form.lock_disclaimer.lock": "приватний",
"compose_form.placeholder": "Що у вас на думці?",
@ -151,7 +151,7 @@
"compose_form.poll.switch_to_multiple": "Дозволити вибір декількох відповідей",
"compose_form.poll.switch_to_single": "Перемкнути у режим вибору однієї відповіді",
"compose_form.publish": "Опублікувати",
"compose_form.publish_form": "Опублікувати",
"compose_form.publish_form": "Новий допис",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Зберегти зміни",
"compose_form.sensitive.hide": "{count, plural, one {Позначити медіа делікатним} other {Позначити медіа делікатними}}",
@ -206,7 +206,7 @@
"dismissable_banner.explore_tags": "Ці хештеги зараз набирають популярності серед людей на цьому та інших серверах децентралізованої мережі. Хештеги, які використовуються більшою кількістю людей, мають вищий рейтинг.",
"dismissable_banner.public_timeline": "Це найновіші загальнодоступні дописи від людей в соціальній мережі, на які підписані люди в {domain}.",
"embed.instructions": "Вбудуйте цей допис до вашого вебсайту, скопіювавши код нижче.",
"embed.preview": "Ось як він виглядатиме:",
"embed.preview": "Ось який вигляд це матиме:",
"emoji_button.activity": "Діяльність",
"emoji_button.clear": "Очистити",
"emoji_button.custom": "Власні",
@ -227,7 +227,7 @@
"empty_column.account_unavailable": "Профіль недоступний",
"empty_column.blocks": "Ви ще не заблокували жодного користувача.",
"empty_column.bookmarked_statuses": "У вас ще немає дописів у закладках. Коли ви щось додасте до закладок, воно з'явиться тут.",
"empty_column.community": "Локальна стрічка пуста. Напишіть щось, щоб розігріти народ!",
"empty_column.community": "Локальна стрічка порожня. Напишіть щось, щоб розігріти народ!",
"empty_column.direct": "У вас ще немає жодних особистих згадок. Коли ви надсилаєте чи отримуєте повідомлення, воно з'явиться тут.",
"empty_column.domain_blocks": "Тут поки немає прихованих доменів.",
"empty_column.explore_statuses": "Нема нічого популярного. Подивіться пізніше!",
@ -240,10 +240,10 @@
"empty_column.list": "Цей список порожній. Коли його учасники додадуть нові дописи, вони з'являться тут.",
"empty_column.lists": "У вас ще немає списків. Коли ви їх створите, вони з'являться тут.",
"empty_column.mutes": "Ви ще не приховали жодного користувача.",
"empty_column.notifications": "У вас ще немає сповіщень. Переписуйтесь з іншими користувачами, щоб почати розмову.",
"empty_column.notifications": "У вас ще немає сповіщень. Коли інші люди почнуть взаємодіяти з вами, ви побачите їх тут.",
"empty_column.public": "Тут поки нічого немає! Опублікуйте щось, або вручну підпишіться на користувачів інших серверів, щоб заповнити стрічку",
"error.unexpected_crash.explanation": "Через помилку у нашому коді або несумісність браузера, ця сторінка не може бути зображена коректно.",
"error.unexpected_crash.explanation_addons": "Неможливо правильно показати цю сторінку. Ймовірно, цю помилку викликано додатком браузера або автоматичним засобом перекладу.",
"error.unexpected_crash.explanation_addons": "Неможливо правильно показати цю сторінку. Ймовірно, цю помилку спричинило розширення браузера або автоматичний засіб перекладу.",
"error.unexpected_crash.next_steps": "Спробуйте перезавантажити сторінку. Якщо це не допоможе, ви все ще зможете використовувати Mastodon через інший браузер або рідний застосунок.",
"error.unexpected_crash.next_steps_addons": "Спробуйте їх вимкнути та оновити сторінку. Якщо це не допомагає, ви можете використовувати Mastodon через інший браузер або окремий застосунок.",
"errors.unexpected_crash.copy_stacktrace": "Скопіювати трасування стека у буфер обміну",
@ -394,7 +394,7 @@
"moved_to_account_banner.text": "Ваш обліковий запис {disabledAccount} наразі вимкнений, оскільки вас перенесено до {movedToAccount}.",
"mute_modal.duration": "Тривалість",
"mute_modal.hide_notifications": "Сховати сповіщення цього користувача?",
"mute_modal.indefinite": "Назавжди",
"mute_modal.indefinite": "Невизначений строк",
"navigation_bar.about": "Про застосунок",
"navigation_bar.advanced_interface": "Відкрити в розширеному вебінтерфейсі",
"navigation_bar.blocks": "Заблоковані користувачі",
@ -428,7 +428,7 @@
"notification.follow": "{name} підписалися на вас",
"notification.follow_request": "{name} відправили запит на підписку",
"notification.mention": "{name} згадали вас",
"notification.own_poll": "Ваше опитування завершено",
"notification.own_poll": "Ваше опитування завершилося",
"notification.poll": "Опитування, у якому ви голосували, скінчилося",
"notification.reblog": "{name} поширює ваш допис",
"notification.status": "{name} щойно дописує",
@ -480,7 +480,7 @@
"onboarding.follows.title": "Персоналізуйте домашню стрічку",
"onboarding.share.lead": "Розкажіть людям про те, як вони можуть знайти вас на Mastodon!",
"onboarding.share.message": "Я {username} на #Mastodon! Стежте за мною на {url}",
"onboarding.share.next_steps": "Можливі наступні кроки:",
"onboarding.share.next_steps": "Можливі такі кроки:",
"onboarding.share.title": "Поділитися своїм профілем",
"onboarding.start.lead": "Тепер ви — частина Mastodon, унікальної децентралізованої платформи соціальних медіа, де ви, а не алгоритми керують вашими вподобаннями. Розпочнімо роботу:",
"onboarding.start.skip": "Хочете пропустити?",
@ -694,7 +694,7 @@
"units.short.thousand": "{count} тис",
"upload_area.title": "Перетягніть сюди, щоб завантажити",
"upload_button.label": "Додати зображення, відео або аудіо",
"upload_error.limit": "Ліміт завантаження файлів перевищено.",
"upload_error.limit": "Ви перевищили ліміт завантаження файлів.",
"upload_error.poll": "Не можна завантажувати файли до опитувань.",
"upload_form.audio_description": "Опишіть для людей із вадами слуху",
"upload_form.description": "Опишіть для людей з вадами зору",
@ -713,7 +713,7 @@
"upload_modal.hint": "Клацніть або перетягніть коло на превʼю, щоб обрати точку, яку буде завжди видно на мініатюрах.",
"upload_modal.preparing_ocr": "Підготовка OCR…",
"upload_modal.preview_label": "Переглянути ({ratio})",
"upload_progress.label": "Завантаження...",
"upload_progress.label": "Вивантаження...",
"upload_progress.processing": "Обробка…",
"username.taken": "Це ім'я користувача вже зайнято. Спробуйте інше",
"video.close": "Закрити відео",

View file

@ -262,17 +262,20 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
emoji = CustomEmoji.find_by(shortcode: custom_emoji_parser.shortcode, domain: @account.domain)
return unless emoji.nil? || custom_emoji_parser.image_remote_url != emoji.image_remote_url || (custom_emoji_parser.updated_at && custom_emoji_parser.updated_at >= emoji.updated_at)
return unless emoji.nil? ||
custom_emoji_parser.image_remote_url != emoji.image_remote_url ||
(custom_emoji_parser.updated_at && custom_emoji_parser.updated_at >= emoji.updated_at) ||
custom_emoji_parser.license != emoji.license
begin
emoji ||= CustomEmoji.new(
domain: @account.domain,
shortcode: custom_emoji_parser.shortcode,
uri: custom_emoji_parser.uri,
is_sensitive: custom_emoji_parser.is_sensitive,
license: custom_emoji_parser.license
uri: custom_emoji_parser.uri
)
emoji.image_remote_url = custom_emoji_parser.image_remote_url
emoji.license = custom_emoji_parser.license
emoji.is_sensitive = custom_emoji_parser.is_sensitive
emoji.save
rescue Seahorse::Client::NetworkingError => e
Rails.logger.warn "Error storing emoji: #{e}"
@ -506,7 +509,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
nil
elsif audience_searchable_by.any? { |uri| ActivityPub::TagManager.instance.public_collection?(uri) }
:public
elsif audience_searchable_by.include?('as:Limited')
elsif audience_searchable_by.include?('kmyblue:Limited') || audience_searchable_by.include?('as:Limited')
:limited
elsif audience_searchable_by.include?(@account.followers_url)
:private
@ -572,7 +575,7 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
:public
elsif audience_cc.any? { |cc| ActivityPub::TagManager.instance.public_collection?(cc) }
:unlisted
elsif audience_to.include?('as:LoginOnly') || audience_to.include?('LoginUser')
elsif audience_to.include?('kmyblue:LoginOnly') || audience_to.include?('as:LoginOnly') || audience_to.include?('LoginUser')
:login
elsif audience_to.include?(@account.followers_url)
:private

View file

@ -7,7 +7,7 @@ class ActivityPub::Activity::Like < ActivityPub::Activity
def perform
@original_status = status_from_uri(object_uri)
return if @original_status.nil? || delete_arrived_first?(@json['id']) || reject_favourite?
return if @original_status.nil? || delete_arrived_first?(@json['id']) || block_domain? || reject_favourite?
if shortcode.nil? || !Setting.enable_emoji_reaction
process_favourite
@ -34,19 +34,11 @@ class ActivityPub::Activity::Like < ActivityPub::Activity
def process_emoji_reaction
return if !@original_status.account.local? && !Setting.receive_other_servers_emoji_reaction
# custom emoji
emoji = nil
if emoji_tag.present?
return if emoji_tag['id'].blank? || emoji_tag['name'].blank? || emoji_tag['icon'].blank? || emoji_tag['icon']['url'].blank?
image_url = emoji_tag['icon']['url']
uri = emoji_tag['id']
domain = URI.split(uri)[2]
emoji = CustomEmoji.find_or_create_by!(shortcode: shortcode, domain: domain) do |emoji_data|
emoji_data.uri = uri
emoji_data.image_remote_url = image_url
end
Trends.statuses.register(@original_status)
emoji = process_emoji(emoji_tag)
return if emoji.nil?
end
reaction = nil
@ -58,6 +50,7 @@ class ActivityPub::Activity::Like < ActivityPub::Activity
reaction = @original_status.emoji_reactions.create!(account: @account, name: shortcode, custom_emoji: emoji, uri: @json['id'])
end
Trends.statuses.register(@original_status)
write_stream(reaction)
if @original_status.account.local?
@ -95,6 +88,47 @@ class ActivityPub::Activity::Like < ActivityPub::Activity
end
end
def process_emoji(tag)
custom_emoji_parser = ActivityPub::Parser::CustomEmojiParser.new(tag)
return if custom_emoji_parser.shortcode.blank? || custom_emoji_parser.image_remote_url.blank?
domain = tag['domain'] || URI.split(custom_emoji_parser.uri)[2] || @account.domain
domain = nil if domain == Rails.configuration.x.local_domain || domain == Rails.configuration.x.web_domain
return if domain.present? && skip_download?(domain)
emoji = CustomEmoji.find_by(shortcode: custom_emoji_parser.shortcode, domain: domain)
return emoji unless emoji.nil? ||
custom_emoji_parser.image_remote_url != emoji.image_remote_url ||
(custom_emoji_parser.updated_at && custom_emoji_parser.updated_at >= emoji.updated_at) ||
custom_emoji_parser.license != emoji.license
begin
emoji ||= CustomEmoji.new(
domain: domain,
shortcode: custom_emoji_parser.shortcode,
uri: custom_emoji_parser.uri
)
emoji.image_remote_url = custom_emoji_parser.image_remote_url
emoji.license = custom_emoji_parser.license
emoji.is_sensitive = custom_emoji_parser.is_sensitive
emoji.save
rescue Seahorse::Client::NetworkingError => e
Rails.logger.warn "Error storing emoji: #{e}"
end
emoji
end
def skip_download?(domain)
DomainBlock.reject_media?(domain)
end
def block_domain?
DomainBlock.blocked?(@account.domain)
end
def misskey_favourite?
misskey_shortcode = @json['_misskey_reaction']&.delete(':')

View file

@ -30,6 +30,6 @@ class ActivityPub::Parser::CustomEmojiParser
end
def license
@json['license']
@json['license'] || @json['licence']
end
end

View file

@ -77,7 +77,7 @@ class ActivityPub::Parser::StatusParser
:public
elsif audience_cc.any? { |cc| ActivityPub::TagManager.instance.public_collection?(cc) }
:unlisted
elsif audience_to.include?('as:LoginOnly') || audience_to.include?('LoginUser')
elsif audience_to.include?('kmyblue:LoginOnly') || audience_to.include?('as:LoginOnly') || audience_to.include?('LoginUser')
:login
elsif audience_to.include?(@magic_values[:followers_collection])
:private

View file

@ -99,7 +99,7 @@ class ActivityPub::TagManager
when 'unlisted', 'public_unlisted', 'private'
[account_followers_url(status.account)]
when 'login'
[account_followers_url(status.account), 'as:LoginOnly', 'LoginUser']
[account_followers_url(status.account), 'as:LoginOnly', 'kmyblue:LoginOnly', 'LoginUser']
when 'direct'
if status.account.silenced?
# Only notify followers if the account is locally silenced
@ -243,7 +243,7 @@ class ActivityPub::TagManager
when 'direct'
status.conversation_id.present? ? [uri_for(status.conversation)] : []
when 'limited'
['as:Limited']
['as:Limited', 'kmyblue:Limited']
else
[]
end
@ -258,7 +258,7 @@ class ActivityPub::TagManager
when 'private', 'direct'
[account_followers_url(account)]
when 'limited'
['as:Limited']
['as:Limited', 'kmyblue:Limited']
else
[]
end

View file

@ -70,7 +70,7 @@ class Account < ApplicationRecord
BACKGROUND_REFRESH_INTERVAL = 1.week.freeze
USERNAME_RE = /[a-z0-9_]+([a-z0-9_.-]+[a-z0-9_]+)?/i
MENTION_RE = %r{(?<=^|[^/[:word:]])@((#{USERNAME_RE})(?:@[[:word:].-]+[[:word:]]+)?)}i
MENTION_RE = %r{(?<![=/[:word:]])@((#{USERNAME_RE})(?:@[[:word:].-]+[[:word:]]+)?)}i
URL_PREFIX_RE = %r{\Ahttp(s?)://[^/]+}
USERNAME_ONLY_RE = /\A#{USERNAME_RE}\z/i
@ -132,7 +132,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)) }

View file

@ -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

View file

@ -437,8 +437,6 @@ class Status < ApplicationRecord
end
def compute_searchability_activitypub
return 'private' if public_unlisted_visibility? && public_searchability?
compute_searchability
end

View file

@ -5,7 +5,9 @@ class ActivityPub::EmojiSerializer < ActivityPub::Serializer
context_extensions :emoji
attributes :id, :type, :name, :updated
attributes :id, :type, :domain, :name, :is_sensitive, :updated
attribute :license, if: -> { object.license.present? }
has_one :icon, serializer: ActivityPub::ImageSerializer
@ -17,6 +19,10 @@ class ActivityPub::EmojiSerializer < ActivityPub::Serializer
'Emoji'
end
def domain
object.domain.presence || Rails.configuration.x.local_domain
end
def icon
object.image
end

View file

@ -272,7 +272,7 @@ class ActivityPub::ProcessAccountService < BaseService
:public
elsif audience_searchable_by.include?(@account.followers_url)
:private
elsif audience_searchable_by.include?('as:Limited')
elsif audience_searchable_by.include?('kmyblue:Limited') || audience_searchable_by.include?('as:Limited')
:limited
else
:direct

View file

@ -239,11 +239,16 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
emoji = CustomEmoji.find_by(shortcode: custom_emoji_parser.shortcode, domain: @account.domain)
next unless emoji.nil? || custom_emoji_parser.image_remote_url != emoji.image_remote_url || (custom_emoji_parser.updated_at && custom_emoji_parser.updated_at >= emoji.updated_at)
next unless emoji.nil? ||
custom_emoji_parser.image_remote_url != emoji.image_remote_url ||
(custom_emoji_parser.updated_at && custom_emoji_parser.updated_at >= emoji.updated_at) ||
custom_emoji_parser.license != emoji.license
begin
emoji ||= CustomEmoji.new(domain: @account.domain, shortcode: custom_emoji_parser.shortcode, uri: custom_emoji_parser.uri, is_sensitive: custom_emoji_parser.is_sensitive, license: custom_emoji_parser.license)
emoji ||= CustomEmoji.new(domain: @account.domain, shortcode: custom_emoji_parser.shortcode, uri: custom_emoji_parser.uri)
emoji.image_remote_url = custom_emoji_parser.image_remote_url
emoji.license = custom_emoji_parser.license
emoji.is_sensitive = custom_emoji_parser.is_sensitive
emoji.save
rescue Seahorse::Client::NetworkingError => e
Rails.logger.warn "Error storing emoji: #{e}"

View file

@ -22,7 +22,6 @@ si:
explanation: ඔබ මෙම ඊමේල් ලිපිනය සමඟ %{host} හි ගිණුමක් සාදා ඇත. ඔබ එය සක්‍රිය කිරීමට එක ක්ලික් කිරීමක් ඇත. මේ ඔබ නොවේ නම්, කරුණාකර මෙම විද්‍යුත් තැපෑල නොසලකා හරින්න.
explanation_when_pending: ඔබ මෙම විද්‍යුත් තැපැල් ලිපිනය සමඟ %{host} වෙත ආරාධනාවක් සඳහා ඉල්ලුම් කළා. ඔබ ඔබගේ විද්‍යුත් තැපැල් ලිපිනය තහවුරු කළ පසු, අපි ඔබගේ අයදුම්පත සමාලෝචනය කරන්නෙමු. ඔබගේ විස්තර වෙනස් කිරීමට හෝ ඔබගේ ගිණුම මකා දැමීමට ඔබට පුරනය විය හැක, නමුත් ඔබගේ ගිණුම අනුමත වන තුරු ඔබට බොහෝ කාර්යයන් වෙත ප්‍රවේශ විය නොහැක. ඔබගේ අයදුම්පත ප්‍රතික්ෂේප කළහොත්, ඔබගේ දත්ත ඉවත් කරනු ඇත, එබැවින් ඔබෙන් වැඩිදුර ක්‍රියාමාර්ග අවශ්‍ය නොවනු ඇත. මේ ඔබ නොවේ නම්, කරුණාකර මෙම විද්‍යුත් තැපෑල නොසලකා හරින්න.
extra_html: කරුණාකර <a href="%{terms_path}">සේවාදායකයේ නීති</a> සහ <a href="%{policy_path}">අපගේ සේවා කොන්දේසි</a>ද පරීක්ෂා කරන්න.
subject: 'Mastodon: %{instance}සඳහා තහවුරු කිරීමේ උපදෙස්'
title: වි. තැපෑල තහවුරු කරන්න
email_changed:
explanation: 'ඔබගේ ගිණුම සඳහා ඊමේල් ලිපිනය වෙනස් වෙමින් පවතී:'
@ -32,30 +31,26 @@ si:
password_change:
explanation: ඔබගේ ගිණුම සඳහා මුරපදය වෙනස් කර ඇත.
extra: ඔබ ඔබගේ මුරපදය වෙනස් නොකළේ නම්, යමෙකු ඔබගේ ගිණුමට ප්‍රවේශය ලබා ගෙන ඇති බව පෙනෙන්නට තිබේ. ඔබගේ ගිණුමෙන් අගුලු දමා ඇත්නම් කරුණාකර ඔබගේ මුරපදය වහාම වෙනස් කරන්න හෝ සේවාදායක පරිපාලක අමතන්න.
subject: 'Mastodon: මුරපදය වෙනස් විය'
subject: 'මාස්ටඩන්: මුරපදය වෙනස් විය'
title: මුරපදය වෙනස් විය
reconfirmation_instructions:
explanation: ඔබගේ ඊමේල් වෙනස් කිරීමට නව ලිපිනය තහවුරු කරන්න.
extra: මෙම වෙනස ඔබ විසින් ආරම්භ කරන ලද්දක් නොවේ නම්, කරුණාකර මෙම විද්‍යුත් තැපෑල නොසලකා හරින්න. ඔබ ඉහත සබැඳියට ප්‍රවේශ වන තෙක් Mastodon ගිණුම සඳහා ඊමේල් ලිපිනය වෙනස් නොවේ.
subject: 'Mastodon: %{instance}සඳහා විද්‍යුත් තැපෑල තහවුරු කරන්න'
title: වි-තැපෑල තහවුරු කරන්න
reset_password_instructions:
action: මුරපදය වෙනස් කරන්න
explanation: ඔබ ඔබගේ ගිණුම සඳහා නව මුරපදයක් ඉල්ලා ඇත.
extra: ඔබ මෙය ඉල්ලා නොසිටියේ නම්, කරුණාකර මෙම විද්‍යුත් තැපෑල නොසලකා හරින්න. ඔබ ඉහත සබැඳියට ප්‍රවේශ වී අලුත් එකක් සාදන තෙක් ඔබේ මුරපදය වෙනස් නොවනු ඇත.
subject: 'Mastodon: මුරපද උපදෙස් යළි පිහිටුවන්න'
subject: 'මාස්ටඩන්: මුරපදය යළි සැකසීමේ උපදෙස්'
title: මුරපදය යළි සැකසීම
two_factor_disabled:
explanation: ඔබගේ ගිණුම සඳහා ද්වි-සාධක සත්‍යාපනය අබල කර ඇත. විද්‍යුත් තැපැල් ලිපිනය සහ මුරපදය පමණක් භාවිතයෙන් දැන් පුරනය විය හැක.
subject: 'Mastodon: ද්වි සාධක සත්‍යාපනය අක්‍රීය කර ඇත'
title: ද්විපියවර අබලයි
two_factor_enabled:
explanation: ඔබගේ ගිණුම සඳහා ද්වි-සාධක සත්‍යාපනය සක්‍රීය කර ඇත. යුගල කළ TOTP යෙදුම මගින් ජනනය කරන ලද ටෝකනයක් පුරනය වීමට අවශ්‍ය වනු ඇත.
subject: 'Mastodon: ද්වි සාධක සත්‍යාපනය සක්‍රීය කර ඇත'
title: ද්විපියවර සබලයි
two_factor_recovery_codes_changed:
explanation: පෙර ප්‍රතිසාධන කේත අවලංගු කර නව ඒවා උත්පාදනය කර ඇත.
subject: 'Mastodon: ද්වි-සාධක ප්‍රතිසාධන කේත නැවත උත්පාදනය කරන ලදී'
subject: 'මාස්ටඩන්: ද්වි-සාධක ප්‍රතිසාධන කේත නැවත උත්පාදනය කෙරිණි'
title: ද්විපියවර ප්‍රතිසාධන කේත වෙනස් විය
unlock_instructions:
subject: 'මාස්ටඩන්: අගුළු හැරීමේ උපදේශ'
@ -66,15 +61,13 @@ si:
title: ආරක්‍ෂණ යතුරක් එකතු කර ඇත
deleted:
explanation: පහත ආරක්ෂක යතුර ඔබගේ ගිණුමෙන් මකා ඇත
subject: 'Mastodon: ආරක්ෂක යතුර මකා ඇත'
subject: 'මාස්ටඩන්: ආරක්‍ෂණ යතුර මකා ඇත'
title: ඔබගේ ආරක්ෂක යතුරු වලින් එකක් මකා ඇත
webauthn_disabled:
explanation: ඔබගේ ගිණුම සඳහා ආරක්ෂක යතුරු සමඟ සත්‍යාපනය අබල කර ඇත. යුගල කළ TOTP යෙදුම මගින් ජනනය කරන ලද ටෝකනය පමණක් භාවිතයෙන් දැන් පුරනය විය හැක.
subject: 'Mastodon: ආරක්ෂක යතුරු සමඟ සත්‍යාපනය අක්‍රිය කර ඇත'
title: ආරක්‍ෂණ යතුරු අබල කර ඇත
webauthn_enabled:
explanation: ඔබගේ ගිණුම සඳහා ආරක්ෂක යතුරු සත්‍යාපනය සක්‍රීය කර ඇත. ඔබගේ ආරක්ෂක යතුර දැන් පුරනය වීම සඳහා භාවිතා කළ හැක.
subject: 'Mastodon: ආරක්ෂක යතුරු සත්‍යාපනය සක්‍රීය කර ඇත'
title: ආරක්‍ෂණ යතුරු සබල කර ඇත
omniauth_callbacks:
failure: '"%{reason}" නිසා %{kind} සිට ඔබව සත්‍යාපනය කළ නොහැක.'
@ -92,7 +85,7 @@ si:
signed_up_but_locked: ඔබ සාර්ථකව ලියාපදිංචි වී ඇත. කෙසේ වෙතත්, ඔබගේ ගිණුම අගුලු දමා ඇති නිසා අපට ඔබව පුරනය කිරීමට නොහැකි විය.
signed_up_but_pending: තහවුරු කිරීමේ සබැඳියක් සහිත පණිවිඩයක් ඔබගේ විද්‍යුත් තැපැල් ලිපිනයට යවා ඇත. ඔබ සබැඳිය ක්ලික් කළ පසු, අපි ඔබගේ අයදුම්පත සමාලෝචනය කරන්නෙමු. එය අනුමත වුවහොත් ඔබට දැනුම් දෙනු ලැබේ.
signed_up_but_unconfirmed: තහවුරු කිරීමේ සබැඳියක් සහිත පණිවිඩයක් ඔබගේ විද්‍යුත් තැපැල් ලිපිනයට යවා ඇත. ඔබගේ ගිණුම සක්‍රිය කිරීමට කරුණාකර සබැඳිය අනුගමනය කරන්න. ඔබට මෙම විද්‍යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න.
update_needs_confirmation: ඔබගේ ගිණුම සාර්ථකව යාවත්කාලීන වුවද අපට නව වි-තැපැල් ලිපිනය තහවුරු කර ගැනීමට වුවමනා කෙරේ. කරුණාකර ඔබගේ වි-තැපෑල පරීක්‍ෂා කර ඊට අදාළ සබැඳිය අනුගමනය කර ඔබගේ නව වි-තැපැල් ලිපිනය තහවුරු කරන්න. ඔබට මෙම වි-තැපෑල නොලැබුණේ නම් කරුණාකර අයාචිත තැපැල් බහාලුම බලන්න.
update_needs_confirmation: ඔබගේ ගිණුම සාර්ථකව යාවත්කාලීන වුවද අපට නව වි-තැපැල් ලිපිනය සත්‍යාපනය කර ගැනීමට වුවමනා කෙරේ. කරුණාකර ඔබගේ වි-තැපෑල පරීක්‍ෂා කර ඊට අදාළ සබැඳිය අනුගමනය කර ඔබගේ නව වි-තැපැල් ලිපිනය තහවුරු කරන්න. ඔබට මෙම වි-තැපෑල නොලැබුණේ නම් කරුණාකර අයාචිත තැපැල් බහාලුම බලන්න.
updated: ඔබගේ ගිණුම සාර්ථකව යාවත්කාලීන කර ඇත.
sessions:
already_signed_out: සාර්ථකව නික්මිණි.
@ -107,8 +100,7 @@ si:
already_confirmed: දැනටමත් තහවුරු කර ඇත, කරුණාකර පුරනය වීමට උත්සාහ කරන්න
confirmation_period_expired: '%{period}තුළ තහවුරු කළ යුතුය, කරුණාකර අලුත් එකක් ඉල්ලන්න'
expired: කල් ඉකුත් වී ඇත, කරුණාකර අලුත් එකක් ඉල්ලන්න
not_found: හමු වුණේ නැහැ
not_locked: අගුලු දමා නොතිබුණි
not_found: හමු නොවිණි
not_saved:
one: '1 දෝෂයක් මෙම %{resource} සුරැකීම තහනම් කර ඇත:'
other: "දෝෂ %{count} කින් මෙම %{resource} සුරැකීම තහනම් කර ඇත:"

View file

@ -60,7 +60,7 @@ si:
title: දෝෂයක් සිදු වී ඇත
new:
prompt_html: "%{client_name} ඔබගේ ගිණුමට ප්‍රවේශ වීමට අවසර ලබා ගැනීමට කැමති වේ. එය තෙවන පාර්ශවීය යෙදුමකි. <strong>ඔබ එය විශ්වාස නොකරන්නේ නම්, ඔබ එයට අවසර නොදිය යුතුය.</strong>"
review_permissions: අවසර සමාලෝචනය කරන්න
review_permissions: අවසර සමාලෝචනය
title: බලය පැවරීමේ අවශ්ය
show:
title: මෙම අවසර කේතය පිටපත් කර එය යෙදුමට අලවන්න.
@ -72,11 +72,11 @@ si:
index:
authorized_at: '%{date}මත අවසර දී ඇත'
description_html: මේවා API භාවිතයෙන් ඔබගේ ගිණුමට ප්‍රවේශ විය හැකි යෙදුම් වේ. ඔබ මෙහි හඳුනා නොගත් යෙදුම් තිබේ නම්, හෝ යෙදුමක් වැරදි ලෙස හැසිරෙන්නේ නම්, ඔබට එහි ප්‍රවේශය අවලංගු කළ හැක.
last_used_at: වසන් වරට භාවිතා කළේ %{date}
never_used: කවදාවත් පාවිච්චි කළේ නැහැ
last_used_at: න්තිම භාවිතය %{date}
never_used: භාවිතා කර නැත
scopes: අවසර
superapp: අභ්යන්තර
title: ඔබගේ බලයලත් යදුම්පත්
superapp: අභ්යන්තර
title: ඔබගේ බලයලත් දුම්
errors:
messages:
access_denied: සම්පත් හිමිකරු හෝ අවසර සේවාදායකය ඉල්ලීම ප්‍රතික්ෂේප කළේය.
@ -103,33 +103,34 @@ si:
flash:
applications:
create:
notice: යෙදුම නිර්මාණය කරන ලදී.
notice: යෙදුම සෑදිණි.
destroy:
notice: යෙදුම මකා ඇත.
notice: යෙදුම මැකිණි.
update:
notice: යෙදුම යාවත්කාලීන කරන ලදී.
notice: යෙදුම යාවත්කාල විය.
authorized_applications:
destroy:
notice: අයදුම්පත අවලංගු කරන ලදී.
grouped_scopes:
access:
read: කියවීමට පමණක් ප්‍රවේශය
read/write: කියවීමට හ ලිවීමට ප්‍රවේශය
write: ලිවීමට පමණක් ප්‍රවේශය
read: ප්‍රවේශය කියවීමට පමණි
read/write: කියවීමට ලිවීමට ප්‍රවේශය
write: ප්‍රවේශය ලිවීමට පමණි
title:
accounts: ගිණුම්
admin/accounts: ගිණුම් පරිපාලන
admin/accounts: ගිණුම් කළමනාකරණ
admin/all: සියලුම පරිපාලන කාර්යයන්
admin/reports: වාර්තා පරිපාලනය
all: ඔබගේ මාස්ටඩන් ගිණුමට පූර්ණ ප්‍රවේශය
blocks: කුට්ටි
bookmarks: ිටු සලකුණ
bookmarks: ොත්යොම
conversations: සංවාද
crypto: අන්ත සංකේතනය
favourites: ප්‍රියතමයන්
filters: පෙරහන්
follows: පහත සඳහන්
lists: ලැයිස්තු
media: මාධ්ය ඇමුණුම්
mutes: නිහඬ කරයි
media: මාධ්‍ය ඇමුණුම්
notifications: දැනුම්දීම්
push: තල්ලු දැනුම්දීම්
reports: වාර්තා
@ -141,39 +142,40 @@ si:
applications: යෙදුම්
oauth2_provider: වි.සත්‍යා.2 (OAuth) සැපයුම්කරු
application:
title: වි.සත්යා. (OAuth) තොරතුරු අවශ්‍යයි
title: වි.සත්‍යා. (OAuth) අනුමැතිය අවශ්‍යයයි
scopes:
"admin:read": සේවාදායකයේ ඇති සියලුම දත්ත කියවන්න
"admin:read:accounts": සියලුම ගිණුම් වල සංවේදී තොරතුරු කියවන්න
"admin:read:reports": සියලුම වාර්තා සහ වාර්තා කළ ගිණුම් වල සංවේදී තොරතුරු කියවන්න
"admin:write": සේවාදායකයේ සියලුම දත්ත වෙනස් කරන්න
"admin:write:accounts": ගිණුම් මත මධ්‍යස්ථ ක්‍රියා සිදු කරන්න
"admin:write:reports": වාර්තා මත මධ්‍යස්ථ ක්‍රියා සිදු කරන්න
crypto: end-to-end encryption භාවිතා කරන්න
admin:read: සේවාදායකයේ ඇති සියලුම දත්ත කියවයි
admin:read:accounts: සියලුම ගිණුම් වල සංවේදී තොරතුරු කියවයි
admin:read:reports: සියලුම වාර්තා සහ වාර්තා කළ ගිණුම් වල සංවේදී තොරතුරු කියවයි
admin:write: සේවාදායකයේ සියලුම දත්ත සංශෝධනය කරයි
admin:write:accounts: ගිණුම් සඳහා මැදිහත්කරණ ක්‍රියාමාර්ග ගනියි
admin:write:reports: වාර්තා සඳහා මැදිහත්කරණ ක්‍රියාමාර්ග ගනියි
crypto: අන්ත සංකේතනය භාවිතා කරයි
follow: ගිණුම් සබඳතා වෙනස් කරන්න
push: ඔබගේ තල්ලු දැනුම්දීම් ලබා ගන්න
read: ඔබගේ ගිණුමේ සියලුම දත්ත කියවන්න
read:accounts: ගිණුම් තොරතුරු බලන්න
push: ඔබගේ තල්ලු දැනුම්දීම් ලබන්න
read: ඔබගේ ගිණුමේ සියලුම දත්ත කියවයි
read:accounts: ගිණුම්වල තොරතුරු දකියි
read:blocks: ඔබගේ වාරණ බලන්න
read:bookmarks: ඔබගේ පිටු සලකුණු බලන්න
read:bookmarks: ඔබගේ පොත්යොමු දකියි
read:favourites: ඔබගේ ප්‍රියතමයන් බලන්න
read:filters: ඔබගේ පෙරහන් බලන්න
read:follows: ඔබගේ පහත සඳහන් බලන්න
read:lists: ඔබගේ ලැයිස්තු බලන්න
read:mutes: ඔබේ ගොළු බලන්න
read:notifications: ඔබගේ දැනුම්දීම් බලන්න
read:notifications: ඔබගේ දැනුම්දීම් බලයි
read:reports: ඔබගේ වාර්තා බලන්න
read:search: ඔබ වෙනුවෙන් සොයන්න
read:statuses: සියලුම පෝස්ට් බලන්න
read:search: ඔබ වෙනුවෙන් සොයයි
read:statuses: සියලු ලිපි බලයි
write: ඔබගේ ගිණුමේ සියලුම දත්ත වෙනස් කරන්න
write:accounts: ඔබගේ පැතිකඩ වෙනස් කරන්න
write:blocks: ගිණුම් සහ වසම් අවහිර කරන්න
write:bookmarks: පිටු සලකුණු සටහන්
write:blocks: ගිණුම් සහ වසම් අවහිර කරයි
write:bookmarks: ලිපි වලට පොත්යොමු තබයි
write:conversations: සංවාද නිහඬ කිරීම සහ මකා දැමීම
write:filters: පෙරහන් කරන්න
write:favourites: ප්‍රියතම ලිපි
write:filters: පෙරහන් සාදයි
write:follows: මිනිසුන් අනුගමනය කරන්න
write:lists: ලැයිස්තු සාදන්න
write:media: මාධ්‍ය ගොනු උඩුගත කරන්න
write:mutes: මිනිසුන් සහ සංවාද කරන්න
write:notifications: ඔබගේ දැනුම්දීම් හිස්කරන්න
write:reports: වෙනත් පුද්ගලයින් වාර්තා කරන්න
write:statuses: පළ කිරීම් පළ කරන්න
write:media: මාධ්‍ය ගොනු උඩුගත කරයි
write:mutes: සංවාද හා පුද්ගලයින් නිහඬ කරයි
write:notifications: ඔබගේ දැනුම්දීම් හිස් කරයි
write:statuses: ලිපි පළ කරයි

View file

@ -782,6 +782,9 @@ eu:
release_notes: Bertsio oharrak
title: Eguneraketak eskuragarri
type: Mota
types:
major: Argitalpen handia
minor: Argitalpen txikia
version: Bertsioa
statuses:
account: Egilea

View file

@ -45,8 +45,8 @@ ko:
changed_msg: 역할이 성공적으로 변경되었습니다!
label: 역할 변경
no_role: 역할 없음
title: '%{username}의 역할 변경'
confirm: 확정
title: "%{username}의 역할 변경"
confirm: 신원 확인
confirmed: 확인됨
confirming: 확인 중
custom: 사용자 지정

View file

@ -459,7 +459,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: <q>%{comment}</q>'
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:
@ -1106,7 +1106,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 <strong>%{domain}</strong> akreditācijas datiem. Ja jūsu konts ir mitināts citā serverī, jūs nevarēsit pieteikties šeit.
preamble_html: Piesakies ar saviem <strong>%{domain}</strong> 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}.

File diff suppressed because it is too large Load diff

View file

@ -322,7 +322,7 @@ es-MX:
url: URL de Endpoint
'no': 'No'
not_recommended: No recomendado
overridden: Sobrescrito
overridden: Reemplazado
recommended: Recomendado
required:
mark: "*"

View file

@ -322,6 +322,7 @@ my:
url: URL ဆုံးမှတ်
'no': 'မလုပ်ပါ'
not_recommended: ထောက်ခံထားမှုမရှိ
overridden: ပယ်ဖျက်
recommended: ထောက်ခံထားပြီး
required:
mark: "*"

View file

@ -6,13 +6,11 @@ si:
account_migration:
acct: ඔබට යාමට අවශ්‍ය ගිණුමේ username@domain සඳහන් කරන්න
account_warning_preset:
text: ඔබට URL, හෑෂ් ටැග් සහ සඳහන් කිරීම් වැනි පෝස්ට් සින්ටැක්ස් භාවිතා කළ හැක
text: ඔබට ඒ.ස.නි., පූරක අනන්‍යන සහ සැඳහුම් වැනි ලිපි පද ගැළපුම් භාවිතා කිරීමට හැකිය
title: විකල්ප. ලබන්නාට නොපෙනේ
admin_account_action:
include_statuses: මධ්‍යස්ථ ක්‍රියාව හෝ අනතුරු ඇඟවීමට හේතු වී ඇත්තේ කුමන පළ කිරීම්දැයි පරිශීලකයා දකිනු ඇත
send_email_notification: පරිශීලකයාට ඔවුන්ගේ ගිණුම සමඟ සිදු වූ දේ පිළිබඳ පැහැදිලි කිරීමක් ලැබෙනු ඇත
text_html: විකල්ප. ඔබට post syntax භාවිතා කළ හැක. කාලය ඉතිරි කර ගැනීම සඳහා ඔබට අනතුරු ඇඟවීමේ</a> <a href="%{path}">කළ හැක
type_html: <strong>%{acct}</strong>සමඟ කළ යුතු දේ තෝරන්න
type_html: "<strong>%{acct}</strong>සමඟ කළ යුතු දේ තෝරන්න"
types:
disable: පරිශීලකයාගේ ගිණුම භාවිතා කිරීමෙන් වළක්වන්න, නමුත් ඔවුන්ගේ අන්තර්ගතය මකා දැමීම හෝ සඟවන්න එපා.
none: වෙනත් ක්‍රියාවක් අවුලුවාලීමකින් තොරව, පරිශීලකයාට අනතුරු ඇඟවීමක් යැවීමට මෙය භාවිතා කරන්න.
@ -23,7 +21,7 @@ si:
ends_at: විකල්ප. මෙම අවස්ථාවේදී නිවේදනය ස්වයංක්‍රීයව ප්‍රකාශනය කිරීමෙන් ඉවත් වනු ඇත
scheduled_at: නිවේදනය වහාම ප්‍රකාශයට පත් කිරීමට හිස්ව තබන්න
starts_at: විකල්ප. ඔබගේ නිවේදනය නිශ්චිත කාල පරාසයකට බැඳී ඇත්නම්
text: ඔබට post syntax භාවිතා කළ හැක. කරුණාකර පරිශීලකයාගේ තිරය මත නිවේදනය ලබා ගන්නා ඉඩ ගැන සැලකිලිමත් වන්න
text: ඔබට ලිපි පද ගැළපුම් භාවිතා කිරීමට හැකිය. කරුණාකර නිවේදනයෙන් පරිශ්‍රීලකයින්ගේ තිරයේ ඉඩ කෙතරම් ඇහිරෙනවා ද පිළිබඳව සැලකිලිමත් වන්න
appeal:
text: ඔබට වර්ජනයකට අභියාචනා කළ හැක්කේ එක් වරක් පමණි
defaults:
@ -37,17 +35,16 @@ si:
email: ඔබට තහවුරු කිරීමේ විද්‍යුත් තැපෑලක් එවනු ලැබේ
header: PNG, GIF හෝ JPG. වැඩිම %{size}. %{dimensions}px දක්වා අඩු කරනු ඇත
inbox_url: ඔබට භාවිතා කිරීමට අවශ්‍ය රිලේ හි මුල් පිටුවෙන් URL එක පිටපත් කරන්න
irreversible: පෙරහන පසුව ඉවත් කළද, පෙරූ පළ කිරීම් ආපසු හැරවිය නොහැකි ලෙස අතුරුදහන් වනු ඇත
locale: පරිශීලක අතුරුමුහුණතේ භාෂාව, ඊමේල් සහ තල්ලු දැනුම්දීම්
irreversible: පෙරහන පසුව ඉවත් කළ ද, පෙරූ ලිපි අප්‍රතිවර්ත්‍යව අතුරුදහන් වනු ඇත
locale: වි-තැපැල්, තල්ලු දැනුම්දීම් සහ පරිශ්‍රීලක අතුරුමුහුණතේ භාෂාව
password: අවම වශයෙන් අක්ෂර 8 ක් භාවිතා කරන්න
phrase: පළ කිරීමක පෙළ හෝ අන්තර්ගත අනතුරු ඇඟවීම නොසලකා ගැලපේ
phrase: ලිපිවල පෙළ හෝ අන්තර්ගත අවවාද නොසලකා ගැළපෙනු ඇත
scopes: යෙදුමට ප්‍රවේශ වීමට ඉඩ දෙන්නේ කුමන API වලටද. ඔබ ඉහළ මට්ටමේ විෂය පථයක් තෝරා ගන්නේ නම්, ඔබට තනි ඒවා තෝරා ගැනීමට අවශ්‍ය නොවේ.
setting_aggregate_reblogs: මෑතකදී බූස්ට් කරන ලද පළ කිරීම් සඳහා නව බූස්ට් පෙන්වන්න එපා (අලුතින් ලැබුණු බූස්ට් වලට පමණක් බලපායි)
setting_always_send_emails: සාමාන්‍යයෙන් ඔබ Mastodon සක්‍රියව භාවිතා කරන විට විද්‍යුත් තැපැල් දැනුම්දීම් නොයවනු ඇත
setting_always_send_emails: ඔබ නිතර මාස්ටඩන් භාවිතා කරන විට වි-තැපැල් දැනුම්දීම් නොලැබෙයි
setting_default_sensitive: සංවේදී මාධ්‍ය පෙරනිමියෙන් සඟවා ඇති අතර ක්ලික් කිරීමකින් හෙළිදරව් කළ හැක
setting_display_media_default: සංවේදී ලෙස සලකුණු කළ මාධ්‍ය සඟවන්න
setting_display_media_hide_all: ෑම විටම මාධ්‍ය සඟවන්න
setting_display_media_show_all: ෑම විටම මාධ්‍ය පෙන්වන්න
setting_display_media_default: සංවේදී බව සලකුණු කළ මාධ්‍ය සඟවන්න
setting_display_media_hide_all: ැමවිට මාධ්‍ය සඟවන්න
setting_display_media_show_all: ැමවිට මාධ්‍ය පෙන්වන්න
setting_use_blurhash: අනුක්‍රමණ සැඟවුණු දෘශ්‍යවල වර්ණ මත පදනම් වන නමුත් ඕනෑම විස්තරයක් අපැහැදිලි කරයි
setting_use_pending_items: සංග්‍රහය ස්වයංක්‍රීයව අනුචලනය කරනවා වෙනුවට ක්ලික් කිරීමක් පිටුපස කාලරේඛා යාවත්කාලීන සඟවන්න
whole_word: මූල පදය හෝ වාක්‍ය ඛණ්ඩය අක්ෂරාංක පමණක් වන විට, එය යෙදෙන්නේ එය සම්පූර්ණ වචනයට ගැලපේ නම් පමණි
@ -57,14 +54,14 @@ si:
domain: මෙය විද්‍යුත් තැපැල් ලිපිනයේ හෝ එය භාවිතා කරන MX වාර්තාවේ පෙන්වන ඩොමේන් නාමය විය හැක. ලියාපදිංචි වූ පසු ඒවා පරීක්ෂා කරනු ලැබේ.
with_dns_records: ලබා දී ඇති වසමේ DNS වාර්තා විසඳීමට උත්සාහ කරන අතර ප්‍රතිඵල ද අවහිර කරනු ලැබේ
filters:
action: පළ කිරීමක් පෙරහනට ගැළපෙන විට සිදු කළ යුතු ක්‍රියාව තෝරන්න
action: ලිපියක් පෙරහනට ගැළපෙන විට ඉටු විය යුතු ක්‍රියාමාර්ගය තෝරන්න
actions:
hide: පෙරහන් කළ අන්තර්ගතය සම්පූර්ණයෙන්ම සඟවන්න, එය නොපවතින ලෙස හැසිරෙන්න
warn: පෙරහන මාතෘකාව සඳහන් කරන අනතුරු ඇඟවීමක් පිටුපස පෙරූ අන්තර්ගතය සඟවන්න
form_challenge:
current_password: ඔබ ආරක්ෂිත ප්‍රදේශයකට ඇතුල් වේ
imports:
data: CSV ගොනුව වෙනත් Mastodon සේවාදායකයකින් අපනයනය කරන ලදී
data: CSV ගොනුව වෙනත් මාස්ටඩන් සේවාදායකයකින් නිර්යාත කර ඇත
invite_request:
text: මෙය ඔබගේ අයදුම්පත සමාලෝචනය කිරීමට අපට උපකාරී වනු ඇත
ip_block:
@ -83,7 +80,7 @@ si:
tag:
name: ඔබට අකුරු වල ආවරණය පමණක් වෙනස් කළ හැකිය, උදාහරණයක් ලෙස, එය වඩාත් කියවිය හැකි කිරීමට
user:
chosen_languages: පරීක්ෂා කළ විට, තෝරාගත් භාෂාවලින් පළ කිරීම් පමණක් පොදු කාලරේඛා තුළ සංදර්ශන කෙර
chosen_languages: සබල නම්, තෝරාගත් භාෂාවල ලිපි පමණක් ප්‍රසිද්ධ කාල රේඛාවේ දිස්ව
webhook:
events: යැවීමට සිදුවීම් තෝරන්න
url: සිදුවීම් යවනු ලබන ස්ථානය
@ -92,22 +89,24 @@ si:
fields:
name: නම්පත
value: අන්තර්ගතය
show_collections: අනුගමන හා අනුගාමිකයින් පැතිකඩෙහි පෙන්වන්න
unlocked: නව අනුගාමිකයින් ස්වයංක්‍රීයව පිළිගන්න
account_alias:
acct: පැරණි ගිණුමේ හැසිරවීම
account_migration:
acct: නව ගිණුමේ හැසිරවීම
account_warning_preset:
text: පෙර සැකසූ පෙළ
title: ශීර්ෂ
title: සිරැසි
admin_account_action:
include_statuses: විද්‍යුත් තැපෑලෙහි වාර්තා කරන ලද පළ කිරීම් ඇතුළත් කරන්න
include_statuses: වි-තැපෑලට වාර්තා කරන ලද ලිපි ද ඇතුළත් කරන්න
send_email_notification: විද්‍යුත් තැපෑලෙන් පරිශීලකයාට දැනුම් දෙන්න
text: අභිරුචි අනතුරු ඇඟවීම
type: ක්‍රියාමාර්ගය
types:
disable: කැටි කරන්න
none: අනතුරු ඇඟවීමක් යවන්න
sensitive: පවතී
sensitive: සංවේදීතාව
silence: සීමාව
suspend: අත්හිටුවන්න
warning_preset_id: අනතුරු ඇඟවීමේ පෙරසිටුවක් භාවිතා කරන්න
@ -120,13 +119,13 @@ si:
appeal:
text: මෙම තීරණය ආපසු හැරවිය යුත්තේ මන්දැයි පැහැදිලි කරන්න
defaults:
autofollow: ඔබගේ ගිණුම අනුගමනය කිරීමට ආරාධනා කරන්න
avatar: අවතාර
bot: මෙය ස්වයං ක්‍රමලේඛගත ගිණුමක
chosen_languages: භාෂා පෙරහන් කරන්න
autofollow: ඔබගේ ගිණුම අනුගමනයට ආරාධනා කරන්න
avatar: පැතිකඩ ඡායාරූප
bot: මෙම ගිණුම ස්වයංක්‍රියය
chosen_languages: භාෂා පෙරන්න
confirm_new_password: නව මුරපදය තහවුරු කරන්න
confirm_password: මුරපදය තහවුරු කර ඇත
context: සන්දර්භ පෙරහන් කරන්න
confirm_password: මුරපදය තහවුරු කරන්න
context: සන්දර්භ පෙරන්න
current_password: වත්මන් මුරපදය
data: දත්ත
display_name: ප්රදර්ශන නාමය
@ -137,39 +136,35 @@ si:
honeypot: "%{label} (පුරවන්න එපා)"
inbox_url: රිලේ එන ලිපි URL
irreversible: සැඟවීම වෙනුවට අතහරින්න
locale: අතුරු මුහුණත භාෂාව
locale: අතුරු මුහුණත භාෂාව
max_uses: උපරිම භාවිත ගණන
new_password: නව මුරපදය
note: ජෛව
otp_attempt: ද්වි සාධක කේතය
password: මුරපදය
phrase: මූල පදය හෝ වාක්‍ය ඛණ්ඩය
setting_advanced_layout: උසස් වෙබ් අතුරු මුහුණත සබල කරන්න
setting_aggregate_reblogs: කණ්ඩායම් කාලරේඛාව වැඩි කරයි
setting_advanced_layout: සංකීර්ණ අතුරු මුහුණත සබල කරන්න
setting_always_send_emails: සෑම විටම විද්‍යුත් තැපැල් දැනුම්දීම් යවන්න
setting_auto_play_gif: සජීවිකරණ GIF ස්වයංක්‍රීයව ධාවනය කරන්න
setting_boost_modal: වැඩි කිරීමට පෙර තහවුරු කිරීමේ සංවාදය පෙන්වන්න
setting_default_language: පළ කිරීමේ භාෂාව
setting_default_privacy: පුද්ගලිකත්වය පළ කිරීම
setting_default_sensitive: සෑම විටම මාධ්‍ය සංවේදී ලෙස සලකුණු කරන්න
setting_delete_modal: පළ කිරීමක් මැකීමට පෙර තහවුරු කිරීමේ සංවාදය පෙන්වන්න
setting_disable_swiping: ස්වයිප් චලන අක්‍රීය කරන්න
setting_default_language: ලිපිවල භාෂාව
setting_default_privacy: ලිපියේ රහස්‍යතාව
setting_default_sensitive: සෑමවිට මාධ්‍ය සංවේදී බව සලකුණු කරන්න
setting_delete_modal: ලිපියක් මැකීමට පෙර ඒ ගැන විමසන්න
setting_display_media: මාධ්ය සංදර්ශකය
setting_display_media_default: පෙරනිමි
setting_display_media_default: පෙරනිමි
setting_display_media_hide_all: සියල්ල සඟවන්න
setting_display_media_show_all: සියල්ල පෙන්වන්න
setting_expand_spoilers: අන්තර්ගත අනතුරු ඇඟවීම් සමඟ සලකුණු කර ඇති පළ කිරීම් සැමවිටම පුළුල් කරන්න
setting_expand_spoilers: අන්තර්ගත අවවාද සහිත ලිපි සැමවිට දිගහරින්න
setting_hide_network: ඔබගේ ජාලය සඟවන්න
setting_reduce_motion: සජීවිකරණවල චලනය අඩු කරන්න
setting_system_font_ui: පද්ධතියේ පෙරනිමි කුරු භාවිතා කරන්න
setting_system_font_ui: පද්ධතියේ පෙරනිමි රුවකුරු භාවිතා කරන්න
setting_theme: අඩවියේ තේමාව
setting_trends: අද ප්‍රවණතා පෙන්වන්න
setting_unfollow_modal: යමෙකු අනුගමනය නොකිරීමට පෙර තහවුරු කිරීමේ සංවාදය පෙන්වන්න
setting_use_blurhash: සැඟවුණු මාධ්‍ය සඳහා වර්ණවත් අනුක්‍රමික පෙන්වන්න
setting_use_pending_items: මන්දගාමී මාදිලි
setting_use_pending_items: මන්දගාමී ප්‍රකාර
severity: බරපතලකම
sign_in_token_attempt: ආරක්‍ෂණ කේතය
title: ශීර්ෂ
title: සිරැසි
type: ආයාත වර්ගය
username: පරිශීලක නාමය
username_or_email: පරි. නාමය හෝ වි-තැපෑල
@ -180,12 +175,16 @@ si:
name: හෑෂ් ටැගය
filters:
actions:
hide: සම්පූර්ණයෙන්ම සඟවන්න
warn: අනතුරු ඇඟවීමක් සමඟ සඟවන්න
hide: මුළුමනින්ම සඟවන්න
warn: අවවාදයක් සහිතව සඟවන්න
form_admin_settings:
custom_css: අභිරුචි CSS
profile_directory: පැතිකඩ නාමාවලිය සබල කරන්න
site_terms: රහස්‍යතා ප්‍රතිපත්තිය
site_title: සේවාදායකයේ නම
theme: පෙරනිමි තේමාව
interactions:
must_be_follower: අනුගාමිකයින් නොවන අයගේ දැනුම්දීම් අවහිර කරන්න
must_be_following: ඔබ අනුගමනය නොකරන පුද්ගලයින්ගේ දැනුම්දීම් අවහිර කරන්න
must_be_following_dm: ඔබ අනුගමනය නොකරන පුද්ගලයින්ගෙන් සෘජු පණිවිඩ අවහිර කරන්න
must_be_following_dm: ඔබ නොදන්නා අයගෙන් සෘජු පණිවිඩ ලැබීම අවහිර කරන්න
invite:
comment: අදහස
invite_request:
@ -194,31 +193,34 @@ si:
comment: අදහස
ip: අ.ජා. කෙ. (IP)
severities:
no_access: ප්රවේශය අවහිර කරන්න
no_access: ප්රවේශය අවහිර කරන්න
sign_up_requires_approval: ලියාපදිංචි වීම සීමා කරන්න
severity: නීතිය
notification_emails:
appeal: යමෙක් උපපරිපාලක තීරණයකට අභියාචනා කරයි
digest: digest ඊමේල් යවන්න
favourite: කවුරුහරි ඔබේ පළ කිරීම ප්‍රිය කළා
follow: කවුරුහරි ඔබව අනුගමනය කළා
follow_request: කවුරුහරි ඔබව අනුගමනය කරන ලෙස ඉල්ලා සිටියේය
mention: කවුරුහරි ඔබව සඳහන් කළා
pending_account: නව ගිණුම සමාලෝචනය අවශ්‍යයි
reblog: කවුරුහරි ඔබේ පළ කිරීම වැඩි කළා
report: නව වාර්තාවක් ඉදිරිපත් කෙරේ
trending_tag: නව ප්‍රවණතාවයට සමාලෝචනයක් අවශ්‍ය වේ
favourite: යමෙක් ඔබගේ ලිපියට ප්‍රිය කළා
follow: යමෙක් ඔබව අනුගමනය කළා
mention: යමෙක් ඔබව සඳහන් කළා
report: නව වාර්තාවක් යොමු කර ඇත
rule:
text: නීතිය
tag:
listable: මෙම හැෂ් ටැගය සෙවීම් සහ යෝජනා වල දිස් වීමට ඉඩ දෙන්න
name: හෑෂ් ටැගය
trendable: මෙම හැෂ් ටැගය ප්‍රවණතා යටතේ දිස් වීමට ඉඩ දෙන්න
usable: මෙම හැෂ් ටැගය භාවිතා කිරීමට පළ කිරීම් වලට ඉඩ දෙන්න
usable: ලිපි සඳහා මෙම පූරක අනන්‍යනය භාවිතයට ඉඩදෙන්න
user:
role: භූමිකාව
time_zone: වේලා කලාපය
user_role:
color: චිහ්නයේ පාට
name: නම
permissions_as_keys: අවසර
position: ප්‍රමුඛත්‍වය
webhook:
events: සබල කළ සිදුවීම්
url: අන්ත ලක්ෂ්‍ය URL
'no': 'නැත'
'no': නැහැ
recommended: නිර්දේශිත
required:
mark: "*"

View file

@ -0,0 +1,15 @@
# frozen_string_literal: true
require Rails.root.join('lib', 'mastodon', 'migration_helpers')
class ImproveSearchForAccountStatuses < ActiveRecord::Migration[7.0]
include Mastodon::MigrationHelpers
disable_ddl_transaction!
def change
safety_assured do
add_index :statuses, [:account_id, :reblog_of_id, :deleted_at, :searchability], name: 'index_statuses_for_get_following_accounts_to_search', where: 'deleted_at IS NULL AND reblog_of_id IS NULL AND searchability IN (0, 10, 1)'
end
end
end

View file

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.0].define(version: 2023_09_19_232836) do
ActiveRecord::Schema[7.0].define(version: 2023_10_07_090808) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -1190,6 +1190,7 @@ ActiveRecord::Schema[7.0].define(version: 2023_09_19_232836) do
t.boolean "markdown", default: false
t.integer "limited_scope"
t.index ["account_id", "id", "visibility", "updated_at"], name: "index_statuses_20190820", order: { id: :desc }, where: "(deleted_at IS NULL)"
t.index ["account_id", "reblog_of_id", "deleted_at", "searchability"], name: "index_statuses_for_get_following_accounts_to_search", where: "((deleted_at IS NULL) AND (reblog_of_id IS NULL) AND (searchability = ANY (ARRAY[0, 10, 1])))"
t.index ["account_id"], name: "index_statuses_on_account_id"
t.index ["deleted_at"], name: "index_statuses_on_deleted_at", where: "(deleted_at IS NOT NULL)"
t.index ["id", "account_id"], name: "index_statuses_local_20190824", order: { id: :desc }, where: "((local OR (uri IS NULL)) AND (deleted_at IS NULL) AND (visibility = 0) AND (reblog_of_id IS NULL) AND ((NOT reply) OR (in_reply_to_account_id = account_id)))"

View file

@ -9,7 +9,7 @@ module Mastodon
end
def kmyblue_minor
3
4
end
def kmyblue_flag
@ -25,7 +25,7 @@ module Mastodon
end
def patch
0
1
end
def default_prerelease

View file

@ -445,6 +445,17 @@ RSpec.describe ActivityPub::Activity::Create do
end
context 'with limited' do
let(:searchable_by) { 'kmyblue:Limited' }
it 'create status' do
status = sender.statuses.first
expect(status).to_not be_nil
expect(status.searchability).to eq 'limited'
end
end
context 'with limited old spec' do
let(:searchable_by) { 'as:Limited' }
it 'create status' do
@ -570,7 +581,7 @@ RSpec.describe ActivityPub::Activity::Create do
context 'with misskey' do
let(:sender_software) { 'misskey' }
let(:searchable_by) { 'as:Limited' }
let(:searchable_by) { 'kmyblue:Limited' }
it 'create status' do
status = sender.statuses.first

View file

@ -29,6 +29,254 @@ RSpec.describe ActivityPub::Activity::Like do
end
end
describe '#perform when receive emoji reaction' do
subject do
described_class.new(json, sender).perform
EmojiReaction.where(status: status)
end
before do
stub_request(:get, 'http://example.com/emoji.png').to_return(body: attachment_fixture('emojo.png'))
end
let(:json) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
id: 'foo',
type: 'Like',
actor: ActivityPub::TagManager.instance.uri_for(sender),
object: ActivityPub::TagManager.instance.uri_for(status),
content: content,
tag: tag,
}.with_indifferent_access
end
let(:content) { nil }
let(:tag) { nil }
context 'with unicode emoji' do
let(:content) { '😀' }
it 'create emoji reaction' do
expect(subject.count).to eq 1
expect(subject.first.name).to eq '😀'
expect(subject.first.account).to eq sender
expect(sender.favourited?(status)).to be false
end
end
context 'with custom emoji' do
let(:content) { ':tinking:' }
let(:tag) do
{
id: 'https://example.com/aaa',
type: 'Emoji',
icon: {
url: 'http://example.com/emoji.png',
},
name: 'tinking',
license: 'Everyone but Ohagi',
}
end
it 'create emoji reaction' do
expect(subject.count).to eq 1
expect(subject.first.name).to eq 'tinking'
expect(subject.first.account).to eq sender
expect(subject.first.custom_emoji).to_not be_nil
expect(subject.first.custom_emoji.shortcode).to eq 'tinking'
expect(subject.first.custom_emoji.domain).to eq 'example.com'
expect(sender.favourited?(status)).to be false
end
it 'custom emoji license is saved' do
expect(subject.first.custom_emoji.license).to eq 'Everyone but Ohagi'
end
end
context 'with custom emoji but that is existing on local server' do
let(:content) { ':tinking:' }
let(:tag) do
{
id: 'https://example.com/aaa',
type: 'Emoji',
icon: {
url: 'http://example.com/emoji.png',
},
name: 'tinking',
license: 'Everyone but Ohagi',
}
end
before do
Fabricate(:custom_emoji, domain: 'example.com', uri: 'https://example.com/aaa', image_remote_url: 'http://example.com/emoji.png', shortcode: 'tinking', license: 'Everyone but Ohagi')
end
it 'create emoji reaction' do
expect(subject.count).to eq 1
expect(subject.first.name).to eq 'tinking'
expect(subject.first.account).to eq sender
expect(subject.first.custom_emoji).to_not be_nil
expect(subject.first.custom_emoji.shortcode).to eq 'tinking'
expect(subject.first.custom_emoji.domain).to eq 'example.com'
expect(sender.favourited?(status)).to be false
end
end
context 'with custom emoji and custom domain' do
let(:content) { ':tinking:' }
let(:tag) do
{
id: 'https://example.com/aaa',
type: 'Emoji',
domain: 'post.kmycode.net',
icon: {
url: 'http://example.com/emoji.png',
},
name: 'tinking',
}
end
it 'create emoji reaction' do
expect(subject.count).to eq 1
expect(subject.first.name).to eq 'tinking'
expect(subject.first.account).to eq sender
expect(subject.first.custom_emoji).to_not be_nil
expect(subject.first.custom_emoji.shortcode).to eq 'tinking'
expect(subject.first.custom_emoji.domain).to eq 'post.kmycode.net'
expect(sender.favourited?(status)).to be false
end
end
context 'with custom emoji but invalid id' do
let(:content) { ':tinking:' }
let(:tag) do
{
id: 'aaa',
type: 'Emoji',
icon: {
url: 'http://example.com/emoji.png',
},
name: 'tinking',
}
end
it 'create emoji reaction' do
expect(subject.count).to eq 1
expect(subject.first.name).to eq 'tinking'
expect(subject.first.account).to eq sender
expect(subject.first.custom_emoji).to_not be_nil
expect(subject.first.custom_emoji.shortcode).to eq 'tinking'
expect(subject.first.custom_emoji.domain).to eq 'example.com'
expect(sender.favourited?(status)).to be false
end
end
context 'with custom emoji but local domain' do
let(:content) { ':tinking:' }
let(:tag) do
{
id: 'aaa',
type: 'Emoji',
domain: Rails.configuration.x.local_domain,
icon: {
url: 'http://example.com/emoji.png',
},
name: 'tinking',
}
end
it 'create emoji reaction' do
expect(subject.count).to eq 1
expect(subject.first.name).to eq 'tinking'
expect(subject.first.account).to eq sender
expect(subject.first.custom_emoji).to_not be_nil
expect(subject.first.custom_emoji.shortcode).to eq 'tinking'
expect(subject.first.custom_emoji.domain).to be_nil
expect(sender.favourited?(status)).to be false
end
end
context 'with unicode emoji and reject_media enabled' do
let(:content) { '😀' }
before do
Fabricate(:domain_block, domain: 'example.com', severity: :noop, reject_media: true)
end
it 'create emoji reaction' do
expect(subject.count).to eq 1
expect(subject.first.name).to eq '😀'
expect(subject.first.account).to eq sender
expect(sender.favourited?(status)).to be false
end
end
context 'with custom emoji and reject_media enabled' do
let(:content) { ':tinking:' }
let(:tag) do
{
id: 'https://example.com/aaa',
type: 'Emoji',
icon: {
url: 'http://example.com/emoji.png',
},
name: 'tinking',
}
end
before do
Fabricate(:domain_block, domain: 'example.com', severity: :noop, reject_media: true)
end
it 'create emoji reaction' do
expect(subject.count).to eq 0
expect(sender.favourited?(status)).to be false
end
end
context 'when emoji reaction is disabled' do
let(:content) { '😀' }
before do
Form::AdminSettings.new(enable_emoji_reaction: false).save
end
it 'create emoji reaction' do
expect(subject.count).to eq 0
expect(sender.favourited?(status)).to be true
end
end
context 'when emoji reaction between other servers is disabled' do
let(:recipient) { Fabricate(:account, domain: 'narrow.com', uri: 'https://narrow.com/') }
let(:content) { '😀' }
before do
Form::AdminSettings.new(receive_other_servers_emoji_reaction: false).save
end
it 'create emoji reaction' do
expect(subject.count).to eq 0
expect(sender.favourited?(status)).to be false
end
end
context 'when emoji reaction between other servers is disabled but that status is local' do
let(:content) { '😀' }
before do
Form::AdminSettings.new(receive_other_servers_emoji_reaction: false).save
end
it 'create emoji reaction' do
expect(subject.count).to eq 1
expect(subject.first.name).to eq '😀'
expect(subject.first.account).to eq sender
expect(sender.favourited?(status)).to be false
end
end
end
describe '#perform when domain_block' do
subject { described_class.new(json, sender) }
@ -50,7 +298,7 @@ RSpec.describe ActivityPub::Activity::Like do
subject.perform
end
it 'does not create a favourite from sender to status', pending: 'considering spec' do
it 'does not create a favourite from sender to status' do
expect(sender.favourited?(status)).to be false
end
end

View file

@ -700,7 +700,7 @@ RSpec.describe Account do
expect(subject.match('Check this out https://medium.com/@alice/some-article#.abcdef123')).to be_nil
end
xit 'does not match URL query string' do
it 'does not match URL query string' do
expect(subject.match('https://example.com/?x=@alice')).to be_nil
end
end
@ -845,7 +845,7 @@ RSpec.describe Account do
match = Fabricate(:account, display_name: 'pattern and suffix')
account = Fabricate(:account, display_name: 'prefix and pattern')
expect(described_class.matches_display_name('pattern')).to eq [match, account]
expect(described_class.matches_display_name('pattern')).to contain_exactly(match, account)
end
end
@ -854,7 +854,7 @@ RSpec.describe Account do
match = Fabricate(:account, username: 'pattern_and_suffix')
account = Fabricate(:account, username: 'prefix_and_pattern')
expect(described_class.matches_username('pattern')).to eq [match, account]
expect(described_class.matches_username('pattern')).to contain_exactly(match, account)
end
end

View file

@ -6,32 +6,60 @@ describe RelationshipFilter do
let(:account) { Fabricate(:account) }
describe '#results' do
context 'when default params are used' do
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
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)
end
it 'returns followings ordered by last activity' do
expected_result = account.following.eager_load(:account_stat).reorder(nil).by_recent_status
expect(subject).to eq [account_of_1_day, account_of_3_days, account_of_7_months, silent_account]
end
end
expect(subject).to eq expected_result
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
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
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
context 'when filtering for dormant accounts' do
subject do
described_class.new(account, 'order' => 'recent', 'activity' => 'dormant').results
end
it 'returns dormant followings ordered by last activity' do
expect(subject).to eq [silent_account, account_of_7_months]
end
end
end
end
end

View file

@ -30,6 +30,7 @@ module TestEndpoints
/directory
/@alice
/@alice/110224538612341312
/deck/home
).freeze
# Endpoints that should be cachable when accessed anonymously but have a Vary

View file

@ -53,6 +53,14 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do
end
context 'when limited' do
let(:searchable_by) { 'kmyblue:Limited' }
it 'searchability is limited' do
expect(subject.searchability).to eq 'limited'
end
end
context 'when limited old spec' do
let(:searchable_by) { 'as:Limited' }
it 'searchability is limited' do