Merge remote-tracking branch 'parent/main' into kbtopic-remove-quote

This commit is contained in:
KMY 2025-05-13 07:37:34 +09:00
commit 04070aa608
50 changed files with 2139 additions and 2333 deletions

View file

@ -43,4 +43,4 @@ jobs:
uses: ./.github/actions/setup-javascript uses: ./.github/actions/setup-javascript
- name: JavaScript testing - name: JavaScript testing
run: yarn jest --reporters github-actions summary run: yarn test:js

View file

@ -64,7 +64,7 @@ gem 'kaminari', '~> 1.2'
gem 'link_header', '~> 0.0' gem 'link_header', '~> 0.0'
gem 'linzer', '~> 0.6.1' gem 'linzer', '~> 0.6.1'
gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock' gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock'
gem 'mime-types', '~> 3.6.0', require: 'mime/types/columnar' gem 'mime-types', '~> 3.7.0', require: 'mime/types/columnar'
gem 'mutex_m' gem 'mutex_m'
gem 'nokogiri', '~> 1.15' gem 'nokogiri', '~> 1.15'
gem 'oj', '~> 3.14' gem 'oj', '~> 3.14'

View file

@ -423,10 +423,10 @@ GEM
redis (>= 3.0.5) redis (>= 3.0.5)
matrix (0.4.2) matrix (0.4.2)
memory_profiler (1.1.0) memory_profiler (1.1.0)
mime-types (3.6.2) mime-types (3.7.0)
logger logger
mime-types-data (~> 3.2015) mime-types-data (~> 3.2025, >= 3.2025.0507)
mime-types-data (3.2025.0408) mime-types-data (3.2025.0507)
mini_mime (1.1.5) mini_mime (1.1.5)
mini_portile2 (2.8.8) mini_portile2 (2.8.8)
minitest (5.25.5) minitest (5.25.5)
@ -627,7 +627,7 @@ GEM
activesupport (>= 3.0.0) activesupport (>= 3.0.0)
raabro (1.4.0) raabro (1.4.0)
racc (1.8.1) racc (1.8.1)
rack (2.2.13) rack (2.2.14)
rack-attack (6.7.0) rack-attack (6.7.0)
rack (>= 1.0, < 4) rack (>= 1.0, < 4)
rack-cors (2.0.2) rack-cors (2.0.2)
@ -996,7 +996,7 @@ DEPENDENCIES
mail (~> 2.8) mail (~> 2.8)
mario-redis-lock (~> 1.2) mario-redis-lock (~> 1.2)
memory_profiler memory_profiler
mime-types (~> 3.6.0) mime-types (~> 3.7.0)
mutex_m mutex_m
net-http (~> 0.6.0) net-http (~> 0.6.0)
net-ldap (~> 0.18) net-ldap (~> 0.18)

View file

@ -1,7 +1,7 @@
# frozen_string_literal: true # frozen_string_literal: true
class Api::V2::InstancesController < Api::BaseController class Api::V2::InstancesController < Api::BaseController
skip_before_action :require_authenticated_user!, unless: :limited_federation_mode? skip_before_action :require_authenticated_user!
skip_around_action :set_locale skip_around_action :set_locale
vary_by '' vary_by ''

View file

@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
exports[`<AutosuggestEmoji /> renders emoji with custom url 1`] = ` exports[`<AutosuggestEmoji /> > renders emoji with custom url 1`] = `
<div <div
className="autosuggest-emoji" className="autosuggest-emoji"
> >
@ -17,7 +17,7 @@ exports[`<AutosuggestEmoji /> renders emoji with custom url 1`] = `
</div> </div>
`; `;
exports[`<AutosuggestEmoji /> renders native emoji 1`] = ` exports[`<AutosuggestEmoji /> > renders native emoji 1`] = `
<div <div
className="autosuggest-emoji" className="autosuggest-emoji"
> >

View file

@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
exports[`<Avatar /> Autoplay renders a animated avatar 1`] = ` exports[`<Avatar /> > Autoplay > renders a animated avatar 1`] = `
<div <div
className="account__avatar account__avatar--loading" className="account__avatar account__avatar--loading"
onMouseEnter={[Function]} onMouseEnter={[Function]}
@ -21,7 +21,7 @@ exports[`<Avatar /> Autoplay renders a animated avatar 1`] = `
</div> </div>
`; `;
exports[`<Avatar /> Still renders a still avatar 1`] = ` exports[`<Avatar /> > Still > renders a still avatar 1`] = `
<div <div
className="account__avatar account__avatar--loading" className="account__avatar account__avatar--loading"
onMouseEnter={[Function]} onMouseEnter={[Function]}

View file

@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
exports[`<AvatarOverlay renders a overlay avatar 1`] = ` exports[`<AvatarOverlay > renders a overlay avatar 1`] = `
<div <div
className="account__avatar-overlay" className="account__avatar-overlay"
onMouseEnter={[Function]} onMouseEnter={[Function]}

View file

@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
exports[`<Button /> adds class "button-secondary" if props.secondary given 1`] = ` exports[`<Button /> > adds class "button-secondary" if props.secondary given 1`] = `
<button <button
className="button button-secondary" className="button button-secondary"
onClick={[Function]} onClick={[Function]}
@ -8,7 +8,7 @@ exports[`<Button /> adds class "button-secondary" if props.secondary given 1`] =
/> />
`; `;
exports[`<Button /> renders a button element 1`] = ` exports[`<Button /> > renders a button element 1`] = `
<button <button
className="button" className="button"
onClick={[Function]} onClick={[Function]}
@ -16,7 +16,7 @@ exports[`<Button /> renders a button element 1`] = `
/> />
`; `;
exports[`<Button /> renders a disabled attribute if props.disabled given 1`] = ` exports[`<Button /> > renders a disabled attribute if props.disabled given 1`] = `
<button <button
className="button" className="button"
disabled={true} disabled={true}
@ -25,7 +25,7 @@ exports[`<Button /> renders a disabled attribute if props.disabled given 1`] = `
/> />
`; `;
exports[`<Button /> renders class="button--block" if props.block given 1`] = ` exports[`<Button /> > renders class="button--block" if props.block given 1`] = `
<button <button
className="button button--block" className="button button--block"
onClick={[Function]} onClick={[Function]}
@ -33,7 +33,7 @@ exports[`<Button /> renders class="button--block" if props.block given 1`] = `
/> />
`; `;
exports[`<Button /> renders the children 1`] = ` exports[`<Button /> > renders the children 1`] = `
<button <button
className="button" className="button"
onClick={[Function]} onClick={[Function]}
@ -45,7 +45,7 @@ exports[`<Button /> renders the children 1`] = `
</button> </button>
`; `;
exports[`<Button /> renders the given text 1`] = ` exports[`<Button /> > renders the given text 1`] = `
<button <button
className="button" className="button"
onClick={[Function]} onClick={[Function]}
@ -55,7 +55,7 @@ exports[`<Button /> renders the given text 1`] = `
</button> </button>
`; `;
exports[`<Button /> renders the props.text instead of children 1`] = ` exports[`<Button /> > renders the props.text instead of children 1`] = `
<button <button
className="button" className="button"
onClick={[Function]} onClick={[Function]}

View file

@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
exports[`<DisplayName /> renders display name + account name 1`] = ` exports[`<DisplayName /> > renders display name + account name 1`] = `
<span <span
className="display-name" className="display-name"
onMouseEnter={[Function]} onMouseEnter={[Function]}

View file

@ -21,7 +21,7 @@ describe('<Button />', () => {
}); });
it('handles click events using the given handler', () => { it('handles click events using the given handler', () => {
const handler = jest.fn(); const handler = vi.fn();
render(<Button onClick={handler}>button</Button>); render(<Button onClick={handler}>button</Button>);
fireEvent.click(screen.getByText('button')); fireEvent.click(screen.getByText('button'));
@ -29,7 +29,7 @@ describe('<Button />', () => {
}); });
it('does not handle click events if props.disabled given', () => { it('does not handle click events if props.disabled given', () => {
const handler = jest.fn(); const handler = vi.fn();
render(<Button onClick={handler} disabled>button</Button>); render(<Button onClick={handler} disabled>button</Button>);
fireEvent.click(screen.getByText('button')); fireEvent.click(screen.getByText('button'));

View file

@ -7,7 +7,7 @@ const fakeIcon = () => <span />;
describe('<Column />', () => { describe('<Column />', () => {
describe('<ColumnHeader /> click handler', () => { describe('<ColumnHeader /> click handler', () => {
it('runs the scroll animation if the column contains scrollable content', () => { it('runs the scroll animation if the column contains scrollable content', () => {
const scrollToMock = jest.fn(); const scrollToMock = vi.fn();
const { container } = render( const { container } = render(
<Column heading='notifications' icon='notifications' iconComponent={fakeIcon}> <Column heading='notifications' icon='notifications' iconComponent={fakeIcon}>
<div className='scrollable' /> <div className='scrollable' />

View file

@ -24,10 +24,12 @@
"account.copy": "Копиране на връзка към профила", "account.copy": "Копиране на връзка към профила",
"account.direct": "Частно споменаване на @{name}", "account.direct": "Частно споменаване на @{name}",
"account.disable_notifications": "Спиране на известяване при публикуване от @{name}", "account.disable_notifications": "Спиране на известяване при публикуване от @{name}",
"account.domain_blocking": "Блокиране на домейн",
"account.edit_profile": "Редактиране на профила", "account.edit_profile": "Редактиране на профила",
"account.enable_notifications": "Известяване при публикуване от @{name}", "account.enable_notifications": "Известяване при публикуване от @{name}",
"account.endorse": "Представи в профила", "account.endorse": "Представи в профила",
"account.featured": "Препоръчано", "account.featured": "Препоръчано",
"account.featured.accounts": "Профили",
"account.featured.hashtags": "Хаштагове", "account.featured.hashtags": "Хаштагове",
"account.featured.posts": "Публикации", "account.featured.posts": "Публикации",
"account.featured_tags.last_status_at": "Последна публикация на {date}", "account.featured_tags.last_status_at": "Последна публикация на {date}",
@ -40,6 +42,7 @@
"account.following": "Последвано", "account.following": "Последвано",
"account.following_counter": "{count, plural, one {{counter} последван} other {{counter} последвани}}", "account.following_counter": "{count, plural, one {{counter} последван} other {{counter} последвани}}",
"account.follows.empty": "Потребителят още никого не следва.", "account.follows.empty": "Потребителят още никого не следва.",
"account.follows_you": "Следва ви",
"account.go_to_profile": "Към профила", "account.go_to_profile": "Към профила",
"account.hide_reblogs": "Скриване на подсилвания от @{name}", "account.hide_reblogs": "Скриване на подсилвания от @{name}",
"account.in_memoriam": "В памет на.", "account.in_memoriam": "В памет на.",
@ -54,13 +57,17 @@
"account.mute_notifications_short": "Заглушаване на известията", "account.mute_notifications_short": "Заглушаване на известията",
"account.mute_short": "Заглушаване", "account.mute_short": "Заглушаване",
"account.muted": "Заглушено", "account.muted": "Заглушено",
"account.muting": "Заглушаване",
"account.mutual": "Взаимно се следвате",
"account.no_bio": "Няма представен опис.", "account.no_bio": "Няма представен опис.",
"account.open_original_page": "Отваряне на първообразната страница", "account.open_original_page": "Отваряне на първообразната страница",
"account.posts": "Публикации", "account.posts": "Публикации",
"account.posts_with_replies": "Публ. и отговори", "account.posts_with_replies": "Публ. и отговори",
"account.remove_from_followers": "Премахване на {name} от последователи",
"account.report": "Докладване на @{name}", "account.report": "Докладване на @{name}",
"account.requested": "Чака се одобрение. Щракнете за отмяна на заявката за последване", "account.requested": "Чака се одобрение. Щракнете за отмяна на заявката за последване",
"account.requested_follow": "{name} поиска да ви последва", "account.requested_follow": "{name} поиска да ви последва",
"account.requests_to_follow_you": "Заявки да ви последват",
"account.share": "Споделяне на профила на @{name}", "account.share": "Споделяне на профила на @{name}",
"account.show_reblogs": "Показване на подсилвания от @{name}", "account.show_reblogs": "Показване на подсилвания от @{name}",
"account.statuses_counter": "{count, plural, one {{counter} публикация} other {{counter} публикации}}", "account.statuses_counter": "{count, plural, one {{counter} публикация} other {{counter} публикации}}",
@ -227,6 +234,9 @@
"confirmations.redraft.confirm": "Изтриване и преработване", "confirmations.redraft.confirm": "Изтриване и преработване",
"confirmations.redraft.message": "Наистина ли искате да изтриете тази публикация и да я направите чернова? Означаванията като любими и подсилванията ще се изгубят, а и отговорите към първоначалната публикация ще осиротеят.", "confirmations.redraft.message": "Наистина ли искате да изтриете тази публикация и да я направите чернова? Означаванията като любими и подсилванията ще се изгубят, а и отговорите към първоначалната публикация ще осиротеят.",
"confirmations.redraft.title": "Изтривате и преработвате ли публикацията?", "confirmations.redraft.title": "Изтривате и преработвате ли публикацията?",
"confirmations.remove_from_followers.confirm": "Премахване на последовател",
"confirmations.remove_from_followers.message": "{name} ще спре да ви следва. Наистина ли искате да продължите?",
"confirmations.remove_from_followers.title": "Премахвате ли последовател?",
"confirmations.reply.confirm": "Отговор", "confirmations.reply.confirm": "Отговор",
"confirmations.reply.message": "Отговарянето сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?", "confirmations.reply.message": "Отговарянето сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?",
"confirmations.reply.title": "Презаписвате ли публикацията?", "confirmations.reply.title": "Презаписвате ли публикацията?",

View file

@ -29,6 +29,7 @@
"account.enable_notifications": "Rhowch wybod i fi pan fydd @{name} yn postio", "account.enable_notifications": "Rhowch wybod i fi pan fydd @{name} yn postio",
"account.endorse": "Dangos ar fy mhroffil", "account.endorse": "Dangos ar fy mhroffil",
"account.featured": "Nodwedd", "account.featured": "Nodwedd",
"account.featured.accounts": "Proffilau",
"account.featured.hashtags": "Hashnodau", "account.featured.hashtags": "Hashnodau",
"account.featured.posts": "Postiadau", "account.featured.posts": "Postiadau",
"account.featured_tags.last_status_at": "Y postiad olaf ar {date}", "account.featured_tags.last_status_at": "Y postiad olaf ar {date}",
@ -405,8 +406,10 @@
"hashtag.counter_by_accounts": "{count, plural, one {{counter} cyfranogwr} other {{counter} cyfranogwr}}", "hashtag.counter_by_accounts": "{count, plural, one {{counter} cyfranogwr} other {{counter} cyfranogwr}}",
"hashtag.counter_by_uses": "{count, plural, one {postiad {counter}} other {postiad {counter}}}", "hashtag.counter_by_uses": "{count, plural, one {postiad {counter}} other {postiad {counter}}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} postiad} other {{counter} postiad}} heddiw", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} postiad} other {{counter} postiad}} heddiw",
"hashtag.feature": "Nodwedd ar y proffil",
"hashtag.follow": "Dilyn hashnod", "hashtag.follow": "Dilyn hashnod",
"hashtag.mute": "Tewi #{hashtag}", "hashtag.mute": "Tewi #{hashtag}",
"hashtag.unfeature": "Peidio a'i gynnwys ar y proffil",
"hashtag.unfollow": "Dad-ddilyn hashnod", "hashtag.unfollow": "Dad-ddilyn hashnod",
"hashtags.and_other": "…a {count, plural, other {# arall}}", "hashtags.and_other": "…a {count, plural, other {# arall}}",
"hints.profiles.followers_may_be_missing": "Mae'n bosibl bod dilynwyr y proffil hwn ar goll.", "hints.profiles.followers_may_be_missing": "Mae'n bosibl bod dilynwyr y proffil hwn ar goll.",

View file

@ -24,9 +24,12 @@
"account.copy": "Kopii ligilon al profilo", "account.copy": "Kopii ligilon al profilo",
"account.direct": "Private mencii @{name}", "account.direct": "Private mencii @{name}",
"account.disable_notifications": "Ĉesu sciigi min kiam @{name} afiŝas", "account.disable_notifications": "Ĉesu sciigi min kiam @{name} afiŝas",
"account.domain_blocking": "Blokas domajnon",
"account.edit_profile": "Redakti la profilon", "account.edit_profile": "Redakti la profilon",
"account.enable_notifications": "Sciigu min kiam @{name} afiŝos", "account.enable_notifications": "Sciigu min kiam @{name} afiŝos",
"account.endorse": "Montri en profilo", "account.endorse": "Montri en profilo",
"account.featured": "Montrita",
"account.featured.accounts": "Profiloj",
"account.featured.hashtags": "Kradvortoj", "account.featured.hashtags": "Kradvortoj",
"account.featured.posts": "Afiŝoj", "account.featured.posts": "Afiŝoj",
"account.featured_tags.last_status_at": "Lasta afîŝo je {date}", "account.featured_tags.last_status_at": "Lasta afîŝo je {date}",
@ -39,13 +42,14 @@
"account.following": "Sekvatoj", "account.following": "Sekvatoj",
"account.following_counter": "{count, plural, one {{counter} sekvato} other {{counter} sekvatoj}}", "account.following_counter": "{count, plural, one {{counter} sekvato} other {{counter} sekvatoj}}",
"account.follows.empty": "La uzanto ankoraŭ ne sekvas iun ajn.", "account.follows.empty": "La uzanto ankoraŭ ne sekvas iun ajn.",
"account.follows_you": "Sekvas vin",
"account.go_to_profile": "Iri al profilo", "account.go_to_profile": "Iri al profilo",
"account.hide_reblogs": "Kaŝi diskonigojn de @{name}", "account.hide_reblogs": "Kaŝi diskonigojn de @{name}",
"account.in_memoriam": "Memore.", "account.in_memoriam": "Memore.",
"account.joined_short": "Aliĝis", "account.joined_short": "Aliĝis",
"account.languages": "Ŝanĝi la abonitajn lingvojn", "account.languages": "Ŝanĝi la abonitajn lingvojn",
"account.link_verified_on": "Propreco de tiu ligilo estis konfirmita je {date}", "account.link_verified_on": "La posedanto de tiu ligilo estis kontrolita je {date}",
"account.locked_info": "Tiu konto estas privatigita. La posedanto mane akceptas tiun, kiu povas sekvi rin.", "account.locked_info": "La privateco de tiu konto estas elektita kiel fermita. La posedanto povas mane akcepti tiun, kiu povas sekvi rin.",
"account.media": "Aŭdovidaĵoj", "account.media": "Aŭdovidaĵoj",
"account.mention": "Mencii @{name}", "account.mention": "Mencii @{name}",
"account.moved_to": "{name} indikis, ke ria nova konto estas nun:", "account.moved_to": "{name} indikis, ke ria nova konto estas nun:",
@ -53,14 +57,17 @@
"account.mute_notifications_short": "Silentigu sciigojn", "account.mute_notifications_short": "Silentigu sciigojn",
"account.mute_short": "Silentigu", "account.mute_short": "Silentigu",
"account.muted": "Silentigita", "account.muted": "Silentigita",
"account.muting": "Silentas",
"account.mutual": "Vi sekvas unu la alian", "account.mutual": "Vi sekvas unu la alian",
"account.no_bio": "Neniu priskribo estas provizita.", "account.no_bio": "Neniu priskribo estas provizita.",
"account.open_original_page": "Malfermi la originalan paĝon", "account.open_original_page": "Malfermi la originalan paĝon",
"account.posts": "Afiŝoj", "account.posts": "Afiŝoj",
"account.posts_with_replies": "Afiŝoj kaj respondoj", "account.posts_with_replies": "Afiŝoj kaj respondoj",
"account.remove_from_followers": "Forigi {name}-n de sekvantoj",
"account.report": "Raporti @{name}", "account.report": "Raporti @{name}",
"account.requested": "Atendo de aprobo. Klaku por nuligi la peton por sekvado", "account.requested": "Atendo de aprobo. Klaku por nuligi la peton por sekvado",
"account.requested_follow": "{name} petis sekvi vin", "account.requested_follow": "{name} petis sekvi vin",
"account.requests_to_follow_you": "Petoj sekvi vin",
"account.share": "Diskonigi la profilon de @{name}", "account.share": "Diskonigi la profilon de @{name}",
"account.show_reblogs": "Montri diskonigojn de @{name}", "account.show_reblogs": "Montri diskonigojn de @{name}",
"account.statuses_counter": "{count, plural,one {{counter} afiŝo} other {{counter} afiŝoj}}", "account.statuses_counter": "{count, plural,one {{counter} afiŝo} other {{counter} afiŝoj}}",
@ -69,24 +76,24 @@
"account.unblock_domain_short": "Malbloki", "account.unblock_domain_short": "Malbloki",
"account.unblock_short": "Malbloki", "account.unblock_short": "Malbloki",
"account.unendorse": "Ne plu rekomendi ĉe la profilo", "account.unendorse": "Ne plu rekomendi ĉe la profilo",
"account.unfollow": "Ĉesi sekvi", "account.unfollow": "Ne plu sekvi",
"account.unmute": "Ne plu silentigi @{name}", "account.unmute": "Malsilentigi @{name}",
"account.unmute_notifications_short": "Malsilentigu sciigojn", "account.unmute_notifications_short": "Malsilentigu sciigojn",
"account.unmute_short": "Ne plu silentigi", "account.unmute_short": "Ne plu silentigi",
"account_note.placeholder": "Alklaku por aldoni noton", "account_note.placeholder": "Alklaku por aldoni noton",
"admin.dashboard.daily_retention": "Uzantoretenprocento lau tag post registro", "admin.dashboard.daily_retention": "Uzantoretenprocento laŭ tag post registro",
"admin.dashboard.monthly_retention": "Uzantoretenprocento lau monato post registro", "admin.dashboard.monthly_retention": "Uzantoretenprocento laŭ monato post registro",
"admin.dashboard.retention.average": "Averaĝe", "admin.dashboard.retention.average": "Averaĝa",
"admin.dashboard.retention.cohort": "Monato de registriĝo", "admin.dashboard.retention.cohort": "Monato de registriĝo",
"admin.dashboard.retention.cohort_size": "Novaj uzantoj", "admin.dashboard.retention.cohort_size": "Novaj uzantoj",
"admin.impact_report.instance_accounts": "Kontoj kaj profiloj tio forigus", "admin.impact_report.instance_accounts": "Kontojn kaj profilojn tio forigus",
"admin.impact_report.instance_followers": "Sekvantojn niaj uzantoj perdus", "admin.impact_report.instance_followers": "Sekvantojn niaj uzantoj perdus",
"admin.impact_report.instance_follows": "Sekvantojn ties uzantoj perdus", "admin.impact_report.instance_follows": "Sekvantojn ties uzantoj perdus",
"admin.impact_report.title": "Influa reporto", "admin.impact_report.title": "Influa reporto",
"alert.rate_limited.message": "Bonvolu reprovi poste {retry_time, time, medium}.", "alert.rate_limited.message": "Bonvolu reprovi poste {retry_time, time, medium}.",
"alert.rate_limited.title": "Mesaĝkvante limigita", "alert.rate_limited.title": "Mesaĝkvante limigita",
"alert.unexpected.message": "Neatendita eraro okazis.", "alert.unexpected.message": "Neatendita eraro okazis.",
"alert.unexpected.title": "Aj!", "alert.unexpected.title": "Ups!",
"alt_text_badge.title": "Alt-teksto", "alt_text_badge.title": "Alt-teksto",
"alt_text_modal.add_alt_text": "Aldoni alttekston", "alt_text_modal.add_alt_text": "Aldoni alttekston",
"alt_text_modal.add_text_from_image": "Aldoni tekston de bildo", "alt_text_modal.add_text_from_image": "Aldoni tekston de bildo",
@ -96,9 +103,9 @@
"alt_text_modal.describe_for_people_with_visual_impairments": "Priskribi ĉi tion por homoj kun vidaj malkapabloj…", "alt_text_modal.describe_for_people_with_visual_impairments": "Priskribi ĉi tion por homoj kun vidaj malkapabloj…",
"alt_text_modal.done": "Farita", "alt_text_modal.done": "Farita",
"announcement.announcement": "Anonco", "announcement.announcement": "Anonco",
"annual_report.summary.archetype.booster": "La Ĉasanto de Mojoso", "annual_report.summary.archetype.booster": "La ĉasanto de mojoso",
"annual_report.summary.archetype.lurker": "La vidanto", "annual_report.summary.archetype.lurker": "La vidanto",
"annual_report.summary.archetype.oracle": "La Orakolo", "annual_report.summary.archetype.oracle": "La orakolo",
"annual_report.summary.archetype.pollster": "La balotenketisto", "annual_report.summary.archetype.pollster": "La balotenketisto",
"annual_report.summary.archetype.replier": "La plej societema", "annual_report.summary.archetype.replier": "La plej societema",
"annual_report.summary.followers.followers": "sekvantoj", "annual_report.summary.followers.followers": "sekvantoj",
@ -108,11 +115,11 @@
"annual_report.summary.highlighted_post.by_reblogs": "plej diskonigita afiŝo", "annual_report.summary.highlighted_post.by_reblogs": "plej diskonigita afiŝo",
"annual_report.summary.highlighted_post.by_replies": "afiŝo kun la plej multaj respondoj", "annual_report.summary.highlighted_post.by_replies": "afiŝo kun la plej multaj respondoj",
"annual_report.summary.highlighted_post.possessive": "de {name}", "annual_report.summary.highlighted_post.possessive": "de {name}",
"annual_report.summary.most_used_app.most_used_app": "plej uzita apo", "annual_report.summary.most_used_app.most_used_app": "plej uzita aplikaĵo",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "plej uzata kradvorto", "annual_report.summary.most_used_hashtag.most_used_hashtag": "plej uzata kradvorto",
"annual_report.summary.most_used_hashtag.none": "Nenio", "annual_report.summary.most_used_hashtag.none": "Nenio",
"annual_report.summary.new_posts.new_posts": "novaj afiŝoj", "annual_report.summary.new_posts.new_posts": "novaj afiŝoj",
"annual_report.summary.percentile.text": "<topLabel>Tio metas vin en la plej</topLabel><percentage></percentage><bottomLabel>de {domain} uzantoj.</bottomLabel>", "annual_report.summary.percentile.text": "<topLabel>Tion metas vin en la plej</topLabel><percentage></percentage><bottomLabel>de {domain} uzantoj.</bottomLabel>",
"annual_report.summary.percentile.we_wont_tell_bernie": "Ni ne diros al Zamenhof.", "annual_report.summary.percentile.we_wont_tell_bernie": "Ni ne diros al Zamenhof.",
"annual_report.summary.thanks": "Dankon pro esti parto de Mastodon!", "annual_report.summary.thanks": "Dankon pro esti parto de Mastodon!",
"attachments_list.unprocessed": "(neprilaborita)", "attachments_list.unprocessed": "(neprilaborita)",
@ -144,7 +151,7 @@
"closed_registrations_modal.description": "Krei konton ĉe {domain} aktuale ne eblas, tamen bonvole rimarku, ke vi ne bezonas konton specife ĉe {domain} por uzi Mastodon.", "closed_registrations_modal.description": "Krei konton ĉe {domain} aktuale ne eblas, tamen bonvole rimarku, ke vi ne bezonas konton specife ĉe {domain} por uzi Mastodon.",
"closed_registrations_modal.find_another_server": "Trovi alian servilon", "closed_registrations_modal.find_another_server": "Trovi alian servilon",
"closed_registrations_modal.preamble": "Mastodon estas malcentraliza, do sendepende de tio, kie vi kreas vian konton, vi povos sekvi kaj komuniki kun ĉiuj ajn el ĉi tiu servilo. Vi eĉ povas mem starigi propran servilon!", "closed_registrations_modal.preamble": "Mastodon estas malcentraliza, do sendepende de tio, kie vi kreas vian konton, vi povos sekvi kaj komuniki kun ĉiuj ajn el ĉi tiu servilo. Vi eĉ povas mem starigi propran servilon!",
"closed_registrations_modal.title": "Krei konton en Mastodon", "closed_registrations_modal.title": "Registriĝi en Mastodon",
"column.about": "Pri", "column.about": "Pri",
"column.blocks": "Blokitaj uzantoj", "column.blocks": "Blokitaj uzantoj",
"column.bookmarks": "Legosignoj", "column.bookmarks": "Legosignoj",
@ -162,18 +169,19 @@
"column.lists": "Listoj", "column.lists": "Listoj",
"column.mutes": "Silentigitaj uzantoj", "column.mutes": "Silentigitaj uzantoj",
"column.notifications": "Sciigoj", "column.notifications": "Sciigoj",
"column.public": "Fratara templinio", "column.pins": "Montritaj afiŝoj",
"column.public": "Fratara tempolinio",
"column_back_button.label": "Reveni", "column_back_button.label": "Reveni",
"column_header.hide_settings": "Kaŝi la agordojn", "column_header.hide_settings": "Kaŝi agordojn",
"column_header.moveLeft_settings": "Movi kolumnon maldekstren", "column_header.moveLeft_settings": "Movi kolumnon maldekstren",
"column_header.moveRight_settings": "Movi kolumnon dekstren", "column_header.moveRight_settings": "Movi kolumnon dekstren",
"column_header.pin": "Fiksi", "column_header.pin": "Fiksi",
"column_header.show_settings": "Montri la agordojn", "column_header.show_settings": "Montri agordojn",
"column_header.unpin": "Malfiksi", "column_header.unpin": "Malfiksi",
"column_search.cancel": "Nuligi", "column_search.cancel": "Nuligi",
"column_subheading.settings": "Agordoj", "column_subheading.settings": "Agordoj",
"community.column_settings.local_only": "Nur loka", "community.column_settings.local_only": "Nur loka",
"community.column_settings.media_only": "Nur vidaŭdaĵoj", "community.column_settings.media_only": "Nur dovidaĵoj",
"community.column_settings.remote_only": "Nur fora", "community.column_settings.remote_only": "Nur fora",
"compose.language.change": "Ŝanĝi lingvon", "compose.language.change": "Ŝanĝi lingvon",
"compose.language.search": "Serĉi lingvojn...", "compose.language.search": "Serĉi lingvojn...",
@ -183,18 +191,18 @@
"compose_form.direct_message_warning_learn_more": "Lerni pli", "compose_form.direct_message_warning_learn_more": "Lerni pli",
"compose_form.encryption_warning": "La afiŝoj en Mastodon ne estas tutvoje ĉifritaj. Ne kunhavigu tiklajn informojn ĉe Mastodon.", "compose_form.encryption_warning": "La afiŝoj en Mastodon ne estas tutvoje ĉifritaj. Ne kunhavigu tiklajn informojn ĉe Mastodon.",
"compose_form.hashtag_warning": "Ĉi tiu afiŝo ne estos listigita en neniu kradvorto ĉar ĝi ne estas publika. Nur publikaj afiŝoj povas esti serĉitaj per kradvortoj.", "compose_form.hashtag_warning": "Ĉi tiu afiŝo ne estos listigita en neniu kradvorto ĉar ĝi ne estas publika. Nur publikaj afiŝoj povas esti serĉitaj per kradvortoj.",
"compose_form.lock_disclaimer": "Via konto ne estas {locked}. Iu ajn povas sekvi vin por vidi viajn afiŝojn nur al la sekvantoj.", "compose_form.lock_disclaimer": "Via konta ne estas {locked}. Iu ajn povas sekvi vin por vidi viajn mesaĝojn, kiuj estas nur por sekvantoj.",
"compose_form.lock_disclaimer.lock": "ŝlosita", "compose_form.lock_disclaimer.lock": "ŝlosita",
"compose_form.placeholder": "Kion vi pensas?", "compose_form.placeholder": "Pri kio vi pensas?",
"compose_form.poll.duration": "Daŭro de la balotenketo", "compose_form.poll.duration": "Daŭro de la balotenketo",
"compose_form.poll.multiple": "Multobla elekto", "compose_form.poll.multiple": "Multebla elekto",
"compose_form.poll.option_placeholder": "Opcio {number}", "compose_form.poll.option_placeholder": "Opcio {number}",
"compose_form.poll.single": "Ununura elekto", "compose_form.poll.single": "Ununura elekto",
"compose_form.poll.switch_to_multiple": "Ŝanĝi la balotenketon por permesi multajn elektojn", "compose_form.poll.switch_to_multiple": "Ŝanĝi la balotenketon por permesi multajn elektojn",
"compose_form.poll.switch_to_single": "Ŝanĝi la balotenketon por permesi unu solan elekton", "compose_form.poll.switch_to_single": "Ŝanĝi la balotenketon por permesi unu solan elekton",
"compose_form.poll.type": "Stilo", "compose_form.poll.type": "Stilo",
"compose_form.publish": "Afiŝo", "compose_form.publish": "Afiŝi",
"compose_form.publish_form": "Nova afiŝo", "compose_form.publish_form": "Afiŝi",
"compose_form.reply": "Respondi", "compose_form.reply": "Respondi",
"compose_form.save_changes": "Ĝisdatigi", "compose_form.save_changes": "Ĝisdatigi",
"compose_form.spoiler.marked": "Forigi la averton de enhavo", "compose_form.spoiler.marked": "Forigi la averton de enhavo",
@ -227,6 +235,9 @@
"confirmations.redraft.confirm": "Forigi kaj reskribi", "confirmations.redraft.confirm": "Forigi kaj reskribi",
"confirmations.redraft.message": "Ĉu vi certas ke vi volas forigi tiun afiŝon kaj reskribi ĝin? Ĉiuj diskonigoj kaj stelumoj estos perditaj, kaj respondoj al la originala mesaĝo estos senparentaj.", "confirmations.redraft.message": "Ĉu vi certas ke vi volas forigi tiun afiŝon kaj reskribi ĝin? Ĉiuj diskonigoj kaj stelumoj estos perditaj, kaj respondoj al la originala mesaĝo estos senparentaj.",
"confirmations.redraft.title": "Ĉu forigi kaj redakcii afiŝon?", "confirmations.redraft.title": "Ĉu forigi kaj redakcii afiŝon?",
"confirmations.remove_from_followers.confirm": "Forigi sekvanton",
"confirmations.remove_from_followers.message": "{name} ne plu sekvos vin. Ĉu vi certas ke vi volas daŭri?",
"confirmations.remove_from_followers.title": "Forigi sekvanton?",
"confirmations.reply.confirm": "Respondi", "confirmations.reply.confirm": "Respondi",
"confirmations.reply.message": "Respondi nun anstataŭigos la skribatan afiŝon. Ĉu vi certas, ke vi volas daŭrigi?", "confirmations.reply.message": "Respondi nun anstataŭigos la skribatan afiŝon. Ĉu vi certas, ke vi volas daŭrigi?",
"confirmations.reply.title": "Ĉu superskribi afiŝon?", "confirmations.reply.title": "Ĉu superskribi afiŝon?",
@ -251,7 +262,7 @@
"disabled_account_banner.text": "Via konto {disabledAccount} estas nune malvalidigita.", "disabled_account_banner.text": "Via konto {disabledAccount} estas nune malvalidigita.",
"dismissable_banner.community_timeline": "Jen la plej novaj publikaj afiŝoj de uzantoj, kies kontojn gastigas {domain}.", "dismissable_banner.community_timeline": "Jen la plej novaj publikaj afiŝoj de uzantoj, kies kontojn gastigas {domain}.",
"dismissable_banner.dismiss": "Eksigi", "dismissable_banner.dismiss": "Eksigi",
"dismissable_banner.explore_links": "Ĉi tiuj revuaĵoj plejkunhaviĝas en la fediverso hodiaŭ. Pli novaj revuaĵoj afiŝis de pli da homoj metis pli alte.", "dismissable_banner.explore_links": "Ĉi tiuj revuaĵoj kunhaviĝas pleje en la fediverso hodiaŭ. Pli novaj revuaĵoj afiŝis de pli da homoj metis pli alte.",
"dismissable_banner.explore_statuses": "Ĉi tiuj afiŝoj populariĝas sur la fediverso hodiaŭ. Pli novaj afiŝoj kun pli da diskonigoj kaj stemuloj estas rangigitaj pli alte.", "dismissable_banner.explore_statuses": "Ĉi tiuj afiŝoj populariĝas sur la fediverso hodiaŭ. Pli novaj afiŝoj kun pli da diskonigoj kaj stemuloj estas rangigitaj pli alte.",
"dismissable_banner.explore_tags": "Ĉi tiuj kradvortoj populariĝas sur la fediverso hodiaŭ. Kradvortoj, kiuj estas uzataj de pli malsamaj homoj, estas rangigitaj pli alte.", "dismissable_banner.explore_tags": "Ĉi tiuj kradvortoj populariĝas sur la fediverso hodiaŭ. Kradvortoj, kiuj estas uzataj de pli malsamaj homoj, estas rangigitaj pli alte.",
"dismissable_banner.public_timeline": "Ĉi tiuj estas la plej ĵusaj publikaj afiŝoj de homoj en la fediverso, kiujn la homoj en {domain} sekvas.", "dismissable_banner.public_timeline": "Ĉi tiuj estas la plej ĵusaj publikaj afiŝoj de homoj en la fediverso, kiujn la homoj en {domain} sekvas.",
@ -260,11 +271,11 @@
"domain_block_modal.they_can_interact_with_old_posts": "Homoj de ĉi tiu servilo povas interagi kun viaj malnovaj afiŝoj.", "domain_block_modal.they_can_interact_with_old_posts": "Homoj de ĉi tiu servilo povas interagi kun viaj malnovaj afiŝoj.",
"domain_block_modal.they_cant_follow": "Neniu el ĉi tiu servilo povas sekvi vin.", "domain_block_modal.they_cant_follow": "Neniu el ĉi tiu servilo povas sekvi vin.",
"domain_block_modal.they_wont_know": "Ili ne scios, ke ili estas blokitaj.", "domain_block_modal.they_wont_know": "Ili ne scios, ke ili estas blokitaj.",
"domain_block_modal.title": "Ĉu bloki la domajnon?", "domain_block_modal.title": "Ĉu bloki domajnon?",
"domain_block_modal.you_will_lose_num_followers": "Vi perdos {followersCount, plural, one {{followersCountDisplay} sekvanton} other {{followersCountDisplay} sekvantojn}} kaj {followingCount, plural, one {{followingCountDisplay} homon, kiu vi sekvas} other {{followingCountDisplay} homojn, kiuj vi sekvas}}.", "domain_block_modal.you_will_lose_num_followers": "Vi perdos {followersCount, plural, one {{followersCountDisplay} sekvanton} other {{followersCountDisplay} sekvantojn}} kaj {followingCount, plural, one {{followingCountDisplay} homon, kiu vi sekvas} other {{followingCountDisplay} homojn, kiuj vi sekvas}}.",
"domain_block_modal.you_will_lose_relationships": "Vi perdos ĉiujn sekvantojn kaj homojn, kiujn vi sekvas de ĉi tiu servilo.", "domain_block_modal.you_will_lose_relationships": "Vi perdos ĉiujn sekvantojn kaj homojn, kiujn vi sekvas de ĉi tiu servilo.",
"domain_block_modal.you_wont_see_posts": "Vi ne vidos afiŝojn aŭ sciigojn de uzantoj sur ĉi tiu servilo.", "domain_block_modal.you_wont_see_posts": "Vi ne vidos afiŝojn aŭ sciigojn de uzantoj sur ĉi tiu servilo.",
"domain_pill.activitypub_lets_connect": "Ĝi ebligas vin konekti kaj interagi kun homoj ne nur sur Mastodon, sed ankaŭ tra diversaj sociaj apoj.", "domain_pill.activitypub_lets_connect": "Ĝi ebligas vin konekti kaj interagi kun homoj ne nur sur Mastodon, sed ankaŭ tra diversaj sociaj aplikaĵoj.",
"domain_pill.activitypub_like_language": "ActivityPub estas kiel la lingvo kiun Mastodon parolas kun aliaj sociaj retoj.", "domain_pill.activitypub_like_language": "ActivityPub estas kiel la lingvo kiun Mastodon parolas kun aliaj sociaj retoj.",
"domain_pill.server": "Servilo", "domain_pill.server": "Servilo",
"domain_pill.their_handle": "Ilia identigo:", "domain_pill.their_handle": "Ilia identigo:",
@ -294,6 +305,9 @@
"emoji_button.search_results": "Serĉaj rezultoj", "emoji_button.search_results": "Serĉaj rezultoj",
"emoji_button.symbols": "Simboloj", "emoji_button.symbols": "Simboloj",
"emoji_button.travel": "Vojaĝoj kaj lokoj", "emoji_button.travel": "Vojaĝoj kaj lokoj",
"empty_column.account_featured.me": "Vi ankoraŭ ne prezentis ion ajn. Ĉu vi sciis ke vi povas prezenti viajn afiŝojn, viajn plej uzitajn kradvortojn, kaj eĉ la kontojn de viaj amikoj sur via profilo?",
"empty_column.account_featured.other": "{acct} ne prezentis ion ajn. Ĉu vi sciis ke vi povas prezenti viajn afiŝojn, viajn plej uzitajn kradvortojn, kaj eĉ la kontojn de viaj amikoj sur via profilo?",
"empty_column.account_featured_other.unknown": "Ĉi tiu konto ankoraŭ ne montris ion ajn.",
"empty_column.account_hides_collections": "Ĉi tiu uzanto elektis ne disponebligi ĉi tiu informon", "empty_column.account_hides_collections": "Ĉi tiu uzanto elektis ne disponebligi ĉi tiu informon",
"empty_column.account_suspended": "Konto suspendita", "empty_column.account_suspended": "Konto suspendita",
"empty_column.account_timeline": "Neniuj afiŝoj ĉi tie!", "empty_column.account_timeline": "Neniuj afiŝoj ĉi tie!",
@ -378,6 +392,8 @@
"generic.saved": "Konservita", "generic.saved": "Konservita",
"getting_started.heading": "Por komenci", "getting_started.heading": "Por komenci",
"hashtag.admin_moderation": "Malfermi fasadon de moderigado por #{name}", "hashtag.admin_moderation": "Malfermi fasadon de moderigado por #{name}",
"hashtag.browse": "Folii afiŝojn en #{hashtag}",
"hashtag.browse_from_account": "Folii afiŝojn de @{name} en #{hashtag}",
"hashtag.column_header.tag_mode.all": "kaj {additional}", "hashtag.column_header.tag_mode.all": "kaj {additional}",
"hashtag.column_header.tag_mode.any": "aŭ {additional}", "hashtag.column_header.tag_mode.any": "aŭ {additional}",
"hashtag.column_header.tag_mode.none": "sen {additional}", "hashtag.column_header.tag_mode.none": "sen {additional}",
@ -390,7 +406,10 @@
"hashtag.counter_by_accounts": "{count, plural,one {{counter} partoprenanto} other {{counter} partoprenantoj}}", "hashtag.counter_by_accounts": "{count, plural,one {{counter} partoprenanto} other {{counter} partoprenantoj}}",
"hashtag.counter_by_uses": "{count, plural,one {{counter} afiŝo} other {{counter} afiŝoj}}", "hashtag.counter_by_uses": "{count, plural,one {{counter} afiŝo} other {{counter} afiŝoj}}",
"hashtag.counter_by_uses_today": "{count, plural,one {{counter} afiŝo} other {{counter} afiŝoj}} hodiaŭ", "hashtag.counter_by_uses_today": "{count, plural,one {{counter} afiŝo} other {{counter} afiŝoj}} hodiaŭ",
"hashtag.feature": "Prezenti en profilo",
"hashtag.follow": "Sekvi la kradvorton", "hashtag.follow": "Sekvi la kradvorton",
"hashtag.mute": "Silentigi #{hashtag}",
"hashtag.unfeature": "Ne prezenti en profilo",
"hashtag.unfollow": "Ne plu sekvi la kradvorton", "hashtag.unfollow": "Ne plu sekvi la kradvorton",
"hashtags.and_other": "…kaj {count, plural,other {# pli}}", "hashtags.and_other": "…kaj {count, plural,other {# pli}}",
"hints.profiles.followers_may_be_missing": "Sekvantoj por ĉi tiu profilo eble mankas.", "hints.profiles.followers_may_be_missing": "Sekvantoj por ĉi tiu profilo eble mankas.",
@ -461,6 +480,7 @@
"keyboard_shortcuts.my_profile": "Malfermu vian profilon", "keyboard_shortcuts.my_profile": "Malfermu vian profilon",
"keyboard_shortcuts.notifications": "Malfermu la sciigajn kolumnon", "keyboard_shortcuts.notifications": "Malfermu la sciigajn kolumnon",
"keyboard_shortcuts.open_media": "Malfermi vidaŭdaĵon", "keyboard_shortcuts.open_media": "Malfermi vidaŭdaĵon",
"keyboard_shortcuts.pinned": "Malfermu alpinglitajn afiŝliston",
"keyboard_shortcuts.profile": "Malfermu la profilon de aŭtoroprofilo", "keyboard_shortcuts.profile": "Malfermu la profilon de aŭtoroprofilo",
"keyboard_shortcuts.reply": "Respondu al afiŝo", "keyboard_shortcuts.reply": "Respondu al afiŝo",
"keyboard_shortcuts.requests": "Malfermi la liston de petoj por sekvado", "keyboard_shortcuts.requests": "Malfermi la liston de petoj por sekvado",
@ -544,6 +564,7 @@
"navigation_bar.mutes": "Silentigitaj uzantoj", "navigation_bar.mutes": "Silentigitaj uzantoj",
"navigation_bar.opened_in_classic_interface": "Afiŝoj, kontoj, kaj aliaj specifaj paĝoj kiuj estas malfermititaj defaulta en la klasika reta interfaco.", "navigation_bar.opened_in_classic_interface": "Afiŝoj, kontoj, kaj aliaj specifaj paĝoj kiuj estas malfermititaj defaulta en la klasika reta interfaco.",
"navigation_bar.personal": "Persone", "navigation_bar.personal": "Persone",
"navigation_bar.pins": "Prezentitaj afiŝoj",
"navigation_bar.preferences": "Preferoj", "navigation_bar.preferences": "Preferoj",
"navigation_bar.public_timeline": "Fratara templinio", "navigation_bar.public_timeline": "Fratara templinio",
"navigation_bar.search": "Serĉi", "navigation_bar.search": "Serĉi",
@ -839,6 +860,7 @@
"status.mute": "Silentigi @{name}", "status.mute": "Silentigi @{name}",
"status.mute_conversation": "Silentigi konversacion", "status.mute_conversation": "Silentigi konversacion",
"status.open": "Pligrandigu ĉi tiun afiŝon", "status.open": "Pligrandigu ĉi tiun afiŝon",
"status.pin": "Prezenti en profilo",
"status.read_more": "Legi pli", "status.read_more": "Legi pli",
"status.reblog": "Diskonigi", "status.reblog": "Diskonigi",
"status.reblog_private": "Diskonigi kun la sama videbleco", "status.reblog_private": "Diskonigi kun la sama videbleco",
@ -863,6 +885,7 @@
"status.translated_from_with": "Tradukita el {lang} per {provider}", "status.translated_from_with": "Tradukita el {lang} per {provider}",
"status.uncached_media_warning": "Antaŭrigardo ne disponebla", "status.uncached_media_warning": "Antaŭrigardo ne disponebla",
"status.unmute_conversation": "Malsilentigi la konversacion", "status.unmute_conversation": "Malsilentigi la konversacion",
"status.unpin": "Ne prezenti en profilo",
"subscribed_languages.lead": "Nur afiŝoj en elektitaj lingvoj aperos en viaj hejma kaj lista templinioj post la ŝanĝo. Elektu nenion por ricevi afiŝojn en ĉiuj lingvoj.", "subscribed_languages.lead": "Nur afiŝoj en elektitaj lingvoj aperos en viaj hejma kaj lista templinioj post la ŝanĝo. Elektu nenion por ricevi afiŝojn en ĉiuj lingvoj.",
"subscribed_languages.save": "Konservi ŝanĝojn", "subscribed_languages.save": "Konservi ŝanĝojn",
"subscribed_languages.target": "Ŝanĝu abonitajn lingvojn por {target}", "subscribed_languages.target": "Ŝanĝu abonitajn lingvojn por {target}",
@ -904,5 +927,9 @@
"video.mute": "Silentigi", "video.mute": "Silentigi",
"video.pause": "Paŭzigi", "video.pause": "Paŭzigi",
"video.play": "Ekigi", "video.play": "Ekigi",
"video.unmute": "Ne plu silentigi" "video.skip_backward": "Preterpasi malantaŭen",
"video.skip_forward": "Preterpasi antaŭen",
"video.unmute": "Ne plu silentigi",
"video.volume_down": "Laŭteco Malpliigi",
"video.volume_up": "Laŭteco pliigi"
} }

View file

@ -19,13 +19,19 @@
"account.block_domain": "Bac an àrainn {domain}", "account.block_domain": "Bac an àrainn {domain}",
"account.block_short": "Bac", "account.block_short": "Bac",
"account.blocked": "Ga bhacadh", "account.blocked": "Ga bhacadh",
"account.blocking": "Ga bhacadh",
"account.cancel_follow_request": "Sguir dhen leantainn", "account.cancel_follow_request": "Sguir dhen leantainn",
"account.copy": "Dèan lethbhreac dhen cheangal dhan phròifil", "account.copy": "Dèan lethbhreac dhen cheangal dhan phròifil",
"account.direct": "Thoir iomradh air @{name} gu prìobhaideach", "account.direct": "Thoir iomradh air @{name} gu prìobhaideach",
"account.disable_notifications": "Na cuir brath thugam tuilleadh nuair a chuireas @{name} post ris", "account.disable_notifications": "Na cuir brath thugam tuilleadh nuair a chuireas @{name} post ris",
"account.domain_blocking": "Àrainn ga bacadh",
"account.edit_profile": "Deasaich a phròifil", "account.edit_profile": "Deasaich a phròifil",
"account.enable_notifications": "Cuir brath thugam nuair a chuireas @{name} post ris", "account.enable_notifications": "Cuir brath thugam nuair a chuireas @{name} post ris",
"account.endorse": "Brosnaich air a phròifil", "account.endorse": "Brosnaich air a phròifil",
"account.featured": "Ga bhrosnachadh",
"account.featured.accounts": "Pròifilean",
"account.featured.hashtags": "Tagaichean hais",
"account.featured.posts": "Postaichean",
"account.featured_tags.last_status_at": "Am post mu dheireadh {date}", "account.featured_tags.last_status_at": "Am post mu dheireadh {date}",
"account.featured_tags.last_status_never": "Gun phost", "account.featured_tags.last_status_never": "Gun phost",
"account.follow": "Lean", "account.follow": "Lean",
@ -36,6 +42,7 @@
"account.following": "A leantainn", "account.following": "A leantainn",
"account.following_counter": "{count, plural, one {A leantainn {counter}} other {A leantainn {counter}}}", "account.following_counter": "{count, plural, one {A leantainn {counter}} other {A leantainn {counter}}}",
"account.follows.empty": "Chan eil an cleachdaiche seo a leantainn neach sam bith fhathast.", "account.follows.empty": "Chan eil an cleachdaiche seo a leantainn neach sam bith fhathast.",
"account.follows_you": "Gad leantainn",
"account.go_to_profile": "Tadhail air a phròifil", "account.go_to_profile": "Tadhail air a phròifil",
"account.hide_reblogs": "Falaich na brosnachaidhean o @{name}", "account.hide_reblogs": "Falaich na brosnachaidhean o @{name}",
"account.in_memoriam": "Mar chuimhneachan.", "account.in_memoriam": "Mar chuimhneachan.",
@ -50,18 +57,23 @@
"account.mute_notifications_short": "Mùch na brathan", "account.mute_notifications_short": "Mùch na brathan",
"account.mute_short": "Mùch", "account.mute_short": "Mùch",
"account.muted": "Ga mhùchadh", "account.muted": "Ga mhùchadh",
"account.muting": "Ga mhùchadh",
"account.mutual": "A leantainn càch a chèile",
"account.no_bio": "Cha deach tuairisgeul a sholar.", "account.no_bio": "Cha deach tuairisgeul a sholar.",
"account.open_original_page": "Fosgail an duilleag thùsail", "account.open_original_page": "Fosgail an duilleag thùsail",
"account.posts": "Postaichean", "account.posts": "Postaichean",
"account.posts_with_replies": "Postaichean s freagairtean", "account.posts_with_replies": "Postaichean s freagairtean",
"account.remove_from_followers": "Thoir {name} air falbh on luchd-leantainn",
"account.report": "Dèan gearan mu @{name}", "account.report": "Dèan gearan mu @{name}",
"account.requested": "A feitheamh air aontachadh. Briog airson sgur dhen iarrtas leantainn", "account.requested": "A feitheamh air aontachadh. Briog airson sgur dhen iarrtas leantainn",
"account.requested_follow": "Dhiarr {name} gad leantainn", "account.requested_follow": "Dhiarr {name} gad leantainn",
"account.requests_to_follow_you": "Iarrtasan leantainn",
"account.share": "Co-roinn a phròifil aig @{name}", "account.share": "Co-roinn a phròifil aig @{name}",
"account.show_reblogs": "Seall na brosnachaidhean o @{name}", "account.show_reblogs": "Seall na brosnachaidhean o @{name}",
"account.statuses_counter": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}", "account.statuses_counter": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}",
"account.unblock": "Dì-bhac @{name}", "account.unblock": "Dì-bhac @{name}",
"account.unblock_domain": "Dì-bhac an àrainn {domain}", "account.unblock_domain": "Dì-bhac an àrainn {domain}",
"account.unblock_domain_short": "Dì-bhac",
"account.unblock_short": "Dì-bhac", "account.unblock_short": "Dì-bhac",
"account.unendorse": "Na brosnaich air a phròifil", "account.unendorse": "Na brosnaich air a phròifil",
"account.unfollow": "Na lean tuilleadh", "account.unfollow": "Na lean tuilleadh",
@ -83,6 +95,13 @@
"alert.unexpected.message": "Thachair mearachd ris nach robh dùil.", "alert.unexpected.message": "Thachair mearachd ris nach robh dùil.",
"alert.unexpected.title": "Oich!", "alert.unexpected.title": "Oich!",
"alt_text_badge.title": "Roghainn teacsa", "alt_text_badge.title": "Roghainn teacsa",
"alt_text_modal.add_alt_text": "Cuir roghainn teacsa ris",
"alt_text_modal.add_text_from_image": "Cuir teacsa on dealbh ris",
"alt_text_modal.cancel": "Sguir dheth",
"alt_text_modal.change_thumbnail": "Atharraich an dealbhag",
"alt_text_modal.describe_for_people_with_hearing_impairments": "Mìnich seo dhan fheadhainn air a bheil ciorram claisneachd…",
"alt_text_modal.describe_for_people_with_visual_impairments": "Mìnich seo dhan fheadhainn air a bheil cion-lèirsinne…",
"alt_text_modal.done": "Deiseil",
"announcement.announcement": "Brath-fios", "announcement.announcement": "Brath-fios",
"annual_report.summary.archetype.booster": "Brosnaiche", "annual_report.summary.archetype.booster": "Brosnaiche",
"annual_report.summary.archetype.lurker": "Eala-bhalbh", "annual_report.summary.archetype.lurker": "Eala-bhalbh",
@ -100,6 +119,7 @@
"annual_report.summary.most_used_hashtag.most_used_hashtag": "an taga hais a chaidh a cleachdadh as trice", "annual_report.summary.most_used_hashtag.most_used_hashtag": "an taga hais a chaidh a cleachdadh as trice",
"annual_report.summary.most_used_hashtag.none": "Chan eil gin", "annual_report.summary.most_used_hashtag.none": "Chan eil gin",
"annual_report.summary.new_posts.new_posts": "postaichean ùra", "annual_report.summary.new_posts.new_posts": "postaichean ùra",
"annual_report.summary.percentile.text": "<topLabel>Tha thu am measg</topLabel><percentage></percentage><bottomLabel>dhen luchd-cleachdaidh as cliùitiche air {domain}.</bottomLabel>",
"annual_report.summary.percentile.we_wont_tell_bernie": "Ainmeil nad latha s nad linn.", "annual_report.summary.percentile.we_wont_tell_bernie": "Ainmeil nad latha s nad linn.",
"annual_report.summary.thanks": "Mòran taing airson conaltradh air Mastodon.", "annual_report.summary.thanks": "Mòran taing airson conaltradh air Mastodon.",
"attachments_list.unprocessed": "(gun phròiseasadh)", "attachments_list.unprocessed": "(gun phròiseasadh)",
@ -125,6 +145,7 @@
"bundle_column_error.routing.body": "Cha do lorg sinn an duilleag a dhiarr thu. A bheil thu cinnteach gu bheil an t-URL ann am bàr an t-seòlaidh mar bu chòir?", "bundle_column_error.routing.body": "Cha do lorg sinn an duilleag a dhiarr thu. A bheil thu cinnteach gu bheil an t-URL ann am bàr an t-seòlaidh mar bu chòir?",
"bundle_column_error.routing.title": "404", "bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Dùin", "bundle_modal_error.close": "Dùin",
"bundle_modal_error.message": "Chaidh rudeigin ceàrr le luchdadh na sgrìn seo.",
"bundle_modal_error.retry": "Feuch ris a-rithist", "bundle_modal_error.retry": "Feuch ris a-rithist",
"closed_registrations.other_server_instructions": "Air sgàth s gu bheil Mastodon sgaoilte, s urrainn dhut cunntas a chruthachadh air frithealaiche eile agus conaltradh ris an fhrithealaiche seo co-dhiù.", "closed_registrations.other_server_instructions": "Air sgàth s gu bheil Mastodon sgaoilte, s urrainn dhut cunntas a chruthachadh air frithealaiche eile agus conaltradh ris an fhrithealaiche seo co-dhiù.",
"closed_registrations_modal.description": "Cha ghabh cunntas a chruthachadh air {domain} aig an àm seo ach thoir an aire nach fheum thu cunntas air {domain} gu sònraichte airson Mastodon a chleachdadh.", "closed_registrations_modal.description": "Cha ghabh cunntas a chruthachadh air {domain} aig an àm seo ach thoir an aire nach fheum thu cunntas air {domain} gu sònraichte airson Mastodon a chleachdadh.",
@ -135,16 +156,20 @@
"column.blocks": "Cleachdaichean bacte", "column.blocks": "Cleachdaichean bacte",
"column.bookmarks": "Comharran-lìn", "column.bookmarks": "Comharran-lìn",
"column.community": "Loidhne-ama ionadail", "column.community": "Loidhne-ama ionadail",
"column.create_list": "Cruthaich liosta",
"column.direct": "Iomraidhean prìobhaideach", "column.direct": "Iomraidhean prìobhaideach",
"column.directory": "Rùraich sna pròifilean", "column.directory": "Rùraich sna pròifilean",
"column.domain_blocks": "Àrainnean bacte", "column.domain_blocks": "Àrainnean bacte",
"column.edit_list": "Deasaich an liosta",
"column.favourites": "Annsachdan", "column.favourites": "Annsachdan",
"column.firehose": "An saoghal poblach", "column.firehose": "An saoghal poblach",
"column.follow_requests": "Iarrtasan leantainn", "column.follow_requests": "Iarrtasan leantainn",
"column.home": "Dachaigh", "column.home": "Dachaigh",
"column.list_members": "Stiùir buill na liosta",
"column.lists": "Liostaichean", "column.lists": "Liostaichean",
"column.mutes": "Cleachdaichean mùchte", "column.mutes": "Cleachdaichean mùchte",
"column.notifications": "Brathan", "column.notifications": "Brathan",
"column.pins": "Postaichean brosnaichte",
"column.public": "Loidhne-ama cho-naisgte", "column.public": "Loidhne-ama cho-naisgte",
"column_back_button.label": "Air ais", "column_back_button.label": "Air ais",
"column_header.hide_settings": "Falaich na roghainnean", "column_header.hide_settings": "Falaich na roghainnean",
@ -153,6 +178,7 @@
"column_header.pin": "Prìnich", "column_header.pin": "Prìnich",
"column_header.show_settings": "Seall na roghainnean", "column_header.show_settings": "Seall na roghainnean",
"column_header.unpin": "Dì-phrìnich", "column_header.unpin": "Dì-phrìnich",
"column_search.cancel": "Sguir dheth",
"column_subheading.settings": "Roghainnean", "column_subheading.settings": "Roghainnean",
"community.column_settings.local_only": "Feadhainn ionadail a-mhàin", "community.column_settings.local_only": "Feadhainn ionadail a-mhàin",
"community.column_settings.media_only": "Meadhanan a-mhàin", "community.column_settings.media_only": "Meadhanan a-mhàin",
@ -195,13 +221,23 @@
"confirmations.edit.confirm": "Deasaich", "confirmations.edit.confirm": "Deasaich",
"confirmations.edit.message": "Ma nì thu deasachadh an-dràsta, thèid seo a sgrìobhadh thairis air an teachdaireachd a tha thu a sgrìobhadh an-dràsta. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?", "confirmations.edit.message": "Ma nì thu deasachadh an-dràsta, thèid seo a sgrìobhadh thairis air an teachdaireachd a tha thu a sgrìobhadh an-dràsta. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?",
"confirmations.edit.title": "A bheil thu airson sgrìobhadh thairis air a phost?", "confirmations.edit.title": "A bheil thu airson sgrìobhadh thairis air a phost?",
"confirmations.follow_to_list.confirm": "Lean s cuir ris an liosta",
"confirmations.follow_to_list.message": "Feumaidh tu {name} a leantainn ron chur ri liosta.",
"confirmations.follow_to_list.title": "A bheil thu airson an cleachdaiche a leantainn?",
"confirmations.logout.confirm": "Clàraich a-mach", "confirmations.logout.confirm": "Clàraich a-mach",
"confirmations.logout.message": "A bheil thu cinnteach gu bheil thu airson clàradh a-mach?", "confirmations.logout.message": "A bheil thu cinnteach gu bheil thu airson clàradh a-mach?",
"confirmations.logout.title": "A bheil thu airson clàradh a-mach?", "confirmations.logout.title": "A bheil thu airson clàradh a-mach?",
"confirmations.missing_alt_text.confirm": "Cuir roghainn teacsa ris",
"confirmations.missing_alt_text.message": "Tha meadhan sa phost seo aig nach eil roghainn teacsa. Ma chuireas tu tuairisgeul ris, s urrainn do bharrachd daoine an t-susbaint agad a ruigsinn.",
"confirmations.missing_alt_text.secondary": "Postaich e co-dhiù",
"confirmations.missing_alt_text.title": "A bheil thu airson roghainn teacsa a chur ris?",
"confirmations.mute.confirm": "Mùch", "confirmations.mute.confirm": "Mùch",
"confirmations.redraft.confirm": "Sguab às ⁊ dèan dreachd ùr", "confirmations.redraft.confirm": "Sguab às ⁊ dèan dreachd ùr",
"confirmations.redraft.message": "A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às agus dreachd ùr a thòiseachadh? Caillidh tu gach annsachd is brosnachadh air agus thèid freagairtean dhan phost thùsail nan dìlleachdanan.", "confirmations.redraft.message": "A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às agus dreachd ùr a thòiseachadh? Caillidh tu gach annsachd is brosnachadh air agus thèid freagairtean dhan phost thùsail nan dìlleachdanan.",
"confirmations.redraft.title": "A bheil thu airson am post a sguabadh às ⁊ dreachd ùr a dhèanamh dheth?", "confirmations.redraft.title": "A bheil thu airson am post a sguabadh às ⁊ dreachd ùr a dhèanamh dheth?",
"confirmations.remove_from_followers.confirm": "Thoir an neach-leantainn air falbh",
"confirmations.remove_from_followers.message": "Cha lean {name} thu tuilleadh. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?",
"confirmations.remove_from_followers.title": "A bheil thu airson an neach-leantainn a thoirt air falbh?",
"confirmations.reply.confirm": "Freagair", "confirmations.reply.confirm": "Freagair",
"confirmations.reply.message": "Ma bheir thu freagairt an-dràsta, thèid seo a sgrìobhadh thairis air an teachdaireachd a tha thu a sgrìobhadh an-dràsta. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?", "confirmations.reply.message": "Ma bheir thu freagairt an-dràsta, thèid seo a sgrìobhadh thairis air an teachdaireachd a tha thu a sgrìobhadh an-dràsta. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?",
"confirmations.reply.title": "A bheil thu airson sgrìobhadh thairis air a phost?", "confirmations.reply.title": "A bheil thu airson sgrìobhadh thairis air a phost?",
@ -226,6 +262,10 @@
"disabled_account_banner.text": "Tha an cunntas {disabledAccount} agad à comas aig an àm seo.", "disabled_account_banner.text": "Tha an cunntas {disabledAccount} agad à comas aig an àm seo.",
"dismissable_banner.community_timeline": "Seo na postaichean poblach as ùire o dhaoine aig a bheil cunntas air {domain}.", "dismissable_banner.community_timeline": "Seo na postaichean poblach as ùire o dhaoine aig a bheil cunntas air {domain}.",
"dismissable_banner.dismiss": "Leig seachad", "dismissable_banner.dismiss": "Leig seachad",
"dismissable_banner.explore_links": "Tha na naidheachdan seo gan co-roinneadh as trice air a cho-shaoghal an-diugh. Gheibh sgeulachdan-naidheachd nas ùire a chaidh a cho-roinneadh le barrachd dhaoine eadar-dhealaichte rangachadh nas àirde.",
"dismissable_banner.explore_statuses": "Tha fèill air na postaichean seo a fàs thar a cho-shaoghail an-diugh. Gheibh postaichean nas ùire le barrachd brosnaichean is annsachdan rangachadh nas àirde.",
"dismissable_banner.explore_tags": "Tha fèill air na tagaichean hais seo a fàs air a cho-shaoghal an-diugh. Gheibh tagaichean hais a tha gan cleachdadh le daoine eadar-dhealaichte rangachadh nas àirde.",
"dismissable_banner.public_timeline": "Seo na postaichean poblach as ùire o dhaoine air a cho-shaoghal tha gan leantainn le daoine air {domain}.",
"domain_block_modal.block": "Bac am frithealaiche", "domain_block_modal.block": "Bac am frithealaiche",
"domain_block_modal.block_account_instead": "Bac @{name} na àite", "domain_block_modal.block_account_instead": "Bac @{name} na àite",
"domain_block_modal.they_can_interact_with_old_posts": "S urrainn do dhaoine a th air an fhrithealaiche seo eadar-ghabhail leis na seann-phostaichean agad.", "domain_block_modal.they_can_interact_with_old_posts": "S urrainn do dhaoine a th air an fhrithealaiche seo eadar-ghabhail leis na seann-phostaichean agad.",
@ -265,6 +305,9 @@
"emoji_button.search_results": "Toraidhean an luirg", "emoji_button.search_results": "Toraidhean an luirg",
"emoji_button.symbols": "Samhlaidhean", "emoji_button.symbols": "Samhlaidhean",
"emoji_button.travel": "Siubhal ⁊ àitichean", "emoji_button.travel": "Siubhal ⁊ àitichean",
"empty_column.account_featured.me": "Chan eil thu a brosnachadh dad fhathast. An robh fios agad gur urrainn dhut na postaichean agad, na tagaichean hais a chleachdas tu as trice agus fiù s cunntasan do charaidean a bhrosnachadh air a phròifil agad?",
"empty_column.account_featured.other": "Chan eil {acct} a brosnachadh dad fhathast. An robh fios agad gur urrainn dhut na postaichean agad, na tagaichean hais a chleachdas tu as trice agus fiù s cunntasan do charaidean a bhrosnachadh air a phròifil agad?",
"empty_column.account_featured_other.unknown": "Chan eil an cunntas seo a brosnachadh dad fhathast.",
"empty_column.account_hides_collections": "Chuir an cleachdaiche seo roimhe nach eil am fiosrachadh seo ri fhaighinn", "empty_column.account_hides_collections": "Chuir an cleachdaiche seo roimhe nach eil am fiosrachadh seo ri fhaighinn",
"empty_column.account_suspended": "Chaidh an cunntas a chur à rèim", "empty_column.account_suspended": "Chaidh an cunntas a chur à rèim",
"empty_column.account_timeline": "Chan eil post an-seo!", "empty_column.account_timeline": "Chan eil post an-seo!",
@ -345,8 +388,12 @@
"footer.privacy_policy": "Poileasaidh prìobhaideachd", "footer.privacy_policy": "Poileasaidh prìobhaideachd",
"footer.source_code": "Seall am bun-tùs", "footer.source_code": "Seall am bun-tùs",
"footer.status": "Staid", "footer.status": "Staid",
"footer.terms_of_service": "Teirmichean na seirbheise",
"generic.saved": "Chaidh a shàbhaladh", "generic.saved": "Chaidh a shàbhaladh",
"getting_started.heading": "Toiseach", "getting_started.heading": "Toiseach",
"hashtag.admin_moderation": "Fosgail eadar-aghaidh na maorsainneachd dha #{name}",
"hashtag.browse": "Rùraich na postaichean sa bheil #{hashtag}",
"hashtag.browse_from_account": "Rùraich na postaichean aig @{name} s #{hashtag} annta",
"hashtag.column_header.tag_mode.all": "agus {additional}", "hashtag.column_header.tag_mode.all": "agus {additional}",
"hashtag.column_header.tag_mode.any": "no {additional}", "hashtag.column_header.tag_mode.any": "no {additional}",
"hashtag.column_header.tag_mode.none": "às aonais {additional}", "hashtag.column_header.tag_mode.none": "às aonais {additional}",
@ -359,7 +406,10 @@
"hashtag.counter_by_accounts": "{count, plural, one {{counter} chom-pàirtiche} two {{counter} chom-pàirtiche} few {{counter} com-pàirtiche} other {{counter} com-pàirtiche}}", "hashtag.counter_by_accounts": "{count, plural, one {{counter} chom-pàirtiche} two {{counter} chom-pàirtiche} few {{counter} com-pàirtiche} other {{counter} com-pàirtiche}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}} an-diugh", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}} an-diugh",
"hashtag.feature": "Brosnaich air a phròifil",
"hashtag.follow": "Lean an taga hais", "hashtag.follow": "Lean an taga hais",
"hashtag.mute": "Mùch #{hashtag}",
"hashtag.unfeature": "Na brosnaich air a phròifil",
"hashtag.unfollow": "Na lean an taga hais tuilleadh", "hashtag.unfollow": "Na lean an taga hais tuilleadh",
"hashtags.and_other": "…agus {count, plural, one {# eile} two {# eile} few {# eile} other {# eile}}", "hashtags.and_other": "…agus {count, plural, one {# eile} two {# eile} few {# eile} other {# eile}}",
"hints.profiles.followers_may_be_missing": "Dhfhaoidte gu bheil cuid dhen luchd-leantainn na pròifil seo a dhìth.", "hints.profiles.followers_may_be_missing": "Dhfhaoidte gu bheil cuid dhen luchd-leantainn na pròifil seo a dhìth.",
@ -388,6 +438,15 @@
"ignore_notifications_modal.not_followers_title": "A bheil thu airson na brathan o dhaoine nach eil gad leantainn a leigeil seachad?", "ignore_notifications_modal.not_followers_title": "A bheil thu airson na brathan o dhaoine nach eil gad leantainn a leigeil seachad?",
"ignore_notifications_modal.not_following_title": "A bheil thu airson na brathan o dhaoine nach eil thu a leantainn a leigeil seachad?", "ignore_notifications_modal.not_following_title": "A bheil thu airson na brathan o dhaoine nach eil thu a leantainn a leigeil seachad?",
"ignore_notifications_modal.private_mentions_title": "A bheil thu airson na brathan o iomraidhean phrìobhaideach gun iarraidh a leigeil seachad?", "ignore_notifications_modal.private_mentions_title": "A bheil thu airson na brathan o iomraidhean phrìobhaideach gun iarraidh a leigeil seachad?",
"info_button.label": "Cobhair",
"info_button.what_is_alt_text": "<h1>Dè a th ann an roghainn teacsa?</h1> <p>Bheir roghainn teacsa tuairisgeulan dhealbhan dhan fheadhainn air a bheil cion lèirsinne, aig a bheil ceangal air leud-banna cumhang no a tha a sireadh barrachd co-theacsa.</p> <p>S urrainn dhut piseach a thoirt air an t-so-ruigsinneachd is an tuigse dhan a h-uile duine ma sgrìobhas tu roghainn teacsa a tha soilleir, goirid is cuspaireach.</p> <ul> <li>Gabh a-steach na nithean cudromach</li> <li>Dèan geàrr-chunntas dhen teacsa sna dealbhan</li> <li>Cleachd structar sheantansan àbhaisteach</li><li>\\nSeachainn fiosrachadh anabarrach</li> <li>Cùm an aire air treandaichean is puingean cudromach ann an dealbhan iom-fhillte (mar diagram no mapa)</li> </ul>",
"interaction_modal.action.favourite": "Airson leantainn air adhart, feumaidh tu a chur ris na h-annsachdan on chunntas agad.",
"interaction_modal.action.follow": "Airson leantainn air adhart, feumaidh tu a leantainn on chunntas agad.",
"interaction_modal.action.reblog": "Airson leantainn air adhart, feumaidh tu a bhrosnachadh on chunntas agad.",
"interaction_modal.action.reply": "Airson leantainn air adhart, feumaidh tu fhreagairt on chunntas agad.",
"interaction_modal.action.vote": "Airson leantainn air adhart, feumaidh tu bhòtadh on chunntas agad.",
"interaction_modal.go": "Siuthad",
"interaction_modal.no_account_yet": "Nach eil cunntas agad fhathast?",
"interaction_modal.on_another_server": "Air frithealaiche eile", "interaction_modal.on_another_server": "Air frithealaiche eile",
"interaction_modal.on_this_server": "Air an frithealaiche seo", "interaction_modal.on_this_server": "Air an frithealaiche seo",
"interaction_modal.title.favourite": "Cuir am post aig {name} ris na h-annsachdan", "interaction_modal.title.favourite": "Cuir am post aig {name} ris na h-annsachdan",
@ -395,6 +454,7 @@
"interaction_modal.title.reblog": "Brosnaich am post aig {name}", "interaction_modal.title.reblog": "Brosnaich am post aig {name}",
"interaction_modal.title.reply": "Freagair dhan phost aig {name}", "interaction_modal.title.reply": "Freagair dhan phost aig {name}",
"interaction_modal.title.vote": "Bhòt sa chunntas-bheachd aig {name}", "interaction_modal.title.vote": "Bhòt sa chunntas-bheachd aig {name}",
"interaction_modal.username_prompt": "M.e. {example}",
"intervals.full.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}}", "intervals.full.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}}",
"intervals.full.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}}", "intervals.full.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}}",
"intervals.full.minutes": "{number, plural, one {# mhionaid} two {# mhionaid} few {# mionaidean} other {# mionaid}}", "intervals.full.minutes": "{number, plural, one {# mhionaid} two {# mhionaid} few {# mionaidean} other {# mionaid}}",
@ -420,6 +480,7 @@
"keyboard_shortcuts.my_profile": "Fosgail a phròifil agad", "keyboard_shortcuts.my_profile": "Fosgail a phròifil agad",
"keyboard_shortcuts.notifications": "Fosgail colbh nam brathan", "keyboard_shortcuts.notifications": "Fosgail colbh nam brathan",
"keyboard_shortcuts.open_media": "Fosgail meadhan", "keyboard_shortcuts.open_media": "Fosgail meadhan",
"keyboard_shortcuts.pinned": "Fosgail liosta nam postaichean gam brosnachadh",
"keyboard_shortcuts.profile": "Fosgail pròifil an ùghdair", "keyboard_shortcuts.profile": "Fosgail pròifil an ùghdair",
"keyboard_shortcuts.reply": "Freagair do phost", "keyboard_shortcuts.reply": "Freagair do phost",
"keyboard_shortcuts.requests": "Fosgail liosta nan iarrtasan leantainn", "keyboard_shortcuts.requests": "Fosgail liosta nan iarrtasan leantainn",
@ -429,6 +490,7 @@
"keyboard_shortcuts.toggle_hidden": "Seall/Falaich an teacsa fo rabhadh susbainte", "keyboard_shortcuts.toggle_hidden": "Seall/Falaich an teacsa fo rabhadh susbainte",
"keyboard_shortcuts.toggle_sensitivity": "Seall/Falaich na meadhanan", "keyboard_shortcuts.toggle_sensitivity": "Seall/Falaich na meadhanan",
"keyboard_shortcuts.toot": "Tòisich air post ùr", "keyboard_shortcuts.toot": "Tòisich air post ùr",
"keyboard_shortcuts.translate": "airson post eadar-theangachadh",
"keyboard_shortcuts.unfocus": "Thoir am fòcas far raon teacsa an sgrìobhaidh/an luirg", "keyboard_shortcuts.unfocus": "Thoir am fòcas far raon teacsa an sgrìobhaidh/an luirg",
"keyboard_shortcuts.up": "Gluais suas air an liosta", "keyboard_shortcuts.up": "Gluais suas air an liosta",
"lightbox.close": "Dùin", "lightbox.close": "Dùin",
@ -441,11 +503,32 @@
"link_preview.author": "Le {name}", "link_preview.author": "Le {name}",
"link_preview.more_from_author": "Barrachd le {name}", "link_preview.more_from_author": "Barrachd le {name}",
"link_preview.shares": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}", "link_preview.shares": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}",
"lists.add_member": "Cuir ris",
"lists.add_to_list": "Cuir ris an liosta",
"lists.add_to_lists": "Cuir {name} ri liostaichean",
"lists.create": "Cruthaich",
"lists.create_a_list_to_organize": "Cruthaich liosta ùr airson rian a chur air do dhachaigh",
"lists.create_list": "Cruthaich liosta",
"lists.delete": "Sguab às an liosta", "lists.delete": "Sguab às an liosta",
"lists.done": "Deiseil",
"lists.edit": "Deasaich an liosta", "lists.edit": "Deasaich an liosta",
"lists.exclusive": "Falaich na buill san dachaigh",
"lists.exclusive_hint": "Falaich an fheadhainn a tha air an liosta seo air loidhne-ama na dachaigh ach nach fhaic thu na postaichean aca dà thuras.",
"lists.find_users_to_add": "Lorg cleachdaichean ri chur ris",
"lists.list_members": "Buill na liosta",
"lists.list_members_count": "{count, plural, one {# bhall} two {# bhall} few {# buill} other {# ball}}",
"lists.list_name": "Ainm na liosta",
"lists.new_list_name": "Ainm na liosta ùire",
"lists.no_lists_yet": "Chan eil liosta ann fhathast.",
"lists.no_members_yet": "Chan eil ball ann fhathast.",
"lists.no_results_found": "Cha deach toradh a lorg.",
"lists.remove_member": "Thoir air falbh",
"lists.replies_policy.followed": "Cleachdaiche sam bith a leanas mi", "lists.replies_policy.followed": "Cleachdaiche sam bith a leanas mi",
"lists.replies_policy.list": "Buill na liosta", "lists.replies_policy.list": "Buill na liosta",
"lists.replies_policy.none": "Na seall idir", "lists.replies_policy.none": "Na seall idir",
"lists.save": "Sàbhail",
"lists.search": "Lorg",
"lists.show_replies_to": "Gabh a-staigh freagairtean o bhuill na liosta gu",
"load_pending": "{count, plural, one {# nì ùr} two {# nì ùr} few {# nithean ùra} other {# nì ùr}}", "load_pending": "{count, plural, one {# nì ùr} two {# nì ùr} few {# nithean ùra} other {# nì ùr}}",
"loading_indicator.label": "Ga luchdadh…", "loading_indicator.label": "Ga luchdadh…",
"media_gallery.hide": "Falaich", "media_gallery.hide": "Falaich",
@ -481,6 +564,7 @@
"navigation_bar.mutes": "Cleachdaichean mùchte", "navigation_bar.mutes": "Cleachdaichean mùchte",
"navigation_bar.opened_in_classic_interface": "Thèid postaichean, cunntasan s duilleagan sònraichte eile fhosgladh san eadar-aghaidh-lìn chlasaigeach a ghnàth.", "navigation_bar.opened_in_classic_interface": "Thèid postaichean, cunntasan s duilleagan sònraichte eile fhosgladh san eadar-aghaidh-lìn chlasaigeach a ghnàth.",
"navigation_bar.personal": "Pearsanta", "navigation_bar.personal": "Pearsanta",
"navigation_bar.pins": "Postaichean brosnaichte",
"navigation_bar.preferences": "Roghainnean", "navigation_bar.preferences": "Roghainnean",
"navigation_bar.public_timeline": "Loidhne-ama cho-naisgte", "navigation_bar.public_timeline": "Loidhne-ama cho-naisgte",
"navigation_bar.search": "Lorg", "navigation_bar.search": "Lorg",
@ -497,6 +581,8 @@
"notification.annual_report.view": "Seall #Wrapstodon", "notification.annual_report.view": "Seall #Wrapstodon",
"notification.favourite": "Is annsa le {name} am post agad", "notification.favourite": "Is annsa le {name} am post agad",
"notification.favourite.name_and_others_with_link": "Is annsa le {name} s <a>{count, plural, one {# eile} two {# eile} few {# eile} other {# eile}}</a> am post agad", "notification.favourite.name_and_others_with_link": "Is annsa le {name} s <a>{count, plural, one {# eile} two {# eile} few {# eile} other {# eile}}</a> am post agad",
"notification.favourite_pm": "Is annsa le {name} an t-iomradh prìobhaideach agad",
"notification.favourite_pm.name_and_others_with_link": "Is annsa le {name} s <a>{count, plural, one {# eile} two {# eile} few {# eile} other {# eile}}</a> an t-iomradh prìobhaideach agad",
"notification.follow": "Tha {name} gad leantainn a-nis", "notification.follow": "Tha {name} gad leantainn a-nis",
"notification.follow.name_and_others": "Lean {name} s <a>{count, plural, one {# eile} two {# eile} few {# eile} other {# eile}}</a> thu", "notification.follow.name_and_others": "Lean {name} s <a>{count, plural, one {# eile} two {# eile} few {# eile} other {# eile}}</a> thu",
"notification.follow_request": "Dhiarr {name} gad leantainn", "notification.follow_request": "Dhiarr {name} gad leantainn",
@ -601,7 +687,10 @@
"notifications_permission_banner.enable": "Cuir brathan deasga an comas", "notifications_permission_banner.enable": "Cuir brathan deasga an comas",
"notifications_permission_banner.how_to_control": "Airson brathan fhaighinn nuair nach eil Mastodon fosgailte, cuir na brathan deasga an comas. Tha an smachd agad fhèin air dè na seòrsaichean de chonaltradh a ghineas brathan deasga leis a phutan {icon} gu h-àrd nuair a bhios iad air an cur an comas.", "notifications_permission_banner.how_to_control": "Airson brathan fhaighinn nuair nach eil Mastodon fosgailte, cuir na brathan deasga an comas. Tha an smachd agad fhèin air dè na seòrsaichean de chonaltradh a ghineas brathan deasga leis a phutan {icon} gu h-àrd nuair a bhios iad air an cur an comas.",
"notifications_permission_banner.title": "Na caill dad gu bràth tuilleadh", "notifications_permission_banner.title": "Na caill dad gu bràth tuilleadh",
"onboarding.follows.done": "Deiseil",
"onboarding.follows.empty": "Gu mì-fhortanach, chan urrainn dhuinn toradh a shealltainn an-dràsta. Feuch gleus an luirg no duilleag an rùrachaidh airson daoine ri leantainn a lorg no feuch ris a-rithist an ceann tamaill.", "onboarding.follows.empty": "Gu mì-fhortanach, chan urrainn dhuinn toradh a shealltainn an-dràsta. Feuch gleus an luirg no duilleag an rùrachaidh airson daoine ri leantainn a lorg no feuch ris a-rithist an ceann tamaill.",
"onboarding.follows.search": "Lorg",
"onboarding.follows.title": "Lean daoine airson tòiseachadh",
"onboarding.profile.discoverable": "Bu mhath leam gun gabh a phròifil agam a rùrachadh", "onboarding.profile.discoverable": "Bu mhath leam gun gabh a phròifil agam a rùrachadh",
"onboarding.profile.discoverable_hint": "Ma chuir thu romhad gun gabh a phròifil agad a rùrachadh air Mastodon, faodaidh na postaichean agad nochdadh ann an toraidhean luirg agus treandaichean agus dhfhaoidte gun dèid a phròifil agad a mholadh dhan fheadhainn aig a bheil ùidhean coltach ri d ùidhean-sa.", "onboarding.profile.discoverable_hint": "Ma chuir thu romhad gun gabh a phròifil agad a rùrachadh air Mastodon, faodaidh na postaichean agad nochdadh ann an toraidhean luirg agus treandaichean agus dhfhaoidte gun dèid a phròifil agad a mholadh dhan fheadhainn aig a bheil ùidhean coltach ri d ùidhean-sa.",
"onboarding.profile.display_name": "Ainm-taisbeanaidh", "onboarding.profile.display_name": "Ainm-taisbeanaidh",
@ -627,6 +716,7 @@
"poll_button.remove_poll": "Thoir air falbh an cunntas-bheachd", "poll_button.remove_poll": "Thoir air falbh an cunntas-bheachd",
"privacy.change": "Cuir gleus air prìobhaideachd a phuist", "privacy.change": "Cuir gleus air prìobhaideachd a phuist",
"privacy.direct.long": "A h-uile duine air a bheil iomradh sa phost", "privacy.direct.long": "A h-uile duine air a bheil iomradh sa phost",
"privacy.direct.short": "Iomradh prìobhaideach",
"privacy.private.long": "An luchd-leantainn agad a-mhàin", "privacy.private.long": "An luchd-leantainn agad a-mhàin",
"privacy.private.short": "Luchd-leantainn", "privacy.private.short": "Luchd-leantainn",
"privacy.public.long": "Duine sam bith taobh a-staigh no a-muigh Mhastodon", "privacy.public.long": "Duine sam bith taobh a-staigh no a-muigh Mhastodon",
@ -638,6 +728,8 @@
"privacy_policy.title": "Poileasaidh prìobhaideachd", "privacy_policy.title": "Poileasaidh prìobhaideachd",
"recommended": "Molta", "recommended": "Molta",
"refresh": "Ath-nuadhaich", "refresh": "Ath-nuadhaich",
"regeneration_indicator.please_stand_by": "Fuirich ort.",
"regeneration_indicator.preparing_your_home_feed": "Ag ullachadh do dhachaighe…",
"relative_time.days": "{number}l", "relative_time.days": "{number}l",
"relative_time.full.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}} air ais", "relative_time.full.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}} air ais",
"relative_time.full.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}} air ais", "relative_time.full.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}} air ais",
@ -721,8 +813,11 @@
"search_results.accounts": "Pròifilean", "search_results.accounts": "Pròifilean",
"search_results.all": "Na h-uile", "search_results.all": "Na h-uile",
"search_results.hashtags": "Tagaichean hais", "search_results.hashtags": "Tagaichean hais",
"search_results.no_results": "Gun toradh.",
"search_results.no_search_yet": "Feuch an lorg thu postaichean, pròifilean no tagaichean hais.",
"search_results.see_all": "Seall na h-uile", "search_results.see_all": "Seall na h-uile",
"search_results.statuses": "Postaichean", "search_results.statuses": "Postaichean",
"search_results.title": "Lorg “{q}”",
"server_banner.about_active_users": "Daoine a chleachd am frithealaiche seo rè an 30 latha mu dheireadh (Cleachdaichean gnìomhach gach mìos)", "server_banner.about_active_users": "Daoine a chleachd am frithealaiche seo rè an 30 latha mu dheireadh (Cleachdaichean gnìomhach gach mìos)",
"server_banner.active_users": "cleachdaichean gnìomhach", "server_banner.active_users": "cleachdaichean gnìomhach",
"server_banner.administered_by": "Rianachd le:", "server_banner.administered_by": "Rianachd le:",
@ -764,6 +859,7 @@
"status.mute": "Mùch @{name}", "status.mute": "Mùch @{name}",
"status.mute_conversation": "Mùch an còmhradh", "status.mute_conversation": "Mùch an còmhradh",
"status.open": "Leudaich am post seo", "status.open": "Leudaich am post seo",
"status.pin": "Brosnaich air a phròifil",
"status.read_more": "Leugh an còrr", "status.read_more": "Leugh an còrr",
"status.reblog": "Brosnaich", "status.reblog": "Brosnaich",
"status.reblog_private": "Brosnaich leis an t-so-fhaicsinneachd tùsail", "status.reblog_private": "Brosnaich leis an t-so-fhaicsinneachd tùsail",
@ -772,6 +868,7 @@
"status.reblogs.empty": "Chan deach am post seo a bhrosnachadh le duine sam bith fhathast. Nuair a bhrosnaicheas cuideigin e, nochdaidh iad an-seo.", "status.reblogs.empty": "Chan deach am post seo a bhrosnachadh le duine sam bith fhathast. Nuair a bhrosnaicheas cuideigin e, nochdaidh iad an-seo.",
"status.redraft": "Sguab às ⁊ dèan dreachd ùr", "status.redraft": "Sguab às ⁊ dèan dreachd ùr",
"status.remove_bookmark": "Thoir an comharra-lìn air falbh", "status.remove_bookmark": "Thoir an comharra-lìn air falbh",
"status.remove_favourite": "Thoir air falbh o na h-annsachdan",
"status.replied_in_thread": "Freagairt do shnàithlean", "status.replied_in_thread": "Freagairt do shnàithlean",
"status.replied_to": "Air {name} fhreagairt", "status.replied_to": "Air {name} fhreagairt",
"status.reply": "Freagair", "status.reply": "Freagair",
@ -787,11 +884,15 @@
"status.translated_from_with": "Air eadar-theangachadh o {lang} le {provider}", "status.translated_from_with": "Air eadar-theangachadh o {lang} le {provider}",
"status.uncached_media_warning": "Chan eil ro-shealladh ri fhaighinn", "status.uncached_media_warning": "Chan eil ro-shealladh ri fhaighinn",
"status.unmute_conversation": "Dì-mhùch an còmhradh", "status.unmute_conversation": "Dì-mhùch an còmhradh",
"status.unpin": "Na brosnaich air a phròifil",
"subscribed_languages.lead": "Cha nochd ach na postaichean sna cànanan a thagh thu air loidhnichean-ama na dachaigh s nan liostaichean às dèidh an atharrachaidh seo. Na tagh gin ma tha thu airson na postaichean uile fhaighinn ge b e dè an cànan.", "subscribed_languages.lead": "Cha nochd ach na postaichean sna cànanan a thagh thu air loidhnichean-ama na dachaigh s nan liostaichean às dèidh an atharrachaidh seo. Na tagh gin ma tha thu airson na postaichean uile fhaighinn ge b e dè an cànan.",
"subscribed_languages.save": "Sàbhail na h-atharraichean", "subscribed_languages.save": "Sàbhail na h-atharraichean",
"subscribed_languages.target": "Atharraich fo-sgrìobhadh nan cànan airson {target}", "subscribed_languages.target": "Atharraich fo-sgrìobhadh nan cànan airson {target}",
"tabs_bar.home": "Dachaigh", "tabs_bar.home": "Dachaigh",
"tabs_bar.notifications": "Brathan", "tabs_bar.notifications": "Brathan",
"terms_of_service.effective_as_of": "Èifeachdach on {date}",
"terms_of_service.title": "Teirmichean na seirbheise",
"terms_of_service.upcoming_changes_on": "Tha atharraichean ri thighinn air {date}",
"time_remaining.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}} air fhàgail", "time_remaining.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}} air fhàgail",
"time_remaining.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}} air fhàgail", "time_remaining.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}} air fhàgail",
"time_remaining.minutes": "{number, plural, one {# mhionaid} two {# mhionaid} few {# mionaidean} other {# mionaid}} air fhàgail", "time_remaining.minutes": "{number, plural, one {# mhionaid} two {# mhionaid} few {# mionaidean} other {# mionaid}} air fhàgail",
@ -822,6 +923,12 @@
"video.expand": "Leudaich a video", "video.expand": "Leudaich a video",
"video.fullscreen": "Làn-sgrìn", "video.fullscreen": "Làn-sgrìn",
"video.hide": "Falaich a video", "video.hide": "Falaich a video",
"video.mute": "Mùch",
"video.pause": "Cuir na stad", "video.pause": "Cuir na stad",
"video.play": "Cluich" "video.play": "Cluich",
"video.skip_backward": "Geàrr leum air ais",
"video.skip_forward": "Geàrr leum air adhart",
"video.unmute": "Dì-mhùch",
"video.volume_down": "Lùghdaich an fhuaim",
"video.volume_up": "Cuir an fhuaim an àirde"
} }

View file

@ -29,6 +29,7 @@
"account.enable_notifications": "Avvisami quando @{name} pubblica un post", "account.enable_notifications": "Avvisami quando @{name} pubblica un post",
"account.endorse": "In evidenza sul profilo", "account.endorse": "In evidenza sul profilo",
"account.featured": "In primo piano", "account.featured": "In primo piano",
"account.featured.accounts": "Profili",
"account.featured.hashtags": "Hashtag", "account.featured.hashtags": "Hashtag",
"account.featured.posts": "Post", "account.featured.posts": "Post",
"account.featured_tags.last_status_at": "Ultimo post il {date}", "account.featured_tags.last_status_at": "Ultimo post il {date}",
@ -168,6 +169,7 @@
"column.lists": "Liste", "column.lists": "Liste",
"column.mutes": "Utenti silenziati", "column.mutes": "Utenti silenziati",
"column.notifications": "Notifiche", "column.notifications": "Notifiche",
"column.pins": "Post in evidenza",
"column.public": "Timeline federata", "column.public": "Timeline federata",
"column_back_button.label": "Indietro", "column_back_button.label": "Indietro",
"column_header.hide_settings": "Nascondi impostazioni", "column_header.hide_settings": "Nascondi impostazioni",
@ -404,8 +406,10 @@
"hashtag.counter_by_accounts": "{count, plural, one {{counter} partecipante} other {{counter} partecipanti}}", "hashtag.counter_by_accounts": "{count, plural, one {{counter} partecipante} other {{counter} partecipanti}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} post} other {{counter} post}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} post} other {{counter} post}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} post} other {{counter} post}} oggi", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} post} other {{counter} post}} oggi",
"hashtag.feature": "In evidenza sul profilo",
"hashtag.follow": "Segui l'hashtag", "hashtag.follow": "Segui l'hashtag",
"hashtag.mute": "Silenzia #{hashtag}", "hashtag.mute": "Silenzia #{hashtag}",
"hashtag.unfeature": "Non mettere in evidenza sul profilo",
"hashtag.unfollow": "Smetti di seguire l'hashtag", "hashtag.unfollow": "Smetti di seguire l'hashtag",
"hashtags.and_other": "…e {count, plural, other {# in più}}", "hashtags.and_other": "…e {count, plural, other {# in più}}",
"hints.profiles.followers_may_be_missing": "I seguaci per questo profilo potrebbero essere mancanti.", "hints.profiles.followers_may_be_missing": "I seguaci per questo profilo potrebbero essere mancanti.",
@ -476,6 +480,7 @@
"keyboard_shortcuts.my_profile": "Apre il tuo profilo", "keyboard_shortcuts.my_profile": "Apre il tuo profilo",
"keyboard_shortcuts.notifications": "Apre la colonna delle notifiche", "keyboard_shortcuts.notifications": "Apre la colonna delle notifiche",
"keyboard_shortcuts.open_media": "Apre i multimedia", "keyboard_shortcuts.open_media": "Apre i multimedia",
"keyboard_shortcuts.pinned": "Apri la lista dei post in evidenza",
"keyboard_shortcuts.profile": "Apre il profilo dell'autore", "keyboard_shortcuts.profile": "Apre il profilo dell'autore",
"keyboard_shortcuts.reply": "Risponde al post", "keyboard_shortcuts.reply": "Risponde al post",
"keyboard_shortcuts.requests": "Apre l'elenco delle richieste di seguirti", "keyboard_shortcuts.requests": "Apre l'elenco delle richieste di seguirti",
@ -559,6 +564,7 @@
"navigation_bar.mutes": "Utenti silenziati", "navigation_bar.mutes": "Utenti silenziati",
"navigation_bar.opened_in_classic_interface": "Post, account e altre pagine specifiche sono aperti per impostazione predefinita nella classica interfaccia web.", "navigation_bar.opened_in_classic_interface": "Post, account e altre pagine specifiche sono aperti per impostazione predefinita nella classica interfaccia web.",
"navigation_bar.personal": "Personale", "navigation_bar.personal": "Personale",
"navigation_bar.pins": "Post in evidenza",
"navigation_bar.preferences": "Preferenze", "navigation_bar.preferences": "Preferenze",
"navigation_bar.public_timeline": "Cronologia federata", "navigation_bar.public_timeline": "Cronologia federata",
"navigation_bar.search": "Cerca", "navigation_bar.search": "Cerca",
@ -854,6 +860,7 @@
"status.mute": "Silenzia @{name}", "status.mute": "Silenzia @{name}",
"status.mute_conversation": "Silenzia conversazione", "status.mute_conversation": "Silenzia conversazione",
"status.open": "Espandi questo post", "status.open": "Espandi questo post",
"status.pin": "In evidenza sul profilo",
"status.read_more": "Leggi di più", "status.read_more": "Leggi di più",
"status.reblog": "Reblog", "status.reblog": "Reblog",
"status.reblog_private": "Reblog con visibilità originale", "status.reblog_private": "Reblog con visibilità originale",
@ -878,6 +885,7 @@
"status.translated_from_with": "Tradotto da {lang} utilizzando {provider}", "status.translated_from_with": "Tradotto da {lang} utilizzando {provider}",
"status.uncached_media_warning": "Anteprima non disponibile", "status.uncached_media_warning": "Anteprima non disponibile",
"status.unmute_conversation": "Annulla silenziamento conversazione", "status.unmute_conversation": "Annulla silenziamento conversazione",
"status.unpin": "Non mettere in evidenza sul profilo",
"subscribed_languages.lead": "Solo i post nelle lingue selezionate appariranno sulla tua home e nelle cronologie dopo la modifica. Seleziona nessuno per ricevere i post in tutte le lingue.", "subscribed_languages.lead": "Solo i post nelle lingue selezionate appariranno sulla tua home e nelle cronologie dopo la modifica. Seleziona nessuno per ricevere i post in tutte le lingue.",
"subscribed_languages.save": "Salva le modifiche", "subscribed_languages.save": "Salva le modifiche",
"subscribed_languages.target": "Modifica le lingue in cui sei iscritto per {target}", "subscribed_languages.target": "Modifica le lingue in cui sei iscritto per {target}",

View file

@ -58,7 +58,7 @@
"account.mute_short": "뮤트", "account.mute_short": "뮤트",
"account.muted": "뮤트됨", "account.muted": "뮤트됨",
"account.muting": "뮤트함", "account.muting": "뮤트함",
"account.mutual": "서로 팔로우", "account.mutual": "맞팔로우 중입니다",
"account.no_bio": "제공된 설명이 없습니다.", "account.no_bio": "제공된 설명이 없습니다.",
"account.open_original_page": "원본 페이지 열기", "account.open_original_page": "원본 페이지 열기",
"account.posts": "게시물", "account.posts": "게시물",

View file

@ -29,6 +29,7 @@
"account.enable_notifications": "佇 {name} PO文ê時通知我", "account.enable_notifications": "佇 {name} PO文ê時通知我",
"account.endorse": "用個人資料推薦對方", "account.endorse": "用個人資料推薦對方",
"account.featured": "精選ê", "account.featured": "精選ê",
"account.featured.accounts": "個人資料",
"account.featured.hashtags": "Hashtag", "account.featured.hashtags": "Hashtag",
"account.featured.posts": "PO文", "account.featured.posts": "PO文",
"account.featured_tags.last_status_at": "頂kái tī {date} Po文", "account.featured_tags.last_status_at": "頂kái tī {date} Po文",
@ -405,8 +406,10 @@
"hashtag.counter_by_accounts": "{count, plural, one {{counter} ê} other {{counter} ê}}參與ê", "hashtag.counter_by_accounts": "{count, plural, one {{counter} ê} other {{counter} ê}}參與ê",
"hashtag.counter_by_uses": "{count, plural, one {{counter} 篇} other {{counter} 篇}} PO文", "hashtag.counter_by_uses": "{count, plural, one {{counter} 篇} other {{counter} 篇}} PO文",
"hashtag.counter_by_uses_today": "Kin-á日有 {count, plural, one {{counter} 篇} other {{counter} 篇}} PO文", "hashtag.counter_by_uses_today": "Kin-á日有 {count, plural, one {{counter} 篇} other {{counter} 篇}} PO文",
"hashtag.feature": "Tī個人資料推薦",
"hashtag.follow": "跟tuè hashtag", "hashtag.follow": "跟tuè hashtag",
"hashtag.mute": "消音 #{hashtag}", "hashtag.mute": "消音 #{hashtag}",
"hashtag.unfeature": "Mài tī個人資料推薦",
"hashtag.unfollow": "取消跟tuè hashtag", "hashtag.unfollow": "取消跟tuè hashtag",
"hashtags.and_other": "……kap 其他 {count, plural, other {# ê}}", "hashtags.and_other": "……kap 其他 {count, plural, other {# ê}}",
"hints.profiles.followers_may_be_missing": "Tsit ê個人資料ê跟tuè者資訊可能有落勾ê。", "hints.profiles.followers_may_be_missing": "Tsit ê個人資料ê跟tuè者資訊可能有落勾ê。",
@ -678,6 +681,10 @@
"notifications.policy.filter_not_followers_title": "無跟tuè lí ê lâng", "notifications.policy.filter_not_followers_title": "無跟tuè lí ê lâng",
"notifications.policy.filter_not_following_hint": "直到lí手動允准in", "notifications.policy.filter_not_following_hint": "直到lí手動允准in",
"notifications.policy.filter_not_following_title": "Lí無跟tuè ê lâng", "notifications.policy.filter_not_following_title": "Lí無跟tuè ê lâng",
"notifications.policy.filter_private_mentions_hint": "通知ē受過濾除非是tī lí ê提起ê回應內底á是lí跟tuè送PO文ê lâng",
"notifications.policy.filter_private_mentions_title": "家kī直接送來ê私人提起",
"notifications.policy.title": "管理通知tuì……",
"notifications_permission_banner.enable": "啟用桌面ê通知",
"notifications_permission_banner.title": "逐ê著看", "notifications_permission_banner.title": "逐ê著看",
"onboarding.follows.back": "轉去", "onboarding.follows.back": "轉去",
"onboarding.follows.done": "做好ah", "onboarding.follows.done": "做好ah",
@ -705,6 +712,10 @@
"privacy.private.short": "跟tuè lí ê", "privacy.private.short": "跟tuè lí ê",
"privacy.public.long": "逐ê lâng無論佇Mastodon以內á是以外", "privacy.public.long": "逐ê lâng無論佇Mastodon以內á是以外",
"privacy.public.short": "公開ê", "privacy.public.short": "公開ê",
"privacy.unlisted.short": "恬靜ê公開",
"privacy_policy.last_updated": "上尾更新tī{date}",
"privacy_policy.title": "隱私權政策",
"recommended": "推薦",
"refresh": "Koh更新", "refresh": "Koh更新",
"regeneration_indicator.please_stand_by": "請sió等leh。", "regeneration_indicator.please_stand_by": "請sió等leh。",
"regeneration_indicator.preparing_your_home_feed": "Leh準備lí ê厝ê時間線……", "regeneration_indicator.preparing_your_home_feed": "Leh準備lí ê厝ê時間線……",
@ -715,6 +726,28 @@
"relative_time.full.minutes": "{number, plural, other {# 分鐘}}進前", "relative_time.full.minutes": "{number, plural, other {# 分鐘}}進前",
"relative_time.full.seconds": "{number, plural, other {# 秒}}進前", "relative_time.full.seconds": "{number, plural, other {# 秒}}進前",
"relative_time.hours": "{number}點鐘前", "relative_time.hours": "{number}點鐘前",
"relative_time.just_now": "頭tú-á",
"relative_time.minutes": "{number} 分進前",
"relative_time.seconds": "{number} 秒進前",
"relative_time.today": "今á日",
"reply_indicator.attachments": "{count, plural, other {# ê附件}}",
"reply_indicator.cancel": "取消",
"reply_indicator.poll": "投票",
"report.block": "封鎖",
"report.categories.legal": "法律ê問題",
"report.categories.other": "其他",
"report.categories.spam": "Pùn-sò訊息",
"report.categories.violation": "內容違反tsi̍t ê以上服侍器ê規則",
"report.category.subtitle": "揀上合ê選項",
"report.category.title": "Kā guán講tsit ê {type} 有siánn-mih代誌",
"report.category.title_account": "個人資料",
"report.category.title_status": "PO文",
"report.close": "完成",
"report.comment.title": "Lí敢有別ê想beh hōo guán知ê",
"report.forward": "轉送kàu {target}",
"report.forward_hint": "Tsit ê口座是別ê服侍器ê。Kám iā beh送bô落名ê檢舉ê khóo-pih",
"report.mute": "消音",
"report.mute_explanation": "Lí bē koh看著in ê PO文。In iáu是ē當跟tuè lí看lí ê PO文而且m̄知in受消音。",
"report.next": "繼續", "report.next": "繼續",
"report.placeholder": "其他ê註釋", "report.placeholder": "其他ê註釋",
"report.reasons.dislike": "我無kah意", "report.reasons.dislike": "我無kah意",
@ -728,6 +761,13 @@
"report.reasons.violation": "伊違反服侍器ê規定", "report.reasons.violation": "伊違反服侍器ê規定",
"report.reasons.violation_description": "Lí明知伊違反特定ê規定", "report.reasons.violation_description": "Lí明知伊違反特定ê規定",
"report.rules.subtitle": "請揀所有符合ê選項", "report.rules.subtitle": "請揀所有符合ê選項",
"report.rules.title": "違反siánn-mih規則",
"report.statuses.subtitle": "請揀所有符合ê選項",
"report.statuses.title": "Kám有任何PO文證明tsit ê檢舉?",
"report.submit": "送出",
"search_popout.language_code": "ISO語言代碼", "search_popout.language_code": "ISO語言代碼",
"search_results.see_all": "看全部",
"search_results.statuses": "PO文",
"search_results.title": "Tshiau-tshuē「{q}」",
"status.translated_from_with": "用 {provider} 翻譯 {lang}" "status.translated_from_with": "用 {provider} 翻譯 {lang}"
} }

View file

@ -19,13 +19,19 @@
"account.block_domain": "Bloquear domínio {domain}", "account.block_domain": "Bloquear domínio {domain}",
"account.block_short": "Bloquear", "account.block_short": "Bloquear",
"account.blocked": "Bloqueado", "account.blocked": "Bloqueado",
"account.blocking": "A bloquear",
"account.cancel_follow_request": "Retirar pedido para seguir", "account.cancel_follow_request": "Retirar pedido para seguir",
"account.copy": "Copiar hiperligação do perfil", "account.copy": "Copiar hiperligação do perfil",
"account.direct": "Mencionar @{name} em privado", "account.direct": "Mencionar @{name} em privado",
"account.disable_notifications": "Parar de me notificar das publicações de @{name}", "account.disable_notifications": "Parar de me notificar das publicações de @{name}",
"account.domain_blocking": "A bloquear domínio",
"account.edit_profile": "Editar perfil", "account.edit_profile": "Editar perfil",
"account.enable_notifications": "Notificar-me das publicações de @{name}", "account.enable_notifications": "Notificar-me das publicações de @{name}",
"account.endorse": "Destacar no perfil", "account.endorse": "Destacar no perfil",
"account.featured": "Destaques",
"account.featured.accounts": "Perfis",
"account.featured.hashtags": "Etiquetas",
"account.featured.posts": "Publicações",
"account.featured_tags.last_status_at": "Última publicação em {date}", "account.featured_tags.last_status_at": "Última publicação em {date}",
"account.featured_tags.last_status_never": "Sem publicações", "account.featured_tags.last_status_never": "Sem publicações",
"account.follow": "Seguir", "account.follow": "Seguir",
@ -36,6 +42,7 @@
"account.following": "A seguir", "account.following": "A seguir",
"account.following_counter": "{count, plural, one {A seguir {counter}} other {A seguir {counter}}}", "account.following_counter": "{count, plural, one {A seguir {counter}} other {A seguir {counter}}}",
"account.follows.empty": "Este utilizador ainda não segue ninguém.", "account.follows.empty": "Este utilizador ainda não segue ninguém.",
"account.follows_you": "Segue-te",
"account.go_to_profile": "Ir para o perfil", "account.go_to_profile": "Ir para o perfil",
"account.hide_reblogs": "Esconder partilhas impulsionadas de @{name}", "account.hide_reblogs": "Esconder partilhas impulsionadas de @{name}",
"account.in_memoriam": "Em Memória.", "account.in_memoriam": "Em Memória.",
@ -50,13 +57,17 @@
"account.mute_notifications_short": "Ocultar notificações", "account.mute_notifications_short": "Ocultar notificações",
"account.mute_short": "Ocultar", "account.mute_short": "Ocultar",
"account.muted": "Ocultada", "account.muted": "Ocultada",
"account.muting": "A silenciar",
"account.mutual": "Seguem-se mutuamente",
"account.no_bio": "Nenhuma descrição fornecida.", "account.no_bio": "Nenhuma descrição fornecida.",
"account.open_original_page": "Abrir a página original", "account.open_original_page": "Abrir a página original",
"account.posts": "Publicações", "account.posts": "Publicações",
"account.posts_with_replies": "Publicações e respostas", "account.posts_with_replies": "Publicações e respostas",
"account.remove_from_followers": "Remover {name} dos seguidores",
"account.report": "Denunciar @{name}", "account.report": "Denunciar @{name}",
"account.requested": "A aguardar aprovação. Clica para cancelar o pedido para seguir", "account.requested": "A aguardar aprovação. Clica para cancelar o pedido para seguir",
"account.requested_follow": "{name} pediu para seguir-te", "account.requested_follow": "{name} pediu para seguir-te",
"account.requests_to_follow_you": "Pediu para seguir-te",
"account.share": "Partilhar o perfil @{name}", "account.share": "Partilhar o perfil @{name}",
"account.show_reblogs": "Mostrar partilhas impulsionadas de @{name}", "account.show_reblogs": "Mostrar partilhas impulsionadas de @{name}",
"account.statuses_counter": "{count, plural, one {{counter} publicação} other {{counter} publicações}}", "account.statuses_counter": "{count, plural, one {{counter} publicação} other {{counter} publicações}}",
@ -158,6 +169,7 @@
"column.lists": "Listas", "column.lists": "Listas",
"column.mutes": "Utilizadores ocultados", "column.mutes": "Utilizadores ocultados",
"column.notifications": "Notificações", "column.notifications": "Notificações",
"column.pins": "Publicação destacada",
"column.public": "Cronologia federada", "column.public": "Cronologia federada",
"column_back_button.label": "Voltar", "column_back_button.label": "Voltar",
"column_header.hide_settings": "Ocultar configurações", "column_header.hide_settings": "Ocultar configurações",
@ -223,6 +235,9 @@
"confirmations.redraft.confirm": "Eliminar e reescrever", "confirmations.redraft.confirm": "Eliminar e reescrever",
"confirmations.redraft.message": "Tens a certeza de que queres eliminar e tornar a escrever esta publicação? Os favoritos e as publicações impulsionadas perder-se-ão e as respostas à publicação original ficarão órfãs.", "confirmations.redraft.message": "Tens a certeza de que queres eliminar e tornar a escrever esta publicação? Os favoritos e as publicações impulsionadas perder-se-ão e as respostas à publicação original ficarão órfãs.",
"confirmations.redraft.title": "Eliminar e reescrever publicação?", "confirmations.redraft.title": "Eliminar e reescrever publicação?",
"confirmations.remove_from_followers.confirm": "Remover seguidor",
"confirmations.remove_from_followers.message": "{name} vai parar de seguir-te. Tens a certeza que prentedes continuar?",
"confirmations.remove_from_followers.title": "Remover seguidor?",
"confirmations.reply.confirm": "Responder", "confirmations.reply.confirm": "Responder",
"confirmations.reply.message": "Se responderes agora, a mensagem que estás a escrever será substituída. Tens a certeza que pretendes continuar?", "confirmations.reply.message": "Se responderes agora, a mensagem que estás a escrever será substituída. Tens a certeza que pretendes continuar?",
"confirmations.reply.title": "Substituir publicação?", "confirmations.reply.title": "Substituir publicação?",
@ -290,6 +305,9 @@
"emoji_button.search_results": "Resultados da pesquisa", "emoji_button.search_results": "Resultados da pesquisa",
"emoji_button.symbols": "Símbolos", "emoji_button.symbols": "Símbolos",
"emoji_button.travel": "Viagens e lugares", "emoji_button.travel": "Viagens e lugares",
"empty_column.account_featured.me": "Ainda não destacaste nada. Sabias que podes destacar as tuas publicações, as etiquetas que mais utilizas e até as contas dos teus amigos no teu perfil?",
"empty_column.account_featured.other": "{acct} ainda não colocou nada em destaque. Sabias que podes destacar as tuas publicações, as etiquetas que mais utilizas e até as contas dos teus amigos no teu perfil?",
"empty_column.account_featured_other.unknown": "Esta conta ainda não colocou nada em destaque.",
"empty_column.account_hides_collections": "Este utilizador escolheu não disponibilizar esta informação", "empty_column.account_hides_collections": "Este utilizador escolheu não disponibilizar esta informação",
"empty_column.account_suspended": "Conta suspensa", "empty_column.account_suspended": "Conta suspensa",
"empty_column.account_timeline": "Sem publicações por aqui!", "empty_column.account_timeline": "Sem publicações por aqui!",
@ -374,6 +392,8 @@
"generic.saved": "Guardado", "generic.saved": "Guardado",
"getting_started.heading": "Primeiros passos", "getting_started.heading": "Primeiros passos",
"hashtag.admin_moderation": "Abrir interface de moderação para #{name}", "hashtag.admin_moderation": "Abrir interface de moderação para #{name}",
"hashtag.browse": "Ver publicações em #{hashtag}",
"hashtag.browse_from_account": "Ver publicações de @{name} em #{hashtag}",
"hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.all": "e {additional}",
"hashtag.column_header.tag_mode.any": "ou {additional}", "hashtag.column_header.tag_mode.any": "ou {additional}",
"hashtag.column_header.tag_mode.none": "sem {additional}", "hashtag.column_header.tag_mode.none": "sem {additional}",
@ -388,6 +408,7 @@
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicação} other {{counter} publicações}} hoje", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicação} other {{counter} publicações}} hoje",
"hashtag.feature": "Destacar no perfil", "hashtag.feature": "Destacar no perfil",
"hashtag.follow": "Seguir #etiqueta", "hashtag.follow": "Seguir #etiqueta",
"hashtag.mute": "Silenciar #{hashtag}",
"hashtag.unfeature": "Não destacar no perfil", "hashtag.unfeature": "Não destacar no perfil",
"hashtag.unfollow": "Deixar de seguir #etiqueta", "hashtag.unfollow": "Deixar de seguir #etiqueta",
"hashtags.and_other": "…e {count, plural, other {mais #}}", "hashtags.and_other": "…e {count, plural, other {mais #}}",
@ -459,6 +480,7 @@
"keyboard_shortcuts.my_profile": "abrir o teu perfil", "keyboard_shortcuts.my_profile": "abrir o teu perfil",
"keyboard_shortcuts.notifications": "abrir a coluna das notificações", "keyboard_shortcuts.notifications": "abrir a coluna das notificações",
"keyboard_shortcuts.open_media": "abrir multimédia", "keyboard_shortcuts.open_media": "abrir multimédia",
"keyboard_shortcuts.pinned": "Abrir lista de publicações destacadas",
"keyboard_shortcuts.profile": "abrir o perfil do autor", "keyboard_shortcuts.profile": "abrir o perfil do autor",
"keyboard_shortcuts.reply": "responder à publicação", "keyboard_shortcuts.reply": "responder à publicação",
"keyboard_shortcuts.requests": "abrir a lista dos pedidos de seguidor", "keyboard_shortcuts.requests": "abrir a lista dos pedidos de seguidor",
@ -542,6 +564,7 @@
"navigation_bar.mutes": "Utilizadores ocultados", "navigation_bar.mutes": "Utilizadores ocultados",
"navigation_bar.opened_in_classic_interface": "Por norma, publicações, contas e outras páginas específicas são abertas na interface web clássica.", "navigation_bar.opened_in_classic_interface": "Por norma, publicações, contas e outras páginas específicas são abertas na interface web clássica.",
"navigation_bar.personal": "Pessoal", "navigation_bar.personal": "Pessoal",
"navigation_bar.pins": "Publicações destacadas",
"navigation_bar.preferences": "Preferências", "navigation_bar.preferences": "Preferências",
"navigation_bar.public_timeline": "Cronologia federada", "navigation_bar.public_timeline": "Cronologia federada",
"navigation_bar.search": "Pesquisar", "navigation_bar.search": "Pesquisar",
@ -837,6 +860,7 @@
"status.mute": "Ocultar @{name}", "status.mute": "Ocultar @{name}",
"status.mute_conversation": "Ocultar conversa", "status.mute_conversation": "Ocultar conversa",
"status.open": "Expandir esta publicação", "status.open": "Expandir esta publicação",
"status.pin": "Destacar no perfil",
"status.read_more": "Ler mais", "status.read_more": "Ler mais",
"status.reblog": "Impulsionar", "status.reblog": "Impulsionar",
"status.reblog_private": "Impulsionar com a visibilidade original", "status.reblog_private": "Impulsionar com a visibilidade original",
@ -861,6 +885,7 @@
"status.translated_from_with": "Traduzido do {lang} usando {provider}", "status.translated_from_with": "Traduzido do {lang} usando {provider}",
"status.uncached_media_warning": "Pré-visualização não disponível", "status.uncached_media_warning": "Pré-visualização não disponível",
"status.unmute_conversation": "Desocultar esta conversa", "status.unmute_conversation": "Desocultar esta conversa",
"status.unpin": "Não destacar no perfil",
"subscribed_languages.lead": "Após a alteração, apenas as publicações nos idiomas selecionados aparecerão na cronologia da tua página inicial e das tuas listas. Não seleciones nenhum idioma para receberes publicações em todos os idiomas.", "subscribed_languages.lead": "Após a alteração, apenas as publicações nos idiomas selecionados aparecerão na cronologia da tua página inicial e das tuas listas. Não seleciones nenhum idioma para receberes publicações em todos os idiomas.",
"subscribed_languages.save": "Guardar alterações", "subscribed_languages.save": "Guardar alterações",
"subscribed_languages.target": "Alterar idiomas subscritos para {target}", "subscribed_languages.target": "Alterar idiomas subscritos para {target}",
@ -899,6 +924,12 @@
"video.expand": "Expandir vídeo", "video.expand": "Expandir vídeo",
"video.fullscreen": "Ecrã completo", "video.fullscreen": "Ecrã completo",
"video.hide": "Ocultar vídeo", "video.hide": "Ocultar vídeo",
"video.mute": "Silenciar",
"video.pause": "Pausar", "video.pause": "Pausar",
"video.play": "Reproduzir" "video.play": "Reproduzir",
"video.skip_backward": "Saltar para trás",
"video.skip_forward": "Saltar para a frente",
"video.unmute": "Ativar som",
"video.volume_down": "Diminuir volume",
"video.volume_up": "Aumentar volume"
} }

View file

@ -639,7 +639,7 @@
"notifications.column_settings.admin.sign_up": "Người mới tham gia:", "notifications.column_settings.admin.sign_up": "Người mới tham gia:",
"notifications.column_settings.alert": "Báo trên máy tính", "notifications.column_settings.alert": "Báo trên máy tính",
"notifications.column_settings.favourite": "Lượt thích:", "notifications.column_settings.favourite": "Lượt thích:",
"notifications.column_settings.filter_bar.advanced": "Toàn bộ", "notifications.column_settings.filter_bar.advanced": "Hiện tất cả loại thông báo",
"notifications.column_settings.filter_bar.category": "Thanh lọc nhanh", "notifications.column_settings.filter_bar.category": "Thanh lọc nhanh",
"notifications.column_settings.follow": "Người theo dõi:", "notifications.column_settings.follow": "Người theo dõi:",
"notifications.column_settings.follow_request": "Yêu cầu theo dõi:", "notifications.column_settings.follow_request": "Yêu cầu theo dõi:",
@ -654,10 +654,10 @@
"notifications.column_settings.unread_notifications.category": "Thông báo chưa đọc", "notifications.column_settings.unread_notifications.category": "Thông báo chưa đọc",
"notifications.column_settings.unread_notifications.highlight": "Nổi bật thông báo chưa đọc", "notifications.column_settings.unread_notifications.highlight": "Nổi bật thông báo chưa đọc",
"notifications.column_settings.update": "Sửa tút:", "notifications.column_settings.update": "Sửa tút:",
"notifications.filter.all": "Toàn bộ", "notifications.filter.all": "Tất cả",
"notifications.filter.boosts": "Đăng lại", "notifications.filter.boosts": "Đăng lại",
"notifications.filter.favourites": "Lượt thích", "notifications.filter.favourites": "Lượt thích",
"notifications.filter.follows": "Đang theo dõi", "notifications.filter.follows": "Người theo dõi mới",
"notifications.filter.mentions": "Lượt nhắc đến", "notifications.filter.mentions": "Lượt nhắc đến",
"notifications.filter.polls": "Kết quả bình chọn", "notifications.filter.polls": "Kết quả bình chọn",
"notifications.filter.statuses": "Cập nhật từ những người bạn theo dõi", "notifications.filter.statuses": "Cập nhật từ những người bạn theo dõi",
@ -667,21 +667,21 @@
"notifications.permission_denied": "Trình duyệt không cho phép hiển thị thông báo trên màn hình.", "notifications.permission_denied": "Trình duyệt không cho phép hiển thị thông báo trên màn hình.",
"notifications.permission_denied_alert": "Không thể bật thông báo trên màn hình bởi vì trình duyệt đã cấm trước đó", "notifications.permission_denied_alert": "Không thể bật thông báo trên màn hình bởi vì trình duyệt đã cấm trước đó",
"notifications.permission_required": "Không hiện thông báo trên màn hình bởi vì chưa cho phép.", "notifications.permission_required": "Không hiện thông báo trên màn hình bởi vì chưa cho phép.",
"notifications.policy.accept": "Có", "notifications.policy.accept": "Cho phép",
"notifications.policy.accept_hint": "Hiện trong thông báo", "notifications.policy.accept_hint": "Hiện trong thông báo",
"notifications.policy.drop": "Không", "notifications.policy.drop": "Bỏ qua",
"notifications.policy.drop_hint": "Loại bỏ vĩnh viễn", "notifications.policy.drop_hint": "Loại bỏ vĩnh viễn",
"notifications.policy.filter": "Lọc", "notifications.policy.filter": "Lọc",
"notifications.policy.filter_hint": "Cho vào mục thông báo bị lọc", "notifications.policy.filter_hint": "Cho vào mục thông báo bị lọc",
"notifications.policy.filter_limited_accounts_hint": "Chỉ dành cho kiểm duyệt viên", "notifications.policy.filter_limited_accounts_hint": "Chỉ dành cho kiểm duyệt viên",
"notifications.policy.filter_limited_accounts_title": "Kiểm duyệt tài khoản", "notifications.policy.filter_limited_accounts_title": "Kiểm duyệt máy chủ",
"notifications.policy.filter_new_accounts.hint": "Đã tạo trong vòng {days, plural, other {# ngày}}", "notifications.policy.filter_new_accounts.hint": "Đã tạo trong vòng {days, plural, other {# ngày}}",
"notifications.policy.filter_new_accounts_title": "Tài khoản mới", "notifications.policy.filter_new_accounts_title": "Người mới tạo tài khoản",
"notifications.policy.filter_not_followers_hint": "Bao gồm những người đã theo dõi bạn ít hơn {days, plural, other {# ngày}}", "notifications.policy.filter_not_followers_hint": "Gồm những ai theo dõi bạn ít hơn {days, plural, other {# ngày}}",
"notifications.policy.filter_not_followers_title": "Những người không theo dõi bạn", "notifications.policy.filter_not_followers_title": "Những người không theo dõi bạn",
"notifications.policy.filter_not_following_hint": "Cho tới khi bạn duyệt họ", "notifications.policy.filter_not_following_hint": "Cho tới khi bạn duyệt họ",
"notifications.policy.filter_not_following_title": "Những người bạn không theo dõi", "notifications.policy.filter_not_following_title": "Những người bạn không theo dõi",
"notifications.policy.filter_private_mentions_hint": "Trừ khi trả lời lượt nhắc từ bạn hoặc nếu bạn có theo dõi người gửi", "notifications.policy.filter_private_mentions_hint": "Trừ khi đó là trả lời lượt nhắc từ bạn hoặc nếu bạn có theo dõi người gửi",
"notifications.policy.filter_private_mentions_title": "Lượt nhắn riêng không mong muốn", "notifications.policy.filter_private_mentions_title": "Lượt nhắn riêng không mong muốn",
"notifications.policy.title": "Quản lý thông báo từ…", "notifications.policy.title": "Quản lý thông báo từ…",
"notifications_permission_banner.enable": "Cho phép thông báo trên màn hình", "notifications_permission_banner.enable": "Cho phép thông báo trên màn hình",

View file

@ -29,6 +29,7 @@
"account.enable_notifications": "当 @{name} 发布嘟文时通知我", "account.enable_notifications": "当 @{name} 发布嘟文时通知我",
"account.endorse": "在个人资料中推荐此用户", "account.endorse": "在个人资料中推荐此用户",
"account.featured": "精选", "account.featured": "精选",
"account.featured.accounts": "个人资料",
"account.featured.hashtags": "话题", "account.featured.hashtags": "话题",
"account.featured.posts": "嘟文", "account.featured.posts": "嘟文",
"account.featured_tags.last_status_at": "上次发言于 {date}", "account.featured_tags.last_status_at": "上次发言于 {date}",
@ -62,6 +63,7 @@
"account.open_original_page": "打开原始页面", "account.open_original_page": "打开原始页面",
"account.posts": "嘟文", "account.posts": "嘟文",
"account.posts_with_replies": "嘟文和回复", "account.posts_with_replies": "嘟文和回复",
"account.remove_from_followers": "从关注者中移除 {name}",
"account.report": "举报 @{name}", "account.report": "举报 @{name}",
"account.requested": "正在等待对方同意。点击取消发送关注请求", "account.requested": "正在等待对方同意。点击取消发送关注请求",
"account.requested_follow": "{name} 向你发送了关注请求", "account.requested_follow": "{name} 向你发送了关注请求",
@ -167,6 +169,7 @@
"column.lists": "列表", "column.lists": "列表",
"column.mutes": "已隐藏的用户", "column.mutes": "已隐藏的用户",
"column.notifications": "通知", "column.notifications": "通知",
"column.pins": "精选嘟文",
"column.public": "跨站公共时间线", "column.public": "跨站公共时间线",
"column_back_button.label": "返回", "column_back_button.label": "返回",
"column_header.hide_settings": "隐藏设置", "column_header.hide_settings": "隐藏设置",
@ -233,6 +236,7 @@
"confirmations.redraft.message": "确定删除这条嘟文并重写吗?所有相关的喜欢和转嘟都将丢失,嘟文的回复也会失去关联。", "confirmations.redraft.message": "确定删除这条嘟文并重写吗?所有相关的喜欢和转嘟都将丢失,嘟文的回复也会失去关联。",
"confirmations.redraft.title": "是否删除并重新编辑嘟文?", "confirmations.redraft.title": "是否删除并重新编辑嘟文?",
"confirmations.remove_from_followers.confirm": "移除关注者", "confirmations.remove_from_followers.confirm": "移除关注者",
"confirmations.remove_from_followers.message": "{name} 将停止关注您。您确定要继续吗?",
"confirmations.remove_from_followers.title": "移除关注者?", "confirmations.remove_from_followers.title": "移除关注者?",
"confirmations.reply.confirm": "回复", "confirmations.reply.confirm": "回复",
"confirmations.reply.message": "回复此消息将会覆盖当前正在编辑的信息。确定继续吗?", "confirmations.reply.message": "回复此消息将会覆盖当前正在编辑的信息。确定继续吗?",

View file

@ -3,17 +3,17 @@ import { IntlProvider } from 'react-intl';
import { MemoryRouter } from 'react-router'; import { MemoryRouter } from 'react-router';
import type { RenderOptions } from '@testing-library/react'; import type { RenderOptions } from '@testing-library/react';
// eslint-disable-next-line import/no-extraneous-dependencies
import { render as rtlRender } from '@testing-library/react'; import { render as rtlRender } from '@testing-library/react';
import { IdentityContext } from './identity_context'; import { IdentityContext } from './identity_context';
beforeEach(() => { beforeAll(() => {
global.requestIdleCallback = jest global.requestIdleCallback = vi.fn((cb: IdleRequestCallback) => {
.fn() // @ts-expect-error IdleRequestCallback expects an argument of type IdleDeadline,
.mockImplementation((fn: () => void) => { // but that doesn't exist in this environment.
fn(); cb();
}); return 0;
});
}); });
function render( function render(
@ -46,7 +46,6 @@ function render(
} }
// re-export everything // re-export everything
// eslint-disable-next-line import/no-extraneous-dependencies
export * from '@testing-library/react'; export * from '@testing-library/react';
// override render method // override render method

View file

@ -1 +0,0 @@
import '@testing-library/jest-dom';

View file

@ -99,7 +99,7 @@ module User::Omniauthable
external: true, external: true,
account_attributes: { account_attributes: {
username: ensure_unique_username(ensure_valid_username(auth.uid)), username: ensure_unique_username(ensure_valid_username(auth.uid)),
display_name: auth.info.full_name || auth.info.name || [auth.info.first_name, auth.info.last_name].join(' '), display_name: display_name_from_auth(auth),
}, },
} }
end end
@ -121,5 +121,10 @@ module User::Omniauthable
temp_username = starting_username.gsub(/[^a-z0-9_]+/i, '') temp_username = starting_username.gsub(/[^a-z0-9_]+/i, '')
temp_username.truncate(30, omission: '') temp_username.truncate(30, omission: '')
end end
def display_name_from_auth(auth)
display_name = auth.info.full_name || auth.info.name || [auth.info.first_name, auth.info.last_name].join(' ')
display_name.truncate(Account::DISPLAY_NAME_LENGTH_LIMIT, omission: '')
end
end end
end end

View file

@ -117,7 +117,7 @@ class User < ApplicationRecord
validates_with RegistrationFormTimeValidator, on: :create validates_with RegistrationFormTimeValidator, on: :create
validates :website, absence: true, on: :create validates :website, absence: true, on: :create
validates :confirm_password, absence: true, on: :create validates :confirm_password, absence: true, on: :create
validates :date_of_birth, presence: true, date_of_birth: true, on: :create, if: -> { Setting.min_age.present? } validates :date_of_birth, presence: true, date_of_birth: true, on: :create, if: -> { Setting.min_age.present? && !bypass_registration_checks? }
validate :validate_role_elevation validate :validate_role_elevation
scope :account_not_suspended, -> { joins(:account).merge(Account.without_suspended) } scope :account_not_suspended, -> { joins(:account).merge(Account.without_suspended) }
@ -149,7 +149,7 @@ class User < ApplicationRecord
delegate :can?, to: :role delegate :can?, to: :role
attr_reader :invite_code, :date_of_birth attr_reader :invite_code, :date_of_birth
attr_writer :external, :bypass_invite_request_check, :current_account attr_writer :external, :bypass_registration_checks, :current_account
def self.those_who_can(*any_of_privileges) def self.those_who_can(*any_of_privileges)
matching_role_ids = UserRole.that_can(*any_of_privileges).map(&:id) matching_role_ids = UserRole.that_can(*any_of_privileges).map(&:id)
@ -524,8 +524,8 @@ class User < ApplicationRecord
!!@external !!@external
end end
def bypass_invite_request_check? def bypass_registration_checks?
@bypass_invite_request_check @bypass_registration_checks
end end
def sanitize_role def sanitize_role
@ -573,7 +573,7 @@ class User < ApplicationRecord
end end
def invite_text_required? def invite_text_required?
Setting.require_invite_text && !open_registrations? && !invited? && !external? && !bypass_invite_request_check? Setting.require_invite_text && !open_registrations? && !invited? && !external? && !bypass_registration_checks?
end end
def trigger_webhooks def trigger_webhooks

View file

@ -51,7 +51,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer
def usage def usage
{ {
users: { users: {
active_month: object.active_user_count(4), active_month: limited_federation? ? 0 : object.active_user_count(4),
}, },
} }
end end
@ -123,6 +123,8 @@ class REST::InstanceSerializer < ActiveModel::Serializer
search: { search: {
enabled: Chewy.enabled?, enabled: Chewy.enabled?,
}, },
limited_federation: limited_federation?,
} }
end end
@ -152,6 +154,10 @@ class REST::InstanceSerializer < ActiveModel::Serializer
markdown.render(Setting.closed_registrations_message) if Setting.closed_registrations_message.present? markdown.render(Setting.closed_registrations_message) if Setting.closed_registrations_message.present?
end end
def limited_federation?
Rails.configuration.x.limited_federation_mode
end
def markdown def markdown
@markdown ||= Redcarpet::Markdown.new(Redcarpet::Render::HTML, no_images: true) @markdown ||= Redcarpet::Markdown.new(Redcarpet::Render::HTML, no_images: true)
end end

View file

@ -22,7 +22,7 @@ class ActivityPub::FetchAllRepliesWorker
@root_status.touch(:fetched_replies_at) @root_status.touch(:fetched_replies_at)
Rails.logger.debug { "FetchAllRepliesWorker - #{@root_status.uri}: Fetching all replies for status: #{@root_status}" } Rails.logger.debug { "FetchAllRepliesWorker - #{@root_status.uri}: Fetching all replies for status: #{@root_status}" }
uris_to_fetch, n_pages = get_replies(@root_status.uri, MAX_PAGES, options) uris_to_fetch, n_pages = get_root_replies(@root_status.uri, options)
return if uris_to_fetch.nil? return if uris_to_fetch.nil?
fetched_uris = uris_to_fetch.clone.to_set fetched_uris = uris_to_fetch.clone.to_set
@ -49,20 +49,39 @@ class ActivityPub::FetchAllRepliesWorker
private private
def get_replies(status_uri, max_pages, options = {}) # @param status [String, Hash]
replies_collection_or_uri = get_replies_uri(status_uri) # status URI, or the prefetched body of the Note object
def get_replies(status, max_pages, options = {})
replies_collection_or_uri = get_replies_uri(status)
return if replies_collection_or_uri.nil? return if replies_collection_or_uri.nil?
ActivityPub::FetchAllRepliesService.new.call(status_uri, replies_collection_or_uri, max_pages: max_pages, **options.deep_symbolize_keys) ActivityPub::FetchAllRepliesService.new.call(value_or_id(status), replies_collection_or_uri, max_pages: max_pages, **options.deep_symbolize_keys)
end end
def get_replies_uri(parent_status_uri) # Get the URI of the replies collection of a status
fetch_resource(parent_status_uri, true)&.fetch('replies', nil) #
# @param parent_status [String, Hash]
# status URI, or the prefetched body of the Note object
def get_replies_uri(parent_status)
resource = parent_status.is_a?(Hash) ? parent_status : fetch_resource(parent_status, true)
resource&.fetch('replies', nil)
rescue => e rescue => e
Rails.logger.info { "FetchAllRepliesWorker - #{@root_status.uri}: Caught exception while resolving replies URI #{parent_status_uri}: #{e} - #{e.message}" } Rails.logger.info { "FetchAllRepliesWorker - #{@root_status.uri}: Caught exception while resolving replies URI #{parent_status}: #{e} - #{e.message}" }
# Raise if we can't get the collection for top-level status to trigger retry # Raise if we can't get the collection for top-level status to trigger retry
raise e if parent_status_uri == @root_status.uri raise e if value_or_id(parent_status) == @root_status.uri
nil nil
end end
# Get the root status, updating the status without fetching it twice
#
# @param root_status_uri [String]
def get_root_replies(root_status_uri, options = {})
root_status_body = fetch_resource(root_status_uri, true)
raise RuntimeError("FetchAllRepliesWorker - #{@root_status.uri}: Root status could not be fetched") if root_status_body.nil?
FetchReplyWorker.perform_async(root_status_uri, { **options, prefetched_body: root_status_body })
get_replies(root_status_body, MAX_PAGES, options)
end
end end

View file

@ -7,6 +7,6 @@ class FetchReplyWorker
sidekiq_options queue: 'pull', retry: 3 sidekiq_options queue: 'pull', retry: 3
def perform(child_url, options = {}) def perform(child_url, options = {})
FetchRemoteStatusService.new.call(child_url, **options.deep_symbolize_keys) FetchRemoteStatusService.new.call(child_url, **options.symbolize_keys)
end end
end end

View file

@ -3,14 +3,16 @@
if ENV['REDIS_NAMESPACE'] if ENV['REDIS_NAMESPACE']
es_configured = ENV['ES_ENABLED'] == 'true' || ENV.fetch('ES_HOST', 'localhost') != 'localhost' || ENV.fetch('ES_PORT', '9200') != '9200' || ENV.fetch('ES_PASS', 'password') != 'password' es_configured = ENV['ES_ENABLED'] == 'true' || ENV.fetch('ES_HOST', 'localhost') != 'localhost' || ENV.fetch('ES_PORT', '9200') != '9200' || ENV.fetch('ES_PASS', 'password') != 'password'
warn <<~MESSAGE message = <<~MESSAGE
WARNING: the REDIS_NAMESPACE environment variable is deprecated and will be removed in Mastodon 4.4.0. ERROR: the REDIS_NAMESPACE environment variable is no longer supported, and a migration is required.
Please see documentation at https://github.com/mastodon/redis_namespace_migration Please see documentation at https://github.com/mastodon/redis_namespace_migration
MESSAGE MESSAGE
warn <<~MESSAGE if es_configured && !ENV['ES_PREFIX'] message += <<~MESSAGE if es_configured && !ENV['ES_PREFIX']
In addition, as REDIS_NAMESPACE is being used as a prefix for Elasticsearch, please do not forget to set ES_PREFIX to "#{ENV.fetch('REDIS_NAMESPACE')}". In addition, as REDIS_NAMESPACE is being used as a prefix for Elasticsearch, please do not forget to set ES_PREFIX to "#{ENV.fetch('REDIS_NAMESPACE')}".
MESSAGE MESSAGE
abort message
end end

View file

@ -23,6 +23,8 @@ gd:
models: models:
account: account:
attributes: attributes:
fields:
fields_with_values_missing_labels: " tha luachan ann air a bheil leubail a dhìth"
username: username:
invalid: " chan fhaod ach litrichean gun sràcan, àireamhan s fo-loidhnichean a bhith na bhroinn" invalid: " chan fhaod ach litrichean gun sràcan, àireamhan s fo-loidhnichean a bhith na bhroinn"
reserved: " tha e glèidhte" reserved: " tha e glèidhte"
@ -38,12 +40,23 @@ gd:
attributes: attributes:
data: data:
malformed: " chan eil cruth dligheach air" malformed: " chan eil cruth dligheach air"
list_account:
attributes:
account_id:
taken: " tha seo air an liosta mu thràth"
must_be_following: " feumaidh e a bhith na chunntas ga leantainn"
status: status:
attributes: attributes:
reblog: reblog:
taken: " tha seo aig a phost mu thràth" taken: " tha seo aig a phost mu thràth"
terms_of_service:
attributes:
effective_date:
too_soon: " tha seo ro aithghearr, feumaidh e a bhith nas anmoiche na %{date}"
user: user:
attributes: attributes:
date_of_birth:
below_limit: " tha seo fo chrìoch na h-aoise"
email: email:
blocked: " tha seo a chleachdadh solaraiche puist-d nach eil ceadaichte" blocked: " tha seo a chleachdadh solaraiche puist-d nach eil ceadaichte"
unreachable: " tha coltas nach eil seo ann" unreachable: " tha coltas nach eil seo ann"

View file

@ -319,6 +319,7 @@ eo:
create: Krei anoncon create: Krei anoncon
title: Nova anonco title: Nova anonco
preview: preview:
disclaimer: Pro uzantoj ne povas elekti ne ricevi ilin, retpoŝtaj sciigoj devus esti uzata nur por gravaj anoncoj kiel memaj breĉoj de datumo aŭ sciigoj pri la fermado de la servilo.
explanation_html: 'La retpoŝto estos sendita al <strong>%{display_count} uzantoj</strong>. La jena teksto estos inkluzivita en la retmesaĝon:' explanation_html: 'La retpoŝto estos sendita al <strong>%{display_count} uzantoj</strong>. La jena teksto estos inkluzivita en la retmesaĝon:'
title: Antaŭrigardu sciigan anoncon title: Antaŭrigardu sciigan anoncon
publish: Publikigi publish: Publikigi
@ -482,13 +483,33 @@ eo:
fasp: fasp:
debug: debug:
callbacks: callbacks:
created_at: Kreita je
delete: Forigi delete: Forigi
ip: IP-adreso
request_body: Enhavo de la peto
title: Revokoj de ĝustigado
providers: providers:
active: Aktivaj
base_url: Funda URL
callback: Revoko
delete: Forigi delete: Forigi
edit: Donanto de ŝanĝo
finish_registration: Fini registradon
name: Nomo name: Nomo
providers: Donantoj
public_key_fingerprint: Publikoŝloŝila fingrospuro
registration_requested: Registrado postulita
registrations: registrations:
confirm: Konfirmi confirm: Konfirmi
description: Vi ricevis registradon de FASP. Malakcepti ĝin se vi ne komencis ĉi tiun. Se vi ja, zorge kompari nomon kaj ŝloŝilafingrospuron antaŭ ol konfirmas la registradon.
reject: Malakcepti
title: Konfirmi registradon de FASP
save: Konservi
select_capabilities: Elekti mandatojn
sign_in: Ensaluti sign_in: Ensaluti
status: Stato
title: Fediversaj helpaj servicaj donantoj
title: FASP
follow_recommendations: follow_recommendations:
description_html: "<strong>Sekvorekomendoj helpi novajn uzantojn rapide trovi interesa enhavo</strong>. Ili rekalkulitas ĉiutage lau interagoj kaj sekvantokvantoj." description_html: "<strong>Sekvorekomendoj helpi novajn uzantojn rapide trovi interesa enhavo</strong>. Ili rekalkulitas ĉiutage lau interagoj kaj sekvantokvantoj."
language: Por la lingvo language: Por la lingvo
@ -882,6 +903,8 @@ eo:
system_checks: system_checks:
database_schema_check: database_schema_check:
message_html: Estas pritraktataj datumbazaj migradoj. Bonvolu ekzekuti ilin por certigi, ke la apliko kondutas kiel atendite message_html: Estas pritraktataj datumbazaj migradoj. Bonvolu ekzekuti ilin por certigi, ke la apliko kondutas kiel atendite
elasticsearch_analysis_index_mismatch:
message_html: Agordoj de la indeksa analizilo estas malmodernaj. Bonvolu plenumi <code>tootctl search deploy --only-mapping --only=%{value}</code>
elasticsearch_health_red: elasticsearch_health_red:
message_html: Elasticsearch peniko estas malsana (ruĝa statuso), trajtoj de serĉo malhaveblas message_html: Elasticsearch peniko estas malsana (ruĝa statuso), trajtoj de serĉo malhaveblas
elasticsearch_health_yellow: elasticsearch_health_yellow:

View file

@ -220,6 +220,7 @@ gd:
enable_user: Cuir an cleachdaiche an comas enable_user: Cuir an cleachdaiche an comas
memorialize_account: Dèan cuimhneachan dhen chunntas memorialize_account: Dèan cuimhneachan dhen chunntas
promote_user: Àrdaich an cleachdaiche promote_user: Àrdaich an cleachdaiche
publish_terms_of_service: Foillsich teirmichean na seirbheise
reject_appeal: Diùlt an t-ath-thagradh reject_appeal: Diùlt an t-ath-thagradh
reject_user: Diùlt an cleachdaiche reject_user: Diùlt an cleachdaiche
remove_avatar_user: Thoir air falbh an t-avatar remove_avatar_user: Thoir air falbh an t-avatar
@ -284,6 +285,7 @@ gd:
enable_user_html: Chuir %{name} an clàradh a-steach an comas dhan chleachdaiche %{target} enable_user_html: Chuir %{name} an clàradh a-steach an comas dhan chleachdaiche %{target}
memorialize_account_html: Rinn %{name} duilleag cuimhneachain dhen chunntas aig %{target} memorialize_account_html: Rinn %{name} duilleag cuimhneachain dhen chunntas aig %{target}
promote_user_html: Dhàrdaich %{name} an cleachdaiche %{target} promote_user_html: Dhàrdaich %{name} an cleachdaiche %{target}
publish_terms_of_service_html: Dhfhoillsich %{name} ùrachadh air teirmichean na seirbheise
reject_appeal_html: Dhiùlt %{name} an t-ath-thagradh air co-dhùnadh na maorsainneachd o %{target} reject_appeal_html: Dhiùlt %{name} an t-ath-thagradh air co-dhùnadh na maorsainneachd o %{target}
reject_user_html: Dhiùlt %{name} an clàradh o %{target} reject_user_html: Dhiùlt %{name} an clàradh o %{target}
remove_avatar_user_html: Thug %{name} avatar aig %{target} air falbh remove_avatar_user_html: Thug %{name} avatar aig %{target} air falbh
@ -313,6 +315,7 @@ gd:
title: Sgrùd an loga title: Sgrùd an loga
unavailable_instance: "(chan eil ainm na h-àrainn ri fhaighinn)" unavailable_instance: "(chan eil ainm na h-àrainn ri fhaighinn)"
announcements: announcements:
back: Air ais gu na brathan
destroyed_msg: Chaidh am brath-fios a sguabadh às! destroyed_msg: Chaidh am brath-fios a sguabadh às!
edit: edit:
title: Deasaich am brath-fios title: Deasaich am brath-fios
@ -321,6 +324,10 @@ gd:
new: new:
create: Cruthaich brath-fios create: Cruthaich brath-fios
title: Brath-fios ùr title: Brath-fios ùr
preview:
disclaimer: Air sgàth s nach urrainn dhan luchd-cleachdaidh an diùltadh, bu chòir dhut na brathan air a phost-d a chuingeachadh air brathan-fios cudromach mar briseadh a-steach air dàta pearsanta no brath-fios mu dhùnadh an fhrithealaiche.
explanation_html: 'Thèid am post-d seo a chur gu <strong>%{display_count} luchd-cleachdaidh</strong>. Thèid an teacsa seo a ghabhail a-staigh sa phost-d:'
title: Ro-shealladh air a bhrath-fhios
publish: Foillsich publish: Foillsich
published_msg: Chaidh am brath-fios fhoillseachadh! published_msg: Chaidh am brath-fios fhoillseachadh!
scheduled_for: Chaidh a chur air an sgeideal %{time} scheduled_for: Chaidh a chur air an sgeideal %{time}
@ -489,6 +496,36 @@ gd:
new: new:
title: Ion-phortaich bacaidhean àrainne title: Ion-phortaich bacaidhean àrainne
no_file: Cha deach faidhle a thaghadh no_file: Cha deach faidhle a thaghadh
fasp:
debug:
callbacks:
created_at: Air a chruthachadh
delete: Sguab às
ip: Seòladh IP
request_body: Bodhaig an iarrtais
title: Gairmean air ais dì-bhugachaidh
providers:
active: Gnìomhach
base_url: URL bunaiteach
callback: Gairm air ais
delete: Sguab às
edit: Deasaich an solaraiche
finish_registration: Crìochnaich an clàradh
name: Ainm
providers: Solaraichean
public_key_fingerprint: Lorg-meòir na h-iuchrach poblaiche
registration_requested: Chaidh clàradh iarraidh
registrations:
confirm: Dearbh
description: Fhuair thu clàradh o FASP. Diùlt e mur an do chuir thu fhèin seo a dol. Mas e tusa a bh ann, dèan coimeas cùramach air ainm agus lorg-meòir na h-iuchraiche mus dearbh thu an clàradh.
reject: Diùlt
title: Dearbh an clàradh FASP
save: Sàbhail
select_capabilities: Tagh comasan
sign_in: Clàraich a-steach
status: Staid
title: Fediverse Auxiliary Service Providers
title: FASP
follow_recommendations: follow_recommendations:
description_html: "<strong>Cuidichidh molaidhean leantainn an luchd-cleachdaidh ùr ach an lorg iad susbaint inntinneach gu luath</strong>. Mur an do ghabh cleachdaiche conaltradh gu leòr le càch airson molaidhean leantainn gnàthaichte fhaighinn, mholamaid na cunntasan seo nan àite. Thèid an àireamhachadh às ùr gach latha, stèidhichte air na cunntasan air an robh an conaltradh as trice s an luchd-leantainn ionadail as motha sa chànan." description_html: "<strong>Cuidichidh molaidhean leantainn an luchd-cleachdaidh ùr ach an lorg iad susbaint inntinneach gu luath</strong>. Mur an do ghabh cleachdaiche conaltradh gu leòr le càch airson molaidhean leantainn gnàthaichte fhaighinn, mholamaid na cunntasan seo nan àite. Thèid an àireamhachadh às ùr gach latha, stèidhichte air na cunntasan air an robh an conaltradh as trice s an luchd-leantainn ionadail as motha sa chànan."
language: Dhan chànan language: Dhan chànan
@ -894,6 +931,8 @@ gd:
system_checks: system_checks:
database_schema_check: database_schema_check:
message_html: Tha imrichean stòir-dhàta ri dhèiligeadh ann. Ruith iad a dhèanamh cinnteach gum bi giùlan na h-aplacaid mar a bhiodhte n dùil message_html: Tha imrichean stòir-dhàta ri dhèiligeadh ann. Ruith iad a dhèanamh cinnteach gum bi giùlan na h-aplacaid mar a bhiodhte n dùil
elasticsearch_analysis_index_mismatch:
message_html: Tha roghainnean anailis an inneacs Elasticsearch ro shean. Ruith <code>tootctl search deploy --only-mapping --only=%{value}</code>
elasticsearch_health_red: elasticsearch_health_red:
message_html: Tha droch-shlàinte air bagaid Elasticsearch (staid dhearg), chan eil gleusan an luirg ri fhaighinn message_html: Tha droch-shlàinte air bagaid Elasticsearch (staid dhearg), chan eil gleusan an luirg ri fhaighinn
elasticsearch_health_yellow: elasticsearch_health_yellow:
@ -953,6 +992,38 @@ gd:
search: Lorg search: Lorg
title: Tagaichean hais title: Tagaichean hais
updated_msg: Chaidh roghainnean an taga hais ùrachadh updated_msg: Chaidh roghainnean an taga hais ùrachadh
terms_of_service:
back: Air ais gu teirmichean na seirbheise
changelog: Na chaidh atharrachadh
create: Cleachd feadhainn agad fhèin
current: Làithreach
draft: Dreachd
generate: Cleachd teamplaid
generates:
action: Gin
chance_to_review_html: "<strong>Cha dèid na teirmichean na seirbheise air an gintinn fhoillseachadh gu fèin-obrachail.</strong> Bidh teans agad gus lèirmheas a dhèanamh air an toradh. Lean am fiosrachadh riatanach airson leantainn air adhart."
explanation_html: Tha an teamplaid airson teirmichean na seirbheise ga sholar a chùm fiosrachaidh a-mhàin agus cha bu chòir a mheas mar chomhairle laghail air cuspair sam bith. Gabh comhairle o neach-lagha agad fhèin air an t-suidheachadh agad s air ceistean sam bith agad mun lagh.
title: Suidheachadh teirmichean na seirbheise
going_live_on_html: Beò, èifeachdach on %{date}
history: Eachdraidh
live: Beò
no_history: Cha deach atharrachadh sam bith air teirmichean na seirbheise a chlàradh fhathast.
no_terms_of_service_html: Cha do rèitich thu teirmichean na seirbheise aig an àm seo. Tha teirmichean seirbheise ag amas nithean a dhèanamh soilleir agus do dhìon o uallaichean ann an connspaidean leis an luchd-cleachdaidh agad a dhèireas ma dhfhaoidte.
notified_on_html: Fhuair an luchd-cleachdaidh brath %{date}
notify_users: Cuir brath dhan luchd-chleachdaidh
preview:
explanation_html: 'Thèid am post-d seo a chur gu <strong>%{display_count} luchd-cleachdaidh</strong> a chlàraich ro %{date}. Thèid an teacsa seo a ghabhail a-staigh sa phost-d:'
send_preview: Cuir ro-shealladh gu %{email}
send_to_all:
few: Cuir %{display_count} puist-d
one: Cuir %{display_count} phost-d
other: Cuir %{display_count} post-d
two: Cuir %{display_count} phost-d
title: Ro-shealladh air brath-fios mu theirmichean na seirbheise
publish: Foillsich
published_on_html: Air fhoillseachadh %{date}
save_draft: Sàbhail dreachd
title: Teirmichean na seirbheise
title: Rianachd title: Rianachd
trends: trends:
allow: Ceadaich allow: Ceadaich
@ -1192,6 +1263,7 @@ gd:
set_new_password: Suidhich facal-faire ùr set_new_password: Suidhich facal-faire ùr
setup: setup:
email_below_hint_html: Thoir sùil air pasgan an spama agad no iarr fear eile. S urrainn dhut an seòladh puist-d agad a chur ceart ma tha e ceàrr. email_below_hint_html: Thoir sùil air pasgan an spama agad no iarr fear eile. S urrainn dhut an seòladh puist-d agad a chur ceart ma tha e ceàrr.
email_settings_hint_html: Briog air a cheangal a chuir sinn gu %{email} airson tòiseachadh air Mastodon a chleachdadh. Fuirichidh sinn ort an-seo.
link_not_received: Nach dfhuair thu ceangal? link_not_received: Nach dfhuair thu ceangal?
new_confirmation_instructions_sent: Gheibh thu post-d ùr le ceangal dearbhaidh an ceann corra mionaid! new_confirmation_instructions_sent: Gheibh thu post-d ùr le ceangal dearbhaidh an ceann corra mionaid!
title: Thoir sùil air a bhogsa a-steach agad title: Thoir sùil air a bhogsa a-steach agad
@ -1200,6 +1272,7 @@ gd:
title: Clàraich a-steach gu %{domain} title: Clàraich a-steach gu %{domain}
sign_up: sign_up:
manual_review: Nì na maoir againn lèirmheas a làimh air clàraidhean air %{domain}. Airson ar cuideachadh le làimhseachadh do chlàraidh, sgrìobh beagan mu do dhèidhinn agus carson a tha thu ag iarraidh cunntas air %{domain}. manual_review: Nì na maoir againn lèirmheas a làimh air clàraidhean air %{domain}. Airson ar cuideachadh le làimhseachadh do chlàraidh, sgrìobh beagan mu do dhèidhinn agus carson a tha thu ag iarraidh cunntas air %{domain}.
preamble: Le cunntas air an fhrithealaiche Mastodon seo, s urrainn dhut neach sam bith a leantainn air a cho-shaoghal, ge b e càit a bheil an cunntas aca-san ga òstadh.
title: Suidhicheamaid %{domain} dhut. title: Suidhicheamaid %{domain} dhut.
status: status:
account_status: Staid a chunntais account_status: Staid a chunntais
@ -1211,6 +1284,8 @@ gd:
view_strikes: Seall na rabhaidhean a fhuair an cunntas agad roimhe view_strikes: Seall na rabhaidhean a fhuair an cunntas agad roimhe
too_fast: Chaidh am foirm a chur a-null ro luath, feuch ris a-rithist. too_fast: Chaidh am foirm a chur a-null ro luath, feuch ris a-rithist.
use_security_key: Cleachd iuchair tèarainteachd use_security_key: Cleachd iuchair tèarainteachd
user_agreement_html: Leugh mi agus tha mi ag aontachadh ri <a href="%{terms_of_service_path}" target="_blank">teirmichean na seirbheise</a> agus am <a href="%{privacy_policy_path}" target="_blank">poileasaidh prìobhaideachd</a>
user_privacy_agreement_html: Leugh mi is tha mi ag aontachadh ris a <a href="%{privacy_policy_path}" target="_blank">phoileasaidh prìobhaideachd</a>
author_attribution: author_attribution:
example_title: Ball-sampaill teacsa example_title: Ball-sampaill teacsa
hint_html: An sgrìobh thu naidheachdan no bloga taobh a-muigh Mhastodon? Stiùirich mar a thèid iomradh a thoirt ort nuair a bhios na h-artaigilean agad gan co-roinneadh air Mastodon. hint_html: An sgrìobh thu naidheachdan no bloga taobh a-muigh Mhastodon? Stiùirich mar a thèid iomradh a thoirt ort nuair a bhios na h-artaigilean agad gan co-roinneadh air Mastodon.
@ -1749,6 +1824,7 @@ gd:
scheduled_statuses: scheduled_statuses:
over_daily_limit: Chaidh thu thar na crìoch de %{limit} post(aichean) sgeidealaichte an-diugh over_daily_limit: Chaidh thu thar na crìoch de %{limit} post(aichean) sgeidealaichte an-diugh
over_total_limit: Chaidh thu thar na crìoch de %{limit} post(aichean) sgeidealaichte over_total_limit: Chaidh thu thar na crìoch de %{limit} post(aichean) sgeidealaichte
too_soon: feumaidh an ceann-latha a bhith san àm ri teachd
self_destruct: self_destruct:
lead_html: Gu mì-fhortanach, thèid <strong>%{domain}</strong> a dhùnadh gu buan. Ma tha cunntas agad ann, chan urrainn dhut cumail a gol ga chleachdadh ach s urrainn dhut lethbhreac-glèidhidh dhen dàta agad iarraidh fhathast. lead_html: Gu mì-fhortanach, thèid <strong>%{domain}</strong> a dhùnadh gu buan. Ma tha cunntas agad ann, chan urrainn dhut cumail a gol ga chleachdadh ach s urrainn dhut lethbhreac-glèidhidh dhen dàta agad iarraidh fhathast.
title: Tha am frithealaiche seo gu bhith dùnadh title: Tha am frithealaiche seo gu bhith dùnadh
@ -1919,6 +1995,8 @@ gd:
too_late: Tha e ro anmoch airson an rabhadh seo ath-thagradh too_late: Tha e ro anmoch airson an rabhadh seo ath-thagradh
tags: tags:
does_not_match_previous_name: " chan eil seo a-rèir an ainm roimhe" does_not_match_previous_name: " chan eil seo a-rèir an ainm roimhe"
terms_of_service:
title: Teirmichean na seirbheise
themes: themes:
contrast: Mastodon (iomsgaradh àrd) contrast: Mastodon (iomsgaradh àrd)
default: Mastodon (dorcha) default: Mastodon (dorcha)
@ -1950,6 +2028,10 @@ gd:
recovery_instructions_html: Ma chailleas tu an t-inntrigeadh dhan fhòn agad, s urrainn dhut fear dhe na còdan aisig gu h-ìosal a chleachdadh airson faighinn a-steach dhan chunntas agad a-rithist. <strong>Cùm na còdan aisig sàbhailte</strong>. Mar eisimpleir, s urrainn dhut an clò-bhualadh s a chumail far a bheil thu a cumail na sgrìobhainnean cudromach eile agad. recovery_instructions_html: Ma chailleas tu an t-inntrigeadh dhan fhòn agad, s urrainn dhut fear dhe na còdan aisig gu h-ìosal a chleachdadh airson faighinn a-steach dhan chunntas agad a-rithist. <strong>Cùm na còdan aisig sàbhailte</strong>. Mar eisimpleir, s urrainn dhut an clò-bhualadh s a chumail far a bheil thu a cumail na sgrìobhainnean cudromach eile agad.
webauthn: Iuchraichean tèarainteachd webauthn: Iuchraichean tèarainteachd
user_mailer: user_mailer:
announcement_published:
description: 'Tha na rianairean aig %{domain} a dèanamh brath-fios:'
subject: Brath-fios na seirbheise
title: Brath-fios na seirbheise %{domain}
appeal_approved: appeal_approved:
action: Roghainnean a chunntais action: Roghainnean a chunntais
explanation: Chaidh aontachadh ris an ath-thagradh agad air an rabhadh o %{strike_date} a chuir thu a-null %{appeal_date}. Tha an cunntas agad ann an deagh-chor a-rithist. explanation: Chaidh aontachadh ris an ath-thagradh agad air an rabhadh o %{strike_date} a chuir thu a-null %{appeal_date}. Tha an cunntas agad ann an deagh-chor a-rithist.
@ -1979,6 +2061,15 @@ gd:
further_actions_html: Mur e thu fhèin a bh ann, mholamaid gun %{action} sa bhad agus gun cuir thu an dearbhadh dà-cheumnach an comas airson an cunntas agad a chumail tèarainte. further_actions_html: Mur e thu fhèin a bh ann, mholamaid gun %{action} sa bhad agus gun cuir thu an dearbhadh dà-cheumnach an comas airson an cunntas agad a chumail tèarainte.
subject: Chaidh an cunntas agad inntrigeadh o sheòladh IP ùr subject: Chaidh an cunntas agad inntrigeadh o sheòladh IP ùr
title: Clàradh a-steach ùr title: Clàradh a-steach ùr
terms_of_service_changed:
agreement: Ma chumas tu a dol a chleachdadh %{domain}, aontaichidh tu ris na teirmichean seo. Mur aontaich thu ris na teirmichean ùra, s urrainn dhut crìoch a chur air d aonta le %{domain} uair sam bith le sguabadh às a chunntais agad.
changelog: 'Ann am priobadh na sùla, seo na tha an t-ùrachadh seo a ciallachadh dhut:'
description: 'Tha thu a faighinn a phuist-d seo air sgàth s gu bheil sinn ag atharrachadh teirmichean na seirbheise againn airson %{domain}. Bidh na h-ùrachaidhean seo èifeachdach an %{date}. Mholamaid gun dèan thu lèirmheas air na teirmichean ùra slàna an-seo:'
description_html: Tha thu a faighinn a phuist-d seo air sgàth s gu bheil sinn ag atharrachadh teirmichean na seirbheise againn airson %{domain}. Bidh na h-ùrachaidhean seo èifeachdach an <strong>%{date}</strong>. Mholamaid gun dèan thu lèirmheas air <a href="%{path}" target="_blank">na teirmichean ùra slàna an-seo</a>.
sign_off: Sgioba %{domain}
subject: Ùrachaidhean air teirmichean na seirbheise againn
subtitle: Tha teirmichean na seirbheise aig %{domain} gan atharrachadh
title: Naidheachd cudromach
warning: warning:
appeal: Cuir ath-thagradh a-null appeal: Cuir ath-thagradh a-null
appeal_description: Ma tha thu dhen bheachd gur e mearachd a th ann, s urrainn dhut ath-thagradh a chur a-null gun sgioba aig %{instance}. appeal_description: Ma tha thu dhen bheachd gur e mearachd a th ann, s urrainn dhut ath-thagradh a chur a-null gun sgioba aig %{instance}.

View file

@ -903,6 +903,8 @@ it:
system_checks: system_checks:
database_schema_check: database_schema_check:
message_html: Ci sono migrazioni del database in attesa. Sei pregato di eseguirle per assicurarti che l'applicazione si comporti come previsto message_html: Ci sono migrazioni del database in attesa. Sei pregato di eseguirle per assicurarti che l'applicazione si comporti come previsto
elasticsearch_analysis_index_mismatch:
message_html: Le impostazioni dell'analizzatore di indice Elasticsearch sono obsolete. Si prega di eseguire <code>tootctl search deploy --only-mapping --only=%{value}</code>
elasticsearch_health_red: elasticsearch_health_red:
message_html: Il cluster Elasticsearch non è integro (stato rosso), le funzionalità di ricerca non sono disponibili message_html: Il cluster Elasticsearch non è integro (stato rosso), le funzionalità di ricerca non sono disponibili
elasticsearch_health_yellow: elasticsearch_health_yellow:

View file

@ -316,6 +316,7 @@ lv:
create: Izveidot paziņojumu create: Izveidot paziņojumu
title: Jauns paziņojums title: Jauns paziņojums
preview: preview:
disclaimer: Tā kā lietotāji nevar atteikties no e-pasta paziņojumiem, tos vajadzētu izmantot tikai svarīgiem paziņojumiem, piemēram, personīgo datu noplūdi vai servera aizvēršanas paziņojumiem.
explanation_html: 'E-pasta ziņojums tiks nosūtīts <strong>%{display_count} lietotājiem</strong>. Šis teksts tiks iekļauts e-pasta ziņojumā:' explanation_html: 'E-pasta ziņojums tiks nosūtīts <strong>%{display_count} lietotājiem</strong>. Šis teksts tiks iekļauts e-pasta ziņojumā:'
title: Priekšskatīt paziņojumu title: Priekšskatīt paziņojumu
publish: Publicēt publish: Publicēt

View file

@ -56,7 +56,7 @@ eo:
scopes: Kiujn API-ojn la aplikaĵo permesiĝos atingi. Se vi elektas supran amplekson, vi ne bezonas elekti la individuajn. scopes: Kiujn API-ojn la aplikaĵo permesiĝos atingi. Se vi elektas supran amplekson, vi ne bezonas elekti la individuajn.
setting_aggregate_reblogs: Ne montri novajn plusendojn de mesaĝoj lastatempe plusenditaj (nur efikas al nove ricevitaj plusendoj) setting_aggregate_reblogs: Ne montri novajn plusendojn de mesaĝoj lastatempe plusenditaj (nur efikas al nove ricevitaj plusendoj)
setting_always_send_emails: Normale, la sciigoj per retpoŝto ne estos senditaj kiam vi uzas Mastodon aktive setting_always_send_emails: Normale, la sciigoj per retpoŝto ne estos senditaj kiam vi uzas Mastodon aktive
setting_default_sensitive: Tiklaj vidaŭdaĵoj estas implicite kaŝitaj kaj povas esti montritaj per alklako setting_default_sensitive: La tiklaj vidaŭdaĵoj estas implicite kaŝitaj kaj povas esti malkaŝitaj per alklako
setting_display_media_default: Kaŝi plurmediojn markitajn kiel tiklaj setting_display_media_default: Kaŝi plurmediojn markitajn kiel tiklaj
setting_display_media_hide_all: Ĉiam kaŝi la vidaŭdaĵojn setting_display_media_hide_all: Ĉiam kaŝi la vidaŭdaĵojn
setting_display_media_show_all: Ĉiam montri la vidaŭdaĵojn setting_display_media_show_all: Ĉiam montri la vidaŭdaĵojn
@ -89,6 +89,7 @@ eo:
favicon: WEBP, PNG, GIF aŭ JPG. Anstataŭigas la defaŭltan Mastodon-favikono kun propra bildsimbolo. favicon: WEBP, PNG, GIF aŭ JPG. Anstataŭigas la defaŭltan Mastodon-favikono kun propra bildsimbolo.
mascot: Anstatauigi la ilustraĵon en la altnivela retinterfaco. mascot: Anstatauigi la ilustraĵon en la altnivela retinterfaco.
media_cache_retention_period: Amaskomunikilaj dosieroj de afiŝoj faritaj de foraj uzantoj estas konservitaj en kaŝmemoro en via servilo. Kiam agordita al pozitiva valoro, amaskomunikilaro estos forigita post la specifita nombro da tagoj. Se la amaskomunikilaro-datumoj estas petitaj post kiam ĝi estas forigita, ĝi estos re-elŝutita, se la fonta enhavo ankoraŭ disponeblas. Pro limigoj pri kiom ofte ligaj antaŭrigardaj kartoj enketas retejojn de ekstera liveranto, oni rekomendas agordi ĉi tiun valoron al almenaŭ 14 tagoj, aŭ ligaj antaŭrigardaj kartoj ne estos ĝisdatigitaj laŭpostule antaŭ tiu tempo. media_cache_retention_period: Amaskomunikilaj dosieroj de afiŝoj faritaj de foraj uzantoj estas konservitaj en kaŝmemoro en via servilo. Kiam agordita al pozitiva valoro, amaskomunikilaro estos forigita post la specifita nombro da tagoj. Se la amaskomunikilaro-datumoj estas petitaj post kiam ĝi estas forigita, ĝi estos re-elŝutita, se la fonta enhavo ankoraŭ disponeblas. Pro limigoj pri kiom ofte ligaj antaŭrigardaj kartoj enketas retejojn de ekstera liveranto, oni rekomendas agordi ĉi tiun valoron al almenaŭ 14 tagoj, aŭ ligaj antaŭrigardaj kartoj ne estos ĝisdatigitaj laŭpostule antaŭ tiu tempo.
min_age: Uzantoj demandos konfirmi siajn naskiĝtagon dum registrado
peers_api_enabled: Listo de domajnaj nomoj kiujn ĉi tiu servilo renkontis en la fediverso. Neniuj datumoj estas inkluditaj ĉi tie pri ĉu vi federacias kun donita servilo, nur ke via servilo scias pri ĝi. Ĉi tio estas uzata de servoj kiuj kolektas statistikojn pri federacio en ĝenerala signifo. peers_api_enabled: Listo de domajnaj nomoj kiujn ĉi tiu servilo renkontis en la fediverso. Neniuj datumoj estas inkluditaj ĉi tie pri ĉu vi federacias kun donita servilo, nur ke via servilo scias pri ĝi. Ĉi tio estas uzata de servoj kiuj kolektas statistikojn pri federacio en ĝenerala signifo.
profile_directory: La profilujo listigas ĉiujn uzantojn kiu volonte malkovrebli. profile_directory: La profilujo listigas ĉiujn uzantojn kiu volonte malkovrebli.
require_invite_text: Kiam registroj bezonas permanan aprobon, igi la "Kial vi volas aliĝi?" tekstoenigon deviga anstau nedeviga require_invite_text: Kiam registroj bezonas permanan aprobon, igi la "Kial vi volas aliĝi?" tekstoenigon deviga anstau nedeviga
@ -137,10 +138,14 @@ eo:
text: Povas esti strukturita per sintakso Markdown-a. text: Povas esti strukturita per sintakso Markdown-a.
terms_of_service_generator: terms_of_service_generator:
admin_email: Legalaj sciigoj povas esti kontraŭsciigoj, postulaĵoj de tribunalo, postulaĵoj pri forigo, kaj postulaĵoj de la policaro. admin_email: Legalaj sciigoj povas esti kontraŭsciigoj, postulaĵoj de tribunalo, postulaĵoj pri forigo, kaj postulaĵoj de la policaro.
arbitration_address: Povas esti la sama kiel fizika adreso supre, aŭ "N/A" se oni uzas retpoŝton.
arbitration_website: Povas esti retformularo, aŭ "N/A" se oni uzas retpoŝton.
choice_of_law: Urbo, regiono, teritorio aŭ ŝtato, kies internaj substantivaj leĝoj regos iujn kaj ĉiujn asertojn. choice_of_law: Urbo, regiono, teritorio aŭ ŝtato, kies internaj substantivaj leĝoj regos iujn kaj ĉiujn asertojn.
dmca_address: Por tenantoj en Usono, uzu la adreson registritan en la DMCA Designated Agenŭ Directory. Registrolibro de poŝtskatoloj haveblas per direkta postulo, uzu la DMCA Designated Agent Post Office Box Waiver Request por retpoŝti la Ofico de Kopirajto kaj priskribu, ke vi estas hejm-trovigita administranto por enhavo kaj devas uzi Poŝtskatolon por forigi vian hejmadreson de publika vido. dmca_address: Por tenantoj en Usono, uzu la adreson registritan en la DMCA Designated Agenŭ Directory. Registrolibro de poŝtskatoloj haveblas per direkta postulo, uzu la DMCA Designated Agent Post Office Box Waiver Request por retpoŝti la Ofico de Kopirajto kaj priskribu, ke vi estas hejm-trovigita administranto por enhavo kaj devas uzi Poŝtskatolon por forigi vian hejmadreson de publika vido.
dmca_email: Povas esti la sama retpoŝtadreso uzita en "Retpoŝtadreso por legalaj sciigoj" supre.
domain: Unika identigilo de la retaj servicoj, ke vi provizas. domain: Unika identigilo de la retaj servicoj, ke vi provizas.
jurisdiction: Enlistigu la landon, kie loĝas kiu pagas la fakturojn. Se ĝi estas kompanio aŭ alia ento, listigu la landon, kie ĝi estas enkorpigita, kaj la urbon, regionon, teritorion aŭ ŝtaton laŭeble. jurisdiction: Enlistigu la landon, kie loĝas kiu pagas la fakturojn. Se ĝi estas kompanio aŭ alia ento, listigu la landon, kie ĝi estas enkorpigita, kaj la urbon, regionon, teritorion aŭ ŝtaton laŭeble.
min_age: Ne devus esti malsupre la minimuma aĝo postulita de la leĝoj de via jurisdikcio.
user: user:
chosen_languages: Kun tio markita nur mesaĝoj en elektitaj lingvoj aperos en publikaj tempolinioj chosen_languages: Kun tio markita nur mesaĝoj en elektitaj lingvoj aperos en publikaj tempolinioj
date_of_birth: Ni devas certigi, ke vi estas almenaŭ %{age} por uzi Mastodon. Ni ne konservos ĉi tion. date_of_birth: Ni devas certigi, ke vi estas almenaŭ %{age} por uzi Mastodon. Ni ne konservos ĉi tion.

View file

@ -3,6 +3,7 @@ gd:
simple_form: simple_form:
hints: hints:
account: account:
attribution_domains: Loidhne fa leth do gach fear. Dìonaidh seo o iomraidhean meallta.
discoverable: Dhfhaoidte gun dèid na postaichean poblach s a phròifil agad a bhrosnachadh no a mholadh ann an caochladh roinnean de Mhastodon agus gun dèid a phròifil agad a mholadh do chàch. discoverable: Dhfhaoidte gun dèid na postaichean poblach s a phròifil agad a bhrosnachadh no a mholadh ann an caochladh roinnean de Mhastodon agus gun dèid a phròifil agad a mholadh do chàch.
display_name: D ainm slàn no spòrsail. display_name: D ainm slàn no spòrsail.
fields: An duilleag-dhachaigh agad, roimhearan, aois, rud sam bith a thogras tu. fields: An duilleag-dhachaigh agad, roimhearan, aois, rud sam bith a thogras tu.
@ -59,6 +60,7 @@ gd:
setting_display_media_default: Falaich meadhanan ris a bheil comharra gu bheil iad frionasach setting_display_media_default: Falaich meadhanan ris a bheil comharra gu bheil iad frionasach
setting_display_media_hide_all: Falaich na meadhanan an-còmhnaidh setting_display_media_hide_all: Falaich na meadhanan an-còmhnaidh
setting_display_media_show_all: Seall na meadhanan an-còmhnaidh setting_display_media_show_all: Seall na meadhanan an-còmhnaidh
setting_system_scrollbars_ui: Chan obraich seo ach air brabhsairean desktop stèidhichte air Safari s Chrome
setting_use_blurhash: Tha caiseadan stèidhichte air dathan nan nithean lèirsinneach a chaidh fhalach ach chan fhaicear am mion-fhiosrachadh setting_use_blurhash: Tha caiseadan stèidhichte air dathan nan nithean lèirsinneach a chaidh fhalach ach chan fhaicear am mion-fhiosrachadh
setting_use_pending_items: Falaich ùrachaidhean na loidhne-ama air cùlaibh briogaidh seach a bhith a sgroladh nam postaichean gu fèin-obrachail setting_use_pending_items: Falaich ùrachaidhean na loidhne-ama air cùlaibh briogaidh seach a bhith a sgroladh nam postaichean gu fèin-obrachail
username: Faodaidh tu litrichean, àireamhan is fo-loidhnichean a chleachdadh username: Faodaidh tu litrichean, àireamhan is fo-loidhnichean a chleachdadh
@ -73,6 +75,7 @@ gd:
filters: filters:
action: Tagh na thachras nuair a bhios post a maidseadh na criathraige action: Tagh na thachras nuair a bhios post a maidseadh na criathraige
actions: actions:
blur: Falaich na meadhanan air cùlaibh rabhaidh gun a bhith a falach an teacsa fhèin
hide: Falaich an t-susbaint chriathraichte uile gu lèir mar nach robh i ann idir hide: Falaich an t-susbaint chriathraichte uile gu lèir mar nach robh i ann idir
warn: Falaich an t-susbaint chriathraichte air cùlaibh rabhaidh a dhinnseas tiotal na criathraige warn: Falaich an t-susbaint chriathraichte air cùlaibh rabhaidh a dhinnseas tiotal na criathraige
form_admin_settings: form_admin_settings:
@ -86,6 +89,7 @@ gd:
favicon: WEBP, PNG, GIF no JPG. Tar-àithnidh seo favicon bunaiteach Mhastodon le ìomhaigheag ghnàthaichte. favicon: WEBP, PNG, GIF no JPG. Tar-àithnidh seo favicon bunaiteach Mhastodon le ìomhaigheag ghnàthaichte.
mascot: Tar-àithnidh seo an sgead-dhealbh san eadar-aghaidh-lìn adhartach. mascot: Tar-àithnidh seo an sgead-dhealbh san eadar-aghaidh-lìn adhartach.
media_cache_retention_period: Thèid faidhlichean meadhain o phostaichean a chruthaich cleachdaichean cèine a chur ri tasgadan an fhrithealaiche agad. Nuair a shuidhicheas tu seo air luach dearbh, thèid na meadhanan a sguabadh às às dèidh na h-àireimh de làithean a shònraich thu. Ma tha dàta meadhain ga iarraidh às dèidh a sguabaidh às, thèid a luchdadh a-nuas a-rithist ma tha susbaint an tùis ri fhaighinn fhathast. Ri linn cuingeachaidhean air mar a cheasnaicheas cairtean ro-sheallaidh làraichean threas-phàrtaidhean, mholamaid gun suidhich thu an luach seo air 14 làithean ar a char as giorra no cha dèid an ùrachadh nuair a thèid an iarraidh ron àm sin. media_cache_retention_period: Thèid faidhlichean meadhain o phostaichean a chruthaich cleachdaichean cèine a chur ri tasgadan an fhrithealaiche agad. Nuair a shuidhicheas tu seo air luach dearbh, thèid na meadhanan a sguabadh às às dèidh na h-àireimh de làithean a shònraich thu. Ma tha dàta meadhain ga iarraidh às dèidh a sguabaidh às, thèid a luchdadh a-nuas a-rithist ma tha susbaint an tùis ri fhaighinn fhathast. Ri linn cuingeachaidhean air mar a cheasnaicheas cairtean ro-sheallaidh làraichean threas-phàrtaidhean, mholamaid gun suidhich thu an luach seo air 14 làithean ar a char as giorra no cha dèid an ùrachadh nuair a thèid an iarraidh ron àm sin.
min_age: Thèid iarraidh air an luchd-cleachdaidh gun dearbh iad an là-breith rè a chlàraidh
peers_api_enabled: Seo liosta de dhainmean àrainne ris an do thachair am frithealaiche seo sa cho-shaoghal. Chan eil dàta sam bith ga ghabhail a-staigh an-seo mu a bheil thu co-naisgte ri frithealaiche sònraichte gus nach eil ach dìreach gu bheil am frithealaiche agad eòlach air. Thèid seo a chleachdadh le seirbheisean a chruinnicheas stadastaireachd air a cho-nasgadh san fharsaingeachd. peers_api_enabled: Seo liosta de dhainmean àrainne ris an do thachair am frithealaiche seo sa cho-shaoghal. Chan eil dàta sam bith ga ghabhail a-staigh an-seo mu a bheil thu co-naisgte ri frithealaiche sònraichte gus nach eil ach dìreach gu bheil am frithealaiche agad eòlach air. Thèid seo a chleachdadh le seirbheisean a chruinnicheas stadastaireachd air a cho-nasgadh san fharsaingeachd.
profile_directory: Seallaidh eòlaire nam pròifil liosta dhen luchd-cleachdaidh a dhaontaich gun gabh an rùrachadh. profile_directory: Seallaidh eòlaire nam pròifil liosta dhen luchd-cleachdaidh a dhaontaich gun gabh an rùrachadh.
require_invite_text: Nuair a bhios aontachadh a làimh riatanach dhan chlàradh, dèan an raon teacsa “Carson a bu mhiann leat ballrachd fhaighinn?” riatanach seach roghainneil require_invite_text: Nuair a bhios aontachadh a làimh riatanach dhan chlàradh, dèan an raon teacsa “Carson a bu mhiann leat ballrachd fhaighinn?” riatanach seach roghainneil
@ -128,8 +132,23 @@ gd:
show_application: Gidheadh, chì thu dè an aplacaid a dhfhoillsich am post agad an-còmhnaidh. show_application: Gidheadh, chì thu dè an aplacaid a dhfhoillsich am post agad an-còmhnaidh.
tag: tag:
name: Mar eisimpleir, s urrainn dhut measgachadh de litrichean mòra s beaga a chleachdadh ach an gabh a leughadh nas fhasa name: Mar eisimpleir, s urrainn dhut measgachadh de litrichean mòra s beaga a chleachdadh ach an gabh a leughadh nas fhasa
terms_of_service:
changelog: "S urrainn dhut structar a chur air le co-chàradh Markdown."
effective_date: Faodaidh ceann-ama reusanta a bhith rud sam bith eadar 10 is 30 latha on cheann-là a chuireas tu brath-fios dhan luchd-cleachdaidh agad.
text: "S urrainn dhut structar a chur air le co-chàradh Markdown."
terms_of_service_generator:
admin_email: Gabhaidh sanasan laghail a-staigh brathan-àichidh, òrduighean cùirte, iarrtasan toirt air falbh agus iarrtasan co-èigneachadh an lagha.
arbitration_address: Faodaidh e a bhith co-ionnan ris an t-seòladh fhiosaigeach gu h-àrd no “N/A” ma tha thu a cleachdadh post-d.
arbitration_website: Faodaidh e a bhith na fhoirm-lìn no “N/A” ma tha thu a cleachdadh post-d.
choice_of_law: Am baile, an sgìre, an ranntair no an stàit a riaghlas na laghan brìoghmhor sònraichte aige tagraidhean sam bith.
dmca_address: Airson gnìomharaichean sna SA, cleachd an seòladh a tha clàraichte san DMCA Designated Agent Directory. Faodaidh tu cleachdadh seòladh P.O. Box iarraidh, cleachd DMCA Designated Agent Post Office Box Waiver Request airson post-d a chur gun Copyright Office agus mìnich gur e “home-based content moderator” a th annad agus eagal ort ro dhìoghaltas no dìoladh-fiach air do ghnìomhan agus gum feum thu P.O. Box a chleachdadh airson seòladh do dhachaigh fhalach o shealladh poblach.
dmca_email: Faodaidh tu an t-aon phost-d a chleachdadh s a chleachd thu airson “Seòladh puist-d airson sanasan laghail” gu h-àrd.
domain: Aithneachadh àraidh dhen t-seirbheis air loidhne a tha thu a solar.
jurisdiction: Innis an dùthaich far a bheil an neach a phàigheas na bilichean a fuireach. Mas e companaidh no eintiteas eile a th ann, innis an dùthaich far a bheil e corpaichte agus am baile, sgìre, ranntair no stàit mar a tha iomchaidh.
min_age: Cha bu chòir seo a bhith fon aois as lugha a dhiarras laghain an t-uachdranais laghail agad.
user: user:
chosen_languages: Nuair a bhios cromag ris, cha nochd ach postaichean sna cànain a thagh thu air loidhnichean-ama poblach chosen_languages: Nuair a bhios cromag ris, cha nochd ach postaichean sna cànain a thagh thu air loidhnichean-ama poblach
date_of_birth: Feumaidh sinn dèanamh cinnteach gu bheil thu %{age} bliadhna(ichean) a dhaois air a char as lugha mus cleachd thu Mastodon. Cha chlàraich sinn seo.
role: Stiùiridh an dreuchd dè na ceadan a bhios aig cleachdaiche. role: Stiùiridh an dreuchd dè na ceadan a bhios aig cleachdaiche.
user_role: user_role:
color: An datha a bhios air an dreuchd air feadh na h-eadar-aghaidh, na RGB san fhòrmat sia-dheicheach color: An datha a bhios air an dreuchd air feadh na h-eadar-aghaidh, na RGB san fhòrmat sia-dheicheach
@ -143,6 +162,7 @@ gd:
url: Far an dèid na tachartasan a chur url: Far an dèid na tachartasan a chur
labels: labels:
account: account:
attribution_domains: Na làraichean-lìn a dhfhaodas iomradh a thoirt ort
discoverable: Brosnaich a phròifil is postaichean agad sna h-algairimean rùrachaidh discoverable: Brosnaich a phròifil is postaichean agad sna h-algairimean rùrachaidh
fields: fields:
name: Leubail name: Leubail
@ -219,8 +239,10 @@ gd:
setting_display_media_show_all: Seall na h-uile setting_display_media_show_all: Seall na h-uile
setting_expand_spoilers: Leudaich postaichean ris a bheil rabhadh susbainte an-còmhnaidh setting_expand_spoilers: Leudaich postaichean ris a bheil rabhadh susbainte an-còmhnaidh
setting_hide_network: Falaich an graf sòisealta agad setting_hide_network: Falaich an graf sòisealta agad
setting_missing_alt_text_modal: Faic còmhradh dearbhaidh mus postaich thu meadhan às aonais roghainn teacsa
setting_reduce_motion: Ìslich an gluasad sna beòthachaidhean setting_reduce_motion: Ìslich an gluasad sna beòthachaidhean
setting_system_font_ui: Cleachd cruth-clò bunaiteach an t-siostaim setting_system_font_ui: Cleachd cruth-clò bunaiteach an t-siostaim
setting_system_scrollbars_ui: Seall bàr-sgrolaidh bunaiteach an t-siostaim
setting_theme: Ùrlar na làraich setting_theme: Ùrlar na làraich
setting_trends: Seall na treandaichean an-diugh setting_trends: Seall na treandaichean an-diugh
setting_unfollow_modal: Seall còmhradh dearbhaidh mus sguir thu de chuideigin a leantainn setting_unfollow_modal: Seall còmhradh dearbhaidh mus sguir thu de chuideigin a leantainn
@ -239,6 +261,7 @@ gd:
name: Taga hais name: Taga hais
filters: filters:
actions: actions:
blur: Falaich na meadhanan le rabhadh
hide: Falaich uile gu lèir hide: Falaich uile gu lèir
warn: Falaich le rabhadh warn: Falaich le rabhadh
form_admin_settings: form_admin_settings:
@ -252,6 +275,7 @@ gd:
favicon: Favicon favicon: Favicon
mascot: Suaichnean gnàthaichte (dìleabach) mascot: Suaichnean gnàthaichte (dìleabach)
media_cache_retention_period: Ùine glèidhidh aig tasgadan nam meadhanan media_cache_retention_period: Ùine glèidhidh aig tasgadan nam meadhanan
min_age: Riatanas aoise as lugha
peers_api_enabled: Foillsich liosta nam frithealaichean a chaidh a rùrachadh san API peers_api_enabled: Foillsich liosta nam frithealaichean a chaidh a rùrachadh san API
profile_directory: Cuir eòlaire nam pròifil an comas profile_directory: Cuir eòlaire nam pròifil an comas
registrations_mode: Cò dhfhaodas clàradh registrations_mode: Cò dhfhaodas clàradh
@ -315,7 +339,24 @@ gd:
name: Taga hais name: Taga hais
trendable: Faodaidh an taga hais seo nochdadh am measg nan treandaichean trendable: Faodaidh an taga hais seo nochdadh am measg nan treandaichean
usable: Faodaidh postaichean an taga hais seo a chleachdadh gu h-ionadail usable: Faodaidh postaichean an taga hais seo a chleachdadh gu h-ionadail
terms_of_service:
changelog: Dè tha air atharrachadh?
effective_date: Ceann-là èifeachd
text: Teirmichean na seirbheise
terms_of_service_generator:
admin_email: Seòladh puist-d airson sanasan laghail
arbitration_address: Seòladh fiosaigeach airson sanasan eadar-bhreith
arbitration_website: Làrach-lìn airson sanasan eadar-bhreith a chur a-null
choice_of_law: Taghadh an lagha
dmca_address: Seòladh fiosaigeach airson sanasan DMCA/còir-lethbhreac
dmca_email: Seòladh puist-d airson sanasan DMCA/còir-lethbhreac
domain: Àrainn
jurisdiction: Uachdranas laghail
min_age: An aois as lugha
user: user:
date_of_birth_1i: Latha
date_of_birth_2i: Mìos
date_of_birth_3i: Bliadhna
role: Dreuchd role: Dreuchd
time_zone: Roinn-tìde time_zone: Roinn-tìde
user_role: user_role:

View file

@ -339,6 +339,7 @@ lv:
terms_of_service_generator: terms_of_service_generator:
admin_email: E-pasta adrese juridiskiem paziņojumiem admin_email: E-pasta adrese juridiskiem paziņojumiem
choice_of_law: Likuma izvēle choice_of_law: Likuma izvēle
dmca_email: E-pasta adrese DMCA/autortiesību pārstāvju sūdzību iesniegšanai
domain: Domēna vārds domain: Domēna vārds
min_age: Mazākais pieļaujamais vecums min_age: Mazākais pieļaujamais vecums
user: user:

View file

@ -1165,7 +1165,7 @@ vi:
welcome_title: Chào mừng, %{name}! welcome_title: Chào mừng, %{name}!
wrong_email_hint: Nếu địa chỉ email đó không chính xác, bạn có thể đổi lại trong cài đặt tài khoản. wrong_email_hint: Nếu địa chỉ email đó không chính xác, bạn có thể đổi lại trong cài đặt tài khoản.
delete_account: Xóa tài khoản delete_account: Xóa tài khoản
delete_account_html: Nếu bạn muốn xóa tài khoản của mình, hãy <a href="%{path}">yêu cầu tại đây</a>. Bạn sẽ được yêu cầu xác nhận. delete_account_html: Thực hiện <a href="%{path}">xóa tài khoản</a> của bạn.
description: description:
prefix_invited_by_user: "@%{name} mời bạn tham gia máy chủ Mastodon này!" prefix_invited_by_user: "@%{name} mời bạn tham gia máy chủ Mastodon này!"
prefix_sign_up: Tham gia Mastodon ngay hôm nay! prefix_sign_up: Tham gia Mastodon ngay hôm nay!
@ -1826,7 +1826,7 @@ vi:
unlisted_long: Không hiện trên bảng tin máy chủ unlisted_long: Không hiện trên bảng tin máy chủ
statuses_cleanup: statuses_cleanup:
enabled: Tự động xóa những tút cũ enabled: Tự động xóa những tút cũ
enabled_hint: Tự động xóa các tút của bạn khi chúng tới thời điểm nhất định, trừ những trường hợp ngoại lệ bên dưới enabled_hint: Sau thời điểm nhất định, trừ những trường hợp ngoại lệ bên dưới
exceptions: Ngoại lệ exceptions: Ngoại lệ
explanation: Số lượng tút sẽ tăng dần theo năm tháng. Bạn nên xóa những tút cũ khi tới một thời điểm nhất định. explanation: Số lượng tút sẽ tăng dần theo năm tháng. Bạn nên xóa những tút cũ khi tới một thời điểm nhất định.
ignore_favs: Bỏ qua số lượt thích ignore_favs: Bỏ qua số lượt thích

17
config/vite.json Normal file
View file

@ -0,0 +1,17 @@
{
"all": {
"sourceCodeDir": "app/javascript",
"additionalEntrypoints": ["~/{icons,images}/**/*", "~/styles/*.scss"],
"watchAdditionalPaths": []
},
"development": {
"autoBuild": true,
"publicOutputDir": "vite-dev",
"port": 3036
},
"test": {
"autoBuild": true,
"publicOutputDir": "vite-test",
"port": 3037
}
}

View file

@ -1,5 +1,7 @@
// @ts-check // @ts-check
import path from 'node:path';
import js from '@eslint/js'; import js from '@eslint/js';
import { globalIgnores } from 'eslint/config'; import { globalIgnores } from 'eslint/config';
import formatjs from 'eslint-plugin-formatjs'; import formatjs from 'eslint-plugin-formatjs';
@ -204,7 +206,9 @@ export default tseslint.config([
'import/ignore': ['node_modules', '\\.(css|scss|json)$'], 'import/ignore': ['node_modules', '\\.(css|scss|json)$'],
'import/resolver': { 'import/resolver': {
typescript: {}, typescript: {
project: path.resolve(import.meta.dirname, './tsconfig.json'),
},
}, },
}, },
@ -247,6 +251,7 @@ export default tseslint.config([
'config/webpack/**', 'config/webpack/**',
'app/javascript/mastodon/performance.js', 'app/javascript/mastodon/performance.js',
'app/javascript/mastodon/test_setup.js', 'app/javascript/mastodon/test_setup.js',
'app/javascript/mastodon/test_helpers.tsx',
'app/javascript/**/__tests__/**', 'app/javascript/**/__tests__/**',
], ],
}, },
@ -387,9 +392,7 @@ export default tseslint.config([
files: ['**/__tests__/*.js', '**/__tests__/*.jsx'], files: ['**/__tests__/*.js', '**/__tests__/*.jsx'],
languageOptions: { languageOptions: {
globals: { globals: globals.vitest,
...globals.jest,
},
}, },
}, },
]); ]);

View file

@ -1,28 +0,0 @@
/** @type {import('jest').Config} */
const config = {
testEnvironment: 'jsdom',
testPathIgnorePatterns: [
'<rootDir>/node_modules/',
'<rootDir>/vendor/',
'<rootDir>/config/',
'<rootDir>/log/',
'<rootDir>/public/',
'<rootDir>/tmp/',
],
setupFilesAfterEnv: ['<rootDir>/app/javascript/mastodon/test_setup.js'],
collectCoverageFrom: [
'app/javascript/mastodon/**/*.{js,jsx,ts,tsx}',
'!app/javascript/mastodon/features/emoji/emoji_compressed.js',
'!app/javascript/mastodon/service_worker/entry.js',
'!app/javascript/mastodon/test_setup.js',
],
// Those packages are ESM, so we need them to be processed by Babel
transformIgnorePatterns: ['/node_modules/(?!(redent|strip-indent)/)'],
coverageDirectory: '<rootDir>/coverage',
moduleDirectories: ['node_modules', '<rootDir>/app/javascript'],
moduleNameMapper: {
'\\.svg\\?react$': '<rootDir>/app/javascript/__mocks__/svg.js',
},
};
module.exports = config;

View file

@ -79,7 +79,14 @@ module Mastodon::CLI
account = Account.new(username: username) account = Account.new(username: username)
password = SecureRandom.hex password = SecureRandom.hex
user = User.new(email: options[:email], password: password, agreement: true, role_id: role_id, confirmed_at: options[:confirmed] ? Time.now.utc : nil, bypass_invite_request_check: true) user = User.new(
email: options[:email],
password: password,
agreement: true,
role_id: role_id,
confirmed_at: options[:confirmed] ? Time.now.utc : nil,
bypass_registration_checks: true
)
if options[:reattach] if options[:reattach]
account = Account.find_local(username) || Account.new(username: username) account = Account.find_local(username) || Account.new(username: username)

View file

@ -552,7 +552,7 @@ namespace :mastodon do
password = SecureRandom.hex(16) password = SecureRandom.hex(16)
owner_role = UserRole.find_by(name: 'Owner') owner_role = UserRole.find_by(name: 'Owner')
user = User.new(email: email, password: password, confirmed_at: Time.now.utc, account_attributes: { username: username }, bypass_invite_request_check: true, role: owner_role) user = User.new(email: email, password: password, confirmed_at: Time.now.utc, account_attributes: { username: username }, bypass_registration_checks: true, role: owner_role)
user.save(validate: false) user.save(validate: false)
user.approve! user.approve!

View file

@ -22,14 +22,14 @@
"format": "prettier --write --log-level warn .", "format": "prettier --write --log-level warn .",
"format:check": "prettier --check --ignore-unknown .", "format:check": "prettier --check --ignore-unknown .",
"i18n:extract": "formatjs extract 'app/javascript/**/*.{js,jsx,ts,tsx}' --ignore '**/*.d.ts' --out-file app/javascript/mastodon/locales/en.json --format config/formatjs-formatter.js", "i18n:extract": "formatjs extract 'app/javascript/**/*.{js,jsx,ts,tsx}' --ignore '**/*.d.ts' --out-file app/javascript/mastodon/locales/en.json --format config/formatjs-formatter.js",
"jest": "cross-env NODE_ENV=test jest",
"lint:js": "cd $INIT_CWD && eslint --cache --report-unused-disable-directives", "lint:js": "cd $INIT_CWD && eslint --cache --report-unused-disable-directives",
"lint:css": "stylelint \"**/*.{css,scss}\"", "lint:css": "stylelint \"**/*.{css,scss}\"",
"lint": "yarn lint:js && yarn lint:css", "lint": "yarn lint:js && yarn lint:css",
"postversion": "git push --tags", "postversion": "git push --tags",
"postinstall": "test -d node_modules/husky && husky || echo \"husky is not installed\"", "postinstall": "test -d node_modules/husky && husky || echo \"husky is not installed\"",
"start": "node ./streaming/index.js", "start": "node ./streaming/index.js",
"test": "yarn lint && yarn run typecheck && yarn jest", "test": "yarn lint && yarn run typecheck && yarn test:js run",
"test:js": "vitest",
"typecheck": "tsc --noEmit" "typecheck": "tsc --noEmit"
}, },
"repository": { "repository": {
@ -132,6 +132,7 @@
"tiny-queue": "^0.2.1", "tiny-queue": "^0.2.1",
"twitter-text": "3.1.0", "twitter-text": "3.1.0",
"use-debounce": "^10.0.0", "use-debounce": "^10.0.0",
"vite": "^6.3.5",
"webpack": "^4.47.0", "webpack": "^4.47.0",
"webpack-assets-manifest": "^4.0.6", "webpack-assets-manifest": "^4.0.6",
"webpack-bundle-analyzer": "^4.8.0", "webpack-bundle-analyzer": "^4.8.0",
@ -149,7 +150,6 @@
"@eslint/js": "^9.23.0", "@eslint/js": "^9.23.0",
"@formatjs/cli": "^6.1.1", "@formatjs/cli": "^6.1.1",
"@testing-library/dom": "^10.2.0", "@testing-library/dom": "^10.2.0",
"@testing-library/jest-dom": "^6.0.0",
"@testing-library/react": "^16.0.0", "@testing-library/react": "^16.0.0",
"@types/babel__core": "^7.20.1", "@types/babel__core": "^7.20.1",
"@types/emoji-mart": "3.0.14", "@types/emoji-mart": "3.0.14",
@ -158,7 +158,6 @@
"@types/hoist-non-react-statics": "^3.3.1", "@types/hoist-non-react-statics": "^3.3.1",
"@types/http-link-header": "^1.0.3", "@types/http-link-header": "^1.0.3",
"@types/intl": "^1.2.0", "@types/intl": "^1.2.0",
"@types/jest": "^29.5.2",
"@types/js-yaml": "^4.0.5", "@types/js-yaml": "^4.0.5",
"@types/lodash": "^4.14.195", "@types/lodash": "^4.14.195",
"@types/object-assign": "^4.0.30", "@types/object-assign": "^4.0.30",
@ -179,7 +178,7 @@
"@types/requestidlecallback": "^0.3.5", "@types/requestidlecallback": "^0.3.5",
"@types/webpack": "^4.41.33", "@types/webpack": "^4.41.33",
"@types/webpack-env": "^1.18.4", "@types/webpack-env": "^1.18.4",
"babel-jest": "^29.5.0", "@vitejs/plugin-react": "^4.2.1",
"eslint": "^9.23.0", "eslint": "^9.23.0",
"eslint-import-resolver-typescript": "^4.2.5", "eslint-import-resolver-typescript": "^4.2.5",
"eslint-plugin-formatjs": "^5.3.1", "eslint-plugin-formatjs": "^5.3.1",
@ -191,8 +190,6 @@
"eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-hooks": "^5.2.0",
"globals": "^16.0.0", "globals": "^16.0.0",
"husky": "^9.0.11", "husky": "^9.0.11",
"jest": "^29.5.0",
"jest-environment-jsdom": "^29.5.0",
"lint-staged": "^15.0.0", "lint-staged": "^15.0.0",
"prettier": "^3.3.3", "prettier": "^3.3.3",
"react-test-renderer": "^18.2.0", "react-test-renderer": "^18.2.0",
@ -201,6 +198,9 @@
"stylelint-config-standard-scss": "^14.0.0", "stylelint-config-standard-scss": "^14.0.0",
"typescript": "~5.7.3", "typescript": "~5.7.3",
"typescript-eslint": "^8.28.0", "typescript-eslint": "^8.28.0",
"vite-plugin-rails": "^0.5.0",
"vite-plugin-svgr": "^4.2.0",
"vitest": "^3.1.3",
"webpack-dev-server": "^3.11.3" "webpack-dev-server": "^3.11.3"
}, },
"resolutions": { "resolutions": {

View file

@ -70,6 +70,25 @@ RSpec.describe Mastodon::CLI::Accounts do
end end
end end
context 'with min_age setting' do
let(:options) { { email: 'tootctl@example.com', confirmed: true } }
before do
Setting.min_age = 42
end
it_behaves_like 'a new user with given email address and username'
it 'creates a new user with confirmed status' do
expect { subject }
.to output_results('New password')
user = User.find_by(email: options[:email])
expect(user.confirmed?).to be(true)
end
end
context 'with --confirmed option' do context 'with --confirmed option' do
let(:options) { { email: 'tootctl@example.com', confirmed: true } } let(:options) { { email: 'tootctl@example.com', confirmed: true } }

View file

@ -125,6 +125,7 @@ RSpec.describe ActivityPub::FetchAllRepliesWorker do
before do before do
stub_const('Status::FetchRepliesConcern::FETCH_REPLIES_ENABLED', true) stub_const('Status::FetchRepliesConcern::FETCH_REPLIES_ENABLED', true)
allow(FetchReplyWorker).to receive(:push_bulk) allow(FetchReplyWorker).to receive(:push_bulk)
allow(FetchReplyWorker).to receive(:perform_async)
all_items.each do |item| all_items.each do |item|
next if [top_note_uri, reply_note_uri].include? item next if [top_note_uri, reply_note_uri].include? item
@ -146,6 +147,12 @@ RSpec.describe ActivityPub::FetchAllRepliesWorker do
got_uris = subject.perform(status.id) got_uris = subject.perform(status.id)
expect(got_uris).to match_array(top_items + top_items_paged) expect(got_uris).to match_array(top_items + top_items_paged)
end end
it 'fetches the top status only once' do
_ = subject.perform(status.id, { request_id: 0 })
expect(FetchReplyWorker).to have_received(:perform_async).with(top_note_uri, { prefetched_body: top_object.deep_stringify_keys, request_id: 0 })
expect(a_request(:get, top_note_uri)).to have_been_made.once
end
end end
describe 'perform' do describe 'perform' do

View file

@ -1,5 +1,7 @@
// @ts-check // @ts-check
import path from 'node:path';
import globals from 'globals'; import globals from 'globals';
import tseslint from 'typescript-eslint'; import tseslint from 'typescript-eslint';
@ -20,7 +22,9 @@ export default tseslint.config([
settings: { settings: {
'import/ignore': ['node_modules', '\\.(json)$'], 'import/ignore': ['node_modules', '\\.(json)$'],
'import/resolver': { 'import/resolver': {
typescript: {}, typescript: {
project: path.resolve(import.meta.dirname, './tsconfig.json'),
},
}, },
}, },

View file

@ -11,16 +11,20 @@
"noUncheckedIndexedAccess": true, "noUncheckedIndexedAccess": true,
"esModuleInterop": true, "esModuleInterop": true,
"skipLibCheck": true, "skipLibCheck": true,
"types": ["vitest/globals", "@types/webpack-env"],
"baseUrl": "./", "baseUrl": "./",
"incremental": true, "incremental": true,
"tsBuildInfoFile": "tmp/cache/tsconfig.tsbuildinfo", "tsBuildInfoFile": "tmp/cache/tsconfig.tsbuildinfo",
"paths": { "paths": {
"@/*": ["app/javascript/*"],
"mastodon": ["app/javascript/mastodon"], "mastodon": ["app/javascript/mastodon"],
"mastodon/*": ["app/javascript/mastodon/*"], "mastodon/*": ["app/javascript/mastodon/*"],
"@/*": ["app/javascript/*"] "images/*": ["app/javascript/images/*"],
"styles/*": ["app/javascript/styles/*"]
} }
}, },
"include": [ "include": [
"vite.config.mts",
"app/javascript/mastodon", "app/javascript/mastodon",
"app/javascript/entrypoints", "app/javascript/entrypoints",
"app/javascript/types" "app/javascript/types"

58
vite.config.mts Normal file
View file

@ -0,0 +1,58 @@
/// <reference types="vitest" />
import fs from 'fs';
import path from 'path';
import react from '@vitejs/plugin-react';
import RailsPlugin from 'vite-plugin-rails';
import svgr from 'vite-plugin-svgr';
import { defineConfig, configDefaults } from 'vitest/config';
const sourceCodeDir = 'app/javascript';
const items = fs.readdirSync(sourceCodeDir);
const directories = items.filter((item) =>
fs.lstatSync(path.join(sourceCodeDir, item)).isDirectory(),
);
const aliasesFromJavascriptRoot: Record<string, string> = {};
directories.forEach((directory) => {
aliasesFromJavascriptRoot[directory] = path.resolve(
__dirname,
sourceCodeDir,
directory,
);
});
export default defineConfig({
resolve: {
alias: {
...aliasesFromJavascriptRoot,
},
},
plugins: [
RailsPlugin(),
react({
include: ['**/*.jsx', '**/*.tsx'],
babel: {
plugins: ['formatjs', 'preval', 'transform-react-remove-prop-types'],
},
}),
svgr(),
],
test: {
environment: 'jsdom',
include: [
...configDefaults.include,
'**/__tests__/**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}',
],
exclude: [
...configDefaults.exclude,
'**/node_modules/**',
'vendor/**',
'config/**',
'log/**',
'public/**',
'tmp/**',
],
globals: true,
},
});

3660
yarn.lock

File diff suppressed because it is too large Load diff