Compare commits

...

7 Commits

Author SHA1 Message Date
Matt Jankowski
b95aaa6a3a
Merge 4953deda8b into 9a2be25199 2025-09-05 09:07:27 +00:00
Claire
9a2be25199
Fix missing beforeUnload confirmation when a quote post is being authored (#36034) 2025-09-05 08:51:49 +00:00
Claire
279405f2a7
Fix incorrect change of unlisted source strings (#36033) 2025-09-05 08:34:14 +00:00
Claire
497bfbc483
Fix source string for visibility dropdown hint (#36031) 2025-09-05 08:14:34 +00:00
github-actions[bot]
dd6bd681ea
New Crowdin Translations (automated) (#36029)
Co-authored-by: GitHub Actions <noreply@github.com>
2025-09-05 08:14:25 +00:00
Claire
0d93801bde
Fix missing beforeUnload confirmation when a poll is being authored (#36030) 2025-09-05 08:07:59 +00:00
Matt Jankowski
4953deda8b Move single user mode config to x.mastodon area 2025-08-15 08:53:56 -04:00
33 changed files with 152 additions and 48 deletions

View File

@ -148,7 +148,7 @@ class ApplicationController < ActionController::Base
end end
def single_user_mode? def single_user_mode?
@single_user_mode ||= Rails.configuration.x.single_user_mode && Account.without_internal.exists? @single_user_mode ||= Rails.configuration.x.mastodon.single_user_mode && Account.without_internal.exists?
end end
def use_seamless_external_login? def use_seamless_external_login?

View File

@ -4,7 +4,7 @@ module RegistrationHelper
extend ActiveSupport::Concern extend ActiveSupport::Concern
def allowed_registration?(remote_ip, invite) def allowed_registration?(remote_ip, invite)
!Rails.configuration.x.single_user_mode && !omniauth_only? && (registrations_open? || invite&.valid_for_use?) && !ip_blocked?(remote_ip) !Rails.configuration.x.mastodon.single_user_mode && !omniauth_only? && (registrations_open? || invite&.valid_for_use?) && !ip_blocked?(remote_ip)
end end
def registrations_open? def registrations_open?

View File

@ -92,8 +92,7 @@ const messages = defineMessages({
const mapStateToProps = state => ({ const mapStateToProps = state => ({
layout: state.getIn(['meta', 'layout']), layout: state.getIn(['meta', 'layout']),
isComposing: state.getIn(['compose', 'is_composing']), isComposing: state.getIn(['compose', 'is_composing']),
hasComposingText: state.getIn(['compose', 'text']).trim().length !== 0, hasComposingContents: state.getIn(['compose', 'text']).trim().length !== 0 || state.getIn(['compose', 'media_attachments']).size > 0 || state.getIn(['compose', 'poll']) !== null || state.getIn(['compose', 'quoted_status_id']) !== null,
hasMediaAttachments: state.getIn(['compose', 'media_attachments']).size > 0,
canUploadMore: !state.getIn(['compose', 'media_attachments']).some(x => ['audio', 'video'].includes(x.get('type'))) && state.getIn(['compose', 'media_attachments']).size < state.getIn(['server', 'server', 'configuration', 'statuses', 'max_media_attachments']), canUploadMore: !state.getIn(['compose', 'media_attachments']).some(x => ['audio', 'video'].includes(x.get('type'))) && state.getIn(['compose', 'media_attachments']).size < state.getIn(['server', 'server', 'configuration', 'statuses', 'max_media_attachments']),
firstLaunch: state.getIn(['settings', 'introductionVersion'], 0) < INTRODUCTION_VERSION, firstLaunch: state.getIn(['settings', 'introductionVersion'], 0) < INTRODUCTION_VERSION,
newAccount: !state.getIn(['accounts', me, 'note']) && !state.getIn(['accounts', me, 'bot']) && state.getIn(['accounts', me, 'following_count'], 0) === 0 && state.getIn(['accounts', me, 'statuses_count'], 0) === 0, newAccount: !state.getIn(['accounts', me, 'note']) && !state.getIn(['accounts', me, 'bot']) && state.getIn(['accounts', me, 'following_count'], 0) === 0 && state.getIn(['accounts', me, 'statuses_count'], 0) === 0,
@ -241,8 +240,7 @@ class UI extends PureComponent {
dispatch: PropTypes.func.isRequired, dispatch: PropTypes.func.isRequired,
children: PropTypes.node, children: PropTypes.node,
isComposing: PropTypes.bool, isComposing: PropTypes.bool,
hasComposingText: PropTypes.bool, hasComposingContents: PropTypes.bool,
hasMediaAttachments: PropTypes.bool,
canUploadMore: PropTypes.bool, canUploadMore: PropTypes.bool,
intl: PropTypes.object.isRequired, intl: PropTypes.object.isRequired,
layout: PropTypes.string.isRequired, layout: PropTypes.string.isRequired,
@ -257,11 +255,11 @@ class UI extends PureComponent {
}; };
handleBeforeUnload = e => { handleBeforeUnload = e => {
const { intl, dispatch, isComposing, hasComposingText, hasMediaAttachments } = this.props; const { intl, dispatch, isComposing, hasComposingContents } = this.props;
dispatch(synchronouslySubmitMarkers()); dispatch(synchronouslySubmitMarkers());
if (isComposing && (hasComposingText || hasMediaAttachments)) { if (isComposing && hasComposingContents) {
e.preventDefault(); e.preventDefault();
// Setting returnValue to any string causes confirmation dialog. // Setting returnValue to any string causes confirmation dialog.
// Many browsers no longer display this text to users, // Many browsers no longer display this text to users,

View File

@ -29,6 +29,8 @@
"account.endorse": "Lakaat war-wel war ar profil", "account.endorse": "Lakaat war-wel war ar profil",
"account.familiar_followers_one": "Heuilhet gant {name1}", "account.familiar_followers_one": "Heuilhet gant {name1}",
"account.familiar_followers_two": "Heuilhet gant {name1} ha {name2}", "account.familiar_followers_two": "Heuilhet gant {name1} ha {name2}",
"account.featured.accounts": "Profiloù",
"account.featured.hashtags": "Gerioù-klik",
"account.featured_tags.last_status_at": "Toud diwezhañ : {date}", "account.featured_tags.last_status_at": "Toud diwezhañ : {date}",
"account.featured_tags.last_status_never": "Embannadur ebet", "account.featured_tags.last_status_never": "Embannadur ebet",
"account.follow": "Heuliañ", "account.follow": "Heuliañ",
@ -39,6 +41,7 @@
"account.followers_you_know_counter": "{counter} a anavezit", "account.followers_you_know_counter": "{counter} a anavezit",
"account.following": "Koumanantoù", "account.following": "Koumanantoù",
"account.follows.empty": "An implijer·ez-mañ na heul den ebet.", "account.follows.empty": "An implijer·ez-mañ na heul den ebet.",
"account.follows_you": "Ho heuilh",
"account.go_to_profile": "Gwelet ar profil", "account.go_to_profile": "Gwelet ar profil",
"account.hide_reblogs": "Kuzh skignadennoù gant @{name}", "account.hide_reblogs": "Kuzh skignadennoù gant @{name}",
"account.in_memoriam": "E koun.", "account.in_memoriam": "E koun.",
@ -89,7 +92,10 @@
"alt_text_modal.done": "Graet", "alt_text_modal.done": "Graet",
"announcement.announcement": "Kemennad", "announcement.announcement": "Kemennad",
"annual_report.summary.followers.followers": "heulier", "annual_report.summary.followers.followers": "heulier",
"annual_report.summary.followers.total": "{count} en holl",
"annual_report.summary.highlighted_post.possessive": "{name}", "annual_report.summary.highlighted_post.possessive": "{name}",
"annual_report.summary.most_used_app.most_used_app": "arload muiañ implijet",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "ar gerioù-klik implijet ar muiañ",
"annual_report.summary.most_used_hashtag.none": "Hini ebet", "annual_report.summary.most_used_hashtag.none": "Hini ebet",
"annual_report.summary.new_posts.new_posts": "toudoù nevez", "annual_report.summary.new_posts.new_posts": "toudoù nevez",
"attachments_list.unprocessed": "(ket meret)", "attachments_list.unprocessed": "(ket meret)",
@ -149,7 +155,7 @@
"compose.saved.body": "Enrollet.", "compose.saved.body": "Enrollet.",
"compose_form.direct_message_warning_learn_more": "Gouzout hiroc'h", "compose_form.direct_message_warning_learn_more": "Gouzout hiroc'h",
"compose_form.encryption_warning": "Toudoù war Mastodon na vezont ket sifret penn-da-benn. Na rannit ket titouroù kizidik dre Mastodon.", "compose_form.encryption_warning": "Toudoù war Mastodon na vezont ket sifret penn-da-benn. Na rannit ket titouroù kizidik dre Mastodon.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.hashtag_warning": "Ne vo ket listennet an toud-mañ dindan gerioù-klik ebet dre m'eo anlistennet. N'eus nemet an toudoù foran a c'hall bezañ klasket dre c'her-klik.",
"compose_form.lock_disclaimer": "N'eo ket {locked} ho kont. An holl a c'hal ho heuliañ evit gwelet ho toudoù prevez.", "compose_form.lock_disclaimer": "N'eo ket {locked} ho kont. An holl a c'hal ho heuliañ evit gwelet ho toudoù prevez.",
"compose_form.lock_disclaimer.lock": "prennet", "compose_form.lock_disclaimer.lock": "prennet",
"compose_form.placeholder": "Petra emaoc'h o soñjal e-barzh ?", "compose_form.placeholder": "Petra emaoc'h o soñjal e-barzh ?",
@ -168,6 +174,7 @@
"confirmations.block.confirm": "Stankañ", "confirmations.block.confirm": "Stankañ",
"confirmations.delete.confirm": "Dilemel", "confirmations.delete.confirm": "Dilemel",
"confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel an toud-mañ ?", "confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel an toud-mañ ?",
"confirmations.delete.title": "Dilemel an toud?",
"confirmations.delete_list.confirm": "Dilemel", "confirmations.delete_list.confirm": "Dilemel",
"confirmations.delete_list.message": "Ha sur eo hoc'h eus c'hoant da zilemel ar roll-mañ da vat ?", "confirmations.delete_list.message": "Ha sur eo hoc'h eus c'hoant da zilemel ar roll-mañ da vat ?",
"confirmations.delete_list.title": "Dilemel al listenn?", "confirmations.delete_list.title": "Dilemel al listenn?",
@ -176,10 +183,14 @@
"confirmations.follow_to_list.title": "Heuliañ an implijer·ez?", "confirmations.follow_to_list.title": "Heuliañ an implijer·ez?",
"confirmations.logout.confirm": "Digevreañ", "confirmations.logout.confirm": "Digevreañ",
"confirmations.logout.message": "Ha sur oc'h e fell deoc'h digevreañ ?", "confirmations.logout.message": "Ha sur oc'h e fell deoc'h digevreañ ?",
"confirmations.logout.title": "Digevreañ?",
"confirmations.mute.confirm": "Kuzhat", "confirmations.mute.confirm": "Kuzhat",
"confirmations.redraft.confirm": "Diverkañ ha skrivañ en-dro", "confirmations.redraft.confirm": "Diverkañ ha skrivañ en-dro",
"confirmations.unfollow.confirm": "Diheuliañ", "confirmations.unfollow.confirm": "Diheuliañ",
"confirmations.unfollow.message": "Ha sur oc'h e fell deoc'h paouez da heuliañ {name} ?", "confirmations.unfollow.message": "Ha sur oc'h e fell deoc'h paouez da heuliañ {name} ?",
"confirmations.unfollow.title": "Paouez da heuliañ an implijer·ez?",
"content_warning.hide": "Kuzhat an embannadur",
"content_warning.show": "Diskwel memes tra",
"content_warning.show_more": "Diskouez muioc'h", "content_warning.show_more": "Diskouez muioc'h",
"conversation.delete": "Dilemel ar gaozeadenn", "conversation.delete": "Dilemel ar gaozeadenn",
"conversation.mark_as_read": "Merkañ evel lennet", "conversation.mark_as_read": "Merkañ evel lennet",
@ -224,8 +235,8 @@
"empty_column.domain_blocks": "N'eus domani kuzh ebet c'hoazh.", "empty_column.domain_blocks": "N'eus domani kuzh ebet c'hoazh.",
"empty_column.explore_statuses": "N'eus tuadur ebet evit c'hoazh. Distroit diwezhatoc'h !", "empty_column.explore_statuses": "N'eus tuadur ebet evit c'hoazh. Distroit diwezhatoc'h !",
"empty_column.follow_requests": "N'ho peus reked heuliañ ebet c'hoazh. Pa vo resevet unan e teuio war wel amañ.", "empty_column.follow_requests": "N'ho peus reked heuliañ ebet c'hoazh. Pa vo resevet unan e teuio war wel amañ.",
"empty_column.followed_tags": "N'emaoc'h oc'h heuliañ hashtag ebet evit poent. Pa vioc'h e vo d'o gwelet amañ.", "empty_column.followed_tags": "N'emaoc'h oc'h heuliañ ger-klik ebet evit poent. Pa vioc'h e vo d'o gwelet amañ.",
"empty_column.hashtag": "N'eus netra en hashtag-mañ c'hoazh.", "empty_column.hashtag": "N'eus netra er ger-klik-mañ c'hoazh.",
"empty_column.home": "Goullo eo ho red-amzer degemer! Kit da weladenniñ {public} pe implijit ar c'hlask evit kregiñ ganti ha kejañ gant implijer·ien·ezed all.", "empty_column.home": "Goullo eo ho red-amzer degemer! Kit da weladenniñ {public} pe implijit ar c'hlask evit kregiñ ganti ha kejañ gant implijer·ien·ezed all.",
"empty_column.list": "Goullo eo al listenn-mañ evit c'hoazh. Pa vo embannet toudoù nevez gant e izili e teuint war wel amañ.", "empty_column.list": "Goullo eo al listenn-mañ evit c'hoazh. Pa vo embannet toudoù nevez gant e izili e teuint war wel amañ.",
"empty_column.mutes": "N'ho peus kuzhet implijer ebet c'hoazh.", "empty_column.mutes": "N'ho peus kuzhet implijer ebet c'hoazh.",
@ -241,7 +252,7 @@
"explore.title": "Diouzh ar c'hiz", "explore.title": "Diouzh ar c'hiz",
"explore.trending_links": "Keleier", "explore.trending_links": "Keleier",
"explore.trending_statuses": "Embannadurioù", "explore.trending_statuses": "Embannadurioù",
"explore.trending_tags": "Hashtagoù", "explore.trending_tags": "Gerioù-klik",
"featured_carousel.next": "War-raok", "featured_carousel.next": "War-raok",
"featured_carousel.post": "Embannadenn", "featured_carousel.post": "Embannadenn",
"featured_carousel.previous": "War-gil", "featured_carousel.previous": "War-gil",
@ -269,7 +280,8 @@
"follow_suggestions.friends_of_friends_longer": "Diouzh ar c'hiz e-touez an dud heuliet ganeoc'h", "follow_suggestions.friends_of_friends_longer": "Diouzh ar c'hiz e-touez an dud heuliet ganeoc'h",
"follow_suggestions.popular_suggestion_longer": "Diouzh ar c'hiz war {domain}", "follow_suggestions.popular_suggestion_longer": "Diouzh ar c'hiz war {domain}",
"follow_suggestions.view_all": "Gwelet pep tra", "follow_suggestions.view_all": "Gwelet pep tra",
"followed_tags": "Hashtagoù o heuliañ", "follow_suggestions.who_to_follow": "Piv heuliañ",
"followed_tags": "Gerioù-klik o heuliañ",
"footer.about": "Diwar-benn", "footer.about": "Diwar-benn",
"footer.directory": "Kavlec'h ar profiloù", "footer.directory": "Kavlec'h ar profiloù",
"footer.get_app": "Pellgargañ an arload", "footer.get_app": "Pellgargañ an arload",
@ -281,19 +293,23 @@
"generic.saved": "Enrollet", "generic.saved": "Enrollet",
"getting_started.heading": "Loc'hañ", "getting_started.heading": "Loc'hañ",
"hashtag.admin_moderation": "Digeriñ an etrefas evezhiañ evit #{name}", "hashtag.admin_moderation": "Digeriñ an etrefas evezhiañ evit #{name}",
"hashtag.browse": "Furchal dre an toudoù gant #{hashtag}",
"hashtag.browse_from_account": "Furchal dre an toudoù gant @{name} gant #{hashtag}",
"hashtag.column_header.tag_mode.all": "ha(g) {additional}", "hashtag.column_header.tag_mode.all": "ha(g) {additional}",
"hashtag.column_header.tag_mode.any": "pe {additional}", "hashtag.column_header.tag_mode.any": "pe {additional}",
"hashtag.column_header.tag_mode.none": "hep {additional}", "hashtag.column_header.tag_mode.none": "hep {additional}",
"hashtag.column_settings.select.no_options_message": "N'eus bet kavet ali ebet", "hashtag.column_settings.select.no_options_message": "N'eus bet kavet ali ebet",
"hashtag.column_settings.select.placeholder": "Ouzhpennañ hashtagoù…", "hashtag.column_settings.select.placeholder": "Ouzhpennañ geri-klik…",
"hashtag.column_settings.tag_mode.all": "An holl anezho", "hashtag.column_settings.tag_mode.all": "An holl anezho",
"hashtag.column_settings.tag_mode.any": "Unan e mesk anezho", "hashtag.column_settings.tag_mode.any": "Unan e mesk anezho",
"hashtag.column_settings.tag_mode.none": "Hini ebet anezho", "hashtag.column_settings.tag_mode.none": "Hini ebet anezho",
"hashtag.column_settings.tag_toggle": "Endelc'her gerioù-alc'hwez ouzhpenn evit ar bannad-mañ", "hashtag.column_settings.tag_toggle": "Endelc'her gerioù-alc'hwez ouzhpenn evit ar bannad-mañ",
"hashtag.counter_by_uses": "{count, plural, one {{counter} embannadur} other {{counter} embannadur}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} embannadur} other {{counter} embannadur}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} embannadur} other {{counter} embannadur}} hiziv", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} embannadur} other {{counter} embannadur}} hiziv",
"hashtag.feature": "Lakaat war-wel war ar profil",
"hashtag.follow": "Heuliañ ar ger-klik", "hashtag.follow": "Heuliañ ar ger-klik",
"hashtag.unfollow": "Paouez heuliañ an hashtag", "hashtag.mute": "Kuzhat #{hashtag}",
"hashtag.unfollow": "Diheuliañ ar ger-klik",
"hashtags.and_other": "…{count, plural, one {hag # all} other {ha # all}}", "hashtags.and_other": "…{count, plural, one {hag # all} other {ha # all}}",
"home.column_settings.show_quotes": "Diskouez an arroudennoù", "home.column_settings.show_quotes": "Diskouez an arroudennoù",
"home.column_settings.show_reblogs": "Diskouez ar skignadennoù", "home.column_settings.show_reblogs": "Diskouez ar skignadennoù",
@ -302,12 +318,14 @@
"home.pending_critical_update.body": "Hizivait ho servijer Mastodon kerkent ha ma c'hallit mar plij!", "home.pending_critical_update.body": "Hizivait ho servijer Mastodon kerkent ha ma c'hallit mar plij!",
"home.pending_critical_update.link": "Gwelet an hizivadennoù", "home.pending_critical_update.link": "Gwelet an hizivadennoù",
"home.show_announcements": "Diskouez ar c'hemennoù", "home.show_announcements": "Diskouez ar c'hemennoù",
"interaction_modal.go": "Mont di",
"interaction_modal.on_another_server": "War ur servijer all", "interaction_modal.on_another_server": "War ur servijer all",
"interaction_modal.on_this_server": "War ar servijer-mañ", "interaction_modal.on_this_server": "War ar servijer-mañ",
"interaction_modal.title.favourite": "Ouzhpennañ embannadur {name} d'ar re vuiañ-karet", "interaction_modal.title.favourite": "Ouzhpennañ embannadur {name} d'ar re vuiañ-karet",
"interaction_modal.title.follow": "Heuliañ {name}", "interaction_modal.title.follow": "Heuliañ {name}",
"interaction_modal.title.reblog": "Skignañ toud {name}", "interaction_modal.title.reblog": "Skignañ toud {name}",
"interaction_modal.title.reply": "Respont da doud {name}", "interaction_modal.title.reply": "Respont da doud {name}",
"interaction_modal.username_prompt": "D.s. {example}",
"intervals.full.days": "{number, plural, one {# devezh} other{# a zevezhioù}}", "intervals.full.days": "{number, plural, one {# devezh} other{# a zevezhioù}}",
"intervals.full.hours": "{number, plural, one {# eurvezh} other{# eurvezh}}", "intervals.full.hours": "{number, plural, one {# eurvezh} other{# eurvezh}}",
"intervals.full.minutes": "{number, plural, one {# munut} other{# a vunutoù}}", "intervals.full.minutes": "{number, plural, one {# munut} other{# a vunutoù}}",
@ -345,12 +363,14 @@
"keyboard_shortcuts.toot": "Kregiñ gant un toud nevez", "keyboard_shortcuts.toot": "Kregiñ gant un toud nevez",
"keyboard_shortcuts.unfocus": "Difokus an dachenn testenn/klask", "keyboard_shortcuts.unfocus": "Difokus an dachenn testenn/klask",
"keyboard_shortcuts.up": "Pignat er roll", "keyboard_shortcuts.up": "Pignat er roll",
"learn_more_link.got_it": "Mat eo",
"lightbox.close": "Serriñ", "lightbox.close": "Serriñ",
"lightbox.next": "Da-heul", "lightbox.next": "Da-heul",
"lightbox.previous": "A-raok", "lightbox.previous": "A-raok",
"limited_account_hint.action": "Diskouez an aelad memes tra", "limited_account_hint.action": "Diskouez ar profil memes tra",
"limited_account_hint.title": "Kuzhet eo bet ar profil-mañ gant an evezhierien eus {domain}.", "limited_account_hint.title": "Kuzhet eo bet ar profil-mañ gant an evezhierien eus {domain}.",
"link_preview.author": "Gant {name}", "link_preview.author": "Gant {name}",
"link_preview.more_from_author": "Muioc'h gant {name}",
"lists.add_member": "Ouzhpennañ", "lists.add_member": "Ouzhpennañ",
"lists.add_to_list": "Ouzhpennañ d'al listenn", "lists.add_to_list": "Ouzhpennañ d'al listenn",
"lists.create": "Krouiñ", "lists.create": "Krouiñ",
@ -359,13 +379,19 @@
"lists.done": "Graet", "lists.done": "Graet",
"lists.edit": "Kemmañ al listenn", "lists.edit": "Kemmañ al listenn",
"lists.list_name": "Anv al listenn", "lists.list_name": "Anv al listenn",
"lists.new_list_name": "Anv nevez al listenn",
"lists.no_lists_yet": "Listenn ebet c'hoazh.",
"lists.replies_policy.followed": "Pep implijer.ez heuliet", "lists.replies_policy.followed": "Pep implijer.ez heuliet",
"lists.replies_policy.list": "Izili ar roll", "lists.replies_policy.list": "Izili ar roll",
"lists.replies_policy.none": "Den ebet", "lists.replies_policy.none": "Den ebet",
"lists.save": "Enrollañ",
"lists.search": "Klask",
"load_pending": "{count, plural, one {# dra nevez} other {# dra nevez}}", "load_pending": "{count, plural, one {# dra nevez} other {# dra nevez}}",
"loading_indicator.label": "O kargañ…", "loading_indicator.label": "O kargañ…",
"media_gallery.hide": "Kuzhat",
"navigation_bar.about": "Diwar-benn", "navigation_bar.about": "Diwar-benn",
"navigation_bar.account_settings": "Ger-tremen ha surentez", "navigation_bar.account_settings": "Ger-tremen ha surentez",
"navigation_bar.administration": "Merañ",
"navigation_bar.automated_deletion": "Dilemel an embannadenn ent-emgefreek", "navigation_bar.automated_deletion": "Dilemel an embannadenn ent-emgefreek",
"navigation_bar.blocks": "Implijer·ezed·ien berzet", "navigation_bar.blocks": "Implijer·ezed·ien berzet",
"navigation_bar.bookmarks": "Sinedoù", "navigation_bar.bookmarks": "Sinedoù",
@ -374,11 +400,12 @@
"navigation_bar.favourites": "Muiañ-karet", "navigation_bar.favourites": "Muiañ-karet",
"navigation_bar.filters": "Gerioù kuzhet", "navigation_bar.filters": "Gerioù kuzhet",
"navigation_bar.follow_requests": "Pedadoù heuliañ", "navigation_bar.follow_requests": "Pedadoù heuliañ",
"navigation_bar.followed_tags": "Hashtagoù o heuliañ", "navigation_bar.followed_tags": "Gerioù-klik o heuliañ",
"navigation_bar.follows_and_followers": "Heuliadennoù ha heulier·ezed·ien", "navigation_bar.follows_and_followers": "Heuliadennoù ha heulier·ezed·ien",
"navigation_bar.import_export": "Enporzhiañ hag ezporzhiañ", "navigation_bar.import_export": "Enporzhiañ hag ezporzhiañ",
"navigation_bar.lists": "Listennoù", "navigation_bar.lists": "Listennoù",
"navigation_bar.logout": "Digennaskañ", "navigation_bar.logout": "Digennaskañ",
"navigation_bar.moderation": "Habaskadur",
"navigation_bar.more": "Muioc'h", "navigation_bar.more": "Muioc'h",
"navigation_bar.mutes": "Implijer·ion·ezed kuzhet", "navigation_bar.mutes": "Implijer·ion·ezed kuzhet",
"navigation_bar.preferences": "Gwellvezioù", "navigation_bar.preferences": "Gwellvezioù",
@ -391,6 +418,8 @@
"notification.follow.name_and_others": "{name} <a>{count, plural, one {hag # den all} two {ha # zen all} few {ha # den all} many {ha # den all} other {ha # den all}}</a> zo o heuliañ ac'hanoc'h", "notification.follow.name_and_others": "{name} <a>{count, plural, one {hag # den all} two {ha # zen all} few {ha # den all} many {ha # den all} other {ha # den all}}</a> zo o heuliañ ac'hanoc'h",
"notification.follow_request": "Gant {name} eo bet goulennet ho heuliañ", "notification.follow_request": "Gant {name} eo bet goulennet ho heuliañ",
"notification.label.reply": "Respont", "notification.label.reply": "Respont",
"notification.mention": "Meneg",
"notification.mentioned_you": "Gant {name} oc'h bet meneget",
"notification.moderation-warning.learn_more": "Gouzout hiroc'h", "notification.moderation-warning.learn_more": "Gouzout hiroc'h",
"notification.own_poll": "Echu eo ho sontadeg", "notification.own_poll": "Echu eo ho sontadeg",
"notification.reblog": "Gant {name} eo bet skignet ho toud", "notification.reblog": "Gant {name} eo bet skignet ho toud",
@ -447,7 +476,7 @@
"onboarding.profile.display_name": "Anv diskouezet", "onboarding.profile.display_name": "Anv diskouezet",
"onboarding.profile.display_name_hint": "Hoc'h anv klok pe hoc'h anv fentus…", "onboarding.profile.display_name_hint": "Hoc'h anv klok pe hoc'h anv fentus…",
"onboarding.profile.note": "Berr-ha-berr", "onboarding.profile.note": "Berr-ha-berr",
"onboarding.profile.note_hint": "Gallout a rit @menegiñ tud all pe #hashtagoù…", "onboarding.profile.note_hint": "Gallout a rit @menegiñ tud all pe #geri-klik…",
"onboarding.profile.save_and_continue": "Enrollañ ha kenderc'hel", "onboarding.profile.save_and_continue": "Enrollañ ha kenderc'hel",
"onboarding.profile.upload_avatar": "Enporzhiañ ur skeudenn profil", "onboarding.profile.upload_avatar": "Enporzhiañ ur skeudenn profil",
"password_confirmation.mismatching": "Disheñvel eo an daou c'her-termen-se", "password_confirmation.mismatching": "Disheñvel eo an daou c'her-termen-se",
@ -480,6 +509,7 @@
"relative_time.minutes": "{number}m", "relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}eil", "relative_time.seconds": "{number}eil",
"relative_time.today": "hiziv", "relative_time.today": "hiziv",
"remove_quote_hint.button_label": "Mat eo",
"reply_indicator.cancel": "Nullañ", "reply_indicator.cancel": "Nullañ",
"reply_indicator.poll": "Sontadeg", "reply_indicator.poll": "Sontadeg",
"report.block": "Stankañ", "report.block": "Stankañ",
@ -528,7 +558,7 @@
"search.placeholder": "Klask", "search.placeholder": "Klask",
"search.quick_action.account_search": "Profiloù a glot gant {x}", "search.quick_action.account_search": "Profiloù a glot gant {x}",
"search.quick_action.go_to_account": "Mont d'ar profil {x}", "search.quick_action.go_to_account": "Mont d'ar profil {x}",
"search.quick_action.go_to_hashtag": "Mont d'an hashtag {x}", "search.quick_action.go_to_hashtag": "Mont d'ar ger-klik {x}",
"search.quick_action.open_url": "Digeriñ an URL e-barzh Mastodon", "search.quick_action.open_url": "Digeriñ an URL e-barzh Mastodon",
"search.quick_action.status_search": "Embannadurioù a glot gant {x}", "search.quick_action.status_search": "Embannadurioù a glot gant {x}",
"search.search_or_paste": "Klask pe pegañ un URL", "search.search_or_paste": "Klask pe pegañ un URL",
@ -541,7 +571,7 @@
"search_popout.user": "implijer·ez", "search_popout.user": "implijer·ez",
"search_results.accounts": "Profiloù", "search_results.accounts": "Profiloù",
"search_results.all": "Pep tra", "search_results.all": "Pep tra",
"search_results.hashtags": "Hashtagoù", "search_results.hashtags": "Gerioù-klik",
"search_results.no_results": "Disoc'h ebet.", "search_results.no_results": "Disoc'h ebet.",
"search_results.see_all": "Gwelet pep tra", "search_results.see_all": "Gwelet pep tra",
"search_results.statuses": "Toudoù", "search_results.statuses": "Toudoù",
@ -607,6 +637,7 @@
"subscribed_languages.save": "Enrollañ ar cheñchamantoù", "subscribed_languages.save": "Enrollañ ar cheñchamantoù",
"subscribed_languages.target": "Cheñch ar yezhoù koumanantet evit {target}", "subscribed_languages.target": "Cheñch ar yezhoù koumanantet evit {target}",
"tabs_bar.home": "Degemer", "tabs_bar.home": "Degemer",
"tabs_bar.menu": "Lañser",
"tabs_bar.notifications": "Kemennoù", "tabs_bar.notifications": "Kemennoù",
"tabs_bar.publish": "Embannadenn nevez", "tabs_bar.publish": "Embannadenn nevez",
"tabs_bar.search": "Klask", "tabs_bar.search": "Klask",
@ -638,6 +669,8 @@
"video.hide": "Kuzhat ar video", "video.hide": "Kuzhat ar video",
"video.pause": "Paouez", "video.pause": "Paouez",
"video.play": "Lenn", "video.play": "Lenn",
"visibility_modal.privacy_label": "Gwelusted",
"visibility_modal.quote_followers": "Tud koumanantet hepken", "visibility_modal.quote_followers": "Tud koumanantet hepken",
"visibility_modal.quote_public": "Pep den" "visibility_modal.quote_public": "Pep den",
"visibility_modal.save": "Enrollañ"
} }

View File

@ -768,6 +768,9 @@
"relative_time.minutes": "{number} m", "relative_time.minutes": "{number} m",
"relative_time.seconds": "{number} s", "relative_time.seconds": "{number} s",
"relative_time.today": "dnes", "relative_time.today": "dnes",
"remove_quote_hint.button_label": "Chápu",
"remove_quote_hint.message": "Můžete to udělat z {icon} nabídky možností.",
"remove_quote_hint.title": "Chcete odstranit citovaný příspěvek?",
"reply_indicator.attachments": "{count, plural, one {{counter} příloha} few {{counter} přílohy} other {{counter} příloh}}", "reply_indicator.attachments": "{count, plural, one {{counter} příloha} few {{counter} přílohy} other {{counter} příloh}}",
"reply_indicator.cancel": "Zrušit", "reply_indicator.cancel": "Zrušit",
"reply_indicator.poll": "Anketa", "reply_indicator.poll": "Anketa",
@ -863,6 +866,7 @@
"status.block": "Blokovat @{name}", "status.block": "Blokovat @{name}",
"status.bookmark": "Přidat do záložek", "status.bookmark": "Přidat do záložek",
"status.cancel_reblog_private": "Zrušit boostnutí", "status.cancel_reblog_private": "Zrušit boostnutí",
"status.cannot_quote": "Citování je na tomo příspěvku zakázáno",
"status.cannot_reblog": "Tento příspěvek nemůže být boostnutý", "status.cannot_reblog": "Tento příspěvek nemůže být boostnutý",
"status.context.load_new_replies": "K dispozici jsou nové odpovědi", "status.context.load_new_replies": "K dispozici jsou nové odpovědi",
"status.context.loading": "Hledání dalších odpovědí", "status.context.loading": "Hledání dalších odpovědí",
@ -988,6 +992,7 @@
"visibility_modal.header": "Viditelnost a interakce", "visibility_modal.header": "Viditelnost a interakce",
"visibility_modal.helper.direct_quoting": "Soukromé zmínky, které jsou vytvořeny na Mastodonu, nemohou být citovány ostatními.", "visibility_modal.helper.direct_quoting": "Soukromé zmínky, které jsou vytvořeny na Mastodonu, nemohou být citovány ostatními.",
"visibility_modal.helper.privacy_editing": "Publikované příspěvky nemohou změnit svou viditelnost.", "visibility_modal.helper.privacy_editing": "Publikované příspěvky nemohou změnit svou viditelnost.",
"visibility_modal.helper.privacy_private_self_quote": "Citace vlastních soukromých příspěvků nelze zveřejnit.",
"visibility_modal.helper.private_quoting": "Příspěvky pouze pro sledující, které jsou vytvořeny na Mastodonu, nemohou být citovány ostatními.", "visibility_modal.helper.private_quoting": "Příspěvky pouze pro sledující, které jsou vytvořeny na Mastodonu, nemohou být citovány ostatními.",
"visibility_modal.helper.unlisted_quoting": "Když vás lidé citují, jejich příspěvek bude v časové ose populárních příspěvků také skryt.", "visibility_modal.helper.unlisted_quoting": "Když vás lidé citují, jejich příspěvek bude v časové ose populárních příspěvků také skryt.",
"visibility_modal.instructions": "Nastavte, kdo bude moci interagovat s tímto příspěvkem. Tyto nastavení též můžete změnit pro všechny budoucí příspěvky v <link>Nastavení > Výchozí nastavení příspěvků</link>.", "visibility_modal.instructions": "Nastavte, kdo bude moci interagovat s tímto příspěvkem. Tyto nastavení též můžete změnit pro všechny budoucí příspěvky v <link>Nastavení > Výchozí nastavení příspěvků</link>.",

View File

@ -768,6 +768,7 @@
"relative_time.minutes": "{number}m", "relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s", "relative_time.seconds": "{number}s",
"relative_time.today": "i dag", "relative_time.today": "i dag",
"remove_quote_hint.button_label": "Forstået",
"reply_indicator.attachments": "{count, plural, one {# vedhæftning} other {# vedhæftninger}}", "reply_indicator.attachments": "{count, plural, one {# vedhæftning} other {# vedhæftninger}}",
"reply_indicator.cancel": "Afbryd", "reply_indicator.cancel": "Afbryd",
"reply_indicator.poll": "Afstemning", "reply_indicator.poll": "Afstemning",

View File

@ -768,6 +768,9 @@
"relative_time.minutes": "{number} Min.", "relative_time.minutes": "{number} Min.",
"relative_time.seconds": "{number} Sek.", "relative_time.seconds": "{number} Sek.",
"relative_time.today": "heute", "relative_time.today": "heute",
"remove_quote_hint.button_label": "Verstanden",
"remove_quote_hint.message": "Klicke dafür im Beitrag auf „{icon} Mehr“.",
"remove_quote_hint.title": "Möchtest du aus dem zitierten Beitrag entfernt werden?",
"reply_indicator.attachments": "{count, plural, one {# Anhang} other {# Anhänge}}", "reply_indicator.attachments": "{count, plural, one {# Anhang} other {# Anhänge}}",
"reply_indicator.cancel": "Abbrechen", "reply_indicator.cancel": "Abbrechen",
"reply_indicator.poll": "Umfrage", "reply_indicator.poll": "Umfrage",

View File

@ -991,7 +991,7 @@
"visibility_modal.button_title": "Set visibility", "visibility_modal.button_title": "Set visibility",
"visibility_modal.header": "Visibility and interaction", "visibility_modal.header": "Visibility and interaction",
"visibility_modal.helper.direct_quoting": "Private mentions authored on Mastodon can't be quoted by others.", "visibility_modal.helper.direct_quoting": "Private mentions authored on Mastodon can't be quoted by others.",
"visibility_modal.helper.privacy_editing": "Published posts cannot change their visibility.", "visibility_modal.helper.privacy_editing": "Visibility can't be changed after a post is published.",
"visibility_modal.helper.privacy_private_self_quote": "Self-quotes of private posts cannot be made public.", "visibility_modal.helper.privacy_private_self_quote": "Self-quotes of private posts cannot be made public.",
"visibility_modal.helper.private_quoting": "Follower-only posts authored on Mastodon can't be quoted by others.", "visibility_modal.helper.private_quoting": "Follower-only posts authored on Mastodon can't be quoted by others.",
"visibility_modal.helper.unlisted_quoting": "When people quote you, their post will also be hidden from trending timelines.", "visibility_modal.helper.unlisted_quoting": "When people quote you, their post will also be hidden from trending timelines.",

View File

@ -30,6 +30,8 @@
"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.familiar_followers_one": "Sekvita de {name1}",
"account.familiar_followers_two": "Sekvita de {name1} kaj {name2}",
"account.featured": "Montrita", "account.featured": "Montrita",
"account.featured.accounts": "Profiloj", "account.featured.accounts": "Profiloj",
"account.featured.hashtags": "Kradvortoj", "account.featured.hashtags": "Kradvortoj",
@ -305,6 +307,7 @@
"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ŭ nenion prezentis. Ĉu vi sciis, ke vi povas prezenti viajn plej ofte uzatajn 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_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",
@ -338,6 +341,7 @@
"explore.trending_links": "Novaĵoj", "explore.trending_links": "Novaĵoj",
"explore.trending_statuses": "Afiŝoj", "explore.trending_statuses": "Afiŝoj",
"explore.trending_tags": "Kradvortoj", "explore.trending_tags": "Kradvortoj",
"featured_carousel.header": "{count, plural, one {Alpinglita afiŝo} other {Alpinglitaj afiŝoj}}",
"featured_carousel.next": "Antaŭen", "featured_carousel.next": "Antaŭen",
"featured_carousel.post": "Afiŝi", "featured_carousel.post": "Afiŝi",
"featured_carousel.previous": "Malantaŭen", "featured_carousel.previous": "Malantaŭen",
@ -751,6 +755,9 @@
"relative_time.minutes": "{number}m", "relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s", "relative_time.seconds": "{number}s",
"relative_time.today": "hodiaŭ", "relative_time.today": "hodiaŭ",
"remove_quote_hint.button_label": "Komprenite",
"remove_quote_hint.message": "Vi povas fari tion el la menuo de opcioj {icon}.",
"remove_quote_hint.title": "Ĉu vi volas forigi vian cititan afiŝon?",
"reply_indicator.attachments": "{count, plural, one {# aldonaĵo} other {# aldonaĵoj}}", "reply_indicator.attachments": "{count, plural, one {# aldonaĵo} other {# aldonaĵoj}}",
"reply_indicator.cancel": "Nuligi", "reply_indicator.cancel": "Nuligi",
"reply_indicator.poll": "Balotenketo", "reply_indicator.poll": "Balotenketo",
@ -846,6 +853,7 @@
"status.block": "Bloki @{name}", "status.block": "Bloki @{name}",
"status.bookmark": "Aldoni al la legosignoj", "status.bookmark": "Aldoni al la legosignoj",
"status.cancel_reblog_private": "Ne plu diskonigi", "status.cancel_reblog_private": "Ne plu diskonigi",
"status.cannot_quote": "Citaĵoj estas malebligitaj en ĉi tiu afiŝo",
"status.cannot_reblog": "Ĉi tiun afiŝon ne eblas diskonigi", "status.cannot_reblog": "Ĉi tiun afiŝon ne eblas diskonigi",
"status.context.load_new_replies": "Disponeblaj novaj respondoj", "status.context.load_new_replies": "Disponeblaj novaj respondoj",
"status.context.loading": "Serĉante pliajn respondojn", "status.context.loading": "Serĉante pliajn respondojn",
@ -971,6 +979,7 @@
"visibility_modal.helper.privacy_editing": "Publikigitaj afiŝoj ne povas ŝanĝi sian videblon.", "visibility_modal.helper.privacy_editing": "Publikigitaj afiŝoj ne povas ŝanĝi sian videblon.",
"visibility_modal.helper.private_quoting": "Afiŝoj nur por sekvantoj verkitaj ĉe Mastodon ne povas esti cititaj de aliaj.", "visibility_modal.helper.private_quoting": "Afiŝoj nur por sekvantoj verkitaj ĉe Mastodon ne povas esti cititaj de aliaj.",
"visibility_modal.helper.unlisted_quoting": "Kiam homoj citas vin, ilia afiŝo ankaŭ estos kaŝita de tendencaj templinioj.", "visibility_modal.helper.unlisted_quoting": "Kiam homoj citas vin, ilia afiŝo ankaŭ estos kaŝita de tendencaj templinioj.",
"visibility_modal.privacy_label": "Videbleco",
"visibility_modal.quote_followers": "Nur sekvantoj", "visibility_modal.quote_followers": "Nur sekvantoj",
"visibility_modal.quote_label": "Kiu povas citi", "visibility_modal.quote_label": "Kiu povas citi",
"visibility_modal.quote_nobody": "Nur mi", "visibility_modal.quote_nobody": "Nur mi",

View File

@ -768,6 +768,9 @@
"relative_time.minutes": "{number}m", "relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s", "relative_time.seconds": "{number}s",
"relative_time.today": "hoy", "relative_time.today": "hoy",
"remove_quote_hint.button_label": "Entendido",
"remove_quote_hint.message": "Podés hacerlo desde el menú de opciones {icon}.",
"remove_quote_hint.title": "¿Querés eliminar tu mensaje citado?",
"reply_indicator.attachments": "{count, plural,one {# adjunto} other {# adjuntos}}", "reply_indicator.attachments": "{count, plural,one {# adjunto} other {# adjuntos}}",
"reply_indicator.cancel": "Cancelar", "reply_indicator.cancel": "Cancelar",
"reply_indicator.poll": "Encuesta", "reply_indicator.poll": "Encuesta",

View File

@ -768,6 +768,9 @@
"relative_time.minutes": "{number} m", "relative_time.minutes": "{number} m",
"relative_time.seconds": "{number} s", "relative_time.seconds": "{number} s",
"relative_time.today": "hoy", "relative_time.today": "hoy",
"remove_quote_hint.button_label": "Entendido",
"remove_quote_hint.message": "Puedes hacerlo desde el menú de opciones {icon}.",
"remove_quote_hint.title": "¿Quieres eliminar tu publicación citada?",
"reply_indicator.attachments": "{count, plural, one {# adjunto} other {# adjuntos}}", "reply_indicator.attachments": "{count, plural, one {# adjunto} other {# adjuntos}}",
"reply_indicator.cancel": "Cancelar", "reply_indicator.cancel": "Cancelar",
"reply_indicator.poll": "Encuesta", "reply_indicator.poll": "Encuesta",

View File

@ -768,6 +768,9 @@
"relative_time.minutes": "{number} m", "relative_time.minutes": "{number} m",
"relative_time.seconds": "{number} s", "relative_time.seconds": "{number} s",
"relative_time.today": "hoy", "relative_time.today": "hoy",
"remove_quote_hint.button_label": "Entendido",
"remove_quote_hint.message": "Puedes hacerlo desde el menú de opciones {icon}.",
"remove_quote_hint.title": "¿Quieres eliminar tu publicación citada?",
"reply_indicator.attachments": "{count, plural, one {# adjunto} other {# adjuntos}}", "reply_indicator.attachments": "{count, plural, one {# adjunto} other {# adjuntos}}",
"reply_indicator.cancel": "Cancelar", "reply_indicator.cancel": "Cancelar",
"reply_indicator.poll": "Encuesta", "reply_indicator.poll": "Encuesta",

View File

@ -863,6 +863,7 @@
"status.block": "Blokeeri @{name}", "status.block": "Blokeeri @{name}",
"status.bookmark": "Järjehoidja", "status.bookmark": "Järjehoidja",
"status.cancel_reblog_private": "Lõpeta jagamine", "status.cancel_reblog_private": "Lõpeta jagamine",
"status.cannot_quote": "Selle postituse tsiteerimine pole lubatud",
"status.cannot_reblog": "Seda postitust ei saa jagada", "status.cannot_reblog": "Seda postitust ei saa jagada",
"status.context.load_new_replies": "Leidub uusi vastuseid", "status.context.load_new_replies": "Leidub uusi vastuseid",
"status.context.loading": "Kontrollin täiendavate vastuste olemasolu", "status.context.loading": "Kontrollin täiendavate vastuste olemasolu",
@ -988,9 +989,13 @@
"visibility_modal.header": "Nähtavus ja kasutus", "visibility_modal.header": "Nähtavus ja kasutus",
"visibility_modal.helper.direct_quoting": "Ainult mainituile mõeldud Mastodoni postitusi ei saa teiste poolt tsiteerida.", "visibility_modal.helper.direct_quoting": "Ainult mainituile mõeldud Mastodoni postitusi ei saa teiste poolt tsiteerida.",
"visibility_modal.helper.privacy_editing": "Avaldatud postitused ei saa muuta oma nähtavust.", "visibility_modal.helper.privacy_editing": "Avaldatud postitused ei saa muuta oma nähtavust.",
"visibility_modal.helper.privacy_private_self_quote": "Privaatsete postituste tsiteerimist oma enda poolt pole võimalik teha avalikuks.",
"visibility_modal.helper.private_quoting": "Ainult jälgijatele mõeldud Mastodoni postitusi ei saa teiste poolt tsiteerida.", "visibility_modal.helper.private_quoting": "Ainult jälgijatele mõeldud Mastodoni postitusi ei saa teiste poolt tsiteerida.",
"visibility_modal.helper.unlisted_quoting": "Kui teised kasutajad sind tsiteerivad, siis nende postitused peidetakse ajajoonelt, mis näitavad populaarsust koguvaid postitusi.", "visibility_modal.helper.unlisted_quoting": "Kui teised kasutajad sind tsiteerivad, siis nende postitused peidetakse ajajoonelt, mis näitavad populaarsust koguvaid postitusi.",
"visibility_modal.instructions": "Halda seda, kes võivad antud postitusega suhestuda. Lisaks võid kõikide tulevaste postituste seadistusi muuta valikust <link>Eelistused > Postituse vaikeseadistused</link>.",
"visibility_modal.privacy_label": "Nähtavus",
"visibility_modal.quote_followers": "Ainult jälgijad", "visibility_modal.quote_followers": "Ainult jälgijad",
"visibility_modal.quote_label": "Kes võivad tsiteerida",
"visibility_modal.quote_nobody": "Ainult mina", "visibility_modal.quote_nobody": "Ainult mina",
"visibility_modal.quote_public": "Kõik", "visibility_modal.quote_public": "Kõik",
"visibility_modal.save": "Salvesta" "visibility_modal.save": "Salvesta"

View File

@ -768,6 +768,9 @@
"relative_time.minutes": "{number} min", "relative_time.minutes": "{number} min",
"relative_time.seconds": "{number} s", "relative_time.seconds": "{number} s",
"relative_time.today": "tänään", "relative_time.today": "tänään",
"remove_quote_hint.button_label": "Selvä",
"remove_quote_hint.message": "Voit tehdä sen {icon}-valikosta.",
"remove_quote_hint.title": "Haluatko poistaa lainatun julkaisusi?",
"reply_indicator.attachments": "{count, plural, one {# liite} other {# liitettä}}", "reply_indicator.attachments": "{count, plural, one {# liite} other {# liitettä}}",
"reply_indicator.cancel": "Peruuta", "reply_indicator.cancel": "Peruuta",
"reply_indicator.poll": "Äänestys", "reply_indicator.poll": "Äänestys",

View File

@ -768,6 +768,9 @@
"relative_time.minutes": "{number}m", "relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s", "relative_time.seconds": "{number}s",
"relative_time.today": "hoxe", "relative_time.today": "hoxe",
"remove_quote_hint.button_label": "Entendido",
"remove_quote_hint.message": "Pódelo facer desde o {icon} menú de opcións.",
"remove_quote_hint.title": "Queres eliminar a publicación citada?",
"reply_indicator.attachments": "{count, plural, one {# adxunto} other {# adxuntos}}", "reply_indicator.attachments": "{count, plural, one {# adxunto} other {# adxuntos}}",
"reply_indicator.cancel": "Desbotar", "reply_indicator.cancel": "Desbotar",
"reply_indicator.poll": "Enquisa", "reply_indicator.poll": "Enquisa",

View File

@ -768,6 +768,9 @@
"relative_time.minutes": "{number} דקות", "relative_time.minutes": "{number} דקות",
"relative_time.seconds": "{number} שניות", "relative_time.seconds": "{number} שניות",
"relative_time.today": "היום", "relative_time.today": "היום",
"remove_quote_hint.button_label": "הבנתי",
"remove_quote_hint.message": "ניתן לעשות זאת מתפריט האפשרויות {icon}",
"remove_quote_hint.title": "להסיר את ההודעה המצוטטת?",
"reply_indicator.attachments": "{count, plural,one {# קובץ מצורף}other {# קבצים מצורפים}}", "reply_indicator.attachments": "{count, plural,one {# קובץ מצורף}other {# קבצים מצורפים}}",
"reply_indicator.cancel": "ביטול", "reply_indicator.cancel": "ביטול",
"reply_indicator.poll": "משאל", "reply_indicator.poll": "משאל",

View File

@ -768,6 +768,9 @@
"relative_time.minutes": "{number}mín", "relative_time.minutes": "{number}mín",
"relative_time.seconds": "{number}sek", "relative_time.seconds": "{number}sek",
"relative_time.today": "í dag", "relative_time.today": "í dag",
"remove_quote_hint.button_label": "Náði því",
"remove_quote_hint.message": "Þú getur gert það úr {icon} valmyndinni.",
"remove_quote_hint.title": "Viltu fjarlægja tilvitnuðu færsluna þína?",
"reply_indicator.attachments": "{count, plural, one {# viðhengi} other {# viðhengi}}", "reply_indicator.attachments": "{count, plural, one {# viðhengi} other {# viðhengi}}",
"reply_indicator.cancel": "Hætta við", "reply_indicator.cancel": "Hætta við",
"reply_indicator.poll": "Könnun", "reply_indicator.poll": "Könnun",

View File

@ -768,6 +768,9 @@
"relative_time.minutes": "{number}m", "relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s", "relative_time.seconds": "{number}s",
"relative_time.today": "vandaag", "relative_time.today": "vandaag",
"remove_quote_hint.button_label": "Begrepen",
"remove_quote_hint.message": "Je kunt dit doen vanuit het {icon} optiesmenu.",
"remove_quote_hint.title": "Wil je jouw geciteerd bericht verwijderen?",
"reply_indicator.attachments": "{count, plural, one {# bijlage} other {# bijlagen}}", "reply_indicator.attachments": "{count, plural, one {# bijlage} other {# bijlagen}}",
"reply_indicator.cancel": "Annuleren", "reply_indicator.cancel": "Annuleren",
"reply_indicator.poll": "Peiling", "reply_indicator.poll": "Peiling",

View File

@ -768,6 +768,9 @@
"relative_time.minutes": "{number} phút", "relative_time.minutes": "{number} phút",
"relative_time.seconds": "{number}s", "relative_time.seconds": "{number}s",
"relative_time.today": "hôm nay", "relative_time.today": "hôm nay",
"remove_quote_hint.button_label": "Đã hiểu",
"remove_quote_hint.message": "Bạn cũng có thể làm trong menu tùy chọn {icon}",
"remove_quote_hint.title": "Gỡ tút mà bạn đã trích dẫn?",
"reply_indicator.attachments": "{count, plural, other {# tập tin đính kèm}}", "reply_indicator.attachments": "{count, plural, other {# tập tin đính kèm}}",
"reply_indicator.cancel": "Hủy bỏ", "reply_indicator.cancel": "Hủy bỏ",
"reply_indicator.poll": "Vốt", "reply_indicator.poll": "Vốt",

View File

@ -768,6 +768,9 @@
"relative_time.minutes": "{number} 分钟前", "relative_time.minutes": "{number} 分钟前",
"relative_time.seconds": "{number} 秒前", "relative_time.seconds": "{number} 秒前",
"relative_time.today": "今天", "relative_time.today": "今天",
"remove_quote_hint.button_label": "明白了",
"remove_quote_hint.message": "你可以通过 {icon} 选项菜单进行此操作。",
"remove_quote_hint.title": "是否需要删除你的引用嘟文?",
"reply_indicator.attachments": "{count, plural, other {# 个附件}}", "reply_indicator.attachments": "{count, plural, other {# 个附件}}",
"reply_indicator.cancel": "取消", "reply_indicator.cancel": "取消",
"reply_indicator.poll": "投票", "reply_indicator.poll": "投票",

View File

@ -768,6 +768,9 @@
"relative_time.minutes": "{number} 分鐘前", "relative_time.minutes": "{number} 分鐘前",
"relative_time.seconds": "{number} 秒", "relative_time.seconds": "{number} 秒",
"relative_time.today": "今天", "relative_time.today": "今天",
"remove_quote_hint.button_label": "了解",
"remove_quote_hint.message": "您能自 {icon} 選單完成此操作。",
"remove_quote_hint.title": "是否想要移除您的引用嘟文?",
"reply_indicator.attachments": "{count, plural, other {# 個附加檔案}}", "reply_indicator.attachments": "{count, plural, other {# 個附加檔案}}",
"reply_indicator.cancel": "取消", "reply_indicator.cancel": "取消",
"reply_indicator.poll": "投票", "reply_indicator.poll": "投票",

View File

@ -41,7 +41,7 @@ class InitialStateSerializer < ActiveModel::Serializer
store[:disabled_account_id] = object.disabled_account.id.to_s if object.disabled_account store[:disabled_account_id] = object.disabled_account.id.to_s if object.disabled_account
store[:moved_to_account_id] = object.moved_to_account.id.to_s if object.moved_to_account store[:moved_to_account_id] = object.moved_to_account.id.to_s if object.moved_to_account
store[:owner] = object.owner&.id&.to_s if Rails.configuration.x.single_user_mode store[:owner] = object.owner&.id&.to_s if Rails.configuration.x.mastodon.single_user_mode
store store
end end
@ -103,10 +103,10 @@ class InitialStateSerializer < ActiveModel::Serializer
locale: I18n.locale, locale: I18n.locale,
mascot: instance_presenter.mascot&.file&.url, mascot: instance_presenter.mascot&.file&.url,
profile_directory: Setting.profile_directory, profile_directory: Setting.profile_directory,
registrations_open: Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode, registrations_open: Setting.registrations_mode != 'none' && !Rails.configuration.x.mastodon.single_user_mode,
repository: Mastodon::Version.repository, repository: Mastodon::Version.repository,
search_enabled: Chewy.enabled?, search_enabled: Chewy.enabled?,
single_user_mode: Rails.configuration.x.single_user_mode, single_user_mode: Rails.configuration.x.mastodon.single_user_mode,
source_url: instance_presenter.source_url, source_url: instance_presenter.source_url,
sso_redirect: sso_redirect, sso_redirect: sso_redirect,
status_page_url: Setting.status_page_url, status_page_url: Setting.status_page_url,

View File

@ -34,7 +34,7 @@ class NodeInfo::Serializer < ActiveModel::Serializer
end end
def open_registrations def open_registrations
Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode Setting.registrations_mode != 'none' && !Rails.configuration.x.mastodon.single_user_mode
end end
def metadata def metadata

View File

@ -122,7 +122,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer
private private
def registrations_enabled? def registrations_enabled?
Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode Setting.registrations_mode != 'none' && !Rails.configuration.x.mastodon.single_user_mode
end end
def registrations_message def registrations_message

View File

@ -79,7 +79,7 @@ class REST::V1::InstanceSerializer < ActiveModel::Serializer
end end
def registrations def registrations
Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode Setting.registrations_mode != 'none' && !Rails.configuration.x.mastodon.single_user_mode
end end
def approval_required def approval_required

View File

@ -1,5 +0,0 @@
# frozen_string_literal: true
Rails.application.configure do
config.x.single_user_mode = ENV['SINGLE_USER_MODE'] == 'true'
end

View File

@ -63,6 +63,7 @@ br:
all: Pep tra all: Pep tra
local: Lec'hel local: Lec'hel
remote: A-bell remote: A-bell
title: Lec'hiadur
media_attachments: Restroù media stag media_attachments: Restroù media stag
moderation: moderation:
active: Oberiant active: Oberiant
@ -180,6 +181,7 @@ br:
name: Anv name: Anv
registrations: registrations:
confirm: Kadarnaat confirm: Kadarnaat
save: Enrollañ
status: Statud status: Statud
follow_recommendations: follow_recommendations:
status: Statud status: Statud
@ -260,6 +262,7 @@ br:
title: Disklêriadennoù title: Disklêriadennoù
unresolved: Andiskoulmet unresolved: Andiskoulmet
updated_at: Nevesaet updated_at: Nevesaet
view_profile: Gwelet ar profil
roles: roles:
categories: categories:
devops: DevOps devops: DevOps
@ -287,6 +290,7 @@ br:
danger_zone: Takad dañjer danger_zone: Takad dañjer
discovery: discovery:
privacy: Buhez prevez privacy: Buhez prevez
profile_directory: Kavlec'h ar profiloù
title: Dizoloadur title: Dizoloadur
trends: Luskadoù trends: Luskadoù
domain_blocks: domain_blocks:
@ -310,6 +314,10 @@ br:
strikes: strikes:
actions: actions:
delete_statuses: Dilamet eo bet toudoù %{target} gant %{name} delete_statuses: Dilamet eo bet toudoù %{target} gant %{name}
tags:
title: Gerioù-klik
terms_of_service:
save_draft: Enrollañ ar brouilhed
trends: trends:
allow: Aotren allow: Aotren
approved: Aprouet approved: Aprouet
@ -324,7 +332,7 @@ br:
dashboard: dashboard:
tag_uses_measure: implijoù hollek tag_uses_measure: implijoù hollek
not_usable: N'haller ket en implijout not_usable: N'haller ket en implijout
title: Hashtagoù diouzh ar c'hiz title: Gerioù-klik diouzh ar c'hiz
warning_presets: warning_presets:
add_new: Ouzhpenniñ unan nevez add_new: Ouzhpenniñ unan nevez
delete: Dilemel delete: Dilemel
@ -342,7 +350,7 @@ br:
none: ur c'hemenn diwall none: ur c'hemenn diwall
new_trends: new_trends:
new_trending_tags: new_trending_tags:
title: Hashtagoù diouzh ar c'hiz title: Gerioù-klik diouzh ar c'hiz
appearance: appearance:
discovery: Dizoloadur discovery: Dizoloadur
localization: localization:
@ -350,6 +358,7 @@ br:
guide_link: https://crowdin.com/project/mastodon guide_link: https://crowdin.com/project/mastodon
application_mailer: application_mailer:
view: 'Sellet :' view: 'Sellet :'
view_profile: Gwelet ar profil
view_status: Gwelet ar c'hannad view_status: Gwelet ar c'hannad
auth: auth:
delete_account: Dilemel ar gont delete_account: Dilemel ar gont
@ -396,6 +405,8 @@ br:
created_at: Deiziad created_at: Deiziad
title_actions: title_actions:
none: Diwall none: Diwall
edit_profile:
other: All
emoji_styles: emoji_styles:
auto: Emgefreek auto: Emgefreek
twemoji: Twemoji twemoji: Twemoji
@ -422,6 +433,8 @@ br:
other: "%{count} a gannadoù" other: "%{count} a gannadoù"
two: "%{count} gannad" two: "%{count} gannad"
title: Siloù title: Siloù
new:
save: Enrollañ ar sil nevez
statuses: statuses:
index: index:
title: Toudoù silet title: Toudoù silet
@ -547,7 +560,7 @@ br:
back: Distreiñ da vMastodon back: Distreiñ da vMastodon
development: Diorren development: Diorren
edit_profile: Kemmañ ar profil edit_profile: Kemmañ ar profil
featured_tags: Hashtagoù pennañ featured_tags: Gerioù-klik pennañ
import: Enporzhiañ import: Enporzhiañ
import_and_export: Enporzhiañ hag ezporzhiañ import_and_export: Enporzhiañ hag ezporzhiañ
preferences: Gwellvezioù preferences: Gwellvezioù
@ -609,6 +622,9 @@ br:
edit_profile_title: Personelaat ho profil edit_profile_title: Personelaat ho profil
feature_action: Gouzout hiroc'h feature_action: Gouzout hiroc'h
follow_action: Heuliañ follow_action: Heuliañ
hashtags_title: Gerioù-klik diouzh ar c'hiz
hashtags_view_more: Gwelet muioc'h a c'herioù-klik diouzh ar c'hiz
share_title: Rannit ho kont Mastodon
sign_in_action: Kevreañ sign_in_action: Kevreañ
subject: Donemat e Mastodon subject: Donemat e Mastodon
title: Degemer mat e bourzh, %{name}! title: Degemer mat e bourzh, %{name}!

View File

@ -1894,6 +1894,9 @@ cy:
self_vote: Nid oes modd i chi bleidleisio yn eich polau eich hun self_vote: Nid oes modd i chi bleidleisio yn eich polau eich hun
too_few_options: rhaid cael mwy nag un eitem too_few_options: rhaid cael mwy nag un eitem
too_many_options: ni all gynnwys mwy na %{max} eitem too_many_options: ni all gynnwys mwy na %{max} eitem
vote: Pleidleisio
posting_defaults:
explanation: Bydd y gosodiadau hyn yn cael eu defnyddio fel rhagosodiadau pan fyddwch chi'n creu postiadau newydd, ond gallwch chi eu golygu fesul postiad o fewn y cyfansoddwr.
preferences: preferences:
other: Arall other: Arall
posting_defaults: Rhagosodiadau postio posting_defaults: Rhagosodiadau postio

View File

@ -367,7 +367,7 @@ en:
title: Custom emojis title: Custom emojis
uncategorized: Uncategorized uncategorized: Uncategorized
unlist: Unlist unlist: Unlist
unlisted: Quiet public unlisted: Unlisted
update_failed_msg: Could not update that emoji update_failed_msg: Could not update that emoji
updated_msg: Emoji successfully updated! updated_msg: Emoji successfully updated!
upload: Upload upload: Upload
@ -1923,7 +1923,7 @@ en:
private_long: Only show to followers private_long: Only show to followers
public: Public public: Public
public_long: Anyone on and off Mastodon public_long: Anyone on and off Mastodon
unlisted: Unlisted unlisted: Quiet public
unlisted_long: Hidden from Mastodon search results, trending, and public timelines unlisted_long: Hidden from Mastodon search results, trending, and public timelines
statuses_cleanup: statuses_cleanup:
enabled: Automatically delete old posts enabled: Automatically delete old posts

View File

@ -2,6 +2,8 @@
br: br:
simple_form: simple_form:
hints: hints:
account:
note: 'Gallout a rit @menegiñ tud all pe #gerioù-klik.'
defaults: defaults:
avatar: WEBP, PNG, GIF pe JPG. Bihanoc'h eget %{size}. A vo izelaet betek %{dimensions}px avatar: WEBP, PNG, GIF pe JPG. Bihanoc'h eget %{size}. A vo izelaet betek %{dimensions}px
header: WEBP, PNG, GIF pe JPG. Bihanoc'h eget %{size}. A vo izelaet betek %{dimensions}px header: WEBP, PNG, GIF pe JPG. Bihanoc'h eget %{size}. A vo izelaet betek %{dimensions}px
@ -56,7 +58,7 @@ br:
username: Anv username: Anv
whole_word: Ger a-bezh whole_word: Ger a-bezh
featured_tag: featured_tag:
name: Hashtag name: Ger-klik
invite: invite:
comment: Evezhiadenn comment: Evezhiadenn
invite_request: invite_request:
@ -71,8 +73,8 @@ br:
hint: Titouroù ouzhpenn hint: Titouroù ouzhpenn
text: Reolenn text: Reolenn
tag: tag:
name: Hashtag name: Ger-klik
trendable: Aotren an hashtag-mañ da zont war wel dindan tuadurioù trendable: Aotren ar ger-klik-mañ da zont war wel dindan tuadurioù
user: user:
role: Roll role: Roll
time_zone: Gwerzhid eur time_zone: Gwerzhid eur

View File

@ -3,6 +3,7 @@ shared:
experimental_features: <%= ENV.fetch('EXPERIMENTAL_FEATURES', nil) %> experimental_features: <%= ENV.fetch('EXPERIMENTAL_FEATURES', nil) %>
limited_federation_mode: <%= (ENV.fetch('LIMITED_FEDERATION_MODE', nil) || ENV.fetch('WHITELIST_MODE', nil)) == 'true' %> limited_federation_mode: <%= (ENV.fetch('LIMITED_FEDERATION_MODE', nil) || ENV.fetch('WHITELIST_MODE', nil)) == 'true' %>
self_destruct_value: <%= ENV.fetch('SELF_DESTRUCT', nil)&.to_json %> self_destruct_value: <%= ENV.fetch('SELF_DESTRUCT', nil)&.to_json %>
single_user_mode: <%= ENV.fetch('SINGLE_USER_MODE', nil) == 'true' %>
software_update_url: <%= ENV.fetch('UPDATE_CHECK_URL', 'https://api.joinmastodon.org/update-check')&.to_json %> software_update_url: <%= ENV.fetch('UPDATE_CHECK_URL', 'https://api.joinmastodon.org/update-check')&.to_json %>
source: source:
base_url: <%= ENV.fetch('SOURCE_BASE_URL', nil)&.to_json %> base_url: <%= ENV.fetch('SOURCE_BASE_URL', nil)&.to_json %>

View File

@ -68,18 +68,18 @@ RSpec.describe ApplicationController do
describe 'helper_method :single_user_mode?' do describe 'helper_method :single_user_mode?' do
it 'returns false if it is in single_user_mode but there is no account' do it 'returns false if it is in single_user_mode but there is no account' do
allow(Rails.configuration.x).to receive(:single_user_mode).and_return(true) allow(Rails.configuration.x.mastodon).to receive(:single_user_mode).and_return(true)
expect(controller.view_context.single_user_mode?).to be false expect(controller.view_context.single_user_mode?).to be false
end end
it 'returns false if there is an account but it is not in single_user_mode' do it 'returns false if there is an account but it is not in single_user_mode' do
allow(Rails.configuration.x).to receive(:single_user_mode).and_return(false) allow(Rails.configuration.x.mastodon).to receive(:single_user_mode).and_return(false)
Fabricate(:account) Fabricate(:account)
expect(controller.view_context.single_user_mode?).to be false expect(controller.view_context.single_user_mode?).to be false
end end
it 'returns true if it is in single_user_mode and there is an account' do it 'returns true if it is in single_user_mode and there is an account' do
allow(Rails.configuration.x).to receive(:single_user_mode).and_return(true) allow(Rails.configuration.x.mastodon).to receive(:single_user_mode).and_return(true)
Fabricate(:account) Fabricate(:account)
expect(controller.view_context.single_user_mode?).to be true expect(controller.view_context.single_user_mode?).to be true
end end

View File

@ -9,7 +9,7 @@ RSpec.describe Auth::RegistrationsController do
context 'when in single user mode and open for registration' do context 'when in single user mode and open for registration' do
before do before do
Setting.registrations_mode = 'open' Setting.registrations_mode = 'open'
allow(Rails.configuration.x).to receive(:single_user_mode).and_return(true) allow(Rails.configuration.x.mastodon).to receive(:single_user_mode).and_return(true)
end end
it 'redirects to root' do it 'redirects to root' do
@ -17,21 +17,21 @@ RSpec.describe Auth::RegistrationsController do
get path get path
expect(response).to redirect_to '/' expect(response).to redirect_to '/'
expect(Rails.configuration.x).to have_received(:single_user_mode) expect(Rails.configuration.x.mastodon).to have_received(:single_user_mode)
end end
end end
context 'when registrations closed and not in single user mode' do context 'when registrations closed and not in single user mode' do
before do before do
Setting.registrations_mode = 'none' Setting.registrations_mode = 'none'
allow(Rails.configuration.x).to receive(:single_user_mode).and_return(false) allow(Rails.configuration.x.mastodon).to receive(:single_user_mode).and_return(false)
end end
it 'redirects to root' do it 'redirects to root' do
get path get path
expect(response).to redirect_to '/' expect(response).to redirect_to '/'
expect(Rails.configuration.x).to have_received(:single_user_mode) expect(Rails.configuration.x.mastodon).to have_received(:single_user_mode)
end end
end end
end end